2015-01-09 23 views
1

을 지원하는 응용 프로그램을 개발? 내 말은 만약 누군가가 테스트 목적으로 Access DB를 지원하거나 MySQL 또는 SQL이 이미 설치되어있는 고객에게 앱을 설치하고자한다면 무엇입니까?내가 MySQL을 지원하는 C#에서 데스크톱 응용 프로그램을 개발 그리고 난 다음 질문</p> <p>1)은 고객의 요구에 따라 서로 다른 데이터베이스를 지원하는 응용 프로그램의 한 버전을 개발할 수 있는가하는 데 문제가 여러 데이터베이스

2) 위의 사실이 맞으면 어떻게해야합니까? 를 성취하다?

답변

0

마 노스는 앱의 모든 데이터베이스에 대한처럼 작동합니다. 그러나 5.1.5.5.5와 같은 MySQL 서버의 버전이 다른 경우 일부 데이터베이스 및 응용 프로그램 코드 수준 변경을 변경해야합니다.

0

MS SQL Server, SQL Compact Edition, SQL Express, MySql 및 SQLite와 함께 사용되는 응용 프로그램 app.config에서 구성 할 수있는 데이터베이스 계층 코드에 대해 Entity Framework (코드 우선)를 사용할 수 있습니다 , 그리고 가능한 다른 것들.

EF가 PostreSQL과 함께 작업하는 데 블로그가 사용되고 있지만 지원을 권장하지 않습니다. 지루하고 힙니다.

다른 데이터 제공 업체를 지원하는 PetaPoco (A Micro ORM)를 사용할 수도 있지만 직접 쿼리를 작성해야합니다. 그러면 활성 데이터 제공자에 대한 쓰기 SQL 쿼리 작성이 수반됩니다.

Entity Framework는 SQL 쿼리 생성기가 포함 된 Entity Framework 용 Providers를 사용하여 모든 SQL을 작성합니다.

그러나 응용 프로그램의 특성에 따라 SQLite 100 % 만 사용하는 것이 좋습니다. 데이터베이스 서버 소프트웨어를 전혀 설치하지 않고도 응용 프로그램에 임베드 할 수 있습니다. 그런 다음 SQL 쿼리 변환 및 데이터베이스 서버의 차이점에 대해 걱정하지 않고 PetaPoco 또는 자체 데이터 계층에 의존 할 수 있습니다.

나는 NoSql을 추천하지만, 제 생각에는 무료 NoSql 솔루션 (그 중 제가 인식하고있는)은 .Net 플랫폼에서 매우 실용적이지 않습니다.

코드를 직접 관리 할 필요없이 (많은 데이터베이스 서버) 지원할 수 있다는 측면에서 Entity Framework가 가장 좋은 솔루션 일 것입니다.

그러나 Entity Framework를 중단하기 전에 CodeFrist을 사용하여 데이터베이스를 생성하고 자동으로 업그레이드를 수행 할 수 있다는 사실을 고려하십시오. 예 : 테이블과 컬럼을 정의하는 엔티티를 생성합니다 (서로 상속하여 다른 테이블의 컬럼 이름/유형을 재사용 할 수 있음). 또한 변경된 새 버전을 정의하는 마이그레이션 클래스를 만들 수 있으므로 데이터베이스의 버전 X.1을 X.9로 자동 마이그레이션 할 수 있습니다. 매우 편리합니다.