微软有哪些很好的框架和设计理念?

来源:互联网 发布:unity3d 联网 编辑:程序博客网 时间:2024/04/29 22:53
作者:敲代码的吃货
链接:https://www.zhihu.com/question/40252993/answer/87712581
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

一、.Net Mvc

作为MVC模式的具体框架实现,.Net MVC是相当优秀的,相比之下,Java领域的struts2、Spring.MVC都挺难用。.Net MVC中的ModelMetadata、Routing、ViewEngine、Razor、DataAnnotation(并非.Net MVC特有的)、WebPages等,都相当不错,它们共同成就了.Net MVC的优秀。其中ModelMetadata、Routing、WebPages现已拓展到其它框架或已发展独立。

二、.Net WebApi

其跟随.Net Mvc 4发布,当下最新版本是2.0。相较WCF与WebService,.Net WebApi顺应时代潮流,取两者之精华,弃其糟粕,更具Mvc之特点。

三、EntityFramework

将其作为LinqToSql(这货其实也挺牛)的升级替代品,其实有点不太合适。LinqToSql是针对微软自家数据库产品的一个轻量级ORM(严格意义上不能算是),虽然方便好用,但不够大气。市面上别的ORM产品也不入微软法眼。于是微软祭出了自己的黑科技:EntityFramework。先是DbFirst、ModelFirst,从4.1版本起又加入了CodeFirst。EF目前支持的数据库除了微软自家的Sql、SqlCe外(据说ACCESS也支持,没用过),还支持Oracle、MySql、SqlLite等。【删除鄙人错误之处,感谢[匿名用户]指正】

四、Linq

Linq大法好。有人一直搞不清楚Linq与LinqToSql的关系,说出了EF后,Linq被抛弃了。实际上,被抛弃的是最初的LinqToSql。Linq家族有LinqToSql、LinqToEntity、LinqToXml、LinqToObject等。还有,“from……where……select”的写法,并不是Linq的全部,这些只是语法糖而已。Linq更多的是扩展方法。所有from……where……select能完成的事情,扩展方法都能完成;但所有扩展方法能完成的,from……where……select却不一定。Java8开始,貌似有了Jinq:[jinq.com]。

以上框架熟练了,简单.Net服务端开发基本上可以搞定了。

五、.Net WebPages

跟随.Net Mvc一起发展起来并独立成为框架的之一,这个玩意儿给我的感觉,就是asp、jsp、php这样的,但比他们都优秀,因为Razor,让页面上的代码更好看。

六、Microsoft.jQuery.Unobtrusive.Validation

也是跟随.Net Mvc一起发展起来的,但并不算是框架吧。但这玩意儿相当好用,不用自己写很多js表单验证。

七、SignalR

做服务器端推送的,这货很牛逼,吞吐量大。用的不多,也没有详细研究过,不多说。这货牛逼。

八、OData v4

跟.Net WebApi一起用过,可能是没多研究的原因,使用中造成的BUG挺多。是Open Data Protocol的.Net实现。说不清是协议本身牛逼,还是框架牛逼。

九、OWIN

原创粉丝点击