微软有哪些很好的框架和设计理念?
来源:互联网 发布: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:[http://www.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
- 微软有哪些很好的框架和设计理念?
- JFinal的设计思想和理念是什么?有哪些创新点?
- 你知道的企业文化理念有哪些?
- 13 Spring框架的设计理念和设计模式分析
- TINY框架的设计理念
- 微软雅黑字体的设计理念
- Php的框架有哪些
- 前端框架设计理念
- 日常工作中有哪些很好的节约时间的技巧?
- 日常工作中有哪些很好的节约时间的技巧?
- 平面设计和UI设计的区别有哪些?
- java常用的设计模式和开发模式有哪些
- 基于注解和反射的Java ORM框架(2)-设计理念
- Spring 框架的设计理念与设计模式分析
- Spring 框架的设计理念与设计模式分析
- Spring 框架的设计理念与设计模式分析
- Spring 框架的设计理念与设计模式分析
- Spring 框架的设计理念与设计模式分析
- 【C语言】实现一个简单SHELL应用
- C# 把数据字典表的数据自动生成为 js 键值对形式
- python lxml 安装
- QT编译出现错误 “undefined reference to ‘vtable for xxx’”
- BZOJ 1053 反素数【DFS剪枝】
- 微软有哪些很好的框架和设计理念?
- 机器翻译重要过程(1)---数据预处理
- PL\SQL Developer的安装
- 挑战程序竞赛系列(23):3.2折半枚举
- 简单封装strstr()
- R连接MongoDb
- TypeScript 高级类型整理
- ArcMap2SLD (ArcGIS导出SLD文件 )
- 全面理解Android的Context