【问题标题】:How to implement a .net 3-tier architecture using Winforms如何使用 Winforms 实现 .net 3 层架构
【发布时间】:2010-03-14 11:59:00
【问题描述】:

我有一段时间使用数据库服务器作为数据层构建 n 层应用程序,Winforms 作为表示层,中间有一个 ASP.NET asmx Web 服务来来回发送无类型数据集。虽然到目前为止这种方法对我很有效,但今天确实感觉已经过时了。

如果我现在要创建类似的架构应用程序,我应该使用哪些技术?欢迎使用 .net 4.0 技术。

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

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

Entity Framework 4 可以用于这样的场景吗? 有没有详尽的指南?

【问题讨论】:

  • 我继承了您所描述的架构(通过 asmx 到 Winforms 的无类型数据集),所以有兴趣看看人们怎么说!

标签: .net wcf


【解决方案1】:

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

在 EF 4 中引入 POCO 对象使构建 n 层应用程序变得更加容易,因为它无需编写映射器来在 EF 对象和数据传输对象之间进行映射。

【讨论】:

  • 谢谢,这篇文章似乎是要走的路,虽然它确实跳过了一些细节。我有点担心让客户端应用直接引用服务,但似乎有必要避免生成代理对象并重用 EF4 模型。
【解决方案2】:

我也更喜欢使用 EF4 或 LinqToSQL、WCF、WF 和 WPF 进行演示。此外,如果您决定使用 WPF,请使用一些用于 IOC DI 的库,例如 Unity 或 STRUCTUREMAP 或用于重用组件 MEF 等。如果您不再使用 Windows 窗体之类的 WPF,您将不会从中获得任何好处。

【讨论】:

    猜你喜欢
    • 2012-03-18
    • 2012-11-27
    • 2015-01-31
    • 1970-01-01
    • 2012-07-30
    • 1970-01-01
    • 2011-07-30
    • 2012-03-13
    • 1970-01-01
    相关资源
    最近更新 更多