关于.NET技术前途问题的讨论

我去年曾经在论坛发起过关于.NET技术前途问题这个话题的讨论,也引起了很多同行和朋友的回复,时间过去大半年,自己也有了一些新的理解。本文的目的就是将其中一些精彩的观点整理出来并谈谈自己的观点。

引子

我们都知道微软.NET技术更新速度快,很多技术还没成为主流就已经退出历史舞台。

曾经的SilverLight给了我们多少惊喜,结果微软直接支持HTML5取代它。

xna也是风靡一时,可惜微软直接抛弃了它。

虽然微软提出了“移动优先,云计算优先”的战略口号,但是目前来看WP也没多大作为,甚至有不少Windows Phone方向的微软MVP都转向了Android开发。

那么目前来说,.NET技术主要的方面就是ASP.NET(webforms、mvc、web api等)和少量的Windows桌面应用开发(主要是Winform还有少量的WPF)。虽然vs2015集成了android和ios开发,但是是收费的,而且开发者似乎也没有多大热情。

作为使用微软.NET技术的您,对.NET技术的前途这个话题有什么看法呢?欢迎讨论。

观点

  • sp1234

从windows10开始具有的UWP很可能制定将来的前端应用程序的一种工业标准,应该从现在就考虑如何用它来对自己公司的产品进行宣传。唯一的问题就在于“它的性能如何?”,现在还不好说。

微软需要自己能够在手机上跑起来几个强劲的传统桌面软件,例如把Photoshop在手机上跑起来,把Word和Excel跑起来(而且不是像office365那种web阉割版,而是完整的有深度的功能),把各大银行的桌面支付软件(而不是web版的)跑起来,能够用桌面windows的远程桌面程序去操作手机桌面(包括用鼠标直接把文件从桌面windows拖入手机的文件夹内或者放到应用界面上),在手机上直接跑windows桌面版的QQ而不需要另外再开发手机版本……

这些都能轻松实现,不再开出“空头支票”,那么“三屏一云”将能让微软雄霸下一个10年。而微软的“三屏一云”中的“云”还没有落地,还停留在推销它自家的服务商,还没有让开发人员发现可以自由架构的东西。微软还应该在.net framework中内置一套服务器集群分布式任务管理框架,哪怕性能不是最高的,哪怕比较简单,但要是最可靠的,例如实现基本的 Gearman式的功能,能够分布式地调用方分布在1000+台服务器上的 windows 服务程序。

我认为许多人都是在2006~2013年之间接触 .net 的,因此可能不很知道微软平台技术的潜力在哪里。

实际上假设我想为一个“部级”国营企业集团的几十位中层领导单独开发一个办公系统(不是那种随便弄的小OA),那么我可能就要纠结silverlight、wpf、web前端技术等等,既要考虑到对美工的(应该使用专门开发“酷炫的2d动画绘图组件”的平台),又要考虑到对程序员的要求(希望门槛不高的javascript程序员就可以开发大系统),而且希望所有的应用的服务端都有符合当今世界潮流的大数据、复杂事件处理集群技术为基础。

如果有UWP,这个选择就轻松多了,我可以把精力用在内容技术而非肤浅的技术层面上。而且不愁领导们不喜欢更换windows

phone手机或者平板电脑,因为Android上的所有应用也可以同时在上面使用。这就是 .net程序员在2015年底、2016年初可能可以学习技术架构了。

  • github_22161131

现在 .net 就是守着传统的桌面和web开发领域,向跨平台和云端发展。

然而这对于国内的 .net 开发人员未必是好事。为了实现跨平台和云端发展,当然也因为 .net

的核心采用开源形式开发,迭代会加速,问题会增加,文档会进一步跟不上,官方的中文资源会更少。也就是说,.net

前沿的发展会进一步拉开与国内开发者的距离。如果把CSDN论坛的帖子作为平均水平,那可以说差距已经很大了,继续拉大的话会让更多人无所适从。

如果silverlight和xna也算技术的快速更新,那么未来的.net会更快,不过开源模式下如果微软不管了社区也可以继续发展,像F#现在就是已经完全社区化发展的。可以说大环境就是技术更新会更快,能适应这样环境的开发者会有更大的优势。

