.NET开发框架优缺点剖析 译文 精选

2022-09-21
关注

作者 | Huzaifa Khan

译者 | 朱先忠

策划 | 信远

当今世界上大量程序员都选择基于.NET框架开发应用程序。但是,作为一名合格的程序员您还应该深入了解这个框架的一些优点和缺点。

如今,.NET开发框架受到了全世界程序员的广泛欢迎,它被数百万开发人员用来创建各种类型的应用程序。其原因也非常明确,.NET提供了大量功能,可以帮助开发人员依据给定的需求来开发任何类型的软件产品。此外,该平台在过去几年中有了巨大进步,为开发人员创建跨平台应用程序提供了更多便利。这进一步提高了.NET框架的流行度,也鼓励了更多的开发人员加入这个庞大的开发生态系统。

特别是最近引入的.NET 6,进一步加强了该平台的开发基础设施。可以说,它现在比以往任何时候都更加丰富;允许开发人员为云端、物联网、桌面和移动设备创建高级应用程序。

当然,您也可以将其称为完美的统一平台,因为在这里您可以根据需求获得大量的开发支持。而您所需要做的只是精通.NET开发所需要的技术,如Xamarin、ASP.NET核心等。当然,在提供了大量丰富的特征外,.NET框架也存在一些限制。这些也正是它的缺点,需要微软立即关注。在本文中,我们将讨论.NET框架存在的典型性的优点和缺点,以帮助您更好地了解该平台。

下面,让我们先来了解一下.NET的核心模型,因为该模型能够帮助您了解其整体开发的生态系统。

.NET开发平台的核心模型

许多初学者并不知道.NET开发技术被划分为四种不同类型的层,这些层中包含的模型分别对应于:.NET框架、.NET核心、Xamarin和通用Windows平台(UWP)。它们的组合实现了提供完整的.NET开发环境,人们可以利用这些组件来创建各种应用程序。

从历史发展来看,.NET框架基本上是2002年开始引入的开发平台的第一个实现。当时,它基于三种主要的应用程序模型,即ASP.NET窗体、WPF和Windows窗体。

该平台的第二个版本是.NET核心部分。它是.NET框架的高级和重建形式,允许开发人员在Linux和MacOS上使用该平台。这样一来,增强了旧版本仅为Windows平台开发应用程序的能力——也能够为其他操作系统平台提供开发支持。

.NET的第三个实现版本是Xamarin,它为创建跨平台移动应用程序提供了非常有效的开发基础设施。第四个也是最重要的.NET层称为通用Windows平台(Universal Windows Platform,简称“UWP”)。它为开发能够在所有Windows设备上运行的应用程序提供了强大的统一基础设施。这包括PC、平板电脑、XBox、Surface Hub等不同平台。

.NET开发框架的优势

.NET开发框架的流行说明了它在开发领域的重要性。以下是使用.NET开发平台体现出来的一些核心优势。

面向对象的软件开发模型

.NET的最大优点是,它允许您使用面向对象编程(OOP)的概念编写应用程序。这是开发人员用来创建不同类型应用程序的核心软件编程模型。.NET框架在处理面向对象编程及其编码策略方面非常出色。通过将代码分解为小的模块,有助于使代码更易于理解。

借助于.NET框架,您可以使用模块化结构,从而以一种十分重要的方式定义对象的行为。此外,该框架还确保了代码的可重用性,这样一来在编写其他相似类型的函数时会节省不少宝贵的时间。

快速简单的缓存系统

缓存是一种允许将有用数据存储在特定存储器中的技术。与传统的响应时间相比,这样做的目的是为了更快速地检索数据。.NET框架提供了一个高级缓存系统,允许开发人员优化进程调用的速度。此缓存系统非常健壮且易于使用,使开发人员能够简化应用程序中不同类型的数据检索。

内置的对象缓存类还有助于开发人员根据其需求自定义缓存调用。这不仅有助于优化性能,而且有助于不同的基于客户端和服务器的.NET应用程序的可伸缩性。​

广泛的库支持​

.NET还支持在一个地方访问数千个库和第三方组件。随着.NET标准在2016年的引入,开发人员现在可以轻松找到基于.NET框架、.NET核心和Xamarin的大量的库。这些库可用于执行软件应用程序中所需的不同类型的功能,这包括图形渲染、代码格式化、数据库交互等。

.NET开发框架的缺点

尽管.NET能够提供数百种特殊的开发功能,但是在一些关键领域仍缺乏相应的支持。在接下来的内容中,让我们仅讨论这其中的部分欠缺。

许可成本

尽管.NET框架提供了大量开发应用程序的选项,但这并非没有高昂的代价。在.NET上构建软件应用程序并不便宜,因为您需要购买开发过程中所需的一些工具。在这方面,Visual Studio所需的许可成本无疑是一个很好的例子。它的企业版提供了一些额外的开发功能,这就是为什么它在市场上以昂贵的价格提供的原因。因此,如果您的项目开发预算很小,那么您肯定很难访问顶级的.NET开发工具。

