gpt4 book ai didi

c# - 使用 MVC、WCF、EF 的应用程序架构

转载 作者:太空狗 更新时间:2023-10-29 23:24:52 26 4
gpt4 key购买 nike

我正在开发一个网络应用程序,稍后我们计划开发并提供它的移动应用程序。我不是很有经验,只是根据我的理解计划拥有这种架构:

  1. 将直接与 WCF 通信的 MVC Web 项目前端服务。
  2. 服务器端验证将使用数据注释在 MVC 模型上完成,然后数据将传递到 WCF 层。使用 Customer membership provider 的安全性也将在 MVC 中实现。
  3. WCF 层也将像业务层一样工作。在需要时,它将与类库 DAL 通信。
  4. 使用 EF 的 DAL 将与 SQL Server 通信*

有问题请

  1. 这个架构好吗?
  2. 将WCF用作业务层和服务层好吗?
  3. 我们应该在哪一层实现哪些模式?
  4. 对于数据验证和安全,MVC 是正确的地方吗?

谢谢

编辑5. 单元测试好不好?或者为了更好的测试我应该做一些改变?

最佳答案

您所描述的是一个非常现代且优秀的 Microsoft 服务器堆栈。

ASP.net MVC 非常适合您的 Web UI。如果您要使用 asp.net MVC,您还应该查看业务层的 asp.net webapi(新)。

http://www.asp.net/web-api

http://weblogs.asp.net/scottgu/archive/2012/02/23/asp-net-web-api-part-1.aspx

SQL Server 和 EF 相当标准。如果您需要最终控制并且习惯直接使用 sql,另一个选项是纯 T-SQL。

将 Web UI (MVC) 与业务层 (web-api) 分离的一个好处是,您可以分离角色并独立扩展,即使最初它们恰好位于同一角色/机器上。此外,客户端 html/javascript 代码可以对 web-api 进行 ajax 样式调用。因此,您可能希望“注册”(配置)web-api 服务器的端点。如果您以后缩放/移动它,则不会更改代码 - 从第一天起您就可以干净地分离代码。

移动设备(如果是厚应用程序)可以直接使用 web-api。除非移动应用程序是使用嵌入式浏览器/javascript 解决方案的混合移动应用程序,否则它只是 MVC web UI 的小型消费者。

为了进行测试,您可以在自己的命令行进程中自行托管 web-api,并在可行的情况下模拟数据。这将允许您在没有后端的情况下验证 Web UI。通过拥有一个业务层(由 Web API 公开),您还可以独立于 UI 验证后端和逻辑(应该是您的大部分逻辑)。

关于c# - 使用 MVC、WCF、EF 的应用程序架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12207374/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com