.NET架构的核心开发技术

pgcat 2001-07-26 09:08:15
加精
不可否认,应用软件的开发正在经历一次巨变——将最终增强开发人员的生产力并开启一道通向全新概念的应用程序的大门。

  新型的开发模式正逐渐被推广,将分发软件演变成一种服务还有待于所有开发人员的共同努力,而互联网却将彻底改变应用程序的开发模式和配置方式。

  传统上,软件开发人员通过集成本地系统服务的方式开发应用程序。这种模型使开发人员有权使用一整套丰富的开发资源,精确控制应用程序的性能。

  如今,开发人员在很大程度上已挣脱了这种模式的束缚,致力于构建具有复杂结构的n层系统,这种系统能将网络中各处的众多的应用程序进行集成,并大大提升应用程序的价值。这样,开发人员便可集中精力挖掘软件独特的商业价值,而不必日夜为如何构建基本结构伤脑筋了。令人欣喜的局面将应运而生:软件投放市场的时间大大缩短、开发人员的编程效率明显提高,最为根本的是开发出质量上乘的软件。

  我们正在进入计算机发展的下一个阶段——基于Internet的阶段,特别是基于Internet核心技术——XML扩充标记语言。尽管多层应用程序开发将焦点集中在建造大型企业级应用程序上,但现在XML使得能够创建可用于任何人、任何场所的大型应用程序。它扩大了应用程序的使用范围。这样,软件就不是只能从CD上安装的某种东西,而是一种服务——就像呼叫服务或者计费电视一样,可以通过通信媒体来预订。

  这一切,是通过将紧密联接的、高效的n层计算技术与面向消息的、松散联接的Web概念相结合来实现的。我们将这种计算风格称为Web Service(Web服务),它的出现标志着人类已经迈入应用程序开发技术的新纪元。Web服务是一种应用程序,它可以使用标准的互联网协议,像超文本传输协议(HTTP)和XML,将功能纲领性地体现在互联网和企业内部网上。

  我们也可将Web服务视作Web上的组件编程。

  从理论上讲,开发人员通过调用Web应用编程接口(API),将Web服务集成进他们的应用程序,就像调用本地服务一样。两者区别在于前者能够通过Internet发送到某个远程系统的服务上。例如,像微软护照(Microsoft Passport)这样的服务,可以给开发人员提供应用程序身份确认的功能。通过对护照服务编程,开发人员就可以利用护照服务的基础体系,实现维护用户数据库,确信服务开启和运行以及正确地备份等等功能。

  ■松散联接
  跨越网络的分布应用程序逻辑的概念并不是一个新名词,但跨越Web的分布和集成应用程序逻辑的概念却是。

  此前,像微软的DCOM (Distributed Component Object Model )、Object Management Group公司的CORBA (Common Object Request Broker Architecture )以及Sun公司的RMI(Remote Method Invocation )这些分布式对象模型被称为分布应用程序逻辑。运用这些系统结构,虽然服务放在远程系统上,开发人员仍然可以像原来本机编程那样维护和丰富应用程序的功能。

  但这种系统的问题是不能扩展到Internet。因为该体系的基础是服务器上的客户端和服务器的紧密联结。这意味着两者必须是同质的基础体系,但也就常常意味着这种系统是非常脆弱的,如果有任何一端接口发生变化,另一端程序必然就会被中断。举个例子,如果服务器应用程序的接口改变了,那么客户端也将会失效。

  开发中要求有一个紧密联接的系统这本身没有错,而且许多应用程序也一直就是建立在这些系统上的。但最终,随着时间的流逝,这种模型是不会扩展的。因为众多公司企业要求相互沟通,这很难保证会有一个统一的系统,同样也很难保证,你的客户的服务器会有你所需要的完全一致的系统,你甚至都不可能猜想到它所用的是什么操作系统、什么对象模型和什么编程语言。

  相反,Web服务的联接非常松散。这就意味者你可以在联接的任何一端任意改变接口,而应用程序可以不受影响地照常工作。从技术上说,这主要是由于使用了拥有稳固性能的基于消息的异步技术,如像HTTP、SMTP等Web标准协议。而且最重要的是,XML可以帮助实现其通用性。

  作为一个宏伟的计划,.NET的路还很长。今后的发展无论是崎岖坎坷还是一片光明,在对新技术和IT产业的推动上,微软都是功不可没的。

  消息系统将通信的基本单元打包进自描述的、运用于网络通信层的包(被称做消息)。消息系统和分布式对象系统的关键区别在于,发送者需要对接收者的系统了解多少。使用分布式的对象系统,发送者需要帮助接收者考虑许多问题,比如应用程序将如何激活和卸载、调用的是什么接口等等。

  另一方面,消息系统在通讯层上达成协议。发送者只需考虑的是接收者能够知道信息正被发送。发送方不需要了解一旦消息被收到后将会如何处理,也不需要对发送方和接收方之间作任何考虑。

  在通讯层上达成协议的优势是显而易见的。例如,协议能够使接收方随时作修改而无须中断发送方,只要该协议始终明白是同一条消息。接收方不用中断任何当前应用程序,可以自由升级和改进。更进一步说,就是发送方不用要求任何特殊的软件就可以和接收方交谈,只要他发送的是符合格式的信息,接收方就可以作出应答。

  ■XML的通讯基础:SOAP
  建造跨越Web的 Web服务的工作和异步系统的关键是使用统一的数据说明格式,这就是XML。特别说明的是,Web服务器在三方面需要XML来实现:基础语言、服务说明以及服务发现。

  ● SOAP:系统在底层需要有统一语言,特别地,应用程序相互通讯需要建立一套规则来说明如何表示不同数据类型(如整数和数组),如何表示命令(如进行数据处理)。同时,应用程序在需要时还可以扩充这种语言。简单对象存取协议SOAP(Simple Object Access Protocol),这是XML的一种实现,代表了一组如何表示和扩充数据和命令的规则集。

  ● WDSL(Web Services描述语言) :一旦应用程序有了如何表述数据和命令的基本规则,他们就需要如何描述可以接收的特定数据和命令。应用程序只是声明如何接收整数是不够的,他们必须用明确的方法声明。如给你两个整数,把它们相乘。WDSL是一种XML语法,开发人员和开发工具可以用它来表示Web服务的功能。

  ● SOAP Discovery:最后需要一组规则来定位服务的描述——对于开发者和开发工具在什么地方可以发现一个Web服务。SOAP Discovery规范提供了一组规则让开发者和开发工具可以自动发现Web服务的描述。

  一旦这些准备好了,开发者可以方便地发现Web 服务,把它作为一个对象集成进他们的应用程序,并使应用程序和Web服务相互通讯。

  ■.NET框架:Web服务引擎
  很显然,许多基本结构都需实现上述进程对开发人员和用户的透明化。.NET框架(.NET Framework)提供此基本结构。从.NET框架角度看,所有组件都可以是Web服务,而Web服务也仅是一种组件。实际上,.NET框架提取出微软组件对象模型(COM)的精华,将它们与松散联接计算的精华有机地结合在一起,生成了强大、高效的Web组件系统:简化程序员的“管道”操作,深入地集成了安全性,引进了基于互联网的操作系统,极大地改善应用程序的可靠性和可扩展性。

  .NET框架由三个主要部分组成:通用语言运行库、一套层次结构的统一类库和一个被称为ASP+的高级ASP版本。

  有关.NET的许多东西让人印象深刻,尤其是微软充分传达出的对互联网作为未来主要技术平台的首肯,和在某些方面对公开的标准的欢迎。

  .NET的确牵动着每个人的猜测……

  1.通用语言运行库

  除了通用语言运行库的字面含义外,在开发阶段和运行过程中它还扮演着另一个角色。在组件运行时,运行库负责管理内存分配、启动和中止线程和进程、强化安全系数,同时还调整任何该组件涉及到的其他组件的附件配置。在开发阶段,运行库的角色稍微有点变化:因为很多方面可以自动实现(例如内存管理等)。运行库可以使开发过程变得非常简单,特别是同今天的COM编程相比更是如此。特别典型的是,像Reflection这样的特性可以极大地缩小开发人员将商业逻辑转化成一个可重复使用的组件而不得不编写的代码数量。

  运行库对于编程语言来说并不是新鲜的东西。实际上每一种编程语言都已包含一个运行库。Visual Basic开发系统有最明显的运行库(正规名字为VBRUN),Visual C++也有一个MSVCRT,此外,像Visual FoxPro、Jscript、SmallTalk、Perl、Python和Java等等都如此。.NET框架的关键角色就是它提供了一个跨所有编程语言的统一环境。

  2.统一编程类

  .NET框架类为开发人员提供了一套可以使用的统一的面向对象、异步、层次结构的可扩展类库。现在,C++的使用者使用Microsoft Foundation Classes,Java程序员使用Windows Foundation Classes,Visual Basic的用户使用Visual Basic APIs。微软用.NET框架统一了这些不同的框架。结果是,开发人员不用非去学多个框架来完成自己的工作。而且,通过创建一套跨编程语言的通用API,.NET框架可以实现跨语言继承、纠错处理以及程序调试。实际上,从JScript 到C++的所有编程语言,对于.Net框架都是相互等同的,开发人员可以自由地选择他们想使用的任何语言。

  .NET是一种全新的平台,它将对现有的所有代码产生影响。盖茨说:“微软所有的产品都会被涉及。我们的整个战略是围绕这个平台展开的。”

  3.ASP+

  ASP+是使用 .NET框架提供的类库构建而成的,它提供了一个Web应用程序模型,该模型由一组控件和一个基本结构组成。有了它,Web应用程序的构建变得非常容易。开发人员可以直接使用ASP+控件集,该控件集封装了公共的、用于超文本标识语言(HTML)用户界面的各种小组件(诸如文本框、下拉选单等等)。实际上,这些控件运行在Web服务器上,它们将用户界面转换成HTML格式后再发送给浏览器。在服务器上,控件负责将面向对象的编程模型呈现给Web开发人员,这种编程模型能提供面向对象的编程技术拥有的丰富功能。ASP+还提供一些基本结构服务(诸如会话状态管理和进程循环),这些服务进一步减少了开发人员要编写的代码量,并使应用程序的可靠性得到了大幅度提高。ASP+还允许开发人员将软件作为一项服务进行传送。通过使用ASP+ Web服务功能,ASP+开发人员只需进行简单的业务逻辑编程,而由ASP+基本结构负责通过SOAP传送服务。

  尽管ASP+还未正式发行,但它已在改进应用程序功能方面创造出了令人难以置信的奇迹:在现有基于ASP的应用程序性能基础上,性能优化了三倍之多,更为激动人心的是生产效率再度攀升。

  ■.NET框架的核心部分
  .NET框架有几个要素值得一提。首先是它的安全系统和配置系统。这两个系统协同工作,有力地遏止了运行不安全代码的可能性,并大幅度减少了号称“DLL Hell”的对应用程序进行配置时所面临的挑战。

  安全系统是一个高度细化、基于事实的系统,它赋予开发人员和管理员多种代码处理权限(而不仅仅是“on”或“off”)。将来,还会根据代码本身的核心要素来决定如何实施上述权限。

  例如,当.NET框架应用程序被下载到某一系统中时,它会申请一组权限(诸如对临时目录的写入权限)。运行时将收集有关应用程序的事实信息(诸如:它是从何处下载的、是否用了有效签名、甚至它访问系统的准确程度),并按管理策略决定是否允许应用程序运行。运行时甚至还可告之应用程序它无法授权申请的所有权限,并允许应用程序自行决定是否继续运行。

  有这种安全系统作保障,许多应用程序配置问题便会迎刃而解。开发人员和管理员(最终是用户)所面临的最大挑战之一是版本的管理问题。如果在您新装了某个应用程序之后,一切都陷于瘫痪状态,而在这之前系统一直运行得非常良好,那么最大的可能是新安装的应用程序重写了一些共享库,并极有可能修正了现有应用程序正使用的程序错误。这种情况出现的频率很高,以致人们将它称为:“DLL Hell”。

  .NET框架拥有的几项高级功能可以彻底消除“DLL Hell”现象。首先,它有一个非常强大的内部命名系统,能够有效地防止两个库因互相重名而被错当为对方的情况发生。除此之外,它还提供一项被称作“side by side”配置的新功能。如果前例中新安装的应用程序确实重写了共享库,现有应用程序可对该库进行修复。等现有应用程序再次启动时,它会检查所有的共享文件。如果发现文件被更改,同时这些更改又是不兼容的,则它可以请求运行时提取一个它可以使用的版本。得益于强大的安全系统,运行时可以安全地执行该操作,这样应用程序就完成了本身的修复工作。

  ■编者语
  人们总是喜欢不厌其烦地发表诸如“互联网改变了一切”的陈词。同样地,在谈论互联网给人类带来的影响时,总是情不自禁地使用广告式的夸张语,以表达对互联网的推崇。不过,互联网的确彻底改变了应用程序的开发模式和配置方式。将分发软件演变成一种服务还有待人们的共同努力,XML是实现这个梦想的重要手段。.NET框架是微软开发人员战略的核心内容,它旨在帮助开发人员轻松地构建、配置和运行Web服务。

  总之,.NET的最先受益者,将是我们的开发人员。.NET的路还很长,今后的发展无论是崎岖坎坷还是一片光明,在对新技术和IT产业的推动上,微软都是功不可没的
