最近在一个园子里整理WF,.net3.5/3.0新版本零零总总的看到一些东西在上面,自己一直就没有对.net3.0/3.5框架中细节加以总结,一在写博文 时对于一个新名词的拿捏不是很准确,倒是常常同事面前闹了几场笑话, 事后在看时就修改不少细节地方.
关于具体的.net3.0相对于.net2.0新添加区别在哪?在.net2.0基础自上3.0添加新技术主要目的?
2002年发布的.net1.0,2005年发布的.net2.0,.net3.0计划于2006年底发布,主要适用操作系统:Vista,2003,XP
.net3.0主要是在.net2.0基础之上完善而成一个新版本,保函了2.0中全部的功能,在以前版本基础之上开发3.0依然支持,.net3.0中添加四个组件Window WorkFlow Foundation(WF), Window Commuication Foundation(WCF),Windows CardSpace ,Windows Presentation Foundation(WPF).
可以通过3.0添加新组件发现添加组件主要适用的方向 用于解决哪一类问题?
除了2.0中传统的问数据、通过 Web 浏览器上网等等传统考虑因素,3.0中主要是为了适应当前发展趋势:
A:组织越来越倾向于从面向流程的角度看待他们的工作,也就是部分的工作流程部分实现了自动化,在编码中明确当前共有几步很重要,而为了解决这一问题主要用到工作流技术(WF)
B:应用程序要与组织内外的其他应用程序进行通信,现代应用程序还必须适用于面向服务的架构 (SOA),同时还要实现一些功能,作为其他软件可以访问的交互服务。要实现这些目标,就需要支持面向服务的应用程序(WCF)
C: 对于现代用户界面,人们的要求也有了很大幅度的提高。要提供真正的业务价值往往需要处理不同类型的文档,使用二维或三维图形,播放视频等等,还要保证本地 Windows 客户端和 Web 浏览器能够兼容这些功能。要满足这些要求,需要不同的用户界面采用统一的方法。
.net3.0添加新组件就是为解决这些问题而设计.
虽然3.0中添加了很多新的组件用来解决新的问题,但.2.0是通用的基础,尽管我们可以直接Win32直接编写软件,实际上.net FrameWork 已经成为应用程序的主流环境,看一下.net FrameWork中组成部分:
--主要组成部分: • ASP.NET,支持可 Web 访问的应用程序的开发。 • ADO.NET,允许应用程序访问相关的其他类型数据。 • Windows Forms,支持建立 Windows 应用程序的图形用户界面 (GUI)。 • System.XML,使应用程序能够使用 XML 定义的数据,包括 XSLT 和 XPath |
Window WorkFlow Foundation(WF):
WF 提供了一个通用框架,用于创建基于工作流的 Windows 应用程序。它可以被托管在任何进程中,使用任何种类的活动,并解决任何种类的业务问题,其中包括人员和系统工作流,使用工作流创建应用程序的一个优势是可以图形化地定义工作流。WF 的工作流设计器允许使用该功能,
WF 运行时引擎具有执行工作流中的活动的职责。作为执行该职责的一个部分,它依赖于一组运行时服务。WF 包含这些服务的标准实现,但是有能力的开发人员可以根据需要更换。这些服务支持几种不同的功能,其中有两种最值得注意: • 持久性:因等待某个事件受到阻塞的工作流,可以使用该服务将其内存状态自动保存到磁盘。当事件发生时,该服务会自动重新加载工作流的状态并重新开始执行。这对于涉及到人员的工作流尤其有用,因为等待一个响应可能需要几个小时、几天或更长时间。 • 跟踪:工作流中的活动清楚地区分了其实现进程的执行。WF 的跟踪服务允许开发人员将工作流的执行信息自动写入数据库中。例如,开发人员希望跟踪工作流的起始时间、它的每个活动的起始时间和其他信息 |
Window Communication Foundation(WCF):
面向服务的通信的变化,标志着在应用程序交互方式上的进步。WCF 专为支持面向服务的应用程序而设计,正好体现了这种进步。本节将介绍 WCF 最重要的方面,包括服务和客户端、通信选项以及对安全性、可靠通信和事务的支持
从上图可以看出,服务提供了客户端可访问的接口。该接口可通过 Web 服务描述语言 (WSDL) 来定义,然后转成代码,也可以通过 C# 或 Visual Basic 等语言直接定义 ,对于一个提供保险应用程序服务的简单接口而言,若使用后一种方法,则代码如下所示:
- [ServiceContract]
- interface IInsuranceApplication
- {
- [OperationContract]
- int Submit(int policyType, string ApplicantName);
- [OperationContract]
- bool CheckStatus(int applicationNumber);
- [OperationContract]
- bool Cancel(int applicationNumber);
该接口ServiceContract属性来修饰,表示该接口中提供可以远程调用的操作方法,所提供的接口方法都标有OperationContract 属性,但并不是必须的,仅为接口的某些方法应用 OperationContract 是合法的。无论进行哪种选择,应用程序中必须有一个类实现该接口,从而为接口定义的方法提供实际代码。一旦完成,WCF 会自动将方法标记为 OperationContract,表示该服务的客户端可对其进行访问。
WCF 取代了一些用于创建分布式应用程序的早期 Microsoft 技术。大多数使用 ASP.NET Web Services、.NET Remoting、Enterprise Services、System.Messaging 或 WSE 构建的应用程序,将转而通过 WCF 进行构建。WCF 应用程序可以与 ASP.NET Web Services 应用程序交互,两者都支持标准 SOAP,也可与其他构建在 Enterprise Services、MSMQ 和 3.0 版的 WSE 上的应用程序交互。BizTalk Server 2006 也可以使用 WCF,而且未来版本的 BizTalk Server 会更直接地构建在 WCF 提供的架构上.
Window CardSpace:一致的数字标识控件
CardSpace主要用来 帮助人们追踪自己的数字标识,CardSpace 用不同的信息卡来表示每个数字标识。如果网站接受 CardSpace 登录,那么用户在尝试登录这一网站时会看到 CardSpace 选择屏幕,如图 3 所示。您可以选择一张卡片,这就相当于选择了登录该网站的数字标识。不必再去费心记住数不清的用户名和密码,用户只要记住他们要使用的那张信息卡就可以了。不同的信息卡还包含其他信息,用户可以通过它控制登录网站时提交的信息
Windows Presentation Foundation:适用于不同用户界面统一方法
一直以来,Windows 上的这些用户界面功能都是以不同方式提供的。例如,开发人员可以使用 .NET Framework 中的 Windows Forms 来创建 Windows GUI,使用 HTML、Java 小程序或 JavaScript 代码创建 Web 浏览器界面,或是使用 Windows Media Player、Adobe 的 Flash Player 等软件播放视频,文档格式则以 Microsoft Word、Adobe PDF 或其他软件进行定义。很明显,开发人员面临着巨大的挑战:如何使用不同的技术,为不同的客户端创建一致的用户界面。这相当困难,Window Presentation Foundation解决这个问题.
本文转自chenkaiunion 51CTO博客,原文链接:http://blog.51cto.com/chenkai/765438