2013-04-06 101 views
0

我打算实现ASPNET应用来学习MVC的东西,我在考虑使用以下架构:ASPNET MVC 4 WebApplication的使用在前端knockout.js和消耗ASPNET的WebAPI控制器方法在服务器端用于通过实体框架设置/获取SqlServer数据库数据。通过这种方式,我可以从(未来)移动应用程序调用ASPNET WebApi URL。 这个建筑是否有意义?架构ASPNET MVC Web应用程序

+1

Chris,只要你用平静的方式使用EF,看看OData:http://www.codeproject.com/Articles/86922/Exposing-OData-from-an-Entity-Framework-模型 – 2013-04-06 22:57:34

回答

3

被警告说,试图使用相同的Web API驱动的JavaScript客户端和移动客户端是一个非常具有挑战性的建议。为javascript客户端构建Web API时很常见,因为客户端和服务器之间有很多“带外”耦合。只要你看到一个提供application/json的API,客户必须事先知道那个JSON文档的内容是什么,你可以告诉它。

这种方法对于一个网站,你可以更新Web API和Web网站几乎同时正常工作。但是,要实现移动应用程序并不容易,它需要在将应用程序部署之前将更新提交给应用商店进行审批。

此问题的一个常见的症状是,开发人员被迫创建API的新版本,使现有移动客户端可以继续,而新的移动客户端是针对一个完全新的API推出了工作。定期对API进行版本控制并不是一个大问题,而您是API的唯一使用者。当第三方API消费者参与时,它开始变得讨厌。

就个人而言,除非你看到一个重大的战略优势,以建设一个SPA风格的应用程序,那么我不会刻意创造一个API来驱动你的网站。

我建议你有一个清醒的认识,为什么要与一个API来驱动你的网站,而不是仅仅按照目前的“时尚”。

1

Asp.Net MVC框架

ASP.Net MVC简史是基于Microsoft .NET Framework的顶部开发Web应用程序的新框架。该框架实现了MVC模式,该模式有助于提供代码分离,并为测试驱动开发(TDD)提供更好的支持。 Asp.Net MVC是一个轻量且高度可测试的开源框架,用于构建高度可扩展且设计良好的Web应用程序。这里是ASP.NET MVC Framework发布的版本历史列表及其特性。

Asp.Net MVC1

发布年03月13日,净3.5和与Visual Studio 2009年

奔跑2008 &的Visual Studio 2008 SP1 MVC
模式架构的WebForm引擎
的Html 帮手
阿贾克斯帮手
路由
单元测试

Asp.Net MVC2

发布在2010年3月10日

.Net的3.5,4次运行。0并与Visual Studio 2008 强类型 HTML辅助指基于HTML辅助lambda表达式
模板化助手
支持数据注释属性
客户端验证
UI自动脚手架& 定制的模板
基于属性的助手既 客户端和服务器
重写的HTTP方法动词包括 GET,PUT,POST和DELETE
领域用于分隔大 应用到模块上模型验证
异步控制器

Asp.Net MVC3

发布于1月13日,在.NET 4.0与Visual Studio 2010中
的Razor视图引擎
的数据注释改进支持
远程确认2011

奔跑
比较属性
无会话控制器
儿童行动输出缓存
依赖解析[R
实体框架代码优先支持
局部页面输出缓存
ViewBag动态属性从控制器传递数据,查看
全球行动过滤器
更好的JavaScript支持,不显眼的JavaScript,jQuery验证和JSON结合
使用的NuGet的整个平台,提供软件和管理依赖于剃刀
良好的IntelliSense支持到Visual Studio

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

发布10月17日2013

运行在.NET 4.5,4.5.1和与Visual Studio 2013
一个Asp.Net
Asp.Net身份
ASP.NET脚手架
认证过滤器 - 前运行在ASP.NET MVC管道
引导在MVC模板
的ASP.NET Web API2

信贷授权过滤器:先生Shailendra Chauhan