自从三年前来到现在的公司以后,基本上不怎么使用.NET进行开发了。但最近因为公司有个CRM的项目,所以只有重新检起.NET进行开发。
因为近3年没有搞.NET的开发了,因此也不敢乱整个框架,在看了一周后,最后选择最新的EF 6.0 + MVC 4作为整体框架。因为自己在PHP上也基本使用MVC作为前端的框架,因此在使用MVC上暂时还没有什么大的问题。
但是在接触EF 后才感觉自己太落伍了,感觉在三年前知道有扩展方法、linq,但经过三年的发展这些特性对.NET及C#的改变不能说叫大,而应该叫巨变,特别是在使用了其它的语言后再回头看C#最近几年的发展,感觉C#的已经不在是一门语言,而是又想解决语言问题,又想解决开发框架问题的复杂结构体。
这其中我觉得最不应该出现在就是linQ,linq最先出来是大家就说是.NET 官方的ORM工具,为了满足select * xxx的语法,硬是将语法都进行了改变,让我这种老实学会了SQL和C#语法的人,又只有学习一种新讲法,有点像C#也有点像SQL。同时为了产生也这种既像C#又像SQL的语法,对.NET架构又进行了n多的调整,新加入了N多的接口,并且大部分还是范型的接口,这些接口很多都是使用扩展方法的形式加入,这里加一个扩展,那里加一个扩展,后面一个简单的集合,硬是搞也了多几倍的接口也来,并且还分常规版本和泛型版本。
我真不知道该调常规版本还是泛型版本,这样做就是为了能够使用所谓的linq,一种分裂的语法。
我觉得语言应该解决的是语言的问题,而不是架构的问题,比如PHP作为一种脚本语言,没有感觉它有多么强大的功能,但学习它我只需要学习语法,因此上手很快;在学习oc和swift时,同样我也只需要学习语法,当我把语法学习好了我再去学习ios,因此虽然OC语法特别难看,但我也没有感觉特别困难,但作为使用C# 六年的人,现在使用C#或者EF都让我觉得到如此复杂,不知道是岁数大了,还是没有学习好的原因,也不知道其它人是不是跟我同样的感受。