DotNet 3.0 情人节的玫瑰

今天情人节,想想没有什么好送给你女朋友的。下午和她聊天,看到她对 dotnet 3.0 和 windows vista 还是比较感兴趣的,所以今天写点 dotnet 3.0 的介绍文章给女朋友看看,当作是送给他的情人节礼物。希望她能高兴...相隔太远,没能亲手后送她玫瑰,感觉挺愧疚的。希望可以补偿...

一、DotNet 3.0 与 2.0 的不同和进步

说道 dotnet 3.0 当然要先提一下他的哥哥 dotnet 2.0 了,说说她与哥哥的不同和她在哥哥之上的进步。

.NET 3.0 与 2.0 .NET 框架存在一些不同之处。前着专注于允许众多不同的语言与同一类库CLR进行通讯。CLR,从.NET 1.0中开始引入并在.NET 2.0中得到增强,它基于一个相对简单的概念进行工作:通用语言运行时刻模型能够执行任何运行.NET框架的系统中的代码。这对于每一位开发人员意味着,他们不再需要不断地再学习针对不同技术的语言。例如,一个Windows表单应用程序的C#开发者可以把他的这种构建表单的知识用来编写web页面。同样,一个Visual Basic.NET开发者能够在编写移动应用程序与编写web服务之间顺利切换。由CLR担当一个“仲裁者”并实现相应的通讯。

DotNet 3.0 虽然在通用语言运行时的改进很少,但是这个版本增加了对技术的吸引性,加入了很多使用的技术特性,比如引入了 linq,wpf/e 这些令人激动的技术。下面给出DotNet 3.0的框架图:

intronet30_01_thumb1.gif

二、DotNet 3.0 引入的新技术

  • Windows Presentation Foundation(适用于不同用户界面的统一方法)
  • Windows CardSpace(一致的数字标识用户控件)
  • Windows Communication Foundation(支持面向服务的应用程序)
  • Windows Workflow Foundation(支持基于工作流的应用程序)
三、Windows Workflow Foundation

工作流是一个简单思路:按照特定顺序执行的一系列步骤。您甚至可以认为每个应用程序都在执行工作流,因为每个应用程序都执行某些过程。但是,在使用 C#、Visual Basic 或其他编程语言等传统方法开发的应用程序中,这些过程都隐含在代码中。这样做没问题,但是这些过程被深深地嵌入程序逻辑中,使得其执行或更改愈加困难。

使用工作流技术执行过程逻辑可以有效地解决这一问题。采用工作流技术后,逻辑与普通代码就不会纠缠在一起,过程中的每一步骤都会明确定义,然后由工作流引擎执行。这样做的结果就是,过程执行清楚明确。

工作流引擎不是什么新概念,有些已经在 Windows 和其他系统中得到应用。Microsoft 已经在部分产品中嵌入了工作流引擎。但是,随着工作流日渐成为开发应用程序的主流方法,提供适用于 Windows 的单一工作流技术已经势在必行。这也正是 Windows Workflow Foundation(正式缩写是 WF )的设计初衷。由于其提供了适用于 Windows 的通用工作流技术,WF 已成为所有基于工作流应用程序的统一创建基础。Microsoft 的 Microsoft Office 2007 系统、Windows SharePoint Services 等软件,以及许多其他公司的应用程序也会使用 WF。

但是,提供通用的工作流技术之路却是困难重重。举例来说,如何使用一种方法来满足不同工作流应用程序的各种要求?WF 给出的答案是,从全局视角来看待工作流。WF 工作流只是一组由 WF 引擎执行的活动。一个活动就是一个类,它可以包含工作流创建者认为有必要的任何工作。活动可以在不同的工作流中重复使用,因此,在针对新问题创建自动化的解决方案时,过程将会更加容易。

提供通用工作流技术面临另一个困难是,面向人员工作流和面向系统工作流的传统分歧。通常来说,工作人员使用的工作流应用程序需要有较高的灵活性,能够进行实时更改。而一般由系统,也就是由软件使用的工作流应用程序则相对更加静态,但要求尽可能高效。WF 综合考虑了这两种不同的使用情况,不仅包括面向人员的功能(如更改运行中工作流的功能),同时还支持更多面向系统的操作。

通过 WF 的 Windows 通用工作流技术,.NET Framework 3.0 为广大开发人员提供了一种非常有用的软件开发模式。随着面向流程的软件继续风行,工作流技术也会随之推广。

四、Windows Communication Foundation

无论是通过工作流还是其他方式开发,绝大多数应用程序都需要与其他应用程序进行通信。近几年来,应用程序间的通信技术发展迅速。在长达数十年的不统一之后,主要供应商之间最终达成了一致的应用程序通信协议。根据 SOAP 这一全球 Web 服务协议,基于 J2EE、.NET Framework 等不同技术平台开发的应用程序间的互操作性相比以前大为简化。它还会使面向服务的架构这一思想为更多的组织接受。

