C# AngularJs(客户端)和ASP.NET MVC 5(服务器端)

C# AngularJs(客户端)和ASP.NET MVC 5(服务器端),c#,asp.net,asp.net-mvc,angularjs,asp.net-mvc-4,C#,Asp.net,Asp.net Mvc,Angularjs,Asp.net Mvc 4,我想学习AngularJs。我熟悉ASP.NETMVC。我将要编写一些web应用程序,我想在客户端使用AngularJs,在服务器端使用ASP.NETMVC5 I项目解决方案: 项目Web-客户端(AngularJs) 核心(DAL、存储库、业务层)(C#) 试验 好的建筑是什么?你觉得怎么样?我会用: 用于url路由和页面呈现的ASP.NET MVC(如果需要,还可以进行本地化) 用于客户端开发的Angular JS 用于Ajax请求的ASP.NET WebApi 业务和数据访问层将在

我想学习AngularJs。我熟悉ASP.NETMVC。我将要编写一些web应用程序,我想在客户端使用AngularJs,在服务器端使用ASP.NETMVC5

I项目解决方案:

  • 项目Web-客户端(AngularJs)
  • 核心(DAL、存储库、业务层)(C#)
  • 试验
好的建筑是什么?你觉得怎么样?

我会用:

  • 用于url路由和页面呈现的ASP.NET MVC(如果需要,还可以进行本地化)
  • 用于客户端开发的Angular JS
  • 用于Ajax请求的ASP.NET WebApi
业务和数据访问层将在外部项目中开发,当然是在C#中

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

还可以考虑使用IoC容器,并使用组件的依赖注入来实现您的项目。我个人是AutoFac的粉丝,但是还有其他的选择你可以考虑。 我还建议您看看NancyFx,它是一个轻量级框架,可以用来代替MVC和WebApi。更多信息请点击此处:

要总结解决方案布局,请执行以下操作:

  • 其中一个项目将包含MVC和WebAPI控制器以及angular脚本文件
  • 另一个项目将包含业务层(我更喜欢称之为域层)
  • 另一个项目将包含数据访问层
  • 按照xUnit约定,每个项目都将有一个相应的测试项目

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

总之,您建议:ASP.NET MVC、AngularJs、WebApi-这是一个项目吗?你觉得xUnit怎么样?是的,MVC应用程序将非常简单,只有控制器(如果你有一个单页应用程序,一个控制器,如果你有更多的单页应用程序,这是正常的),并且将负责路由和渲染(你可能不会在其中定义任何模型)。角度控制器和视图将是MVC应用程序中定义的javascript文件。无论如何,MVC项目可以同时包含MVC和API控制器,Angular控制器将使用它们调用服务器端函数。xUnit很好,但老实说,我从未使用过它。我对nUnit很满意:-),若你们打算使用国际奥委会的集装箱(我强烈建议),那个就开车去了解如何使用它。我强烈建议您从Mark Seemann的博客()和书()开始。您将避免非常危险的错误:-)好的,那么我将在一个解决方案中创建3个项目。谢谢