우리는 몇 가지 하위 프로젝트가 포함 된 정말 긴 개발 프로젝트의 시작입니다. 기본적으로 각 하위 프로젝트는 개발하는 데 몇 개월이 걸릴 것입니다. 코드 자체는 여러 개의 C# 프로젝트로 분할되지만 실제 데이터베이스는 모든 프로젝트에서 공유됩니다.미래 보장 DAL
문제는 유지 관리 가능성입니다. 테이블에 열을 추가하거나 테이블을 두 개의 작은 테이블로 분할하면 이러한 변경을 지원하기 위해 C# DAL을 수정해야합니다. 이는 단일 프로그램의 요구 만이 아니라 회사 전체의 요구 사항에 따라 DB를 지속적으로 적용 할 것이기 때문에 허용되지 않습니다. 끊임없이 변화하는 오래된 코드는 새벽 작업이 될 것입니다.
DB 사람들은 다른 견해를 제시했습니다. 저장 프로 시저를 통해 모든 CRUD를 수행하고 여러 테이블에서 Linq를 사용하여 SELECT 문을 수행합니다. 그런 다음 몇 년 후 DB를 재구성하면 동일한 저장된 procs와 views를 제공 할 수 있으며 이전 코드를 수정할 필요가 없습니다.
우리가 갖고있는 질문은 이와 같은 이유로 ORM을 사용해야하는 이유는 무엇입니까? EF는 조금 지나친 것 같습니다 (아마도 그렇지 않을 수도 있습니다). 그것과 함께 SubSonic과 같은 것이 T4 templating이 simpiler (그리고 아마도 더 빠른) DAL을 허용합니까?
또는 누군가이 전체 프로세스를 덜 고통스럽게 만드는 방법에 대한 아이디어가 있습니까? 응용 프로그램에 다른 레이어를 추가하지는 않겠지 만 db 변경 시마다 코드를 수정하고 다시 돌아가고 싶지 않습니다.
편집 1 : 그래서 "나는 더 많은 레이어를 추가하고 싶지 않습니다."라고 말했을 때. 이것은 우리가 이미 여러 개의 레이어를 가지고 있기 때문에 주로 발생합니다. 우리는 Silverlight 뷰, 뷰 모델, BLL 객체 (CSLA를 통해)를 가지고 있고, DAL을 가지고 있으며, 마지막으로 SQL 테이블을 가지고 있습니다.
그래서 모든 스키마를 제공하기 위해 하나의 스키마를 갖기 위해 기본적으로 가장 이상한 모델에 도달하게됩니다. 나는 사람들이 DB에 접근하는 앱을 건드리지 않고 DB를 어떻게 바꿀 수 있는지 궁금해한다. 이것은 초현실처럼 보인다. – flq
데이터베이스를 통한 통합은 70 년대 후반에 유행을 벗어났습니다. 보석처럼 OODB를 사용하지 않는 한. –
이 질문을 생각하는 유일한 사람은 많은 의견과 많은 답변을 얻을 수 있지만 실제로 유용한 질문이 아닐까요? –