C# 越来越复杂了
自从三年前来到现在的公司以后,基本上不怎么使用.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都让我觉得到如此复杂,不知道是岁数大了,还是没有学习好的原因,也不知道其它人是不是跟我同样的感受。
C# 越来越复杂了的更多相关文章
- host字段变复杂了
声明: 本博客欢迎转载,但请保留原作者信息! 作者:李人可 团队:华为杭州OpenStack团队 讨论的是openstack中卷的host属性. 印象中.社区H版本号对于volume的host值表示的 ...
- k2 4.6.9安装记录-够复杂了
首先需要准备一台Windows server 2008R2 系统.可以从微软官方下载. 下载地址: http://www.microsoft.com/zh-cn/download/confirmati ...
- 51nod 1640 天气晴朗的魔法 二分 + 克鲁斯卡算法(kruskal算法) 做复杂了
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1640 一开始想的时候,看到要使得最大值最小,那这样肯定是二分这个最大值了 ...
- Talented Chef(简单题,被我想的太复杂了,用复杂的方法当然会超时咯,由此可见,并非所有题都是想的越多越好)
Description As we all know, Coach Gao is a talented chef, because he is able to cook M dishes in the ...
- 拓扑优化中SIMP方法与水平集方法有何优缺点,水平集法变换到高维,不是更复杂了
作者:周平章链接:https://www.zhihu.com/question/52008623/answer/187927508来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...
- 漫谈TCP
不得不承认,tcp是一个非常复杂的协议.它包含了RFC793及之后的一些协议.能把tcp的所有方面面面具到地说清楚,本身就是个很复杂的事情.如果再讲得枯燥,那么就会更让人昏昏欲睡了.本文希望能尽量用稍 ...
- Enterprise Integration Pattern - 组成简介
近些年来,越来越多的Web应用正在逐渐向大型化的方向发展.它们通常都会包含一系列相互协作的子服务.在开发过程中,如何让这些子服务协同工作常常是软件开发人员所最为头疼的问题,如各个子服务之间的数据表示不 ...
- 子坐标系C在父坐标系W中的旋转问题
关键词:空间旋转.旋转轴.刚体旋转 用途:相机位姿估计.无人机位姿估计 文章类型:概念.公式总结(本文不带推倒过程,若想了解公式是如何推出来的请自习搜索文献),C++函数展示 @Author:VSha ...
- Contiki学习笔记 第一个程序:Hello World
想来想去,还是得先写一个程序,找下感觉,增强一下自信心,那就国际惯例Hello World吧.先到这个网址下一个Instant Contiki 2.7.之所以没用3.0的,是因为有些问题,我源码是下的 ...
随机推荐
- 番外篇 之 C#委托
对于上一节 番外篇之C#多线程的反思 反思一: Thread th = new Thread(参数); ////参数的总结 ////首先,第一情况,对于 Thread th = new Threa ...
- 【转载】分析商品日均销量(DMS)对促销商品选择的意义
江苏省常州市信特超市有限公司副总经理高晓颖 随着中国零售业的进一步的开放,竞争日趋激烈,促销活动在日常经营中已经成为不可缺少的一部分,频繁的促销活动的开展,零售业经营管理者越来越觉得促销商品的选择难度 ...
- ASP.NET缓存 Cache之数据缓存
添加 Cache[Key]=object or Cache.Insert 移除 Cache.Remove(key) 1.将值直接写入Cache 代码如下 复制代码 HttpContext.Curre ...
- [转]GCC参数详解
[介绍] gcc and g++分别是gnu的c & c++编译器 gcc/g++在执行编译工作的时候,总共需要4步 1.预处理,生成.i的文件[预处理器cpp] 2.将预处理后的文件不转换成 ...
- python基础day2作业:购物车
#功能:1.可注册账号2.登录买家账号3.可查询编辑购物车里商品4.可以余额充值5.可提示余额不足6.购物车结算 #使用:1.第一次使用先注册账号填写账号金额2.账号金额信息保存在buyer_acco ...
- (转)Couchbase介绍,更好的Cache系统
在移动互联网时代,我们面对的是更多的客户端,更低的请求延迟,这当然需要对数据做大量的 Cache 以提高读写速度. 术语 节点:指集群里的一台服务器. 现有 Cache 系统的特点 目前业界使用得最多 ...
- JavaScript知识思维导图
知识点:(图片为网络转载,谢谢分享.) JavaScript 变量 JavaScript 数据类型 JavaScript 字符串函数 Javascript 运算符 JavaScript 流程控制 Ja ...
- 分享10 个超酷的 HTML5/CSS3 应用及源码
1.HTML5视频破碎重组特效,强大视觉冲击 HTML5视频播放器很多,但是HTML5视频特效还是很少见的,这款HTML5视频破碎重组特效非常刺激,给人强大的视觉冲击.点击视频任意地方,HTML5将会 ...
- C++ Maps 映射
C++ Maps是一种关联式容器,包含“关键字/值”对 begin() 返回指向map头部的迭代器 clear() 删除所有元素 count() 返回指定元素出现的次数 empty() 如果map为空 ...
- CentOS 7 用户账户配置
说明: 1.这篇博文记录的是CentOS 7 用户账户的配置,包括添加用户.添加用户组.删除用户.删除用户组等.其中包括分析用户的配置文件.目录以及对安全的思考. 2.用户配置方面CentOS 7与以 ...