2

我即将自下而上构建一个相当复杂的 Web 应用程序,并且我想以正确的方式使用适当的设计模式(我过去并不总是使用)和最新的 .Net 技术。

我的目标是从 Web 应用程序开始,但让未来的移动应用程序、第三方应用程序开发和插件成为可能。

这使我遇到了主要难题:对于网站(我将使用 MVC 模式构建),我应该使用 WCF 将我的数据模型公开为 API,还是应该简单地通过 dll 引用我的数据(或Web 应用程序解决方案中的一个单独项目)?

让我支持它并给你一些我的其他设计想法,这样你就知道我想要做什么,如果其中任何一个看起来是错误的方法,请提供输入和建议:

  1. 我想使用 EF 和代码优先方法构建我的数据模型,使用工作单元和存储库等设计模式。
  2. 我想通过使用 WCF 的 API 公开我的数据模型 (1)。
  3. 我想使用 TDD 和 MVC 构建一个 Web 应用程序,从我的数据模型 (1) 中获取我的数据。

因此,鉴于上述情况,当我可以轻松访问数据模型时,让 Web 应用程序使用 WCF API 似乎是一个额外的麻烦,只需在我的 Web 应用程序中引用它即可。此外,后者似乎更容易,因为我可以立即访问我的数据模型中的所有对象。我看不出使用 Web 服务怎么可能?我想使用 WCF API 的原因是我听到了很多赞誉,因为我只通过 API 公开数据,没有例外,以便真正能够为多个平台进行开发。还有哪些其他原因?我可以为 WCF 使用除 Http 消息之外的任何内容吗?我可以公开对象吗?如果可以,如何公开?

我觉得我正在寻找的很多答案都可以在网上找到,但我花了很多时间查看拼图的各个部分,但仍然很难将它们全部连接在一起。我希望你们能提供帮助,这也是一个可以造福他人的问题。

正如我所说,我想以正确的方式做到这一点,因此非常感谢您的意见(在设计阶段的任何阶段)。谢谢!

4

2 回答 2

2

我会说使用新的 WebAPI 框架构建数据 API。这样,任何可以通过 HTTP 使用 RESTful 接口的东西都可以连接到它:http ://www.asp.net/web-api

此外,您可以设置您的项目,以便从单独的项目中引用您的数据模型,这样您就不必在主 Web 应用程序中通过网络。WebAPI 项目可以是独立的,但是使用通用模型来确保事情是一致的

于 2012-07-27T01:28:29.367 回答
1

看看 WCF 数据服务 (DataService) 和 WCF RIA 服务 (DomainService)....它们可以将您的实体模型公开为服务。

http://jack.ukleja.com/wcf-data-services-vs-wcf-ria-services/

本指南可以帮助您决定如何构建您的层/层。

http://apparchguide.codeplex.com/

于 2012-07-26T23:40:22.730 回答