C#与.NET之间的关系

发布时间:2021-11-29 03:13:29

前些日子,在网上加了一个关于C#的学术群,里面的验证消息就是请说明C#与.NET之间的关系。于是便在网上找了一些资料,详细说一说C#和.NET。


C#


C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言,bin定于在微软职业开发者论坛上亮相的。C#看起来和Java有着惊人的相似;他包括了诸如单一继承,界面,与Java几乎同样的语法,和编译成中间代码在运行的过程,但是C#与Java又有着明显的不同,它借鉴了Delphi的 一个特点,与COM(组件对象模型)是直接集成的,而它是微软公司.NET windows网络框架的主角。


C#是一种编译语言,不是脚本语言。脚本语言不会被编译,而只是逐条语句读取并进行解释(读取一条语句,翻译成机器吗或者虚拟机码并立即执行,一条指令有可能翻译成多条机器指令),这对于像javascript这样的东西很有用,但是当对性能有要求时,编译语言就是可行的方法。


C#的特点在于束河初学者入门,容易上手。C#就其本身而言只是一种语言,尽管他是用于生成面向.NET环境的代码,但它本身不是.NET的一部分。.NET支持的一些特性,C#并不支持。而C#语言支持的另一些特性,.NET却不支持(如运算符重载)。


?


C#的优点


相比Java,有更先进的语法体系。


由于C#是后生,所以其很多语法都是其他语言的改进。作为一个商业产品,C++用户是C#的首要目标,所以它充分照顾到了C++用户的*惯。从整体看,C#语法比Java语法更优雅。


?


强大的周边


C#的IDE功能非常强大,C#3的文档有包含中文的多国语言,C#所需要的运行*台在用户量极大的windows上内置。一切的一切都在向我们诉说,C#有一个强大的爹。同时也说明,C#不仅仅是一个语言,更是一个极具匠心的产品。所以,用户可以享受这个产品的各个功能,包括售后服务。


?


C#的缺点


它是一个产品


作为微软的产品,它不能帮助竞争者??其他操作系统。作为微软的产品,它必须追求稳定、严谨、而不要出现任何错误。


C#团队实力确实非常强大,导致C#不会出现任何一个低级错误,就连 if(a = false) 这样的代码都会出现一个警告。C#的语法、底层库也无时不刻在印证一个理念:我们做的是产品,我们必须保证产品根据我们所期望的工作,而不允许出现任何错误。


这是一个优点,也是一个缺点。


没有考虑代码量。


????在C#中,文档注释需求书写xml,但是文档注释确实不能继承的??用户必须手动为每个函数和重载添加注释。C#的很多常用的工具类因为其使用的局限性而不被公开。


?


?


.NET


.NET开发*台


,NET有三个版本:.NET Framework,.NET Core和Xamarin。这些实现组合称为.NET开发*台。它们中的每一个都包含用于构建各种应用程序和库。


?


.NET框架


.NET Framework是该*台的第一个也是最早的实现。它包括三个主要的应用程序模型-WPF,Windows窗体,ASP.NET窗体-和基类库。


Windows Presentation Foundation(WPF)是一个UI框架,用于主要为Windows操作系统上的桌面客户端应用程序创建图形界面。WPF使用可扩展应用程序标记语言(XAML)的功能。


?


Windows Forms是.NET Framework中的GUI类库。Windows窗体用于开发具有易于更新和部署的丰富图形的桌面应用程序。


?


ASP.NET。虽然前两个组件是为桌面工程设计的,但ASP.NET用于开发动态网站和Wed应用程序。其核心中有公共语言运行时(CLR),使用开发人员有机会使用不同的.NET语言编写ASP.NET代码。公共语言运行时是一个应用程序虚拟机,它管理内存,实现代码访问安全性,验证代码安全性,并提供线程和代码的执行。


?


基类库(BCL)提供最常见的功能,如命名空间中的类,是框架类库(FCL)的核心,它是一组可重用的接口,类和值类型,与公共语言运行时(CRL)紧密集成)。FCL和CLR的组合构成了.NET Framework。


?


由于.NET Framework仅支持基于Windows的设备,因此需要发生跨*台程序包。


.NET是个*台,理论上,各种语言都可以编译成它的IL,在上面运行。,NET开发,就是把它当做目标*台的开发。


