.NET3.0总体结构

简介:

最近在一个园子里整理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 等语言直接定义 ,对于一个提供保险应用程序服务的简单接口而言,若使用后一种方法,则代码如下所示:

 
  1. [ServiceContract]  
  2. interface IInsuranceApplication  
  3. {  
  4.  [OperationContract]  
  5.  int Submit(int policyType, string ApplicantName);  
  6.  
  7.  [OperationContract]  
  8.  bool CheckStatus(int applicationNumber);  
  9.  
  10.  [OperationContract]  
  11.  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


相关文章
|
XML SQL JSON
自己使用的一个.NET轻量开发结构
三个文件夹,第一个是放置前端部分,第二个是各种支持的类文件,第三个是单元测试文件。
自己使用的一个.NET轻量开发结构
|
Web App开发 前端开发 安全
一起谈.NET技术,Silverlight 结构分析
  Silverlight是微软提供的一种Web前端应用程序开发框架,是微软RIA的主要应用程序开发平台。Silverlight以浏览器的插件方式,提供丰富的多媒体展示功能以及更多交互性的Web前端解决方案。
966 0
|
Java 开发工具 Android开发
Androi“.NET研究”d 源代码结构
  简介   在使用Andriod SDK进行应用程序开发的时候,我们需要对源代码进行调试,有可能需要进入到某个Android API函数内部进行跟踪调试。但是,如果目标版本的SDK没有关联对应版本的源代码的话,就会提示你找不到源代码。
1124 0
|
Web App开发 网络协议 网络安全
|
前端开发 API 数据安全/隐私保护
在.Net MVC结构API接口中判断http头信息实现公共的权限验证过滤器示例
//control   action  public class TestController : ApiController { [MyAuthFilter] public string test(string str) { return str.
1048 0
|
程序员 C# C++
.NET零基础入门之01:开篇及CSharp程序、解决方案的结构
一:为什么选择C# 每个人都有梦想,有些人的梦想就是:成为程序员。最课程(www.zuikc.com)的《零基础c#入门》是试图帮助我们实现这个梦想。 也许你要问:我基础很差怎么办?最课程的《零基础c#入门》假设你基础差到从来没有写过一行程序。
1006 0