第一章:深入.NET框架
平台上开发的基础,ASP.NET
、Windows Forms 和VS.NET
都不过是.NET平台开发的一部分,他的用于.NET应用程序的开发及展示。.NET平台的核心技术为:通用语言运行时(CLR:Common Language Runtiome)、基类库(BCL:Base Class Library)、.NET语言及Visual Studio.NET
从这个图上可以看出,.NET Framework是架构在Windows平台上的一个虚拟的运行平台,你可以想象将最下层Windows换做其他的操作系统,例如说Linux,一样可以实现使用符合CLS(Common Language Specification,通用语言规范)的.NET语言,(VB.NET
、C#、JScript.NET
等),来创建ASP.NET
或Windows Form(可能会叫Linux Forms)应用程序的功能,这其实就是Mono计划要实现的功能。所以可以这么认为,理论上,C#是一种可以跨平台的语言,这很象Java。C#另一个比较象Java的地方是,它也是一种(特殊意义上的)语言,同Java一样,C#编写的程序代码也是先通过C#编译器编译为一种特殊的字节代码, (Microsoft Intermediate Language,MSIL,微软)中间语言,运行时再经由特定的编译器(JIT编译器,Just In tIME, JITer)编译为机器代码,以供操作系统执行.不仅是C#语言,所有.NET语言(将会包括我们常用的几十种现代的编码语言)都可以编写面向CLR的程序代码,这种代码在.NET中被称为托管代码(Managed Code),所有的Managed Code都直接运行在CLR上,具有与平台无关的特性。解释性的语言很安全,并且可以通过他的运行平台为其赋予更多的功能,例如自动内存管理,异常处理等,事实上,C#语言的许多特点都是由CLR提供的,如图2所示的CLR结构图说明了这一点。 2、从下图可以看到,C#所具有的许多特点都是由CLR提供的,如类型安全(Type Checker)、垃圾回收(Garbage Collector)、异常处理(Exception Manager)、向下兼容(COM Marshaler)等,具体的说,.NET上的CLR为开发者提供如下的服务:◆平台无关:CLR实际上是提供了一项使用了虚拟机技术的产品,他构架在操作系统之上,并不要求程序的运行平台是 Windows系统,只要是能够支持它的运行库的系统,都可以在上面运行.NET应用。所以,一个完全由托管代码组成的应用程序,只要编译一次,就可以在任何支持.NET的平台上运行.◆跨语言集成:CLR语序开发这以任何语言进行开发,用这些语言开发的代码,可以在CLR环境下紧密无缝的进行交叉调用,例如,可以用VB声明一个基类对象,然后在C#代码中直接创建次基类的派生类。◆自动内存管理:CLR提供了拉架收集机制,可以自动管理内存。当对象或变量的生命周期结速后,CLR会自动释放他们所占用的内存.◆跨语言异处理◆版本控制◆.NET安全◆简单的组件互操作性。◆自描述组件:自描述组件是指将所有数据和代码都放在一个文件中的执行文件。自描诉组件可以大大简化系统的开发和配置,并且改进系统的可靠性。通用语言运行时(CommonLanguageRuntiome,CLR)最早被称为下一代Windows服务运行时(NGWS Runtime).它是直接建立在操作系统上的一个虚拟环境,主要的任务是管理代码的运行。CLR现在支持几十种现代的编程语言为它编写代码,然后以一种中间语言(Intermediate Langeoage,IL)代码的形成被执行。并且,CLR还提供了许多功能以简化代码的开发和应用配置,同时也改善了应用程序的可靠性。如你所知,如果某种语言的编译器是以运行时为目标的,那么利用该语言开发生成的代码在.NET中被称为托管代码,因为这样的代码是直接运行在CLR上的,所以具有与平台无关的特点。在.NET平台结构图中,CLR的上面是.NET的基类库,这组基类库包括从基本输入输出到数据访问等各方面,提供了一个统一的面向对象的,层次化的,可扩展的编程接口。从.NET平台结构图中也可以看到,基类库可以被各种语言调用和扩展,也就是说不管是 C#,VB.NET
还是VC++.NET,都可以自由的调用,.NET的类库,因为C#自身只 3..Framework 类库 (FCL).NETFramework类库 编辑
本词条缺少名片图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧!
.NET Framework 包括可加快和优化开发过程并提供对系统功能的访问的类、接口和值类型。 为了便于语言之间进行交互操作,大多数 .NET Framework 类型都符合 CLS,因而可在编译器符合公共语言规范 (CLS) 的任何编程语言中使用。
中文名.NETFramework类库目 的为了便于语言之间进行交互操作重要性生成.NET 应用程序、组件的基础功 能表示基础数据类型和异常等
目录
1 简介
2 命名约定
简介编辑
.NET Framework 类型是生成 .NET 应用程序、组件和控件的基础。 .NET Framework 包括的类型可执行下列功能:
表示基础数据类型和异常。 封装数据结构。 执行 I/O。 访问关于加载类型的信息。 调用 .NET Framework 安全检查。 提供数据访问、多客户端 GUI 和服务器控制的客户端 GUI。 .NET Framework 提供了一组丰富的接口以及抽象类和具体(非抽象)类。 可以按原样使用这些具体的类,或者在多数情况下从这些类派生您自己的类。 若要使用接口的功能,既可以创建实现接口的类,也可以从某个实现接口的 .NET Framework 类中派生类。
命名约定编辑
.NET Framework 类型使用点语法命名方案,该方案隐含了层次结构的意思。 此技术将相关类型分为不同的命名空间组,以便可以更容易地搜索和引用它们。 全名的第一部分(最右边的点之前的内容)是命名空间名。 全名的最后一部分是类型名。 例如,System.Collections.ArrayList 表示 ArrayList 类型,该类型属于 System.Collections 命名空间。 System.Collections中的类型可用于操作对象集合。
此命名方案使扩展 .NET Framework 的库开发人员可以轻松创建分层类型组,并用一致的、带有提示性的方式对其进行命名。 它还允许用全名(即命名空间和类型名称)明确地标识类型,这样可以防止类型名称发生冲突。 库开发人员在创建命名空间的名称时应使用以下原则:
“公司名称.技术名称”
例如,Microsoft.Word 命名空间就符合此原则。
利用命名模式将相关类型分组为命名空间是生成和记录类库的一种非常有用的方式。 但是,此命名方案对可见性、成员访问、继承、安全性或绑定无效。 一个命名空间可以被划分在多个程序集中,而单个程序集可以包含来自多个命名空间的类型。 程序集为公共语言运行时中的版本控制、部署、安全性、加载和可见性提供外形结构。
//非空验证
if (this.txtEmail.Text == "" || this.txtPassword.Text == "")
{
MessageBox.Show("用户名或密码不能为空!", "提示");
}
else
{
string userName = this.txtEmail.Text;
string pwd = this.txtPassword.Text;
bool isOK = false;
//输出数组的值
foreach (LoginInfo item in array)
{
if(item!=null)
{
if(item.Email==userName&&item.Password==pwd)
{
lblValidation.Visible = false;
isOK = true;
//将信息传递到主页面
FrmMain fm = new FrmMain();
fm.lblNames.Text = "欢迎,"+item.Name;
fm.Show();
break;
}
}
}
if(isOK==false)
{
lblValidation.Visible = true;
txtPassword.Text = "";
txtPassword.Focus();
}
}
}
.类和对象的关系 Dept dept=new Dept();
解析:类是对象的类型 ( 具有相同行为和特征的统一种类) code层面:Dept
对象是类的实例 (具体的一个个事物)code层面:dept5.封装就是保护一些私有字段的安全。体现2:将方法和字段放入一个容器(类)中。6.自动属性
注意点:当我们不需要进行逻辑判定的时候,他是和私有字段+共有的属性是等价的。
自动属性底层会生成:私有字段+公有属性
关键代码:
#region 注册
private void btnRegist_Click(object sender, EventArgs e)
{
Register();
}
public void Register()
{
if (this.txtName.Text == "" || this.txtids.Text == "" || this.txtEmails.Text == "" || this.txtPwd.Text == "" || this.txtShowEmail.Text == "" || this.txtShowPwd.Text == "")
{
MessageBox.Show("请确认您的信息是否完整!");
}
if (this.txtShowEmail != this.txtEmails || this.txtShowPwd != this.txtPwd)
{
MessageBox.Show("您的邮箱或密码两次输入不一致!");
}
for (int i = 0;i<f1.array.Length ;i++ )
{
if(f1.array[i]==null)
{
LoginInfo info = new LoginInfo();
info.Name = this.txtName.Text;
info.Id = this.txtids.Text;
info.Email = this.txtids.Text;
info.Password = this.txtPwd.Text;
f1.array[i] = info;
break;
}
}
MessageBox.Show("注册成功!");
f1.Visible = true;
this.Close();
}
#endregion
第一章:深入.NET框架的更多相关文章
- 第一章 自定义MVC框架
第一章 自定义MVC框架1.1 MVC模式设计 组成:Model:模型,用于数据和业务的处理 View :视图,用于数据的显示 Controller:控制器 ...
- SSM-1第一章 认识SSM框架和Redis
第一章 认识SSM框架和Redis 1.1 Spring框架 Sring理念 Ioc 控制反转 IOC是一个容器,在Spring中,它会认为一切Java资源都是JavaBean,容器的目标是 ...
- 第一章 : javaScript框架分类及主要功能
从内部架构和理念划分,目前JavaScript框架可以划分为5类. 第一种是以命名空间为导向的类库或框架,如果创建一个数组用new Array(),生成一个对象用new Object(),完全的j ...
- 第一章 Spring整体框架和环境搭建
1.Spring 的整体架构 Spring框架主要由7大模块组成,它们提供了企业级开发需要的所有功能,而且每个模块都可以单独使用,也可以和其他模块组合使用,灵活且方便的部署可以使开发的程序更加简洁灵活 ...
- 第一章 深入.NET框架
一. .NET的过人之处 1..NET框架提高了软件的可重复行 ,可扩展性,可维护行和灵活性. 2.对web应用的强大支撑. 3.对Web Service(Web服务)的支持. 4.实现SOA,支持云 ...
- Nova PhoneGap框架 第一章 前言
Nova PhoneGap Framework诞生于2012年11月,从第一个版本的发布到现在,这个框架经历了多个项目的考验.一直以来我们也持续更新这个框架,使其不断完善.到现在,这个框架已比较稳定了 ...
- 《Entity Framework 6 Recipes》翻译系列 (1) -----第一章 开始使用实体框架之历史和框架简述
微软的Entity Framework 受到越来越多人的关注和使用,Entity Framework7.0版本也即将发行.虽然已经开源,可遗憾的是,国内没有关于它的书籍,更不用说好书了,可能是因为EF ...
- 《Entity Framework 6 Recipes》翻译系列(2) -----第一章 开始使用实体框架之使用介绍
Visual Studio 我们在Windows平台上开发应用程序使用的工具主要是Visual Studio.这个集成开发环境已经演化了很多年,从一个简单的C++编辑器和编译器到一个高度集成.支持软件 ...
- jQuery系列 第一章 jQuery框架简单介绍
第一章 jQuery框架简单介绍 1.1 jQuery简介 jQuery是一款优秀的javaScript库(框架),该框架凭借简洁的语法和跨平台的兼容性,极大的简化了开发人员对HTML文档,DOM,事 ...
- Artech的MVC4框架学习——第一章初步认识ASP.NET MVC
前言: Artech觉得掌握ASP.NET MVC具有三个层次. 第一层了解基本的编程模式,掌握Controller和View的定义方式,知道路由如何注册以及验证规则如何定义. 第二个层次要求我们对A ...
随机推荐
- Java -- 异常的捕获及处理 -- 异常类的继承结构
7.1.3 异常类的继承结构 在整个Java的异常结构中,实际上有两个最常用的类,分别为Exception和Error,这两个类全都是Throwable的子类. ⊙ Exception : 一般标识的 ...
- SpringMVC中 -- @RequestMapping的作用及用法
一.@RequestMapping 简介 在Spring MVC 中使用 @RequestMapping 来映射请求,也就是通过它来指定控制器可以处理哪些URL请求,相当于Servlet中在web.x ...
- centos7设置时间和时区
1.安装ntp服务软件包:yum install ntp 2.将ntp设置为缺省启动:systemctl enable ntpd 3.修改启动参数,增加-g -x参数,允许ntp服务在系统时间误差较大 ...
- webpack之proxyTable配置
有两种情况: 一,有统一的项目名 config下index.js 配置如下: proxyTable: { '/tbt_user':{ target: 'http://47.98.216.251:80' ...
- UITableView 显示在statusbar 下面
IOS 6 升到 IOS7 之后出现的状况 新建一个工程,删除默认的ViewController,拖拽一个TableViewController到storyboard. 即使没有勾选 "Ex ...
- linux-Centos 7下tftp-server服务的安装与配置
TFTP(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务器之间 进行简单文件传输的协议,提供不复杂.开销不大的文件传输服 ...
- Web(二)
一.数据的传递--转发和重定向 1.创建一个login.jsp页面 <body> <%-- action:我们需要提交的地址 method:请求的方式 --%> ...
- easyui Dialog 去边框
使用Url页面显示 panel-body 的内容, 因页面高度大于iframe高度,右侧则会出现边框, 如果页面显示的内容高度真实大于iframe高度,那出现边框是很正常. 我的问题就是有内部页面 的 ...
- ubuntu下安装bin文件
从Java官网下载的安装文件,有的只有bin文件,没有.tar.gz文件. ①进入设备终端,通过sudo -s或su回车,切换到管理员用户:②输入管理员密码然后回车:③输入sudo chmod +x ...
- Codeforces 44E - Anfisa the Monkey - [水题]
题目链接:http://codeforces.com/problemset/problem/44/E 题意: 给一个字符串,让你分割成 $k$ 行,每行的字母数在 $[a,b]$ 之间. 题解: 这是 ...