.NET之后,再无大创新

回想起来,2001年发布的.NET已经是距离最近的一次软件开发技术的整体创新了,后续的新技术就没有在各个端都这么成功的了。.NET是Windows平台下软件开发技术的巨大变革。在此之前,有VB、C++(MFC)、JSP,在此之后,都整合到.NET。甚至.NET还不能完全算整体创新,因为.NET是全面模仿Java体系的。所以,软件开发技术的整体创新,真的是太久没有了。

.NET基础是CLI标准,定义了中间语言和虚拟机的规范,在此之上,.NET提供了编程语言(C#、VB.NET、C++等)、基础库和框架(FCL)和运行时(CLR)。FCL包含WinForms、ASP.NET、ADO.NET、Enterprise Service等,分别支持C/S架构、B/S架构和Web service、数据访问、事务处理等企业级特性。

标准:微软在2000年.NET推出之前就向ECMA提交了CLI标准,包括类型系统(Common Type System,CTS)、程序元数据、语言规范(Common Language Specification (CLS),为CTS的子集)、虚拟机(Virtual Execution System,VES)和标准库。VES定义了一门中间语言MSIL。2003年微软又提交了ISO标准。

语言:.NET定义了中间语言MSIL标准,支持单继承、方法重写、垃圾收集、异常处理、多线程、attribute(类似Java annotation)等现代化语言特性。通过标准的中间语言,不同语言的程序可以实现高度的互操作,如子类和父类可以用不同语言。支持CIL的语言最主要的是微软为.NET全新设计的C#,然后是为了原有开发者群体的VB.NET和C++扩展。微软也设计了JScript,即基于CLR的JavaScript,但很不成功。几年后微软又推出了函数式语言F#。

.NET最初的愿景中很重视Web service,为此制定了WSDL、UDDI、SOAP等一系列标准协议,ASP.NET也在原ASP的基础上增加了对开发Web service的支持。

.NET的发展大致可以从C#的使用率看。根据TOBIE统计,.NET发布后C#语言的使用率在2012年之前一路增长,在2012年初达到近9%的使用率,排名第3。同期Java的使用率一路下滑。当前全球约有600万.NET开发者。

d4ef738d5010fd2e74ec48ddddb77d55.png

在.NET发布的2002年,Java的使用率高达25%,C/S架构技术Swing 1997年发布,B/S及企业级架构技术Servlet、J2EE、JSP于1999年之前也已经发布,现在最流行的Spring也即将在2003年发布。.NET能够在Java体系中突围获得不错的市场份额,整体而言算是比较成功的。

成功的原因:

  • 微软有非常好操作系统和开发者的基础。在2002年左右,Windows在桌面市场绝对领先,在服务器市场也处于优势地位,在VB、C++、ASP和Visual Studio上也处于优势地位,有很好的开发者基础。对于在Windows平台做应用的开发者来说,.NET是官方主推的技术,不得不学,类似于苹果可以强推Swift。

  • 产品技术能力全面、强大。.NET一发布提供的库和框架就非常完整,在支持Web service上比Java更好,企业级功能比EJB的设计更好。在Windows平台上的性能远超Java。支持attribute比Java annotation早。

  • 在早期就制定了ECMA和ISO国际标准。不过因为Java没有制定标准而是采用JCP社区组织来形成事实标准,所以标准也不是必须的。

但.NET整体还是相对Java处于守势,未能获得更大成功的原因:

  • 绑定Windows(虽然也有开源社区做的Mono,但一直不成熟),受到Windows在Server端失势影响。

  • 虽然制定了标准,但没有引入有影响力的别的厂商来做企业级和应用服务器生态,缺乏Java系的WebShpere、WebLogic和JBoss,特别是巨头IBM的WebShpere。

  • 没有做好开源,没有像Java那样培育出Spring、Struts、Hibernate、MyBatics、MySQL、Tomcat等开源生态。

今天要做软件开发技术的创新,要先研究清楚Java和.NET的成功失败经验。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/123691.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数学建模-大模型的对比

引用老哥数学建模视频 【ChatGPT 4.0】在数学建模中的应用!算法Matlab写作,全面测评六款大模型软件,直接使用! 哪些问题可以问GPT 一、算法应用 1帮我总结一下数学建模有哪些预测类算法? 2灰色预测模型级比检验是什么…

递归算法学习——N皇后问题,单词搜索

目录 ​编辑 一,N皇后问题 1.题意 2.解释 3.题目接口 4.解题思路及代码 二,单词搜索 1.题意 2.解释 3.题目接口 4.思路及代码 一,N皇后问题 1.题意 按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上…

TCP/IP基础

前言: TCP/IP协议是计算机网络领域中最基本的协议之一,它被广泛应用于互联网和局域网中,实现了不同类型、不同厂家、运行不同操作系统的计算机之间的相互通信。本文将介绍TCP/IP协议栈的层次结构、各层功能以及数据封装过程,帮助您…

【计算机网络】https协议

目录 概念的准备 什么是加密 为什么需要加密 常见的加密方式 对称加密 非对称加密 数据摘要(数字指纹) 数字签名 https的工作过程 方案一:只使用对称加密 方案二:只使用非对称加密 方案三:双方都采用非对称加密 方案四&#xff…

Vue3实现可视化拖拽标签小程序

介绍 实现功能&#xff1a;可视化标签拖拽&#xff0c;双击标签可修改标签内容 HTML结构 <div class"box" v-move><div class"header">标签1</div><div dblclick"startEditing" v-if"!isEditing">{{content…

开始投简历了

歇了好长时间&#xff0c;也该开始找点事情折腾了。 第一周基本上是没有什么太多的消息&#xff0c;大部分情况就是收到回复的邮件说你很优秀&#xff0c;希望下次合作这种礼节性的拒绝邮件。 给人有点感觉都是在忽悠&#xff0c;有点感觉现在的公司一边到处拒绝&#xff0c;…

实现Map批量赋值,我只需24秒搞定!

函数的功能是将一组键值对批量赋值给Map中的键。在Java中&#xff0c;通常使用Map的put方法逐个将键值对赋值给Map&#xff0c;但在某些场景下&#xff0c;可能需要一次性将多个键值对赋值给Map。 函数功能&#xff1a;Map批量赋值 参数1&#xff1a;参数名称&#xff1a;targ…

K8S自动化运维容器Docker集群

K8S&#xff1a;K8S自动化运维容器化(Docker)集群 一.k8s概述 1.k8s是什么 &#xff08;1&#xff09;K8S全程为Kubernetes&#xff0c;由于K到S直接有8个字母简称为K8S。 &#xff08;2&#xff09;版本&#xff1a;目前一般是1.18~1.2.0&#xff0c;后续可能会到1.24-1.2…

机器学习与数据分析

【数据清洗】 异常检测 孤立森林&#xff08;Isolation Forest&#xff09;从原理到实践 效果评估&#xff1a;F-score 【1】 保护隐私的时间序列异常检测架构 概率后缀树 PST – &#xff08;异常检测&#xff09; 【1】 UEBA架构设计之路5&#xff1a; 概率后缀树模型 【…

Spring 怎么解决循环依赖的呢?

Spring 怎么解决循环依赖 什么是循环依赖那 Spring 怎么解决循环依赖的呢&#xff1f;为什么要三级缓存&#xff1f;⼆级不⾏吗&#xff1f; 什么是循环依赖 Spring 循环依赖&#xff1a;简单说就是自己依赖自己&#xff0c;或者和别的 Bean 相互依赖。 只有单例的 Bean 才存在…

【肝素··】

Recent advances in the management of venous thromboembolism Korean J Hematol 2010;45:8-13 Serpin Structure, Mechanism, and Function-2002 糖胺聚糖 凝血 Fibrinolysis | Detailed Pedia

计算机视觉的应用13-基于SSD模型的城市道路积水识别的应用项目

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下计算机视觉的应用13-基于SSD模型的城市道路积水识别的应用项目。今年第11号台风“海葵”后部云团的影响&#xff0c;福州地区的降雨量突破了历史极值&#xff0c;多出地方存在严重的积水。城市道路积水是造成交通拥…

前端基础5——UI框架Layui

文章目录 一、基本使用二、管理后台布局2.1 导航栏2.2 主题颜色2.3 字体图标 三、栅格系统四、卡片面板五、面包屑六、按钮七、表单八、上传文件九、数据表格9.1 table模块常用参数9.2 创建表格9.3 表格分页9.4 表格工具栏9.5 表格查询9.5.1 搜索关键字查询9.5.2 选择框查询 9.…

微信“刷掌支付”上线!出门带手就可以了~

从2023年9月5日起&#xff0c;微信支付联合广东7-Eleven便利店正式发布了刷掌支付服务。用户可以在收银台结账时选择刷掌支付作为支付方式。这是全国首批支持微信刷掌支付的便利店&#xff0c;也是刷掌支付在广州地区的首次社会面应用。 目前&#xff0c;广东地区已经有超过150…

【JUC系列-04】精通Synchronized底层的实现原理

JUC系列整体栏目 内容链接地址【一】深入理解JMM内存模型的底层实现原理https://zhenghuisheng.blog.csdn.net/article/details/132400429【二】深入理解CAS底层原理和基本使用https://blog.csdn.net/zhenghuishengq/article/details/132478786【三】熟练掌握Atomic原子系列基本…

如何将 PDF 转换为 Word:前 5 个应用程序

必须将 PDF 转换为 Word 才能对其进行编辑和自定义。所以这里有 5 种很棒的方法 PDF 文件被广泛使用&#xff0c;因为它非常稳定且难以更改。这在处理法律合同、财务文件和推荐信等重要文件时尤其重要。但是&#xff0c;有时您可能需要编辑 PDF 文件。最好的方法是使用应用程序…

NLP(1)--NLP基础与自注意力机制

目录 一、词向量 1、概述 2、向量表示 二、词向量离散表示 1、one-hot 2、Bag of words 3、TF-IDF表示 4、Bi-gram和N-gram 三、词向量分布式表示 1、Skip-Gram表示 2、CBOW表示 四、RNN 五、Seq2Seq 六、自注意力机制 1、注意力机制和自注意力机制 2、单个输出…

Windows Server 系统各版本及授权说明(附下载地址

本文为Windows Server系统各版本差异对比及授权说明。 会对相关目前仍主流使用的相关Windows Server系统版本和相关授权进行对比和功能说明。 WindowsServer2012 R2 Windows Server 2012 R2授权方式是按照物理CPU数量进行授权&#xff0c;比如物理服务器CPU插槽数量2&#xff…

ChatGPT新增超强插件:文本直接生成视频、海报,支持自定义修改!

全球著名在线设计平台Canva&#xff0c;在ChatGPT Plus&#xff08;GPT-4&#xff09;上推出了插件功能&#xff0c;用户通过文本提示&#xff0c;几秒钟就能生成演示文稿、PPT插图、电子书封面、宴会邀请函等各种精美设计海报&#xff0c;同时支持生成视频。 该插件最强大的功…

《机器人学一(Robotics(1))》_台大林沛群 第 4 周【机械臂 逆运动学】 Quiz 4

待完善&#xff1a; 第5-7【暂时不清楚如何确定】 谁做出来了&#xff0c;麻烦指下路&#xff0c;谢谢&#xff01; 第6-7&#xff1a; 连猜带蒙&#x1f923; #################################################### 整个流程 走下来&#xff0c;只剩一个解了 不理解 第5-…