当然,现在的通信方式已经不少了。以 .NET Framework 2.0 为例,您可以选择以下几种通信方式:

  • ASP.NET Web 服务,提供基于 SOAP 的交互通信。
  • .NET Remoting,主要用于 .NET 应用程序之间的通信。
  • Enterprise Services,支持可扩展的事务性应用程序。
  • System.Messaging,通过 Microsoft Message Queuing (MSMQ) 支持队列消息。
  • Web Services Enhancements (WSE),它是 ASP.NET Web 服务的扩展,支持 WS-Security 等新规范。

这些技术都有其自身的价值,在实际应用中也有着各自的地位。可是,既然问题是一样的,为什么要采用好几种不同的解决方案呢?为什么不根据交互服务来建立一个单一的应用程序通信基础?

这正是 Windows Communication Foundation (WCF) 的设计初衷。有了 WCF,开发人员不必再像从前一样,处理每一类通信都要使用到不同的应用程序编程接口技术 - WCF (最初的代号为“Indigo”)以通用的 API 提供通用的方法。在 .NET Framework 3.0 环境下,大多数使用上述技术之一的应用程序将会代而使用 WCF。

WCF 通过 SOAP 提供强大的交互通信支持,这是现代计算机设备的基本要素。它还支持多项 WS-* 规范,如 WS-Security、WS-ReliableMessaging 和 WS-AtomicTransaction。WCF 不需要 SOAP,但是可能会使用其他方法,包括优化二进制协议、MSMQ 队列消息 和基于 REST 的简单通信。WCF 同样采取明确的面向服务方法来进行通信。WCF 不会在对象间进行透明通信,而是为通信各方提供略微不同的抽象服务。其结果之一就是放开了分布式对象系统间某些紧密的耦合关系,使得交互出错减少,并且更容易修改。

无论是在组织内部还是组织之间,应用程序通信都是现代软件的基本功能。.NET Framework 3.0 以其 WCF 面向服务方法解决了这一难题。

五、Windows CardSpace

请您想一下,人们在 Internet 上是如何表示各自身份的。多数情况下是将个人的数字标识作为一个简单的用户名。再加上密码之后,就可以使用这个标识访问电子邮件帐户、网上商店、网上银行和其他一些金融机构了。尽管这种方法很简单,现在也在普遍应用,但是用户名和密码方式有着无法回避的缺点。最重要的两项是:

要记住登录众多网站的不同用户名和密码,的确让人不胜其烦。为了减少这些麻烦,许多人在不同网站使用相同的用户名和密码,可这样又增加了安全风险。

用户名、密码和其他个人信息可能会被网页仿冒者窃取。网页仿冒者会发送欺骗性电子邮件,诱使受害者去登录一个假冒网站,比如一个与受害者银行极其相似的仿冒网站。而这个网站实际上是网页仿冒者控制的。一旦受害者输入自己的用户名和密码,网页仿冒者就会利用这些信息,在真网站冒充该用户,牟取不当利益。

要减少这些问题的危害性,我们需要采用新的方法来管理数字标识。Windows CardSpace(最初代号为“InfoCard”)是这种新方法中的重要组成部分。为帮助人们追踪自己的数字标识,CardSpace 用不同的信息卡来表示每个数字标识。如果网站接受 CardSpace 登录,那么用户在尝试登录这一网站时会看到 CardSpace 选择屏幕。您可以选择一张卡片,这就相当于选择了登录该网站的数字标识。不必再去费心记住数不清的用户名和密码,用户只要记住他们要使用的那张信息卡就可以了。不同的信息卡还包含其他信息,用户可以通过它控制登录网站时提交的信息。

信息卡表示的这些标识是由一个或多个标识提供者创建而成的。组织可以有自己的标识提供者,而不必依赖于简单的用户名和密码。每个标识提供者都会采用更加强大的加密机制,让用户来验证他们的标识。CardSpace 本身也包含一个自发行的标识提供者,可以在客户端计算机上运行。使用这一提供程序,用户可以创建自己的标识,且标识也不必依赖密码进行身份验证。网站接受这些自发行 CardSpace 标识,这样就不必再依赖常见的密码方法,自然会减少因密码而带来的诸多问题。

不用密码登录网站,网页仿冒者也就无密码可偷了!但是,如果网页仿冒者成功诱使受害者访问假冒网站的话,他们还是会窃取用户的其他信息,如敏感的医疗信息等。要杜绝这种情况,就要求用户自己能够区别假冒网站和真网站。为帮助用户识别网站,拥有网站的组织应获取“高度确认认证”。与现在的 SSL 简单认证不同,新的认证方式涉及到更多、更严格的流程,其中包括采用更严格的方式来证明申请该项认证的组织的身份。高度确认认证上还可以带有公司徽标和其他信息,帮助用户准确识别使用证书的网站是否合法。用户访问新网站时,CardSpace 会始终以标准屏幕显示该网站的证书信息。根据认证的接受程度,屏幕上会自动显示出对网站标识的确认程度。其目的是,强制用户明确界定网站是否可信,然后帮助他们作出正确选择。

