【问题标题】:AngularJs (client side) with ASP.NET MVC 5 (server side) [closed]AngularJs(客户端)和 ASP.NET MVC 5(服务器端)[关闭]
【发布时间】:2015-05-10 11:59:44
【问题描述】:

我想学习 AngularJs。我熟悉 ASP.NET MVC。我要编写一些网络应用程序,我想在客户端使用 AngularJs,在服务器端使用 ASP.NET MVC 5。

我的项目解决方案:

  • Web 项目 - 客户端 (AngularJs)
  • 核心(DAL、存储库、业务层)(C#)
  • 测试

是好的架构吗?你怎么看?

【问题讨论】:

    标签: c# asp.net asp.net-mvc angularjs asp.net-mvc-4


    【解决方案1】:

    我会使用:

    • 用于 url 路由和页面呈现的 ASP.NET MVC(如果需要,还可以进行本地化)。
    • 用于客户端开发的 Angular JS。
    • 用于 Ajax 请求的 ASP.NET WebApi。

    业务和数据访问层将在外部项目中开发,当然是在 C# 中。

    我的个人测试工具是 NUnit、NSubstitute(模拟库)、FluentAssertions 和 AutoFixture,用于生成文本数据。

    还可以考虑使用 IoC 容器并使用组件的依赖注入来实现您的项目。我个人是 Autofac 的粉丝,但您可以考虑其他选择。

    我还建议您看一下 NancyFx,这是一个轻量级框架,可以用来代替 MVC 和 WebApi。更多信息在这里:Benefits of using NancyFx?

    总结解决方案布局:

    • 一个项目将包含 MVC 和 Web API 控制器以及 Angular 脚本文件
    • 另一个项目将包含业务层(我更喜欢称之为领域层)
    • 另一个项目将包含数据访问层
    • 每个项目都有一个对应的测试项目,遵循 xUnit 约定。

    如果你应用控制反转,你可以在领域层定义所有的通信接口,然后让UI层和数据访问层引用它。

    【讨论】:

    • 总而言之,您建议:ASP.NET MVC、AngularJs、WebApi - 是一个项目吗?你觉得 xUnit 怎么样?
    • 是的,MVC 应用程序将非常简单,只有控制器(如果你有单页应用程序,一个,如果你有更多单页应用程序,则更多),并负责路由和渲染(您可能不会在其中定义任何模型)。 Angular 控制器和视图将是在 MVC 应用程序中定义的 javascript 文件。无论如何,MVC 项目可以包含 MVC 和 API 控制器,Angular 控制器将使用它们来调用服务器端函数。
    • xUnit 很好,但老实说我从未使用过它。我对 nUnit 很满意 :-)
    • 如果您打算使用 IoC 容器(我强烈建议),请乘车了解如何使用它。我强烈建议您从 Mark Seemann 的博客 (blog.ploeh.dk) 和书籍 (manning.com/seemann) 开始。你会避免非常危险的错误:-)
    • 好的,那么我将在一个解决方案中创建 3 个项目。谢谢
    猜你喜欢
    • 2014-07-05
    • 1970-01-01
    • 2012-05-23
    • 1970-01-01
    • 2010-09-11
    • 1970-01-01
    • 2013-04-24
    • 2010-10-03
    • 1970-01-01
    相关资源
    最近更新 更多