2010-03-14 71 views
6

我有一段时间构建使用数据库服务器作为数据层的N层应用程序,Winforms作为表示层以及中间层使用ASP.NET asmx webservice来回发送无类型数据集。尽管迄今为止这种方法对我有用,但它今天确实感觉过时了。如何使用Winforms实现.net 3层体系结构

如果我今天要创建一个类似的体系结构应用程序,我应该使用哪些技术? .net 4.0技术是受欢迎的。

我仍然想要一个数据库服务器作为数据,而asmx webservices应该可能被WCF取代。我仍然希望将表示层作为桌面应用程序(Winforms或WPF)运行,因此忽略此问题的ASP.net。

我的主要问题真的归结为什么作为业务对象。我想要比无类型数据集更容易绑定到接口的东西,强类型数据集感觉非常重。我还需要一些可以跟踪更改的内容,以确保用户不会覆盖数据库中对方的更改。

实体框架4是否可用于这种情况? 有没有可用的详尽指南?

+0

我继承了一个完全按照您描述的架构(通过asmx向WinForms输入的无类型数据集),因此有兴趣了解人们不得不说的话! – 2010-03-14 12:06:31

回答

1

有一个很好的介绍,以建设有EF 4这里的n层应用程序:http://msdn.microsoft.com/en-us/magazine/ee335715.aspx

在EF 4引入POCO的对象,更容易建立n层的应用程序,因为它消除了需要程序映射器在EF对象和数据传输对象之间映射。

+0

谢谢,文章似乎是要走的路,尽管它没有跳过一些细节。我有点担心客户端应用程序直接引用服务,但似乎有必要避免生成代理对象并重新使用EF4模型。 – 2010-03-14 19:32:03

1

我也更喜欢使用EF4或LinqToSQL,WCF,WF和是WPF进行演示。此外,如果您决定与WPF一起使用一些类库(例如Unity或STRUCTUREMAP等IOC DI)或重用MEF等组件。如果你使用像Windows窗体一样的WPF,你不会从中获得任何好处。