然而实际上,.NET上还分了阶级。C#是全能的亲儿子,ASP/VB/F#是能力较弱的亲儿子,其他语言那是干儿子或者过继的。所以实际中,你可以认为就是在搞C#了。


所以说,.NET上所有语言都是*等的,但有些语言比另一些更*等一些。


?


?.NET的优点:


面向对象编程:.NET Framework和C#从一开始就完全基于面向对象的原则。


优秀的设计:一个基类库,它以一种非常直观的方式设计出来。


语言无关性:在.NET中,Visual Basic、C#和托管C++等语言都可以编译为通用的中间语言(Intermediate Language)。这说明,语言可以用以前没有的方法交互操作。


对动态Wed页面的更好支持:虽然经典ASP具有很大的灵活性,但效率不是很高,这是因为它使用了解释性的脚本语言,且缺乏面向对象的设计,从而导致ASP代码比较混乱。.NET使用ASP.NET,为Wed页面提供了一种集成支持。使用ASP.NET,可以编译页面中的代码,这些代码还可以使用.NET能识别的高级语言来编写。


高效的数据访问:一组.NET组件,统称为ADD.NET,提供了对关系数据库和各种数据源的高效访问。这些组件也可用于访问文件系统和目录。尤其是,.NET内置了XML支持,可以处理从非Windows*台导入或导出的数据。


代码共享:.NET引入了程序集的概念,替代了传统的DLL,可以完美无瑕地改进代码在应用程序之间的共享方式。程序集是解决版本冲突的正式设备,程序集的不同版本可以并存。


增强的安全性:每个程序集还可以包含内置的安全信息,这些信息可以准确地指出哪种类型的用户进程可以调用什么类的哪些方法。这样就可以非常准确地控制用户部署的使用方式。


对于安装没有任何影响:有两个种类型的程序集,分别是共享程序集和私有程序集。共享程序集是可用于所有软件的公共库,而私有程序集只用于特殊软件。由于私有程序以及完全自包含,因此安装过程非常简单。没有注册表项,只需要把相应的文件放在文件系统的相应文件夹中即可。


Wed服务的支持:.NET完全集成了对开发Wed服务的支持,用户可以轻松地开发在任何类型的应用程序。


?


.NET开发的缺点


尽管由于广泛的基础架构和成熟的产品开发历史,.NET被认为是最强大的工程*台之一,但它带来了一系列问题。


?


有限的对象关系支持


.NET使用面向对象编程(OOP)语言模型。该模型基于对象的“动作”和数据而不是逻辑。实体框架提供了.NET Framework中面向数据的软件程序开发的支持。


实体是一种对象关系映射器(ORM),它在面向对象的.NET Framework和关系(SQL)数据库之间架起桥梁。一些工程师认为实体框架不够灵活,可能不支持所有可用的数据库设计。这也意味着在某些时候实体框架可能不支持新的数据库设计。


?


供应商锁定


第二个缺点部分与前一个有关。.NET运行并基于Microsoft。虽然.NET Core和Xamarin是开源的,但整个生态系统远非社区驱动。这意味着你的产品仍然依赖于Microsoft提供的供应商和决策。


许可费用


无论开源技术如何,构建.NET应用程序并不便宜。大多数情况下,你的开支将用于Visual Studio IDE以及Microsoft提供的其他协作和质量保证服务,以简化你的工作。你可以尝试成为Microsoft合作伙伴,免费获得许多订阅。处于非营利和教育目的,还有免费的Visual Studio社区。


释放与稳定之间的差距


也许这个问题削弱了所有Microsoft产品而不是.NET堆栈。但它绝对值得一提。新发布的产品缺乏适当的文档,支持,稳定性,并且容易产生剧烈变化。


较小的缺点包括由于封闭系统中的垃圾收集而发生的性能问题。而且,通常,托管环境比直接与硬件通信的环境要慢。


?


?


C#与.NET的关系


C#本身是一门语言,它是用于生成面向.NET环境的代码,但其并不是.NET的一部分。换言之,C#编写的代码总是运行在.NET Framework中。而且,在很多时候,C#的特定功能依赖于.NET。比如,在C#中声明一个int类型,实际上是.NET中System.Int32类的一个实例。


它是专门为与Microsoft的.NET Framework一起使用而设计的。