Windows CardSpace 实际上是更大的标识元系统的一部分。标识元系统完全基于开放的公共协议,它定义了一种全新的方式,能够使不同的数字标识技术在各个不同的平台(包括 Windows 以外的操作系统)和应用程序(包括 Internet Explorer 以外的 Web 浏览器)上使用。CardSpace 采取通用的方法来选择标识和其他 Windows 信息,因而在元系统中扮演着重要角色。并且,由于解决了基本的标识问题,CardSpace 也已经成为 .NET Framework 3.0 的重要组成部分。

六、Windows Presentation Foundation

对几乎所有的应用程序来说,用户界面都是重要的组成部分。现在,用户对这些界面的要求越来越高了。当然,我们仍然需要传统的菜单驱动式 GUI。但是除此之外,许多应用程序还需要能够播放视频、运行动画、采用二维或三维图形,以及调用不同的文档。无论是通过安装的桌面客户端还是通过 Web 浏览器来访问应用程序,上述功能都必须可以正常使用。

一直以来,Windows 上的这些用户界面功能都是以不同方式提供的。例如,开发人员可以使用 .NET Framework 中的 Windows Forms 来创建 Windows GUI,使用 HTML、Java 小程序或 JavaScript 代码创建 Web 浏览器界面,或是使用 Windows Media Player、Adobe 的 Flash Player 等软件播放视频,文档格式则以 Microsoft Word、Adobe PDF 或其他软件进行定义。很明显,开发人员面临着巨大的挑战:如何使用不同的技术,为不同的客户端创建一致的用户界面。这相当困难。

Windows Presentation Foundation (WPF),最初代号为“Avalon”,就是为解决这一难题而设计。WPF 为所有的这些用户界面提供一致的技术基础,从而大幅简化了开发人员的工作。WPF 采用更为现代的方法,支持视频、动画、二维或三维图形以及各种类型的文档,从而可以让用户以全新的方式处理信息。此外,WPF 还为桌面客户端和浏览器客户端提供了通用基础,大大简化了二者的应用程序开发工作。

过去,开发人员需要懂得各种技术才能进行工作;而现在通过这种更为一致的方法,开发人员可以轻松制作出类似示例中的用户界面。

另外一个长期困扰用户界面开发人员的问题是,如何创建高效界面需要的不同角色。软件开发人员需要编写相应的界面逻辑,但是,他们并不是定义界面感观的最佳人选。一般来说,人机交互领域的设计人员和专家更适合这一工作。但是在以前的技术(如 Windows Forms)背景下,这些问题完全由开发人员决定。开发人员和设计人员之间没有实现真正有效的协作。WPF 借助于可扩展应用程序标记语言 (XAML) 解决这一问题。XAML 是一种基于 XML 的语言,允许以声明方式指定用户界面 -而非代码。这就,开发工具就能够根据设计人员创建的可视化显示,更加容易地生成和使用界面规范。实际上,Microsoft 的一款新产品 Expression Interactive Designer 就是为此而设计。使用这一工具(其他的由第三方提供),设计人员可以创建界面外观,然后生成他们所创建界面的 XAML 定义。开发人员将这些定义导入 Visual Studio 之后,就可以着手构建界面所要求的逻辑了。

开发人员创建了直接在 Windows 上运行的安装版 WPF 应用程序后,就可以使用 WPF 提供的全部功能了。但是,若要创建在 Web 浏览器内部运行的客户端程序,开发人员应创建一个 XAML 浏览器应用程序,我们通常称之为 XBAP。与安装版 WPF 应用程序的基本原理相同,XBAP 允许在可下载的浏览器应用程序中表示与用户界面相同的样式。两种应用程序可以使用相同的代码,这也就意味着开发人员不再需要针对桌面和浏览器客户端的不同技术集。特别是按照此类丰富 Internet 应用程序的现状,在安全沙箱内运行从 Internet 下载的 XBAP,将会限制应用程序的功能。但是,安装版 WPF 应用程序中提供的大量用户界面功能子集也可用于 XBAP。

WPF 安装版应用程序和 XBAP 都可以利用 WPF 的现代图形支持,其中包括使用硬件加速、支持矢量图形以及其他更多功能。通过提供更强大的图形支持功能,WPF 使得一系列数据可视化选项成为可能,而这依靠 Windows Forms 或其他的早期技术是不可能实现的。WPF 还提供了 XML Paper Specification (XPS) 的基础,可定义查看、分发和打印固定格式文档的标准格式。

用户界面是现代应用程序中复杂而重要的组成部分。通过 WPF,.NET Framework 3.0 提供了一种比较完整和一致的解决方案,用于应对用户界面方面的难题。其目标是使构建用户界面的相关人员(包括开发人员和设计人员)能够更有效的进行工作。

七、总结

就写这么多吧,感冒了,头疼的很。休息以下。同时希望老婆身体可以可以快些好一点,心情也快些好起来。

转载于:https://www.cnblogs.com/jessezhao/archive/2007/02/14/650546.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值