客户端技术里面,WinForms和WPF应该没什么变化,基于WinRT的技术依赖Win10应该能够扩大些市场,不过看不到能够爆炸性发展的可能。Xamarin/Mono技术依赖的是iOS和Android市场,短期内应该比较稳定。

而在服务端,因为跨平台,应用的领域可以大大增加。

在云端,因为跨平台,也可以增加.net的使用可能。同时可能会出现更多支持.net的paas云平台。

IoT端,因为Win10和跨平台,也可以增加一些.net的市场。

在我看来,.net未来的发展与Win10的关系并不大,Win10能够多带来一些基于WinRT技术的市场,然而这个市场微软想扩大并不容易,可能大部分只能集中在企业领域。影响最大的是官方推动的开源和跨平台,这会让整个.net生态系统慢慢摆脱对微软和windows的依赖。与Mono相比,微软做的更为彻底,重新设计了.net,将其完全模块化,支持多clr,这是 .net 的一次质变。

  • bigbaldy

直接用linux呀,而且C#是除了C++以外调用NativeMethod最方便的语言,C#没有现成解决方案或不好实现的直接调用C++的,在加上目前mono4.0的大幅改进,用linux已经没有任何问题,其实.net真的已经非常全面,桌面、移动、web、游戏等等什么都能干,而且某些还非常精,只可惜现在xamarin不免费,u3d都有免费版,现在缺的就是开发者,抓住开发者才能抓住市场,真不知道决策层是怎么想的。

著名的漏洞挖掘工具peachfuzzer为何在3.0版时用C#全面重写,而且是全平台的,那会还是mono3.0时代,这已经说明C#在linux下的表现,官方还说,换了C#后性能大幅提升。 目前全球最大的游戏平台steam上发布的游戏,u3d的游戏已经非常多,而且有很多还是大型3D游戏,原来这可是C++独占的。

吾爱破解论坛,.net的帖子也非常多,各种学习教程,破解逆向教程,实用小工具等。

游戏论坛中以3dm举例,很多游戏修改器也都是.net的,毕竟C#开发效率高而且是与nativeapi交互最方便的高级语言

再看社区活跃度,现在不论是全球的stackoverflow还是国内的csdn上,发帖量能在C#前面的只有Java

种种迹象表明.net要火,而且说句实在话,纯语法角度,还真难找出像C#这么优雅的(除了python),从基础类库来看,C#是最好用的,没有之一。

  • ajianchina

说那么多没卵用,最重要的问题在于微软的盈利模式的改变,如果这个不改,还是束手束脚,哪天android爬上了桌面也说不准,那么庞大的移动用户基础,再加上免费,呵呵,微软现在不改盈利模式,还想着吃老本,我看到时候够他受的,他的盈利模式改了,才能降低操作系统的授权费用,甚至免费,那样才会有更多企业愿意加入到windows平台,开发人员总是跟着企业需求走的,所以不要谈什么.net技术的前途,没有意义,一切需要从商业角度出发,你才能够看到什么才是有钱途的!

  • sp1234

微软的 windows 10 以及 UWP 功能,已经让 Android 和 iOS 的程序可以在桌面 windows

上运行了。windows 10 上可以同时运行各种平台的应用窗口!windows 10

开启了真正的开放战略(是产品战略,而不是什么“开源”之类的),允许别人家的软件跟自己的操作系统上跑,而且设备驱动的共通就一定会让不同系统的进程更方便地通讯。

微软专门设计windows系统来把 android上自己的桌面的!

  • xuanbg

.net对比java,有三大优势,其中排第一的就是效率呀。其他两项是IDE和相对统一和完整的框架,其实java最大的坑就是那些乱七八糟的框架,不用不甘心,用了全是坑。。。

  • bigbaldy

