c# - 형변환 - Model 클래스를 생성하거나 generic 데이터베이스 유틸리티 클래스를 사용하는 것이 더 좋습니까?




c# 제네릭 형변환 (3)

우리는 데이터베이스 호출을위한 간단한 유틸리티 클래스 (ADO.NET에 대한 간단한 래퍼)를 가지고 있지만 각 데이터베이스 / 개체에 대한 클래스를 생성하려고합니다. 그렇게하는 것이 현명한 방법일까요, 아니면 우리가 ASP.NET 용 MVC 프레임 워크 전체를 사용한다면 이익이됩니까?

그래서 우리는 이것을 가지고 있습니다 :

SQLWrapper.GetRecordset(connstr-alias, sql-statement, parameters);
SQLWrapper.GetDataset(connstr-alias, sql-statement, parameters);
SQLWrapper.Execute(connstr-alias, sql-statement, parameters);

이 일을 생각하면 :

Person p = Person.get(id);
p.fname = "jon";
p.lname = "smith";
p.Save();

또는 새로운 기록을 위해 -

Person p = new Person();
p.fname = "Jon";
p.lname = "Smith";
p.Save();
p.Delete();

이 똑똑한가, 또는 과잉인가? 재사용, 데이터베이스 변경 및 유지 / 가독성에 대한 이점을 확인할 수 있습니다.


MVC 만 웹의 유일한 디자인 패턴은 아니지만 유용한 패턴입니다.

비록 'V'또는 'C'를 채택 할 수 없다하더라도 'M'을 채택하면 배당금을 지불 할 것입니다.


LINQ가 당신을 위해 할 수있는 일을하려고하는 것처럼 보입니다. 당신이 그것을 사용할 수없는 오래된 프레임 워크에 빠져 있다면 수동으로 모든 모델 객체를 수동으로 생성하는 대신 Subconic ( http://subsonicproject.com/ )을 사용하는 것이 좋습니다.

나는 비슷한 처지에 있었고 환상적인 결과를 통해 아음속의 아음속 프로젝트로 바뀌었다. 신속한 개발 및 코드 읽기 / 사용이 더 쉽습니다.


이 질문은로드 된 데이터 기반 디자인 대 도메인 기반 디자인입니다. 좋은 동작을하는 응용 프로그램의 경우 도메인 기반 디자인을 선호해야합니다. 보고 또는 유틸리티 응용 프로그램은 데이터 기반 디자인으로 더 잘 작동하는 경향이 있습니다 (또는 개발이 더 빠름).

당신이 묻는 것은 "우리 회사가 코드를 디자인하는 방식에 근본적인 변화를 가져야 하는가"입니다. 도메인 괴물로서, 내 직감은 예스라고 외치는 것입니다. 그러나 귀하의 질문에 대한 단순한 본성으로, 귀하가 제안하는 변경의 범위를 완전히 이해하고 있는지 확신 할 수 없습니다. 나는 당신이 그것에 대해 당신의 팀과 더 이야기해야한다고 생각합니다.

Evan의 DDD 도서 또는 무료 재단 전자 책과 같은 일부 문헌을 구하십시오. 그러면 어느 방향으로 나아갈 지 판단 할 수있는 더 나은 위치에있게됩니다.





ado.net