.NET开发框架概述

Wesley13
• 阅读 846

        .NET开发框架概述

      因特网尚且不能实现人们愿望的主要原因有两个:一个是因特网上还没有一种将各种服务进行集成的机制。毕竟,传统是很难改变的,产品的供应商总是喜欢使用自己的方式来描述他们的产品和服务。为此,微软决定打破这种格局,与其他大厂商一起提出了用来进行网络数据交换用的公共协议并制定相关业界标准(如SOAP、XML等)。另一个原因是应用程序的开发还显得太复杂。为此,微软准备为开发人员提供一个崭新的具有划时代意义的开发平台,以使应用程序的开发更为简单。这个开发平台就是我们本书讨论的中心内容之一—— .NET框架。
      .NET框架是一个可以构造、发布以及运行Web服务的开发环境。从概念上讲,.NET框架平台代表了一种崭新的软件开发模式,它与Win32 API或COM一样,是把系统服务以接口形式提供给开发人员的软件开发平台。与以往不同的是,.NET框架能够更好地完成代码重用、资源配置、多语言集成开发和安全管理等任务,在安全性、易用性以及开发效率等方面远远超过了以前的开发模式。
      .NET框架平台包含两个方面的核心内容:一个是运行时引擎(Runtime Engine),另一个是基类库(Base Class Library)。对于运行时引擎,可能所有的开发人员都不会感到陌生,因为,从使用标准C语言开发工具开始,我们就至少接触过C运行时库(C Runtime Library)。后来,我们使用的工具越来越强大,接触过的运行时库的种类也越来越多。像微软基本类库(MFC)、活动模板库(ATL)、VB运行时库(VB Runtime library)和Java虚拟机等。从广义上讲,Windows本身就可以被看成是一个运行时引擎和运行时库。开发人员都很喜欢使用这些库,因为这些库将复杂的、重复性的东西都准备好了,等着需要它们的人来调用,从而简化应用程序的开发。但是,这些还远远不能满足开发人员对快速开发的要求,于是微软在.NET框架中提供了一个基类库,这个基类库可以充分地将开发人员编程的难度降下来,让开发人员更为轻松地完成开发工作。

.NET开发框架概述

 

.NET开发框架概述

.NET开发框架概述

          随着微软Visual Studio .NET Beta版本的发布,我们已经可以看到.NET开发框架,是按照基于互联网的Web服务的开发需  求,完全架构在一组开放的互联网协议上而推出的一系列产品、技术和服务(见图)。其最底层,即整个开发框架的基础是通用语言运行时,以及它所提供的一组基础类库;在开发技术方面,.NET提供了全新的数据库访问技术ADO .NET,网络应用开发技术ASP .NET和Windows编程技术Win Forms;在开发语言方面,.NET提供了VB、VC++、C#、JScript等多种语言支持;Visual Studio .NET则是全面支持.NET的开发工具。 

1. 通用语言运行时(Common Language Runtime)   给开发人员带来了一种全新的开发概念,即为多种语言提      供了一种统一的运行环境。另外它还提供了许多新的功能和特性,比如,统一和简化的编程模型,使用户不再迷惑于Win32        API和COM,避免了DLL的版本和更新问题(常称为DLL地狱),多种语言之间的交互,以及自动地内存和资源管理等。

2. 基础类库(Base Class Library) .NET给开发者提供的编程接口,即基础类库,包括从输入、输出到数据访问等各方面,       它提供了一个统一的面向对象的、层次化的、可扩展的编程接口。

3. ADO .NET     提供了一组用来连接到数据库、运行命令、返回记录集的类库,其革新主要体现在提供了对XML的强大支持,为XML成为.NET中数据交换的统一格式提供了基础;引入了驻于内存的数据缓冲区;此外,还引入了一些新的对象,如用于高效率读取数据的DataReader。

4. ASP .NET    网络表单把VB中的快速开发模型引入到网络开发中来,从而大大简化了网络应用的开发。其网络服       务则是下一代可编程网络的核心,它实际上就是一个可命名的网络资源,可用来在Internet 范围内方便地表现和使用对象。         ASP .NET应用框架不再是解释脚本,而是编译运行,再加上灵活的缓冲技术,从根本上提高了性能,并提供了更多样的认      证和安全管理方式。

5. 开发语言   从上面的介绍中我们已经知道,Microsoft .NET开发框架支持多种语言。需要特别指出的是,微软在.NET中推 出了全新的C#语言,它使开发者可以快速地构建从底层系统级到高层商业组件的不同应用,同时C#还针对 .NET作了特     别设计,比如允许XML数据直接映射为它的数据类型等。

6. Visual Studio .NET    作为微软的下一代开发工具它和.NET 开发框架紧密结合,是构建下一代互联网应用的优秀工具。  Visual Studio .NET通过提供一个统一的集成开发环境及工具,大大提高了开发者的效率;集成了多种语言支持;简化了服       务器端的开发;提供了高效地创建和使用网络服务的方法等等。

 

编程模型
  以前在Windows平台下进行软件开发的C++开发人员大多使用的是微软基础类库(MFC)或者Win32 APIs,Visual Basic用户使用的是Visual Basic API,Delphi用户使用的是Borland公司的VCL,Java用户使用JDK,彼此之间很难兼容、相互调用,软件开发人员有时也难以取舍,而.NET框架统一了当前各种不同的架构,.NET框架为开发人员提供了一个统一的、面向对象的、层次化的、可扩展的框架类库――FCL,开发人员不再需要学习多种架构只须学习.NET框架就能灵活的采用各种不同的编程语言进行开发,.NET框架还实现了跨语言的继承、错误处理、调试。
  在.NET框架里从C#,VB.NET,J#到C++的所有编程语言都是相互平等的,开发人员可以自由选择自己喜欢的语言,如下不同语言的程序代码:

.NET开发框架概述

                            IL是CLR唯一理解的编程语言,所有的编译器都将源代码编译成IL,IL再被CLR处理。
                                               输出的结果是非常熟悉的:Hello, World!。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Easter79 Easter79
3年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Android蓝牙连接汽车OBD设备
//设备连接public class BluetoothConnect implements Runnable {    private static final UUID CONNECT_UUID  UUID.fromString("0000110100001000800000805F9B34FB");
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
11个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这