.NET基础拾遗系列第三篇
.net的框架.net的命名空间ASP和ASP.net对比ado和ado.net区别程序集和应用程序域编译.net程序栈和堆.net的垃圾收集机制理解可终结对象和可处置对象处理异常
- Web服务(Web service )这是一系列的特殊的方法,可以非常轻松处理通过Internet 发送的,基于XML的消息
- web窗体(Web Form)这是一系列基于html的应用程序(网站)通常Web窗体应用程序能查询数据库和调用Web服务,合并和过滤返回的信息,然后使用一个基于html的用户界面,在浏览器中显示信息
- Windows 窗体(windows Form)这是一系列基于Windows GUI应用程序,开发人员不是使用一个web窗体页来创建应用程序GUI,而是使用Windows桌面提供的更强大的,性能更加好的功能,Windows窗体应用程序可以利用控件,菜单以及鼠标/键盘事件,他们能直接与底层操作系统交换信息,于Web窗体应用程序类似,Windows窗体应用程序也可以查询数据库和使用Web服务
- Windows 控制台应用程序 如果应用程序对UI的需求比较简单,那么控制台应用程序提供了一中快速,简单的方式来生成一个应用程序,编译器,实用程序和工具通常作为控制台应用程序来实现
- Windows 服务 是的,完全可以实习.NET Framework 来生成“服务”应用程序,他们可以使用Windows服务控制管理器(Service Control Manager,SCM)来进行控制
- 组件库(component library ).NET Framework 可以生成独立的程序集(组件),其中包含的类型可以轻松集成到前面提到的任何一种类型的应用程序中
公共语言运行库(commom language runtime,CLR)基础类库(base class library)asp.net, vb.net,c#等语言运行库
首先,当.ASPX格式的网页被第一次访问的时候,就会编译成一种中间语言(Microsoft Intermediate Language,MSIL),然后利用即时编译器(Just In Time,JIT)声称相应的机器代码以便执行;当网页再一次被访问的时候,就只需要有MSIL语言生成机器代码就可以了,但是如果源代码有改动,就需要重修编译为MSIL语言,然后再生成机器代码.
System:提供所有底层系统服务,包括输入输出,驱件驱动,文本处理Data:提供数据处理操作XML:提供了XML文件的出来操作Web:提供用来完成用户界面和Web服务的任务,这个类是ASP.NET最常见的类WindowForms:提供了传统的桌面应用程序的服务Drawing:提供创建图形的功能...................................
System.Windows.Forms.MessageBox.Show("你好!!");在你运行当中会出现一个“确定”按钮的对话框,并停止程序的运行,其中我们System.Windows.Forms就是命名空间,其调用了MessageBox类的Show静态方法。这种将命名空间和类名称用点和符合相连使用时,类名被称为全饰类名,用同样的方式调用.net基类的所有类型。当代码多处使用相同的命名空间时,还有一个引用命名空间的方法,就是在程序的代码顶部使用using 关键字引入命名空间,这样子可以一次引入,大大减少重复的工作
命名空间 |
内容说明 |
System | 包含每个应用程序要使用的全部基本类型 |
System.Data | 包含用于和数据库通信以及处理数据的类型 |
System.Drawing | 包含用于处理2D图形的类型,这些类型通常由Windows窗体应用程序使用,并可以创建要在Web窗体页面上显示的图像 |
System.IO | 包含用于执行流I/O以及浏览目录/文件的类型 |
System.Net | 包含实现低级网络通信并于一些通用Internet协议协同工作的类型 |
System.Rumtime.InteropService | 包含允许托管代码访问非托管OS平台功能(比如COM组件以及Win32或者定制DLL中的函数)的类型 |
System.Security | 包含用于保护数据和资源的类型 |
System.Text | 包含用于处理采用各种编码方式的文本(比如ASCII和Ubicode) |
System.Threading | 包含用于一步操作和同步资源访问的类型 |
System.Xml | 包含用于处理XML架构(XML Schema)和数据的类型 |
namespace loginMain
{
publicclass Username
{
///<summary>
/// 创建字符串类型的字段name
///</summary>
publicstring name ="bacteroid";
}
}
namespace loginMain
{
publicclass ShowMsg
{
///<summary>
/// 构造函数输出信息
///</summary>
public ShowMsg()
{
Console.WriteLine("我是类菌体,身高178公分,喜爱编程");
}
}
}
namespace loginMain
{
class Login
{
staticvoid Main(string[] args)
{
Console.WriteLine("输出你的大名:");
string input = Console.ReadLine();//接受输入,并赋值给input字符串变量
Username a =new Username();//创建实例a
if (input == a.name)
{
Console.WriteLine("{0},你输入正确,登录成功", a.name);
ShowMsg b =new ShowMsg();//创建实例b
}
else
{
Console.WriteLine("你输入错误,请重新输入!");
}
Console.ReadLine();
}
}
}
{
namespace B
{
class class1{}
}
namespace C
{
class class2{}
}
}
namespace D.E
{
class class3{}
}
(1)开发效率,asp页面将呈现代码和html混合着编写,其内容和格式以及程序代码耦合度就很高,asp在实质上产生大量繁琐页面,代码的可读性和维护性比较差,严重影响了项目开发的效率,但是其中他用的include指令让程序体现模块化,但是还不是彻底的解决方法;而asp.net将前台呈现的部分和程序代码处理分为2个页面,实现了逻辑代码和表现内容的完全分离,使问题快速解决,尤其在大型的Web项目中,asp.net的开发效率比asp高。
(2)执行效率,asp采用的是Vb.Script或者是JavaScript脚本语言编辑,这种代码不需要编译,每一次请求的时候都需要解析执行,执行效率非常低;asp.net是建立在.net framework之上的,可采用 Visual Basic,C#,c++等程序设计语言,asp.net在首次执行的进行了编译,编译后的程序语法哦请求的时候直接运行,所以速度和效率比asp高很多咯
(3)代码量,asp需要对所有的要实现的功能通过编写代码实现,例如配合前台的Javascript的验证功能,文件功能等;asp.net中可采用服务器空间轻松实现,所以项目越复杂。使用asp.net的代码量比asp越少
(4)很好的模式,asp程序是面向过程的模式,在大型网站开发非常吃力;但是asp.net是面向对象的,并且有丰富的.net类库使用,利用面向对象各种优秀的设计模式,他利于团队合作开发,其可读性,可维护性远远超过asp程序
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace cxy
{
class Program
{
staticvoid Main(string[] args)
{
//创建AppDomain类型current,用于引用AppDomain.CurrentDomain
AppDomain current = AppDomain.CurrentDomain;
//输出程序的应用程序域的名称
Console.WriteLine("我是程序集cxy,我所在的应用程序域是{0}",current.FriendlyName);
Console.ReadLine();
}
}
}
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Cyz
{
class Program
{
staticvoid Main(string[] args)
{
//创建AppDomain类型 one,用于引用AppDomain.CurrentDomain
AppDomain one = AppDomain.CurrentDomain;
//输出one的基目录以及名称,上下文信息
Console.WriteLine("我是程序集Cyz,我的基目录是:{0}\n 我所在的应用程序域的名称和上下文策略是{1}",one.BaseDirectory,one.ToString());
//在当前的应用程序中加载程序集cxy.vshost.exe
one.ExecuteAssembly("cxy.vshost.exe");
Console.WriteLine("\n上面的cxy.vshost.exe和下面的cxy.vshost.exe位于不同的应用程序域\n");
AppDomain two = AppDomain.CreateDomain("Room-cxy");
//twou应用程序域装载(执行)cxy.vshost.exe
two.ExecuteAssembly("cxy.vshost.exe");
//输出two的基目录以及名称,上下文信息
Console.WriteLine("cxy程序集的基目录在:{0}\n cxy程序集所在的应用程序域的名称及上下文策略:{1}",two.BaseDirectory,two.ToString());
Console.ReadLine();
}
}
}
同类希望你喜欢:
作者:类菌体
出处:http://www.cnblogs.com/bacteroid/archive/2011/05/18/2050414.html
关于作者:在校学生
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接
如有问题,可以通过303323670@qq.com 联系我,非常感谢。