基础类库最人性化的就是.net,能够在没有任何文档的支持下让一个初学者凭着摸索写出一个像模像样的程序,其他任何语言也许照着API文档都得琢磨会,何况现在又全面开源,跨平台也得到官方大力支持,.net是除了驱动以外任何功能都能实现的,请问可以轻松开发单片机(microframework)、web(webform,MVC)、桌面(winform,WPF)、移动(Xamarin)、游戏(U3D)等各个领域的语言还有谁?shellcode可以写,键鼠钩子可以装,内存指针轻松操作,富客户端应用各种动画超炫效果信手拈来,各种官方非官方MVC框架数不胜数,android,IOS APP也可以借助xamarin大显身手,真不知道为何会有人不看好.net。

  • gentle_wolf

玻璃上的苍蝇。前途光明,没有出路。 .net确实是很好的平台,就是在中国不受待见。

百度,阿里,京东,去哪儿,58,赶集,土豆,优酷,搜狐,网易,新浪都不用.net 只有腾讯还用一点点.net,结果还放弃uwp的开发了。

携程,汽车之家,搜房网用的是.net,比例太小了。

  • unearth

只要Windows不倒。.NET就不会倒。除非有比Windows更好的一套生态系统。估计也就是人工智能了。

  • liveths

我看技术是没有对错的。区别是有没有用对而已。Net也好Java也好。在对的地方用对就行,没有过时不过时之分。

我自己的个人看法是,我熟悉Net,那就用Net。然后既然android有需要去学Java就是。

目前个人看法是Net加android是最好的。全java那个低下的开发效率。。。。。。坑啊。

