2008년 7월 11일 금요일

NHibernate, Castle.NET을 이용한 Service 만들기

NHibernate의 Entity별 Data Access Object (또는 Repository)를 제작하는 것은 상당한 노력이 필요하다.
더 좋은 방법은 UseCase 별로 그룹을 정해서 Facade 패턴을 이용하여 Repository 수를 줄이게 되면 좋다. 그럼 어떻게 하는게 좋은가?

Generic을 이용하여 IRepository 와 Repository 하나만 만들면, Entity의 수에 상관없이 사용할 수 있고, UseCase 별로 그룹핑해서 DataService 를 제작하면 Busiess Layer에서 효과적으로 작업량을 줄이고, 유연성을 확보할 수 있습니다.

또한 Busiess Logic 변경에 따른 유연성 확보를 위해 Castle의 IoC 기능을 이용하면, 전체 틀이 변경되지 않는 한, 환경설정에 따른 다른 Logic을 적용할 수 있습니다.

또한 Decorator Pattern을 이용하게 되면, 기존 작업에 Decoration 작업을 덪 붙일 수도 있습니다.

RCL.Data에서 이 모든 것을 가능하게 했고, 이를 바탕으로 만들어진 RealAdmin 제품이 있습니다.

향후 리얼웹 제품은 모두 위의 두 라이브러리를 이용하여 더욱 확장성과 유연성을 가진 제품으로 Upgrade될 것입니다.

NHibernate 2.0 Beta 출시

아직 완벽하지는 않지만 NHibernate 2.0 BETA가 나왔습니다.
그런대로 쓸만합니다. 속도도 빨라졌고... 다른 기능들도 많아졌습니다.

LINQ to Entities 와 경쟁이 되겠네요...

얼른 NHibernate.LINQ 도 Rlease 되기를 바라면서...