1、.NET程序设计,主讲教师:李璟 联系电话:13806419626 E-mail: ,教材与教学参考书,(1)教材:ASP.NET 3.5(C#)实践教程 邵良杉 主编 清华大学出版社 (2) C#网络应用编程基础马骏 主编 人民邮电出版社 (3)完全手册HTML+CSS+JavaSrcipt实用详解叶青 编著 电子工业出版社 (4)圣殿祭司的ASP.NET2.0开发详解使用C# 溪江华 主编 电子工业出版社,课程总成绩,总成绩: 考勤,占20%。 实验报告,占10%。 综合设计,占70%,分为: 设计说明书(电子版) 20% 演示与答辩 80% 综合设计可采用团队形式进行,每队12人。 演示
2、答辩时,团队的每个成员都需要参加,演示后,随机接受提问,老师将根据答辩情况针对每个成员的答辩表现单独打分。 综合设计上交的资料:电子版源代码及设计说明书。,综合设计题目,使用C#设计一个基于ASP.NET 2008的综合动态网站,使用ASP.NET 2008内置数据库SQL Server Express 2005数据库,网站至少有8个动态页面,题目如: 公共信息交流网 博客管理系统 仓库管理系统 新闻与公文发布系统 酒店管理 网上论坛 教务管理系统 医院管理系统 图书管理系统 网上超市、网上花店 其他 各团队的题目不允许重复,团队题目和团队成员需在答辩前二个月时注册,一旦注册,不可更改。,实验
3、报告要求,老师根据实验报告的质量按百分制给出分数。 必须写出本人实验后的实验体会,否则酌情扣分。 不允许抄袭实验报告,发现雷同的实验报告,一律退回,等同0分处理。 实验指导书中已给出的验证实验的源代码一律不用写在实验报告上,只给出实验题中要求学生自己完成的源代码即可,代码较长的情况下,可以打印,否则一律退回,直到重新整理后符合要求为止。 实验报告一律使用计算机学院专用实验报告纸。 实验报告务必按时交,每个实验的最后一次实验课交上一个实验的实验报告,如无特殊原因,老师将不再收取延迟交上来的实验报告。,本课课堂教授的主要内容,C#.NET(4学时+4学时) HTML+CSS+DIV(6学时+4学时
4、) ASP.NET+ADO.NET(14学时+16学时),时间和地点安排,课堂教学: 周二:YF201( 6、7节) 第1周周五:XX206(8、9节) 实验教学: 上机时间:2-16周周五8、9节 上机地点:XX207、XX209,教学内容(1),第1周周二 .NET概述、C#程序设计基础(一) 第1周周五 C#程序设计基础(二) 第2周周二 网页制作(一)、网页制作(二) 第2周周五 实验1:C#基本编程方法 第3周周二 网页制作(三)、网页制作(四) 第3周周五 实验2:C#面向对象编程 第4周周二 网页制作(五) 第4周周五 实验3:HTML网页设计 第5周周二 ASP.NET内置对象
5、 第5周周五 实验4:CSS+DIV 网页布局与样式 第6周周二 Web服务器控件(一)、Web服务器控件(二) 第6周周五 实验5:ASP.NET内置对象 第7周周二 Web服务器控件(三) 第7周周五 实验6:ASP.NET 服务器控件 第8周周二 ADO.NET+SQLServer,教学内容(2),第8周周五 实验6:ASP.NET 服务器控件 第9周周二 Web数据绑定技术(一) 第9周周五 五一放假 第10周周二 Web数据绑定技术(二) 第10周周五 实验7:ADO.NET管理数据库 第11周周二 ASP.NET Web应用开发 第11周周五 实验7:ADO.NET管理数据库 第1
6、2周周二 ASP.NET Web应用案例讲解(一) 第12周周五 实验8:.NET三层架构编程 第13周周二 ASP.NET Web应用案例讲解(二) 第13周周五 实验8:.NET三层架构编程 第14周周二综合设计答辩 第14周周五综合设计答辩 第15周周二 综合设计答辩 第15周周五 综合设计答辩 第16周周二 综合设计答辩 第16周周五 综合设计答辩,公共邮箱,用于上传课件和交流。(仅用于内部交流,不要外传,切记!) 邮箱地址: 密码:website,本课的学习方法,上课认真听讲。 及时到公共邮箱下载教学课件。 高质量并按时完成作业和实验报告。 购买或借阅参考书。 下载并阅读电子参考书。
7、 自行安装VS.NET2008开发环境,课下多进行上机练习。 多学习经典例程和案例。 多实战演练。 与老师同学积极交流互动。 团队开发。,第一讲 .NET概述,了解.NET框架。 了解C#语言的优点。 掌握C#控制台应用程序的基本结构。 重点和难点:.NET框架、C#控制台应用程序的基本结构。,第一讲 .NET概述,1.1 .NET概述 1.2 .NET框架概述 1.3 C#语言概述 1.4 C#控制台应用程序的基本结构,1.1 .NET概述,.NET是微软公司为了适应Internet高速发展的需要,同时为了与Sun公司的Java/J2EE/EJB竞争,于2000年提出来的一种跨语言、跨平台、
8、面向组件编程的新计算技术。 .NET适用于客户端程序、Web服务和因特网分布式应用的快速开发和敏捷开发 。 .NET技术由.NET框架和.NET开发平台VS.NET组成。 注:敏捷开发是一种可快速应对需求变化的软件开发方式。,VS.NET,VS.NET(Microsoft Visual Studio.NET)是一个多语言环境的完整的托管应用程序可视化集成开发平台,提供了大量的实用工具以提高工作效率,用于开发、生成、部署和运行.NET托管应用程序和XML Web服务。 VS.NET可生成ASP.NET Web应用程序、 Windows应用程序、控制台应用程序、网络服务(Web Service)、
9、智能设备应用程序。 VB、C#、VC+、J#等语言都使用这一相同的集成开发环境(IDE),这样就能够进行工具共享,并能够轻松地创建混合语言应用程序。 VS.NET最常用的功能就是开发ASP.NET Web应用程序(即ASP.NET网站)。,Visual Studio.NET的发展史,2001年,微软推出了Visual Studio.NET的第一个版本VS.NET 2002开发平台,基于.NET Framework 1.0。 2003年,微软发布了基于.NET Framework 1.1 的VS.NET 2003开发平台,增加了更多的API功能,具有了更高的安全性。 2005年,微软又发布了基于
10、.NET Framework 2.0的VS2005开发平台,加入了大量的API类库和控件,植入了适用于大型团队开发的各种优秀的复杂功能,分为团队版、专业版、标准版和速成版四个版本,是一种全面的、先进的、成熟的完全适应当前网络发展的高级软件开发平台。 2006年,微软发布了.NET Framework3.0,提供了一套新的API内核,这个版本成为Windows Vista操作系统的一部分,这个版本在构架上并没有什么大的变化。 2008年,微软又发布了基于.NET Framework 3.5的VS2008开发平台,在.NET Framework 3.0的基础上主要增加了AJAX网页应用开发技术,以
11、及.NET多重版本的自订功能。 2010年4月,微软发布了基于.NET Framework 4的VS2010开发平台,主要新特征是:支持云计算架构;搭配Windows 7;发挥多核并行运算威力;更好支持C+。 2012年,微软发布了基于.NET Framework 4.5的VS2012开发平台,最大的新特性主要是对Windows 8 Metro开发的支持。,2008年.NET开发框架版本的应用状况,实践证明, .NET 2.0使ASP.NET 2.0摆脱了很多以前ASP.NET版本不够完善的状况,加入了大量的类库API和控件,并已经发展成为了一种完全成熟的产品。它能将Web编程代码数量减少到7
12、0%或者更多,实现了快速应用开发。国内外绝大多数中小型企业都使用.NET 2.0来构建业务系统。.NET3.5在.NET3.0基础上主要增加了AJAX网页应用开发技术以及多重版本.NET的自订功能。目前,随着.NET 3.5日益被技术人员熟练地使用,越来越多的企业开始使用.NET3.5来构建新项目。,1,本课教授的.NET版本,本课教授的.NET版本是.NET3.5,其对应开发平台为VS2008。 注意:为了便于统一,同学们最后上交的综合设计的源代码也必须VS2008版的。,ASP.NET快速开发案例展示,计算机科学与技术学院网站-计算机基础理论课程群网站。 开发时间:1个月 工作量:100多
13、个页面。 特点: 快速开发 实现动态增删改及显示。,“计算机基础理论精品课程群”网站 快速开发技术分析,1.借助母版页、用户控件、ADO.NET等.NET软件复用技术,实现用一个动态网页显示多个页面(100多个页面)的功能。 2.后台使用kindeditor控件进行网站信息(文章)的动态增删改。,前后页面,后台页面,“计算机基础理论精品课程群网站” 功能演示,1.2 .NET框架概述,.NET框架(.NET Framework)是微软为Windows平台设计的一种托管编程模型。 .NET托管代码是受公共语言运行时CLR环境管制的代码,是由CLR环境而不是直接由操作系统执行的代码。 .NET托管
14、代码应用程序可以获得公共语言运行时CLR提供的服务,例如跨语言集成、自动垃圾回收、类型检查、安全支持、异常管理、线程支持、调试和分析等。,.NET框架,从层次结构来看,.NET框架包括两个主要组成部分: 公共语言运行时:是管理用户代码执行的一个运行时执行环境。 框架类库: 基类库:提供了一套开发人员希望在标准语言库中存在的基类库,包括集合、输入/输出、字符串。 数据类库:提供 了访问ADO和XML数据的类库。 两类应用模板: 传统的Windows应用程序模板(Win Forms)。 基于ASP NET的面向Web的网络应用程序模板(Web Forms和Web Services)。 注:Web
15、Service是一种基于互联网的分布式组件,互联网上的Web 应用程序都可以调用它完成特定的功能。例如天气预报 Web Service。,.NET框架,所有.NET应用程序都是托管代码。 .NET托管应用程序是由.NET框架提供的编译时和运行时技术来产生和运行,所以.NET托管应用程序必须在安装了.NET框架的计算机上才能运行。,.NET Framework 体系架构,VB,C+,C#,J#,Common Language Specification,ASP.NET Web Forms Web Services,Windows Forms,ADO.NET and XML,Base Class
16、Library,Common Language Runtime(CLR),Windows Operating System,Visual Studio .NET,1.2 .NET框架概述,1.2.1 公共语言运行时 1.2.2 公共语言规范 1.2.3 .NET Framework框架类库,1.2.1 公共语言运行时 (Common Language Runtime, CLR),CLR是.NET框架的基础,是管理用户代码执行的一个运行时执行环境,它提供JIT编译、代码管理、内存管理、框架类支持、类加载、异常管理、线程支持、类型检查、安全引擎和调试引擎等全方位的服务。 CLR保证了应用和底层操作
17、系统的分离,负责所有托管.NET应用程序的执行。,CLR的构成示意图,注:FCL,Framework Class Library,框架类库。,.NET托管代码的编译与运行,.NET是跨语言的,可以使用多种语言,如C#、C+、J#、VB等。 各种语言的.NET托管程序源代码,都被对应的语言编译器翻译为统一的MSIL(Microsoft Intermediate Language,微软中间语言)。 MSIL代码是一组可以有效地转换为本机代码且独立于CPU的指令。,.NET托管代码的编译与运行,为了使代码可最终在计算机上运行,必须先将MSIL代码转换为特定于CPU的代码,这通常是通过CLR中的JIT
18、(Just-In-Time,即时)编译器来完成的。 所谓即时编译器,是指CLR只是在托管程序被第一次实际执行时,才将其编译成本地代码。 如果一个托管程序在安装后从未被执行过,则不会被CLR翻译成本地代码。 如果一个托管程序在安装后被多次执行,也只需要被翻译(成本地代码)一次即可。 JIT编译器所产生的本地代码,显然比每次运行都需要靠虚拟机解释执行的Java字节码更快速和高效。,.NET托管代码的编译与运行 示意图,1.2.2 公共语言规范 (Common Language Sepacification,CLS),.net平台是基于多种语言(包括C+、C#、VB、J#等)的开发平台。 公共语言规
19、范 (CLS)规定了所有.NET语言在声明、定义和管理所有类型时都应遵循的规则,是所有针对.NET的编译器都必须支持的一组最低标准,以确保所有.NET语言的互操作性。,1.2.3 .NET Framework框架类库 (FCL,Framework Class Library,框架类库),CLR负责与底层操作系统打交道的环节,而CLR提供的系统功能均封装在.NET Framework框架类中,开发人员只要通过调用.NET Framework框架类即可访问系统功能。 .NET Framework 框架类库是一个综合性的面向对象的可重用类型集合(包括值、结构、枚举、类、委托和接口类型),提供了Int
20、ernet和企业级开发所需要的各种功能,完全支持Web标准及其应用,而且使用简单、扩充方便,是建立.NET应用程序以及组件的基础。 .NET Framework 框架类库是按照命名空间组织命名的,.NET Framework框架类库有数百个命名空间,每个命名空间有上千个类。,命名空间,命名空间是一种组织.net程序中出现的不同类的方式,它可以最大程度地减少名称相似的类和方法引起的混淆。 命名空间在概念上与计算机文件系统中的文件夹有些类似。与文件夹一样,命名空间可使类具有唯一的完全限定名称并易于查找和记忆。 一个 .net程序包含一个或多个命名空间。 除了使用.NET框架类库中包含的命名空间,程
21、序员可为自定义的类定义命名空间,并引用该命名空间。 例如, .NET Framework框架类库中最常用的命名空间 System 包括 Console 类,该类包含读取和写入控制台窗口的方法。 System 命名空间还包含许多其他命名空间,如 System.IO 和 System.Collections。,命名空间示意图,System,.NET 框架类库中的命名空间举例,注:.NET框架类库所有命名空间详见帮助文档中的筛选依据为“未筛选”,查找为“ .NET Framework, 一般参考”之内容中“.NET Framework 类库参考”。,.NET Framework 框架类库参考,1.3
22、 C#语言概述,C#是从C和C+派生来的一种简单、现代、面向对象和类型安全的编程语言。C#是.NET平台上最重要的语言之一,C#的重要性体现在以下两个方面: C#是Microsoft专门为 .NET Framework量身定做的。 C#是面向对象语言集大成之作。C# 吸取了C+和Java语言20多年的使用经验。,C#的主要优点:,作为专门为.NET设计的语言,C#不但结合了C+强大灵活和Java语言简捷的特征,还吸取了VB所具有的易用性。 C#提高了开发者的效率,同时也保持了开发者所需要的强大性和灵活性,致力于消除编程中可能导致严重结果的错误。,C#与C+语言的比较,C#语言和C+各有自身的优
23、点,主要包括: 执行效率:C+编译出来是真正的可执行代码,而C#仅仅是一个中间态的代码,需要CLR才能执行,因此执行效率上明显低于C+代码。 内存管理:C+语言需要程序显式地删除动态分配给堆的内存,易造成内存泄露;而C#语言采用自动垃圾回收机制,避免了内存泄露,有利于系统的稳定性。 适用应用领域:C#适用于快速构建网络应用,而C+则适合于写对性能要求较高的应用,如驱动程序等。,C#语言与Java语言的比较(1),C#语言和Java语言都是网络编程语言,语法和功能非常相似,但也有很多不同点: 运行环境 Java的运行环境是JRE(Java Runtime Environment),只限于使用Ja
24、va一种语言。 C#的运行环境是CLR(Common Language Runtime),提供了对多种语言(C#、VB、C+、J#等)的支持。 中间语言处理 Java源代码可以被编译成一种中间状态的字节代码,然后由Java虚拟机来解释执行这些字节代码,执行速度慢。 C#代码被编译成微软中间语言代码(MSIL代码),MSIL代码第一次被CLR执行时,会被JIT编译器编译成本地代码,以后再执行时直接执行本地代码即可,执行速度快。,C#语言与Java语言的比较(2),操作系统 Java是跨平台的,可应用于不同的操作系统上。 C#只能应用在Windows操作系统上。 主要服务对象 Java的主要服务对
25、象为一些需要达到高安全性、高伸缩性、跨平台等要求的大型企业。 C#主要服务对象为一些需要提高开发速度降低成本的中小企业,因为C#以快速开发和敏捷开发而著称。,1.4 C#控制台应用程序的基本结构,1.4.1 命名空间调用方法 1.4.2 C#控制台应用程序的基本结构 1.4.3 创建C#控制台应用程序的步骤 1.4.4 C#程序代码注释 1.4.5 命名约定,1.4.1命名空间调用方法,在应用程序中如果要调用命名空间下某个类提供的方法,可以使用下面的语法:命名空间.命名空间命名空间.类名.静态方法名(参数, );或命名空间.命名空间命名空间.实例名.方法名(参数, ); 例如:System.C
26、onsole.WriteLine(“Hello World”);为了快速引用需要的功能,一般在程序的开头引用命名空间来简化代码书写形式。引用命名空间的形式如下:using System;程序中改为:Console.WriteLine(“Hello World”);,如: class HelloWorld static void Main( )System.Console.WriteLine(“Hello World”); 可改为: using System; class HelloWorld static void Main( )Console.WriteLine(“Hello World”)
27、; ,1.4.2 C#控制台应用程序的基本结构,下面通过一个最简单的控制台应用程序Welcome .cs来说明C#控制台应用程序的基本结构: using System; namespace SimpleConsoleApp class Welcomestatic void Main(string args) Console.WriteLine(“Welcome!”);Console.ReadLine(); ,C#控制台应用程序的基本结构,使用using关键字指明引用的命名空间。 最好使用namespace关键字声明应用程序本身的命名空间,便于不同文件中但属于相同命名空间的类之间可以相互调用。
28、C#源程序文件的扩展名为.cs,任何一个程序功能都必须封装在某个类中,使用class关键字声明类。 一个应用程序至少由一个文件组成,一个文件中至少有一个类。建议:每个文件放一个类,文件名和类名相同。 一个C#控制台应用程序中必须有一个类包含应用程序的入口点Main方法。 所有语句都以分号“;”结束。,Main方法,Main方法中的M必须为大写字母。 Main方法可以使用4种签名: static void Main() static void Main(string args) static int Main() static int Main(string args) 其中, 1)Main()
29、必须是静态(static)的方法。 2)Main()的参数args是在运行期间从应用程序的外部接受命令行参数方法。如,winapp “myfile.txt” 3)Main()的返回值int值,用于表示应用程序如何终止,通常用作一种错误提示(但不是强制的),一般情况下,返回0反映了“正常”的终止。,1.4.3用C#.NET创建控制台应用程序,控制台应用程序也叫Console应用程序,用于在命令行方式下运行,适用于对界面设计要求不高、偏重于快速实现程序逻辑功能的场合。 例1 创建并编写一个控制台应用程序,编写程序完成下列功能:输出“Welcome!”步骤:新建项目Visual C#控制台应用程序,
30、1.4.4 C#程序代码注释,单行: “/”之后的本行文字视为注释。 多行:以“/*”开始,以 “*/”结束,任何介于这两个符号之间的文字都视为注释。,1.4.5 命名约定,(1)类名、方法名和属性名均使用帕斯卡命名法,即所有单词连写,每个单词的第一个字母大写,其他字母小写。如:HelloWorld、GetData等。 (2)变量名、一般对象名以及方法的参数名均使用骆驼命名法,即所有单词连写,第一个单词全部小写,其他每个单词的第一个字母大写。如:userName、userAge等。 (3)控件对象名使用骆驼命名法,而且使用控件名或控件名简写在前、有意义的名称在后的方式。例如:buttonName、buttonAge等。,