我计划实现一个ASPNET应用程序来学习MVC的东西,我正在考虑使用以下架构:ASPNET MVC 4 WebApplication在前端使用knockout.js并在服务器端使用ASPNET WebApi Controller方法通过Entity Framework设置/获取SqlServer数据库数据。通过这种方式,我也可以从(未来)移动应用程序调用ASPNET WebApi URL。 这种架构有意义吗?
答案 0 :(得分:3)
请注意,尝试使用相同的Web API来驱动javascript客户端和移动客户端是一个非常具有挑战性的提案。在为javascript客户端构建Web API时,通常在客户端和服务器之间存在大量“带外”耦合。每当看到api提供application/json
并且客户端必须事先知道该json文档的内容是什么时,您就可以告诉它。
这种方法适用于几乎可以同时更新Web API和Web站点的Web站点。但是,对于需要将更新提交到应用商店进行审批才能部署的移动应用程序并不容易。
此问题的一个常见症状是,开发人员被迫创建新版本的API,以便现有的移动客户端可以继续工作,同时针对全新的API推出新的移动客户端。当您是API的唯一消费者时,定期对API进行版本控制不是一个大问题。当第三方API消费者参与其中时,它开始变得讨厌。
就个人而言,除非您看到构建SPA风格应用程序的主要战略优势,否则我不会费心创建API来驱动您的网站。
我建议您清楚地了解为什么要使用API来推动您的网站,而不是仅仅遵循当前的“时尚”。
答案 1 :(得分:1)
Asp.Net MVC框架的简史
ASP.Net MVC是一个新的框架,建立在Microsoft .Net Framework的顶层,用于开发Web应用程序。该框架实现了MVC模式,有助于提供代码分离,并为测试驱动开发(TDD)提供更好的支持。 Asp.Net MVC是一个轻量级且高度可测试的开源框架,用于构建高度可扩展且设计良好的Web应用程序。以下是ASP.NET MVC Framework的已发布版本历史列表及其功能。
Asp.Net MVC1
发布于2009年3月13日
运行.Net 3.5和Visual Studio 2008& Visual Studio 2008
SP1
带WebForm引擎的MVC模式架构
Html
助手
阿贾克斯助手
路由单元测试
Asp.Net MVC2
发布于2010年3月10日
运行.Net 3.5,4.0和Visual Studio 2008& 2010年字体强劲
HTML助手表示基于lambda表达式的Html Helpers
模板化助手
支持数据注释属性
客户端验证
具有自动脚手架和辅助功能的UI助手。
可自定义的模板
基于属性的模型验证
客户端和服务器
覆盖HTTP方法动词,包括
GET,PUT,POST和DELETE
用于分区大的区域
在模块中的应用
异步控制器
Asp.Net MVC3
发布日期:2011年1月13日
在.Net 4.0和Visual Studio 2010上运行
剃刀视图引擎
改进了对数据注释的支持
远程验证
比较属性
无会话控制器
儿童行动输出缓存
依赖性解析器
实体框架代码第一支持
部分页面输出缓存
ViewBag动态属性,用于将数据从控制器传递到视图
全局动作过滤器
通过不引人注目的JavaScript,jQuery验证和JSON绑定提供更好的JavaScript支持
使用NuGet在整个平台上提供软件和管理依赖关系
Razor成为Visual Studio的良好Intellisense支持
Asp.Net MVC4
发布于2012年8月15日
运行.Net 4.0,4.5和Visual Studio 2010SP1& Visual Studio 2012
ASP.NET Web API
默认项目模板的增强功能
使用jQuery Mobile的移动项目模板
显示模式
异步控制器的任务支持
捆绑和缩小
支持Windows Azure SDK
Asp.Net MVC5
2013年10月17日发布
运行.Net 4.5,4.5.1和Visual Studio 2013
一个Asp.Net
Asp.Net Identity
ASP.NET脚手架
身份验证过滤器 - 在ASP.NET MVC管道中的授权过滤器之前运行
MVC模板中的Bootstrap
ASP.NET Web API2
信得过:Shailendra Chauhan先生