• 1. .NET 系统结构 1
  • 2. 目标对.net应用进行概览 了解什么是.net 了解.net与java的区别 .net的最新技术介绍2
  • 3. .net应用概览基于C/S的winform技术,请参看《学生管理系统》c/s版本。 基于b/s的asp.net技术,请参看《学生管理系统》b/s版本。 WAP网站 智能客户端 Web服务 控制台程序3
  • 4. .NET是什么?.NET是Microsoft为开发应用程序而创建的一个富有革命性的新平台,是微软今后十年的战略。 (1)目前版本运行在Windows操作系统上 (2) .NET是不是可以跨平台的? 答案:是的,例如Mono,该版本可以运行在几个操作系统上,包括各种Linux版本和Mac OS。还有许多这类项目正在开发中。4
  • 5. .NET可以做任何应用,不仅仅可以创建Windows应用程序、Web应用程序、Web服务和其他各种类型的应用程序,还可以在PDA设备和一些智能电话上使用Compact Framework(.NET Framework的一个子集)。.NET是什么?5
  • 6. .NET 兼容各种语言,主要的开发语言包括C#语言、C++、Visual Basic等,他甚至包括一些旧的语言,如COBOL,还有java的.net版本,如果这样算起来,.net包含的语言有20多种。 所有这些语言都可以访问.NET Framework,它们还可以彼此交互。C#开发人员可以使用Visual Basic程序员编写的代码,反之亦然。 .NET 具有诱人前景。 .NET是什么?6
  • 7. 微软的模仿史(小插曲)最初是靠BASIC语言起家 后来模仿PC_DOS,形成功能强大的MS_DOS 模仿麦金塔,形成功能强大的图形界面操作系统 (windows3.1、windows95、windows98、windowsNT、windows2000、windowsxp、windows2003、vista) 模仿Sybase数据库形成SQLSERVER、最后淘汰Sybase。 IE浏览器捆绑销售,淘汰了netscape。 正在模仿JAVA 7
  • 8. .NET与JAVAJAVA是B/S开发中最流行的语言,可以跨平台开发高效稳定的产品。 .NET=跨语言+跨平台。 .NET是一个可以兼容任何语言的具有跨平台特征的软件平台。 Java是用jvm实现跨平台的,.net呢? 答案:.net用类似于jvm的技术CLR(comman language runtime)来实现的 我们可以卸载.net framework来看看。 8
  • 9. .NET Framework的内容.NET Framework包含一个非常大的代码库,是.net程序运行的基础。 .NET Framework无所不包,但各取所需,不同的操作系统可以根据自己的特性,支持其中的部分或全部模块。例如,PDA支持所有的核心.NET功能,但不需要某些更深奥的模块。 9
  • 10. .NET Framework的内容Framework可以通过通用类型系统(Common Type System,CTS)在各种语言之间进行交互操作。 .NET Framework通过.NET公共语言运行库(Common Language Runtime,CLR)管理用.NET库开发的所有应用程序的执行。这个功能有点类似JAVA的VM(虚拟机)。 它引入托管代码的概念,运行在.NET Framework中的代码叫做managed code,反之叫做unmanaged code。 10
  • 11. MSIL和JIT在编译使用.NET Framework库的代码时,不是立即创建操作系统特定的本机代码,而是把代码编译为Microsoft中间语言(Microsoft Intermediate Language,MSIL)代码,这些代码不专用于任何一种操作系统,也不专用于C#。 Just-In-Time (JIT)编译器的任务是把MSIL编译为专用于OS和目标机器结构的本机代码。Just-In-Time反映了MSIL仅在需要时才编译的事实。 11
  • 12. CTS (公共类型系统) CTS定义了可以在中间语言中使用的预定义数据类型,所有面向.NET Framework的语言都可以生成最终基于这些类型的编译代码。 例如,Visual Basic 2005的整型实际上是一个32位有符号的整数,它实际映射为中间语言类型Int32。12
  • 13. CTS (公共类型系统) 13
  • 14. 托管代码 CLRCLR管理着应用程序,其方式是管理内存、处理安全性,以及允许进行跨语言调试等。 不在CLR控制之下运行的应用程序是非托管的,某些语言如C++可以用于编写这类应用程序,例如,访问操作系统的低级功能。但是,在C#中,只能编写在托管环境下运行的代码。我们将使用CLR的托管功能,让.NET自己与操作系统进行交互。 14
  • 15. 程序集程序集也叫装配件,所创建的MSIL代码存储在一个程序集中,程序集包括exe和dll。 程序集还包含其它资源文件,包括声音文件和图片等。 程序集中的元信息是完全自我描述的。不需要注册注册表就可以使用,部署应用程序就非常简单了,只需把文件复制到远程计算机上的目录下即可。 不需要目标系统上的其他信息,只需直接运行可执行文件即可(假定安装了.NET CLR)。 程序集之所以翻译为装配件,是因为可以通过许多dll来进行组合的。 15
  • 16. 查看与操作中间语言用反编译工具C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\ildasm.exe可以查看中间语言。 用C:\WINDOWS\Microsoft.NET\Framework\v3.5\csc.exe编译c#程序,比如: csc /t:exe /out:aa.exe program.cs。16
  • 17. 垃圾回收器引入垃圾回收(garbage collection)功能。 这种.NET方法可确保应用程序不再使用某些内存时,这些内存就会被完全释放。 .NET垃圾回收会频繁检查计算机内存,从中删除不再需要的内容。可能一秒钟内会进行上千次的检查,也可能几秒钟检查一次,或者随时进行检查。 这些都是自动的。 17
  • 18. 再次描述.NET使用某种.NET兼容语言(如C#)编写应用程序代码 18
  • 19. 再次描述.NET把代码编译为MSIL,存储在程序集中 19
  • 20. 再次描述.NET在执行代码时(如果这是一个可执行文件,就自动运行,或者在其他代码使用它时运行),首先必须使用JIT编译器将代码编译为本机代码 20
  • 21. 再次描述.NET在托管的CLR环境下运行本机代码,以及其他应用程序21
  • 22. 查看MSDN22
  • 23. .NET与JAVA的c/s开发比较Java的swing 与.net 的winform Winform因为有了深厚的控件基础使得开发c/s程序非常容易。 23
  • 24. .NET与JAVA的B/S开发比较Java的jsp与servlet技术 与.net 的webform 在jsp的意大利面条时代的时候,webform已经实现了代码分离的CodeFile技术,再加上viewstate机制使得开发b/s如c/s那么简单。 24
  • 25. .NET与JAVA的数据库连接比较Java的jdbc .net的ado.net 25
  • 26. .net的最新技术介绍mvc:Java的Struts、Spring mvc架构与微软的asp.net mvc framework ajax:Asp.net Ajax(2005年的Atlas到2007年的ajax框架) orm:ORM技术与.net (从Java的Hibernate到.net的NHibernate、LINQ) winfx:界面表现(WPF),企业级通讯(WCF),工作流引擎(WF), Windows CardSpace (信息安全) 其它: Silverlight(flash杀手) 工具 从framework2.0-3.0-3.5 从vs2005-vs2008 从Vsts2005-vsts200826
  • 27. 内容总结.NET Framwork是Microsoft为开发应用程序而创建的一个富有革命性的新平台。在.NET Framwork上可以实现跨平台开发。 .NET Framework代码库提供了丰富的代码供应用程序使用。 .NET Framework用CTS实现各种语言同一平台。 .NET Framework用CLR负责管理用.NET库开发的所有应用程序的执行 .NET Framework用CLR负责管理的是托管代码,用非安全代码(如:c++中使用的指针)编写的代码称为非托管代码 .NET Framework先编译成MSIL,然后由JIT编译成各操作系统指令代码 .NET Framework使用程序集,不用注册注册表。 .NET Framework实现自动垃圾回收。27