1

강력하게 형식화 된 데이터 집합을 사용하고 있습니다. 내가 강력하게 형식화 된 모든 것을 이동 후 VB.Net 프로젝트에서 강력한 형식의 데이터 집합 사용

은 현재 내가하지만, 이전

2010 년 그들이 직접의 System.Data.SQLClient의하는 SqlCommand로는 SQL 쿼리를 사용하고 Visual Studio에서 VB.Net을 사용하여 개발 프로젝트를 진행하고있다 데이터 집합 및

지금 난 그냥 싶어 그 ...이 방법은 프로젝트에 대한 좋은 입니다 아니면 그냥 SqlCommands

를 사용하여 오래된 것들로 다시 이동해야 또는이 어떤 물어 .. 모든 곳 TableAdapters를 사용하기 시작 좋은 방법으로 SQL 데이터베이스를 만드는 방법은 ERP와 m 코드의 ost는 데이터 액세스 용입니다.

답변

1

우리는 항상 강력한 형식의 데이터 집합을 사용합니다.

이 동작으로 이동 한 후 테이블 어댑터에서 수행하는 대신 코드에 SQL 쿼리를 포함시키는 것이 좋지 않습니다. 하지만 데이터 세트로 인해 약간의 오버 헤드가 발생하므로 부스 방식이 다른 솔루션에 적합하다고 생각합니다.

정말 모든 fieldnames intellisence 가지고 테이블 어댑터를 변경하면 뭔가 다른 반환합니다 그래서 디자인 타임 오류가 발생할 때마다 변경 사항을 반영하기 위해 코드를 변경해야 할 때 어디 런타임을 찾는 대신 고객이 프로그램을 실행 중입니다.

강하게 입력 된 데이터 세트로 승리하는 많은 물건이 있으므로 결코 돌아 가지 않을 것입니다.

+0

강력한 데이터 형식의 코드 파일을 보면 약 20,000 개의 코드 테이블이 있습니다.이 코드는 강력하게 형식화 된 데이터 집합은 실행 시간이 오래 걸린다 고합니다. 물건 –

+0

나를 위해,이 오버 헤드는 내가 그것을 사용하는 특징에 대해 아무것도 아니다. 나는 성능상의 문제없이 서버와 클라이언트 사이의 모든 데이터를 처리하면서 40-50 개의 데이터 세트를 가진 webservice-projects를 가지고있다. 그러나 모든 것은 당신이 필요로하는 것에 관한 것입니다. 물론 데이터 셋이 해결책이 아닌 경우가 있습니다. 그러나 * overhead * 때문에 데이터 셋을 사용하지 않는다면, 아마도 다른 것이 문제 일 것입니다 ... – Stefan

+0

성능이 실제로 문제가되기 전에 성능에 대해 걱정할 것을 권장하지 않습니다. 밀리 초가 아니라 틱으로 실행되는 코드를 작성하는 데 6 개월을 소비 할 수 있지만 사용자가 실제로 차이를 느낄 수 있습니까? 이야기의 도덕 - 괴상한 간접비없이 유지하는 것이 더 나은 실천이라면 그렇게하는 것이 좋습니다. – pingoo

0

테이블 어댑터 .... 테이블 구조를 업데이트하는 것 또한 큰 데이터베이스를 엉망으로 만듭니다. 또한 혼동을 일으 킵니다. CRUD 작업에 자동 코드 생성기를 사용하는 것이 좋습니다. 이전 패턴은 테이블 어댑터와 강력한 형식의 데이터 세트로 모두 전환하는 것보다 낫습니다.

+0

소스 코드의 모든 곳에서 SQL 쿼리를 뿌릴 때 테이블 구조를 업데이트하는 것이 더 큰 고통입니다. 그것의 징계에 관한. 테이블을 변경하고 DS를 연 다음 tableadapter를 변경 한 다음 영향을받은 부분을 수정합니다 (오류 창에 모두 표시됨). 이전 방법 : 테이블을 변경하고 소스 코드로 이동하여 영향을받는 모든 쿼리를 찾으십시오. 몇 가지를 놓친 다음 필드가 사용되는 모든 장소를 찾으십시오. 일부는 놓치십시오. 프로그램이 실행되고있는 시간을 확인하십시오. 최악의 경우 고객이 찾으면 안됩니다. 언젠가 어리숙한 프로그래머는 필드 이름 대신 row.fields (0)를 사용하고 있습니다. 정말 재미 있습니다. – Stefan

0

전선을 통해 다른 플랫폼 (실버 라이트, 웹 서비스, wcf 서비스 등)으로 데이터를 이동하려는 경우 모든 종류의 데이터 세트를 사용하면 구석에 상자가 생깁니다.

우리가 해결 한 방법은 속성 목록이 데이터베이스와 정확하게 일치하는 클래스를 갖는 것입니다. 데이터를 데이터베이스 안팎으로 이동시키기 위해 리플렉션을 사용하여 상황과 플랫폼에 따라 저장 프로 시저 매개 변수를 일치 시키거나 동적 SQL 문을 생성합니다.

데이터베이스 테이블이 변경되면 변경 작업을 수행하는 개발자도 클래스 구조를 업데이트해야하며 그 반대의 경우도 마찬가지입니다.

우리는 필요한 수작업 코드를 줄이기 위해 CodeSmith의 코드 생성 기능을 사용하여 데이터베이스에서 클래스를 생성하고 필드 열거가 필요한 표준 추가/업데이트 저장 프로 시저의 기본 구현을 만듭니다.

추가 장점으로이 접근 방식은 데이터베이스와 비즈니스 오브젝트 구조 간의 긴밀한 연결을 제거합니다. SQL Server, Oracle, Sqlite 및 SqlServerCE 데이터베이스에 대해 동일한 데이터 액세스 코드 및 비즈니스 개체 클래스를 사용할 수 있습니다. 이 코드는 Windows, PocketPC, Web, iPad 및 Android 앱에서 응용 프로그램을 만드는 데 사용됩니다. 모든 모바일 앱은 플랫폼과 관련된 로컬 데이터베이스를 사용하지만 공통 데이터 액세스 코드를 사용합니다.

처음 설치하는 데 약간 더 많은 작업이 필요하지만 장기적으로는 상당한 배당금을 지불하게됩니다.

관련 문제