向.NET核心的挑战性过渡​

尽管.NET核心是微软为提升平台的特征而推出的一款优秀产品,但它在从旧框架过渡时也带来了一些困难。我们也在其他平台上看到了差不多同样类型的问题,我们确实理解这需要一些时间才能得到妥善解决。也就是说,那些构建在.NET框架上的业务应用程序需要一个艰苦的过程来完成向.NET核心的转换。这当然需要一些时间,也需要开发人员的专业技能才能顺利地过渡到新环境中。​

供应商锁定

.NET框架是由微软公司开发的,这就是为什么它拥有该平台上的所有权限。这意味着,使用.NET创建应用程序的开发人员对框架策略的控制较少。如果微软在平台上推出任何变更或更新,那么用户将不得不承担其对其软件产品的影响。这一事实经常受到开发人员的批评,因为他们希望完全由他们自己来控制自己的应用程序。

总结

在本文中,我们讨论了.NET框架的不同类型的优缺点。但是,该框架至少在目前,无疑依旧是开发软件应用程序的最佳平台之一。从网站到移动应用程序,该框架现在已经非常先进,可以开发各种软件产品。然而,它也有一些限制,这些限制希望微软能够尽快拿出解决方案。在本文中也列举了不少这方面的问题,以便您能够更好地理解它们。

原文链接:https://dzone.com/articles/understanding-the-good-and-the-bad-of-net-developm

译者介绍

朱先忠,51CTO社区编辑,51CTO专家博客、讲师,潍坊一所高校计算机教师,自由编程界老兵一枚。

您觉得本篇内容如何
评分

相关产品

DR. JOHANNES HEIDENHAIN GmbH LS 1679 线性编码器

LS 1679是专门为压闸而开发的。其高精度和重复性的基础是其精密的玻璃刻度和高品质的整体轴承。由于其钢轨道和钢滚子轴承组件副的材料,它非常坚固。有许多不同的连接到机器框架,其中球联轴器提供了最大的自由度。除了测量步距为5µm的标准分辨率外,还有一个1µm的变体。为了完美地安装到两个C柱上,还提供了向右和向左电缆插座的变体。

Malvern Instruments, Inc. RH10 流变仪

先进、功能强大的落地式毛细管流变仪,适用于研究和产品开发。Rosand RH7自推出以来,在研究级毛细管流变仪方面建立了新的标准。马尔文不断开发RH7的原始设计及其操作软件,生产出新一代具有市场领先性能特点和能力的落地式毛细管流变仪。RH7和RH10流变仪保留了许多坚固的H型框架设计原则,这是仪器在高负载条件下工作能力的核心。

Micro-Epsilon 米铱 ThicknessCONTROL MTS 8202.T 光学千分尺和激光千分尺

厚度测量系统作为一个C形框架,带有点激光厚度控制MTS 8202.T,MTS 8202.T配有激光三角测量传感器,确保材料独立测量。在生产过程中,两个传感器的激光束均采用专门开发的光电工具进行优化调整,以提供最高的精度。该系统测量速度快,是监测高动态过程的理想系统。自动在线校准可确保测量不受温度影响

Visual Sound TL-1601a 扬声器

TL-1601a的锥形膜片由一种新开发的坚韧轻质材料制成,能够承受高振幅而不变形。在圆锥表面添加波纹,以确保平稳响应到最低端。TL-1601a安装在一个坚固的铝合金压铸框架,支持重磁路。框架基本上是无共振的。TL-1601a规格音圈阻抗:8欧姆。最低共振频率(fo):28Hz。频率范围:28-1000Hz。

Neousys Technology Inc. iVIS-200 Series 摄像机

iVIS-200是一个Atom™ E3845处理单元,作为创新型智能摄像头框架的一部分,您可以通过集成现成的摄像头来构建自己的基于x86的智能摄像头。,iVIS-200和创新框架扩展了智能摄像头的可能性。有了iVIS-200,您可以快速开发基于Windows\/Linux开放平台的智能摄像头,并最大限度地利用vision软件。

Trilion Quality Systems PONTOS 应变片

今天的产品开发需要对动态部件行为有很好的理解,以便进行仿真验证、振动分析或相对运动的测量。 PONTOS提供三维空间中无限数量测量点的动态、同步和精确位置。,常见用途包括:,-移动、变形和振动的三维测量-验证概念设计研究和数值计算模拟-测量250赫兹结构振动的动态特性、升降(全框架,奈奎斯特标准)-载荷、蠕变和老化试验,包括复杂结构和粘弹性元件-噪声,包括风洞环境在内的汽车振动和不平顺性

评论

您需要登录才可以回复|注册

提交评论

51CTO

这家伙很懒,什么描述也没留下

关注

点击进入下一篇

7款好用的前端框架,试试就知道 译文

提取码
复制提取码
点击跳转至百度网盘