总结

  1. C#比Java简洁、优雅。对比一下同样5年开发经验的Java工程师和C#工程师写的代码就知道了。
  2. .NET是跨语言(C++、C#、VB、F#等)的平台。VS2015开始内置了Python、R等大数据用到的语言和工具,并集成了Android、iOS移动应用开发。
  3. .NET是跨平台的。通过Mono可以将WinForm、ASP.NET等发布到Linux环境中运行,这块已经很成熟了。
  4. 游戏开发中的Unity3D就使用了C#进行开发。
  5. 至于说开源,微软已经开放了很多项目的源码甚至内核,有些项目甚至完全由社区来推动。
时间: 2024-10-04 06:50:59

关于.NET技术前途问题的讨论的相关文章

优质项目坚实支撑 BIM技术前途一片光明

“BIM不仅是一项技术,更是一种模式,一定会带来工程建设行业的全面变革,这是毫无疑问的.但是这个过程面临的障碍和困难也不少,道路是曲折的,前途是光明的.”北京建筑设计研究院信息部部长卜一秋如此总结道.“北京院对BIM技术的应用已经具有一定深度,尤其是在解决我们所面临的特殊问题方面.我想,通过遇到的大量不同项目和问题,解决问题的经验积累日益增多,会逐步形成一整套带有我们院特点的BIM设计方法,也由此形成我们院的新的技术实力.” 的确,对北京院来说,探索不同类型项目的不同BIM应用,找到BIM技术对

阿里的开源思想:与世界讨论中国的互联网技术与场景

自从2015年11月阿里巴巴集团宣布正式加入Apache基金会以来,阿里技术已经向Apache捐赠了三个开源项目,分别是JStorm.RocketMQ和Weex.其中Weex于2016年12月15日正式捐赠给Apache基金会.而RocektMQ有望成为首个来自中国的Apache互联网中间件顶级子项目,Weex则有望成为来自中国的移动开发顶级子项目. 截止到2016年9月,阿里已经开源115个项目,加入了FSF基金会.Apache基金会.Linux 基金会和Xen顾问团队.阿里云还是MySQL开

反爬虫和抗DDOS攻击技术实践

导语 企鹅媒体平台媒体名片页反爬虫技术实践,分布式网页爬虫技术.利用人工智能进行人机识别.图像识别码.频率访问控制.利用无头浏览器PhantomJS.Selenium 进行网页抓取等相关技术不在本文讨论范围内. Cookie是什么 大家都知道http请求是无状态的,为了让http请求从"无状态" to "有状态" , W3C 在 rfc6265 中描述了整个http协议的状态机制,既从客户端(通常是浏览器)到服务器端的流转过程,cookie 的引入使得 服务器在 接

802.1Q VLAN技术原理

文章出处:http://hi.baidu.com/x278384/item/d56b0edfd4f56a4eddf9be79 在数据通信和宽带接入设备里,只要涉及到二层技术的,就会遇到VLAN.而且,通常情况下,VLAN在这些设备中是基本功能.所以不管是刚迈进这个行业的 新生,还是已经在这个行业打拼了很多年的前辈,都要熟悉这个技术.在论坛上经常看到讨论各种各样的关于VLAN的问题,在工作中也经常被问起关于VLAN 的这样或那样的问题,所以,有了想写一点东西的冲动.     大部分童鞋接触交换这门

【原创】PHP程序员的技术成长规划

PHP程序员的技术成长规划 作者:黑夜路人(2014/10/15) 按照了解的很多PHP/LNMP程序员的发展轨迹,结合个人经验体会,抽象出很多程序员对未来的迷漫,特别对技术学习的盲目和慌乱,简单梳理了这个每个阶段PHP程序员的技术要求,来帮助很多PHP程序做对照设定学习成长目标. 本文按照目前主流技术做了一个基本的梳理,整个是假设PHP程序员不是基础非常扎实的情况进行的设定,并且所有设定都非常具体明确清晰,可能会让人觉得不适,请理解仅代表一家之言.(未来技术变化不在讨论范围) 第一阶段:基础阶

PHP 程序员的技术成长规划

按照了解的很多PHP/LNMP程序员的发展轨迹,结合个人经验体会,抽象出很多程序员对未来的迷漫,特别对技术学习的盲目和慌乱,简单梳理了这个每个阶段PHP程序员的技术要求,来帮助很多PHP程序做对照设定学习成长目标. 本文按照目前主流技术做了一个基本的梳理,整个是假设PHP程序员不是基础非常扎实的情况进行的设定,并且所有设定都非常具体明确清晰,可能会让人觉得不适,请理解仅代表一家之言.(未来技术变化不在讨论范围) 第一阶段:基础阶段(基础PHP程序员) 重点:把LNMP搞熟练(核心是安装配置基本操

PHP程序员的技术成长规划

PHP程序员的技术成长规划 作者:黑夜路人(2014/10/15) 按照了解的很多PHP/LNMP程序员的发展轨迹,结合个人经验体会,抽象出很多程序员对未来的迷漫,特别对技术学习的盲目和慌乱,简单梳理了这个每个阶段PHP程序员的技术要求,来帮助很多PHP程序做对照设定学习成长目标. 本文按照目前主流技术做了一个基本的梳理,整个是假设PHP程序员不是基础非常扎实的情况进行的设定,并且所有设定都非常具体明确清晰,可能会让人觉得不适,请理解仅代表一家之言.(未来技术变化不在讨论范围) 第一阶段:基础阶

Cookie Stuffing技术来做网站联盟 黑帽做网赚的方法一栏

这篇文章是以前研究 Cookie Stuffing 的时间收藏的其中一篇文章,在电脑里沉睡了很长时间,记得是一个叫伟超的哥们写的,贴出来给大家参考一下,很基础的技术扫盲贴. Cookie Stuffing技术就是无需直接访问你的affiliate页面便把特定的 Cookie植入访问者的电脑里,你的访问者不管以任何方式,只要 COOKIE存在,访问到商家网站,发生ACTION行为,你都可以获得收益. 上面的定义,翻译自维基百科,有点拗口,但应该能说明意思了.无论国内外的广告联盟,都是以 cooki

NoSQL数据建模技术

原文来自“NoSQL Data Modeling Techniques”,由酷壳网陈皓编译<NoSQL数据建模技术>.这篇文章看完之后,你可能会对NoSQL的数据结构会有些感觉.我的感觉是,关系型数据库想把一致性,完整性,索引,CRUD都干好,NoSQL只干某一种事,但是牺牲了很多别的东西.总体来说,我觉得NoSQL更适合做Cache. 下面是正文: NoSQL数据库经常被用作很多非功能性的地方,如,扩展性,性能和一致性的地方.这些NoSQL的特性在理论和实践中都正在被大众广泛地研究着,研究的