...全文
446 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wingxh 2002-01-28
  • 打赏
  • 举报
回复
ccBoy(小气的神):

我真佩服你!!!!!
你的文章写的--易于中的!!!!!

佩服!!!!
pingfong 2001-08-06
  • 打赏
  • 举报
回复
据我理解.NET
将软件体系扩展为internet模式.
软件是一种移动的代码与服务.


大家多提看法见解.
关注新思想可能会抓住机遇.
ccBoy 2001-07-30
  • 打赏
  • 举报
回复
太理论了,你是不是MS“传道士”部门的?听说MS现在专门成了一个为Net传道解惑的部门,做得工作类似IBM当年说四海一家得解决方案一样,推广.Net技术,让更多的人知道dotnet。

其实目前dotnet让人期待或唯一值得注意的是SOAP。至于上面讲的种种好处,只能是静观。专家的建议是,静观但也别闲着,趁这个时间学Java。MS想渐渐并列成为另一个流派的主力,操作平台一直是他垄断,但他发现技术上Java却是最大的垄断,执掌着最大的技术流派。

开发人员会是最先的受益者,是这场战争的主力和转折点,MS要做的是让更多的开发人员知道dotnet,使用dotnet。让更多的java开发人员转向dotnet,使用dotnet。
Againstwind 2001-07-30
  • 打赏
  • 举报
