asp.net-mvc-4 – 如何在一个Web应用程序中最好地组合Web Api和M
我即将创建一个简单的Web应用程序,我想知道我是否应该使用ASP.NET MVC 4新功能的Web API。
最好的方式是做什么? 我做了一些研究,我发现有两个选择: 选项1 使Web Api成为我的服务层,并从控制器中调用它来读/写数据,并使用视图模型和剃刀渲染视图。 选项2 使Web Api成为我的服务层,并使用Javascript直接从视图中调用它。 我不是选项2的大粉丝,因为我觉得我忽略了仅用于页面之间重定向的控制器。此外,我更喜欢使用剃刀而不是Javascript。 如果我选择选项1,我必须在控制器中创建一个Web API的实例?因为这样觉得我在做错事。 什么是最好的选择?有没有其他的选择我没有考虑过? 如果你能给出一些可以帮助我的参考书或书籍,我会很感激。 谢谢。 解决方法
根据我的业务规则,我通常有另一个层(根据应用程序的大小和复杂程度,可以是不同的项目/组件)。你可以打电话给这个商业服务,或者你的案件是什么。
所以MVC控制器和API控制器都使用这个层;这使得应用程序变得干燥。 我个人更喜欢只将复杂的操作保留在我的业务层,这意味着如果我需要从我的持久层读取一些东西来显示在我的视图中,我直接在MVC控制器上进行。这是一个个人偏好的问题,但我更愿意去CQRS的方式。 所以你MVC控制器将会实例化这些业务服务(如果你使用IoC,他们将被注入你的控制器)。对于读取操作,您可以选择直接访问持久层或使用其他读取策略。 您的API控制器也会发生这种情况,他们将使用这种“常见”层次的服务。 您不需要在MVC控制器上实例化API控制器。 没有一种方法可以构建您的应用程序,只有不同的方式,每个人都有或多或少的痛苦。 如果你正在考虑在你的应用程序中引入测试(你应该:));那么你应该以一种容易测试其每个部分的方式进行结构化。 只是我的2美分 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – Azure中的IP安全性和始终开启设置
- asp.net – HTTP保持活跃在一个大的Web应用程序
- asp.net – Autofac懒惰属性注入
- Asp.NET cookies返回null
- asp.net-mvc – DDay iCal – 添加一个与会者
- asp.net – 如何引用一个javascript文件?
- asp.net – 在project.json中排除文件夹
- asp.net – 在.NET应用程序上使用Phantom JS生成PDF
- asp.net – 在安全连接(HTTPS)中使用与SignalR的“longpoli
- .net – 为所有操作调用ActionFilterAttribute
- asp.net-mvc – 如何使用asp.net mvc razor在视图
- 添加依赖于.net核心csproj文件
- asp.net-mvc – 如何传递列表从控制器到MVC 3中查
- asp.net – Databound和Databind之间的区别
- asp.net-mvc – 在ASP.NET MVC项目中访问elmah.a
- asp.net-web-api – Web Api的动态连接字符串
- asp.net – .NET 4.0 ObjectCache的线程安全和范
- ASP.NET – 如何在User Control中使用Response.R
- asp.net-mvc – MVC – 如何在整个应用程序中实例
- asp.net-mvc – 许多关系的CRUD视图,复选框