많은 응용 프로그램을 개발해 왔으며 데이터 집합 사용에 혼란을 겪었습니다. 날짜까지 데이터 집합을 사용하지 않고 데이터베이스 엔진에서 실행되는 쿼리 및 프로 시저를 사용하여 내 데이터베이스에서 직접 내 응용 프로그램으로 작업합니다.더 나은 방법은 무엇입니까? 데이터 집합 또는 데이터베이스 작업
하지만 좋은 사례는 무엇입니까? 데이터 집합 사용? 또는 데이터베이스에서 작업 중입니다.
많은 응용 프로그램을 개발해 왔으며 데이터 집합 사용에 혼란을 겪었습니다. 날짜까지 데이터 집합을 사용하지 않고 데이터베이스 엔진에서 실행되는 쿼리 및 프로 시저를 사용하여 내 데이터베이스에서 직접 내 응용 프로그램으로 작업합니다.더 나은 방법은 무엇입니까? 데이터 집합 또는 데이터베이스 작업
하지만 좋은 사례는 무엇입니까? 데이터 집합 사용? 또는 데이터베이스에서 작업 중입니다.
당신도 받아 들여야 작업 (삽입/업데이트)
와 함께 데이터 집합을 사용하는 경우
Plz은 또한 나에게 어떤 경우를 제공하려고 우리는 우리의 데이터베이스에 대한 읽기/쓰기를 데이터 세트에 대한 읽기 잠금을 설정할 수 있습니다 스토어드 프로 시저를 사용하거나 데이터베이스를 멍청하게 만들 수 있습니다. 즉, db에는 아무런 논리가 없으며 CRUD 작업 만 가능합니다. 바보 데이터베이스 모델을 사용하면 데이터 집합이 잘못됩니다. 실제 객체로 작업하는 것이 더 좋으므로 비즈니스 로직을 추가 할 수 있습니다. 이 접근 방식은 저장된 procs를 사용하여 데이터베이스에서 직접 작동하는 것보다 복잡하지만 시스템이 커질수록 복잡성을 더 잘 관리 할 수 있습니다. 작은 규칙이 많은 대형 시스템이 있으면 저장 프로 시저를 관리하기가 매우 어려워집니다.
DataSet은 .Net 프레임 워크의 검은 눈입니다. 모든 비용을 피하십시오. –
엄밀히 말하면 데이터 일관성, 무결성 등을 가능한 한 가능한 한 데이터에 가깝게, 즉 데이터베이스에 넣는 논리를 사용합니다. 또한 상호 의존적 인 방식으로 데이터를 가져와야하는 경우 (예 : A, B 및 C의 기여도가 요청 시간에 알려진 테이블 A, B 및 C에서 가져 오기), 다음에 저장하는 것이 좋습니다. 콜 아웃 오버 헤드를 제거하고 함수, 프로 시저 (이미 OMGPonies에서 지적한 것과 같은)와 같은 데이터베이스 객체를 통해이를 수행하십시오. 하나 또는 두 개의 로직이 제거 된 경우 데이터 세트에서와 같이 "절차 적으로"다루는 것이 좀 더 직관적 인 경우를 갖는 것이 좋습니다. 모든 것을 말하면서, 어림짐작은 때로 그들의 약어가 유추하는 것입니다 ... ROT!
과거에는 .NET 프로젝트에서 데이터베이스 (예 : 하나의 콜 아웃, 모든 로직이 프로 시저로 캡슐화되어 트랜잭션으로 보호됨)에서 데이터 가져 오기/변환 (예 : 은행 트랜잭션 데이터 파일 용)을 수행했지만 "구문 분석 "두 번째 단계에서 동일한 데이터의 항목, datatables 등을 사용하는 .net 코드 (요즘은 데이터 집합 스테이지를 건너 뛰고 클래스 개체를 사용하여 더 높은 추상화 레버에서 작업 할 가능성이 높습니다.
예전에는 MVC가 Haack의 눈에서 반짝 반짝 빛나기 전까지 DataSet
정렬, 다중 관계 및 캐싱 및 기타 등등을 처리하는 것이 편리했습니다.
실제 개발자는 데이터베이스의 잠금과 같은 퀴즈는 신경 쓰지 않았습니다. 아니요, 우리는 가장 최근의 편집 전체에 일반적으로 각인 된 분쟁 해결 전략을 사용했습니다. 사용자 친근성? < Pshaw>.
그러나 요즘 괜찮은 일반 컬렉션, 과다한 ORM 및 우려 사항 분리 인식에 대해서는 더 이상 중요한 부분이 없습니다. 내가 최근에 DataSet
을 보았을 때마다 그것을 대체했다고 말하는 것이 공평합니다. 그리고 그것을 놓치지 않았습니다.
하나의 응용 프로그램에서 사용 된 데이터 세트를 아주 잘 보았습니다. 그러나 이것은 아주 다른 응용 프로그램에서 7 년 동안 개발되었습니다 (최소 두 자리 숫자 이상).
기업 개발을위한 데이터 세트가 아니라 오브젝트를 사용하여 개발 한 모범 사례가 많이 있습니다. NHibernate 또는 Entity Framework와 같은 ORM과 함께 객체는 매우 강력 할 수 있으며 CRUD 저장 프로 시저를 만드는 데있어 많은 노력을 기울일 수 있습니다.이것은 도메인 계층에서 비즈니스 로직을 멋지게 분리 할 수 있기 때문에 어플리케이션 개발을 선호하는 방식입니다.
데이터 집합에 위치가 없다는 것은 아니지만 특정 상황에서는 개체보다 적합 할 수도 있지만 내 경우에는 해당 항목을 사용하기 전에 반드시 확인해야합니다.
필자는 몇 개월 동안 내 소스 코드에서 DataSets가 필요하지 않았을 때도 궁금해했습니다.
실제로 개체가 O/R 매핑되고 직렬화 및 제네릭을 사용하는 경우에는 DataSet이 필요하지 않습니다.
그러나 DataSet은 보고서를 생성하는 데 유용합니다.
보고서에는 O/R 매핑이 가능하거나 O 매핑이 있어야하는 특정 구조가 없기 때문입니다.
보고 도구와 함께 데이터 세트 만 사용합니다.
나는보고를 위해 데이터 세트 대신 datatables를 사용하고 있습니다. 데이터베이스에서 뷰를 생성하면 직접보고 할 뷰에 링크 된 데이터 테이블을 사용할 수 있습니다. –
응용 프로그램간에 데이터를주고 받고, 응용 프로그램이 다른 실제 컴퓨터에 있다고 가정하면 데이터가 전 송을 통해 전송되므로 값이 비쌉니다. 이 설정에는 데이터 동시성 문제가 있습니다. 데이터가 클라이언트로 다시 전송되는 동안 데이터가 변경 될 수 있기 때문입니다. 논리를 저장 프로 시저에 캡슐화 할 수 있다면이를 사용하는 것이 가장 좋습니다. 필자는 DataSet의 기능에 대해 언급하기에 충분하지 않습니다. –