回复
好!
superjs 2001-07-27
  • 打赏
  • 举报
回复
支持
qinglinmeng 2001-07-26
  • 打赏
  • 举报
回复
.Net精品就业班课程表 : 1、.Net基础加强(10天) 核心技术课程 常用数据结构(List、Dictionary、Array)、多态、常用设计模式、反射、常用.net类库、泛型、IO流、委托事件、正则表达式、XML、反射、GC等。 2、数据库开发及ADO.Net(6天) 核心技术课程 数据库开发基础、Microsoft SQLServer基础、SQL语言基础、索引、事务、SQL语言高级技术(空值处理、聚合与分组、数据分页、Union、日期函数、类型转换函数、流控函数、表连接、子查询、存储过程、触发器)、数据库设计范式、数据库调优。 ADO.Net(行集、数据集、类型化数据集、SQLHelper、SQL注入漏洞防范、数据绑定)。 3、三层架构MIS项目(5天) 查看项目演示 功能点 本项目基于流行的三层架构(DAL+BLL+UI)。 主要功能点:高安全性的用户管理体系、高安全性的异构系统数据导入导出、拼音检索、复合检索、无限级次数据管理、个性化邮件群发、Excel文件导入导出。 技术点 ADO.Net技术应用、SQLServer、MD5安全算法、基于NPOI的Excel文件处理、树状结构数据处理、递归、CodeSmith、代码生成器、三层架构。 项目说明 这是一个用WinForm技术实现的系统,传智播客在开课的半个月就安排一个项目,体现了传智播客“项目驱动学习”的先进教学理念。 4、网页开发与JavaScript(7天) 查看案例演示 核心技术课程 HTML基础加强、css(包含Div+CSS布局)、JavaScript、Dom(事件、window对象、document对象、对话框、定时器、粘贴板、动态Dom、跨浏览器兼容性解决方案、JS压缩和CDN、Internet Explorer Developer Toolbar)、JQuery(JQuery函数、隐式迭代、链式编程、id选择器、tag选择器、CSS选择器、层次选择器、表单选择器、过滤选择器、复合选择器、节点导航、节点操作、样式操作、事件、动画、JQuery Cookie、JQuery Live、JQueryUI)。 课程说明 CSS、JavaScript是ASP.Net开发的基础,把这些掌握好了就能很轻松的学会ASP.Net;Dom是实现网页动态效果的技术,在网站越来越个性化年代,招聘企业对应聘者的Dom水平要求非常高;JQuery是近几年异军突起的JavaScript框架库,几乎成了Web前端开发事实上的标准,大部分企业都是使用JQuery进行Web前端的开发。 学完了这阶段课程,学员将学会开发主流网站的前端效果,比如:焦点图、滚动展示图、网页防复制、网页自定义菜单、WebOS、美女时钟、无刷新评论、评分控件、表格特效、图片悬浮详细信息、微博界面、QQ消息框效果、Div对话框等。 5、ASP.Net开发(12天) 核心技术课程 自己动手写Web服务器(Socket、多线程)、ashx模式Web开发、ViewState、Cookie、Session、Http协议、Web开发基本原则、XSS漏洞防范、Request对象、Response对象、Server对象、虚拟路径、HttpHandler深入、ASP.Net生命周期、WebForm原理、服务端基本控件、WebShell漏洞防范、HTML服务端控件、验证框架、MasterPage、数据绑定控件(ObjectDataSource、列表类绑定控件、GridView、FormView、ListView、Repeater、高效率分页)、CKEditor、Membership、缓存、互联网调优(SEO、HTML压缩、页面静态化、移除ViewState、表单GET化)、URL重写、错误处理、AJAX(XMLHTTP、JQuery AJAX、Json)、全局文件、HttpHandler与HttpModule、IIS配置。 课程说明 由于微软对ASP.Net进行高度封装,因此ASP.Net入门非常简单,开发人员不需要了解HTML、JavaScript、Http协议也可以快速开发出一个Web系统,正因为如此,社会上充斥着大量这样的“拖控件的开发人员”,使得很多Java、PHP等语言的开发人员诋毁ASP.Net开发人员的时候经常会说“你们什么都不懂,就会拖控件”。ASP.Net的快速开发是ASP.Net非常大的一个优点,可以加快开发效率,这是行业的发展趋势,但是局限于这样的“傻瓜化开发方式”的开发人员的竞争力和成长性都是非常有限的,遇到ASP.Net一些高级技术(比如ASP.Net MVC、SEO、网站调优、服务端客户端混合编程、AJAX等)的时候就完全不能胜任。通过上一个阶段的HTML、JavaScript、Dom的学习,学员已经有了很好的HTML、JavaScript基础;在ASP.Net课程的一开始,不是直接教学员怎么拖ASP.Net控件进行快速开发,而是通过ashx的模式开发原始的动态网站,让学员明白“请求—处理—响应模型”、“Http协议、Http无状态”、“c#代码渲染生成浏览器端JavaScript”、“ViewState的作用”、“Session的原理”等这些基本而又重要的原理,从而扫清后面ASP.Net知识学习的基础性障碍。 由于访问量非常大,因此互联网项目的开发对ASP.Net开发人员的要求非常高,所以我们安排了互联网调优、缓存、网站防黑等内容。 ASP.Net中控件数量是非常多的,讲解ASP.Net的教材通常要上千页,让初学者望而生畏,其实ASP.Net大部分控件相似性非常强的,同类型的控件学会了一个那么其他控件也就很容易学会了。比如只要学会了DropDownList,那么RadioButtonList、ListBox、CheckBoxList、BulletedList等几乎不用学就会用;再比如只要学会了ListView,那么Repeater、GridView、FormView等控件也是触类旁通。传智播客认真钻研教学,对知识进行分类、整理、提炼精华,让学员在短时间内掌握ASP.Net技术。 ASP.Net中有一些技术是有局限性的,传智播客根据这些技术在企业中的实际应用情况进行了调整、补充。比如项目中几乎没有在UI层直接访问数据库的,而是采用三层架构,因此我们不讲解UI层直连数据库的控件SQLDataSource,而是把主要精力放在讲解三层架构开发模式。再比如ASP.Net内置的AJAX解决方案UpdatePanel只在部分要求不高的内网项目中才被使用,因此我们在讲解UpdatePanel的使用和原理之外,把更多的时间放在讲解企业中用的最多的JQuery AJAX解决方案上。 6、B/S系统项目(7天) 项目说明 1、网上图书商城。这是一个典型的B2C网上商城,使用经典的复杂三层架构(工厂模式)进行开发。涉及图书管理、搜索、订单管理、导航管理等核心模块。在讲解ASP.Net基础后安排这样一个B2C网上商城系统,让学员在实际项目中将学到的知识学以致用。 2、办公自动化OA系统。这是一个典型的基于ASP.Net技术的OA协同办公项目,包含了权限管理、公告管理、文档管理、工作流、论坛管理、新闻模块管理、人员管理等典型的OA系统模块。 3、数据采集和邮件群发。这是一个基于多线程的邮件营销平台,核心技术包括网络爬虫、多线程、HTML解析、邮件发送、生产者消费者模式等。 注:以上三个案例,上课时会根据每个班的课堂反馈选择其中一个案例予以讲解学习。 7、如鹏网项目(9天) 查看项目演示 功能点 站内搜索、栏目管理、视频播放(完全模仿优酷视频页面)、焦点图、静态页面生成(新浪、搜狐等大型网站普遍采用的技术)、文章管理、无刷新评论、评论的无刷新分页、敏感词过滤、用户管理、友情链接管理、缓存管理、广告位管理、RSS输出、水印设置、无刷新上传图片、搜索引擎优化设置、数据备份恢复、伪静态设置、网上商城、订单管理、在线支付(支持支付宝、财付通、块钱等第三方支付平台)、网站调优(数据库优化、缓存、静态页、CSS Spirit、js压缩)。 技术点 搜索引擎技术:Lucene.Net、多线程开发、爬虫技术、网页分析、正则表达式、Log4Net日志框架、Quartz.Net定时作业调度。 大型互联网开发技术:代码生成、网页静态化、基于JQuery的Web2.0页面开发、AJAX、SEO、网站调优、采集器、RSS/XML、网站防黑(防XSS攻击、防注入漏洞攻击、防CC攻击、防挂马、防盗链、敏感词过滤、广告帖智能过滤)、IIS管理与调优、流量分析、第三方脚本嵌入(广告、统计代码、内容联盟等)、图片服务器分离。 项目说明 如鹏网项目是已经上线三年的网站,日访问量最高20000人次,网址www.rupeng.com。本系统旧版本基于PHP、J2EE技术,由如鹏网开发者亲手操刀用.net重写新版本。系统分为前台Web界面、后台管理界面、站内搜索、监控客户端四个子系统。 大型互联网站由于访问量非常大,因此不是那些单纯用ASP.Net控件拖拽开发的开发人员能够开发的,也不是闭门造车能够造出来的,必须是在实际项目中经过无数访问者的使用、反馈、修改才能做出来的。搜房网、汽车之家等大型网站中用到的网站静态化、图片服务器分离、高性能缓存、HTML/JS压缩、CDN、CSS Sprite、负载均衡、Memcached、镜像服务器同步等问题不是那些随手写出来的所谓在线商城、电子商务系统所所能够涉及到的。 这个项目完全按照高访问量互联网站进行设计,通过这个项目,学员不仅可以在实战中巩固对前面学习的ASP.Net、ADO.Net、WinForm等知识的掌握,还可以掌握网站防黑、缓存、SEO、静态化、搜索引擎技术、AJAX等大型互联网开发中涉及到的技术。 8、.Net新技术(Windows Phone、ASP.Net MVC)(6天) 项目说明 未来是移动互联网的时代,未来将是Windows Phone、Android、iphone三足鼎立的时代,掌握了移动开发的技能的人是就业市场的抢手货。微软推出的Windows Phone平台是微软在移动互联网时代的一个重量级产品,微软对于WindowsPhone7的推广力度非常大,因此很多公司也开始进行Windows Phone7产品的研发,2011年下半年Windows Phone7开发人员的需求将会出现井喷,为了帮助学员掌握移动3G开发技术,传智播客.Net班加入了Windows Phone开发课程,采用传智播客独创的WP7Simulator教学平台,学员可以做出一个基于云计算架构的LBS系统。点击查看传智播客独创WP7Simulator教学平台。 ASP.Net MVC是微软推出的区别于ASP.Net WebForm的Web开发新技术,由于ASP.Net MVC解决了ASP.Net WebForm的很多缺点,非常适合大型、中型项目的开发,一经推出就受到了.Net开发社区的追捧,很多.Net开发人员的职位要求中都提到了MVC,可见掌握ASP.Net MVC技术必将提升自己就业的砝码。 9、就业指导(2天) 项目说明 总结以往所学知识,讲解《传智播客.Net面试、笔试宝典》,介绍简历、笔试、面试等所需的知识和技巧。
本人资源全部免费,更多资源,请加关注!! ==================================== 作者:(美国)麦克唐纳(Matthew MacDonald) 译者:施宏斌 马煜 Matthew MacDonald,曾荣获微软最有价值专家称号,并通过了微软的MCSD认证,是一位知名作家、教育家。他在编程方面作出了许多重要贡献,撰写了多本有关.NET编程的经典书籍。除本书外,Matthew的著作还包括Pro Pro .NET 20 Windows Formsand Custom Controls(Apress),Pro ,NET 2.0 Windows Formsand Custom Controls in VB2005(Aptress)和Pro WPF Windows Presentation Foundation in .NET3.0(Apress)。 ===================================================== 欢迎阅读《ASP.NET3.5从入门到精通(C#2008版)》!《ASP.NET3.5从入门到精通(C#2008版)》提供了最新、最全面的ASP.NET入门知识。ASP.NET是一个开发现代Web应用程序的架构。使用ASP.NET可以开发出安全、极速并具有高度可扩展性的Web应用程序。ASP.NET的最大优势在于,它包含了大量现成的功能,比如网站导航、数据绑定、主题和用户管理等。使用ASP.NET平台,可以创建从小型动态个人网站到大规模电子商务网站的任何类型的Web应用程序。 《ASP.NET3.5从入门到精通(C#2008版)》假定读者只具有基本的C#语言知识,因此在《ASP.NET3.5从入门到精通(C#2008版)》的开始部分将对C#进行简要的介绍,具有较多C#编程经验的人也可以将这些基础性的介绍作为一个快速的回顾。在《ASP.NET3.5从入门到精通(C#2008版)》的ASP.NET探索之旅中,将介绍设计可靠Web应用程序所需的关键原则,包括数据库、ASP.NET安全和执行性能等方面的问题。《ASP.NET3.5从入门到精通(C#2008版)》还将从头开始介绍面向对象程序设计以及Web窗体的代码分离开发,一切示例都将从实战角度出发,而不是纸上谈兵的肤浅介绍。 经过《ASP.NET3.5从入门到精通(C#2008版)》的学习,您将精通网站开发的核心技术,并掌握成为一个专业ASP.NET开发人员的必备知识。 欢迎来到ASP.NET3.5的世界!
Spring.NET是一个应用程序框架,其目的是协助开发人员创建企业级的.NET应用程序。它提供了很多方面的功能,比如依赖注入、面向方面编程(AOP)、数据访问抽象及ASP.NET扩展等等。Spring.NET以Java版的Spring框架为基础,将Spring.Java的核心概念与思想移植到了.NET平台上。 第一章 序言 第二章 简介 2.1.概述 2.2.背景 2.3.模块 2.4.许可证信息 2.5.支持 第三章 背景 3.1.控制反转 第一部分 核心技术 第四章 对象、对象工厂和应用程序上下文 4.1.简介 4.2.IObjectFactory,IApplicationContext和IObjectDefinition接口介绍 4.2.1.The IObjectFactory和IApplicationContext 4.2.2.对象定义 4.2.3.对象的创建 4.2.3.1.通过构造器创建对象 4.2.3.2.通过静态工厂方法创建对象 4.2.3.3.通过实例工厂方法创建对象 4.2.4.泛型类的对象创建 4.2.4.1.通过构造器创建泛型类的对象 4.2.4.2.通过静态工厂方法创建泛型类的对象 4.2.4.3.通过实例工厂方法创建泛型类的对象 4.2.5.对象标识符(id和name) 4.2.6.Singleton和Prototype 4.3.属性,协作对象,自动装配和依赖检查 4.3.1.设置对象的属性和协作对象 4.3.2.构造器参数解析 4.3.2.1.根据参数类型匹配构造器参数 4.3.2.2.根据参数索引匹配构造器参数 4.3.2.3.根据名称匹配构造器参数 4.3.3.详细讨论对象属性和构造器参数 4.3.3.1.设置空值 4.3.3.2.设置集合值 4.3.3.3.设置泛型集合的值 4.3.3.4.设置索引器属性 4.3.3.5.内联对象定义 4.3.3.6.idref节点 4.3.3.7.引用协作对象 4.3.3.8.value和ref节点的简短格式 4.3.3.9.复合属性名 4.3.4.方法注入 4.3.4.1.查询方法注入 4.3.4.2.替换任意方法 4.3.5.引用其他对象或类型的成员 4.3.5.1.使用对象或类的属性值进行注入 4.3.5.2.使用字段值进行注入 4.3.5.3.使用方法的返回值进行注入 4.3.6.IFactoryObject接口的其它实现 4.3.6.1.Log4Net 4.3.7.使用depends-on 4.3.8.自动装配协作对象 4.3.9.检查依赖项 4.4.类型转换 4.4.1.枚举类型的转换 4.4.2.内置的类型转换器 4.4.3.自定义类型转换器 4.4.3.1.使用CustomConverterConfigurer类 4.5.自定义对象的行为 4.5.生命周期接口 4.5.1.1.IInitializingObject接口和init-method属性 4.5.1.2.IDisposable接口和destroy-method属性 4.5.2.让对象了解自己的容器 4.5.2.1.IObjectFactoryAware接口 4.5.2.2.IObjectNameAware接口 4.5.3.IFactoryObject接口 4.6.抽象与子对象定义 4.7.与IObjectFactory接口交互 4.7.1.获得IFactoryObject对象本身,而非其产品 4.8.使用IObjectPostProcessor接口自定义对象 4.9.使用IObjectFactoryPostProcessor定制对象工厂 4.9.1.PropertyPlaceholderConfigurer类 4.9.1.1.使用环境变量进行替换 4.9.2.PropertyOverrideConfigurer类 4.10.使用alias节点为对象添加别名 4.11.IApplicationContext简介 4.12.配置应用程序上下文 4.12.1.注册自定义解析器 4.12.2.创建自定义资源处理器 4.12.3.配置类型别名 4.12.4.注册类型转换器 4.13.IApplicationContext接口的扩展功能 4.13.1.上下文继承 4.13.2.使用IMessageSource接口 4.13.3.在Spring.NET内部使用资源 4.13.4.松耦合事件模型 4.13.5.IApplicationContext的事件通知 4.14.定制IApplicationContex中对象的行为 4.14.1.IApplicationContextAware标识接口 4.14.2.IObjectPostProcessor接口 4.14.3.IObjectFactoryPostProcessor接口 4.14.4.PropertyPlaceholderConfigurer类 4.15.从其它文件中导入对象定义 4.16.服务定位器访问 第五章. IObjectWrapper接口和类型转换 5.1.简介 5.2.使用IObjectWrapper接口管理对象 5.2.1.读、写普通及嵌套的属性 5.2.2.其它功能 5.3.类型转换 5.3.1.转换枚举类型 5.4.内置类型转换器 第六章. IResource接口 6.1.简介 6.2.IResource接口 6.3.内置的IResource实现类 6.4.IResourceLoader接口 6.5.IResourceLoaderAware接口 6.6.应用程序上下文和IResource路径 第七章. 多线程和并发操作 7.1.简介 7.2.线程本地存储 7.3.同步基础 7.3.1.ISync 7.3.2.SyncHolder 7.3.3.Latch 7.3.4.Semaphore 第八章. 对象池 8.1.简介 8.2.接口和实现 第九章. Spring.NET杂记 9.1.简介 9.2.PathMatcher 9.2.1.通用规则 9.2.2.匹配文件名 9.2.3.匹配子目录 9.2.4.大小写需要考虑,斜线可以任意 第十章. 表达式求值 10.1.简介 10.2.表达式求值 10.3.语言参考 10.3.1.文字表达式 10.3.2.属性,数组,列表,字典,索引器 10.3.2.1.定义内联的数组、列表和词典 10.3.3.方法 10.3.4.操作符 10.3.4.1.关系操作符 10.3.4.2.逻辑操作符 10.3.4.3.算术运算符 10.3.5.赋值 10.3.6.表达式列表 10.3.7.类型 10.3.8.类型注册 10.3.9.构造器 10.3.10.变量 10.3.10.1.'#this'和'#root'变量 10.3.11.三元操作符(If-Then-Else) 10.3.12.列表的投影(Projection)和选择(Selection) 10.3.13. 集合处理器和聚合器 10.3.13.1.Count聚合器 10.3.13.2.Sum聚合器 10.3.13.3.Average聚合器 10.3.13.4.Minimum聚合器 10.3.13.5.Maximum聚合器 10.3.13.6.nonNull处理器 10.3.13.7.distinct处理器 10.3.13.8.sort处理器 10.3.14.引用容器中的对象 10.3.15.Lambda表达式 10.3.16.空目标 10.4.本章使用的示例类型 第十一章. 验证框架 11.1.简介 11.2.用法示例 11.3.验证对象组 11.4.验证对象 11.4.1.条件验证对象 11.4.2.必需性验证对象 11.4.3.正则表达式验证对象 11.4.4.通用验证对象 11.4.5.条件型验证 11.5.验证行为 11.5.1.错误消息行为 11.5.2.通用行为 11.6.引用验证对象 11.7.在ASP.NET中的使用技巧 11.7.1.显示验证错误 11.7.1.1.配置错误显示类 第十二章. 使用Spring.NET进行面向方面的编程 12.1.简介 12.1.1.AOP基本概念 12.1.2.Spring.NET AOP的功能 12.1.3.Spring.NET的AOP代理 12.2.Spring.NET中的切入点 12.2.1.概念 12.2.2.切入点的操作 12.2.3.Spring.NET提供的切入点实现类 12.2.3.1.静态切入点 12.2.3.2.动态切入点 12.2.4.自定义切入点 12.3.Spring.NET的通知类型 12.3.1.通知的生命周期 12.3.2.通知类型 12.3.2.1.拦截环绕通知 12.3.2.2.前置通知 12.3.2.3.异常通知 12.3.2.4.后置通知 12.3.2.5.引入通知 12.4.Spring.NET中的Advisor 12.5.使用ProxyFactoryObject创建AOP代理 12.5.1.基本原理 12.5.2.ProxyFactoryObject的属性 12.5.3.代理接口 12.5.4.代理一个类 12.6.使用ProxyFactory类以编程方式创建AOP代理 12.7.管理目标对象 12.8.使用“自动代理”功能 12.8.1.自动代理对象的定义 12.8.1.1.ObjectNameAutoProxyCreator 12.8.1.2.DefaultAdvisorAutoProxyCreator 12.8.1.3.AbstractAutoProxyCreator 12.8.2.使用特性驱动的自动代理 12.9.使用TargetSources 12.9.1.动态切换TargetSource 12.9.2.池化TargetSource 12.9.3.PrototypeTargetSource 12.10.定义新的通知类型 12.11.参考资源 第十三章.通用日志抽象层 13.1.简介 13.1.1.Logging API 13.2.实现与配置 13.2.1.控制台Logger 13.3.Log4Net 第二部分. 中间层数据访问 第十四章. 事务管理 14.1.简介 14.2.动机 14.3.核心接口 14.4.用事务进行资源同步 14.4.1.高层次方法 14.4.2.低层次方法 14.5.声明式事务管理 14.5.1.理解Spring.NET声明式事务管理的实现 14.5.2.第一个例子 14.5.3.Transaction特性的设置 14.5.4.通过AutoProxyCreator使用声明式事务 14.5.5.通过TransactionProxyFactoryObject使用声明式事务 14.5.6. 通过ProxyFactoryObject使用声明式事务 14.5.7. Using Abstract object definitions 14.5.8. Declarative Transactions using ProxyFactoryObject 14.6. 编程方式的事务管理 14.6.1.使用TransactionTemplate 14.6.2.使用IPlatformTransactionManager 14.7.选择编程方式还是声明方式 第十五章. 数据访问对象 15.1.简介 15.2.统一的异常体系 15.3.为数据访问对象提供的统一抽象基类 第十六章. DbProvider 16.1.简介 16.1.1.IDbProvider和DbProviderFactory 16.1.2. XML配置 16.1.3.管理连接字符串 第十七章. 使用ADO.NET进行数据访问 17.1.简介 17.2.动机 17.3.Provider抽象 17.3.1.创建IDbProvider类型的实例 17.4.命名空间 17.5.数据访问的方式 17.6.AdoTemplate简介 17.6.1.执行回调 17.6.2.在.NET 2.0中执行回调 17.6.3. .NET 1.1 17.6.4.AdoTemplate方法指南 17.7.异常翻译 17.8.参数管理 17.8.1. IDbParametersBuilder 17.8.2. IDbParameters 17.9. Mapping DBNull values 17.10. Basic data access operations 17.10.1. ExecuteNonQuery 17.10.2. ExecuteScalar 17.11. Queries and Lightweight Object Mapping 17.11.1. ResultSetExtractor 17.11.2. RowCallback 17.11.3. RowMapper 17.11.4. Query for a single object 17.11.5. Query using a CommandCreator 17.12. DataTable and DataSet 17.12.1. DataTables 17.12.2. DataSets 17.13. Deriving Stored Procedure Parameters 17.14. Database operations as Objects 17.14.1. AdoNonQuery 17.14.2. AdoQuery 17.14.3. MappingAdoQuery 17.14.4. Stored Procedure 17.14.5. DataSetOperation 18. ORM集成 18.1. 简介 第三部分. Web框架 第十九章. Web框架 19.1.简介 19.2.自动装载应用程序上下文和应用程序上下文嵌套 19.2.1. 配置 19.2.2.上下文嵌套 19.3.为ASP.NET页面进行依赖注入 19.3.1.为Web控件进行依赖注入 19.4.Master Page 19.4.1.将子页面与Master Page关联 19.5.双向数据绑定 19.5.1.数据绑定的后台实现 19.5.1.1.绑定方向 19.5.1.2.Formatters 19.5.1.3.类型转换 19.5.1.4.数据绑定事件 19.6.本地化 19.6.1.使用Localizer进行自动本地化(“推”模型) 19.6.2.使用Localizer 19.6.3.手动应用资源(“拉”模型的本地化) 19.6.4.在Web应用程序中进行图像本地化 19.6.5.全局资源 19.6.6.用户语言文化管理 19.6.6.1. DefaultWebCultureResolver 19.6.6.2. RequestCultureResolver 19.6.6.3. SessionCultureResolver 19.6.6.4. CookieCultureResolver 19.6.7.更改语言文化 19.7.结果映射 19.8.客户端脚本 19.8.1.在HTML的head节点内注册客户端脚本 19.8.2.向节点中添加CSS定义 19.8.3.全局目录(Well-Known Directories) 第四部分. 服务 第二十章. .NET Remoting 20.1.简介 20.2.在服务端发布SAO 20.2.1.SAO Singleton 20.2.2.SAO SingleCall 20.2.3.IIS应用程序配置 20.3.在客户端访问SAO 20.4.CAO 最佳实践 20.5.在服务端注册CAO 20.5.1.向CAO对象应用AOP通知 20.6.在客户端访问CAO 20.6.1.向客户端的CAO对象应用AOP通知 20.7. XML Schema for configuration 20.8.参考资源 第二十一章. .NET企业服务 21.1.简介 21.2.服务组件 21.3.服务端 21.4.客户端 第二十二章. Web服务 22.1.服务端 22.1.1.消除对.asmx文件的依赖 22.1.2.向web服务中注入依赖项 22.1.3.将PONO发布为web服务 22.1.4.将AOP代理发布为web服务 22.1.5.客户端的问题 22.2.客户端 22.2.1.WebServiceProxyFactory 22.2.2.WebServiceClientFactory 第二十三章. Windows后台服务 23.1.备注 23.2.简介 23.3.Spring.Services.WindowsService.Process.exe应用程序 23.3.1.安装 23.3.2.配置 23.4.将应用程序上下文发布为Windows服务 23.4.1.service.config 23.4.1.1.让应用程序了解自身的位置 23.4.2.watcher.xml - 可选的配置 23.4.3.bin目录 - 可选 23.5.自定义或扩展 23.5.1. .config文件 第五部分. 与Visual Studio.NET集成 第二十四章. 与Visual Studio.NET集成 24.1.XML编辑与验证 24.2.XML Schema的版本 24.3.集成API文档 第六部分. 快速入门程序 第二十五章. IoC快速入门 25.1.简介 25.2.Movie Finder 25.2.1.开始建立MovieFinder应用程序 25.2.2.第一个对象定义 25.2.3.属性注入 25.2.4.构造器参数注入 25.2.5.总结 25.2.6.日志 25.3.应用程序上下文和IMessageSource接口 25.3.1.简介 25.4.应用程序上下文和IEventRegistry接口 25.4.1.简介 25.5.对象池示例 25.5.1.实现Spring.Pool.IPoolableObjectFactory 25.5.2.使用池中的对象 25.5.3.利用executor执行并行的grep 25.6.AOP 第二十六章. AOP指南 26.1.简介 26.2.基础知识 26.2.1.应用通知 26.2.2.使用切入点-基本概念 26.3.深入探讨 26.3.1.其它类型的通知 26.3.1.1.前置通知 26.3.1.2.后置通知 26.3.1.3.异常通知 26.3.1.4.引入(mixins) 26.3.1.5.通知链 26.3.1.6.配置通知 26.3.2.使用特性定义切入点 26.4.The Spring.NET AOP Cookbook 26.4.1.缓存 26.4.2.性能监视 26.4.3.重试规则 Spring.NET AOP最佳实践 第二十七章. .NET Remoting快速入门 27.1.简介 27.2.Remoting实例程序 27.3.实现 27.4.运行程序 27.5.Remoting Schema 27.6.参考资源 第二十八章. Web框架快速入门 28.1.简介 第二十九章. SpringAir - 参考程序 29.1.简介 29.2.架构 29.3.实现 29.3.1.业务层 29.3.2.服务层 29.3.3.Web层 29.4.总结 第三十章. 数据访问快速入门 30.1.简介 第三十一章. 事务管理快速入门 31.1.简介 31.2.应用程序概述 31.2.1.接口 第七部分. Java开发人员必读 第三十二章. Java开发人员必读 32.1.简介 32.2.Beans和Objects 32.3.PropertyEditor和TypeConverter 32.4.ResourceBundle和ResourceManager 32.5.异常 32.6.应用程序配置 32.7.AOP框架

17,740

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