在winforms和Web应用程序之间共享数据层和模型层的最佳方法

时间:2012-08-29 02:51:02

标签: winforms web-applications models sharing

我目前正在为公司开发ERP解决方案。要求如下:

  1. 他们需要一个基于winforms的应用程序,它将处理HR,BSC,Inventory等模块。

  2. 基于网络的解决方案,需要所有员工访问他们的个人数据,申请休假等。这需要是一个基于互联网的解决方案,可以从任何地方访问。< / p>

  3. 将来他们还需要一个基于网络的文档管理系统。

  4. 目前我们已经完成了winforms应用程序中的一些模块,因为这是当务之急。对于winforms,我们采用了分层架构的横向方法。即每个模块都是一个项目,在项目中有自己的数据层和业务层。现在我需要开始研究Web解决方案。我只是想知道哪种方法将是winforms应用程序和Web应用程序之间共享数据层和模型层的最佳方法。此外,Web应用程序需要具有适当的安全性,因为它将是敏感数据。我考虑过两种可能无法涵盖所有​​可能性的方法。

    我能想到的方法如下:

    一个。制作一个能够处理数据层和模型的Web服务。将它托管在服务器上并通过winforms app和web app访问它。为此,我需要改变我已经完成的编码。但这是可以接受的,因为它需要最少的努力作为其层结构。我唯一怀疑的是,对于winforms应用程序,它将不必要地通过Web服务层并使其变慢。

    湾将数据层和模型转换为dll。在winforms和web app中访问这些dll。

    关于网络应用程序,这将是更好的方法:

    一个。我应该去基于MVC3的网络应用程序。

    湾还是asp.net和WCF?

    情况是我和同事一起工作这个项目,我们只是2人的团队。所以我们就是那些对所有事情做出决定的人。

    我在winforms方面有相当不错的经验,但在基于网络的技术方面经验相对较少。我将非常感谢您对此的看法。

1 个答案:

答案 0 :(得分:0)

如果希望模型类型与数据库模式紧密对应,可以使用Entity Framework设计器和自跟踪实体模板创建它们。这将允许通过WCF进行更改,并通过数据库持久化来轻松序列化它们。然后,您可以选择创建自定义WCF服务来处理实体,也可以选择直接将您的Entity Framework上下文作为服务使用WCF数据服务(OData)公开。

就表示层而言,您列出的两个选项并不相互排斥。您可以使用WCF的MVC,没有WCF的MVC,使用WCF的WebForms,没有WCF的WebForms ......因为您无论如何都需要创建服务,而MVC似乎是现在的方式,我可能会推荐一个MVC使用您的WCF服务访问数据的应用程序。