C#就其本身而言是一种语言,尽管它是用于生成面向.NET环境的代码,但它本身不是.NET的一部分。.NET支持的一些特性,C#并不支持。而C#语言支持的另一些特性,.NET却不支持(例如运算符重载)。

相关文档

  • 保安的仪容仪表
  • 有关守时名言名句大全
  • 想学好编程不能光看源码
  • idea配置非maven项目
  • 唐朝皇帝李亨简介
  • 道德经隶书书法作品欣赏
  • 教师读书心得体会15篇
  • 提高记忆力训练办法
  • 化妆品分装是什么意思
  • 猫咪肚子里长虫子怎么办
  • 大哥也想谈恋爱
  • Python爬虫Scrapy框架学习第1课 Win10系统下scrapy安装和环境搭建
  • 【thenorthface】Thememoryrobot
  • 幸福“不再”拥抱我
  • 大学大四毕业生自我鉴定范文2020
  • 我的小熊200字
  • 浙江大学三位一体条件有哪些
  • android调用照相机拍照
  • ORA-12505的另一种可能的解决办法
  • 人力资源部总经理职责
  • 超市承包合同范本
  • 工作格言
  • 教你如何向老板提加薪或升职要求
  • 电脑出现蓝屏的解决方法
  • 果酸护理头发有什么效果 果酸护理头发的效果是什么
  • CSS文本溢出显示省略号与VUE打包超出省略
  • 十大未解杀人案
  • 07 第七课 知识推理
  • 马和什么合
  • 蓝月亮84消毒液能洗衣服吗蓝月亮84消毒液洗衣服怎么用
  • 猜你喜欢

  • 串姐客栈加盟要多少钱
  • 报恩为话题的作文
  • 六年级话题作文:我心目中的网络_800字
  • 【2018-2019】电脑显卡坏了的症状有那些-范文word版 (2页)
  • 劳务派遣及人力资源外包差额扣除规定梳理
  • 新祥旭考研辅导-2015北京城市学院社会工作硕士拟录取名单
  • 浅谈环向预应力张拉施工控制
  • 小猫追尾巴作文450字(优秀作文)
  • 雅思阅读分类词汇200
  • 少先队员发言稿3篇
  • 建筑装饰设计施工的节能环保技术分析
  • 2019年小学收费自查报告 (8000字)-word范文 (2页)
  • 曲靖市永昌煤业有限公司企业信用报告-天眼查
  • 大学计算机操作实践报告【实验10】Excel2010数据统计和分析
  • 乐事气泡薯片多少钱一包乐事气泡水薯片好吃吗味道怎么样
  • 我的同学_三年级作文_24
  • 竹笋和什么一起炒好吃
  • 房屋按揭贷款合同最新
  • 新课标人教版小学二年级语文下册:19最大的书PPT、优质教学课件
  • 英语名词性从句(PPT新版本不能使用)课件
  • 表示思念的说说
  • 安徽省六安地区霍山溪吣昙队镂牟0《口技》导学案.doc
  • 空军学院的周年院庆晚会主持词
  • 疫情期间线上学习心得体会范文
  • 深圳市行政机关专业技术类公务员管理办法(2017最新)
  • 2015年中南财经政法大学西方经济学推免生复试笔试回忆版
  • 2019年春八年级英语下册 Module 2 Experiences模块话题微写作课件 (新版)外研版
  • 龙头房企前三季度业绩不俗 真实负债总体可控
  • 部编版人教版二年级语文上册二上字词名专项练*(1)
  • 竞争岗位自荐书
  • 可口可乐销售成功案例
  • 培训班课件 中国玻璃深加工行业概况
  • 云南秦美环境科技有限公司(企业信用报告)- 天眼查
  • 手绘线条图像物象的多视角表达教案
  • 【初三数学】厦门市九年级数学上期中考试测试卷(解析版)
  • 高中化学 重要的有机化合物 认识有机化合物时有机化合物的性质检测 鲁科版必修2
  • 罗兰贝格:客户关系管理crm咨询步骤.ppt
  • “廉洁从政、担当履职”警示教育交流研讨——学习中央纪委四次全会精神
  • 万顺煤矿火灾事故应急演练方案
  • 天津开发区永利机电设备制造安装有限公司企业信用报告-天眼查
  • 2019版高三英语一轮复* 第1部分 基础知识解读 阅读限时练1 Unit 3 Celebration(A)北师大版必修1
  • 县领导个人现实表现材料
  • 电脑版