当前位置:
首页 > 编程开发 > Objective-C编程 >
-
快速领会 .Net(一)
作者:不详
目前我主要的兴趣是通过 web 提供分布式计算,从这个角度来看,我发现 .NET 有几个令人激动的思想,它们是:Web 服务、SOAP/XML 和 CLR (Common Language Runtime:通用语言运行环境)。 Web 服务 Web 服务可以看作由 XML 通过 HTTP 协议来调度的远程过程调用 (RPC)。我看 .NET 基本上就是一个创建、分配、使用、支持 Web 服务,并为它提供开发环境的框架。Web 服务许诺:每个应用程序都能以一个 Internet 上的服务出现。Web 服务将成为一个关键技术,因为它是基于每天都使用的、并且是经过检验的机制。 HTTP 传输是一个制定得很好的通道,即使穿越企业的防火墙也能很好地工作。SSL 广泛地用来为 HTTP 提供安全性。任何语言、组件模型和操作系统都可以使用或提供 Web 服务。注意看看下一代 Visual Studio 工具,它们承诺可以更容易地创建 Web 服务。 SOAP SOAP/XML 实际上是 Web 服务的生命线,它使用通用语言 XML 和协议 SOAP 来描述数据的含义。分布式计算的世界里充满了大量的事务和消息,当我们为此使用 COM/DCOM、CORBA 和 EJB 时,今天的 Web 应用程序很大程度上是依靠手工技巧的,或者使用复杂的机制在不同的技术阵营之间进行通讯。 对于所有应用程序而言,SOAP 的确并非最佳解决办法。例如,如果你的应用程序之间需要紧密的同步耦合,总应该考虑像 COM 和 RMI 这样的技术。 HTTP 并不是性能最佳的传输协议,而且 XML 也很冗长,因而会造成额外的传输负荷。有些情况下,需要在应用程序之间进行效率更高的纯二进制数据流传输。但是,如果你能将应用程序设计成通过松散的异步调用进行耦合的 Web 服务,那么就会产生易于集成的好处,这使得付出的代价非常值得。 结果是:只要灵魂语言是 XML,使用服务的应用程序就不需要知道或关心服务的谱系。 通用语言运行环境 (CLR) CLR 是一个技术规范,无论程序使用什么语言编写,只要能编译成中间语言 (IL),就可以在它的支持下运行。这意味着在不久的将来,可以在 Windows 环境下运行传统的非 Windows 语言。无论各种语言迷们如何争论,没有人能够声称任何一种语言对所有用途都是最佳的工具。我们总是需要特定用途的语言。 这是和基于 J2EE (Java 2 Enterprise Edition) 的解决方案相比,.NET 胜出的地方。J2EE/Java 功能强大,设计良好并被广泛使用。但在它表现出平台无关性时,.NET 更是独立于编程语言的。 我希望使用 Windows 平台,但并不希望被拴在它上面。CLR 将是超越 Windows 平台的具有良好伸缩性的好手段。.NET 框架将提供强大的环境功能,例如内存和线程管理、自动垃圾收集、进程的建立和撤销,以及可控制的代码安全性。 VisualStudio.NET 的目标是成为一个至少支持十几种语言的开放语言框架和开发环境,CLR 打算提供的通用库将允许从另一种语言来方便地调用和调试语言代码。CLR 的成功将取决于将它移植到其他平台的范围和移植的质量。 各种迹象表明,.NET 框架羽翼丰满前,至少还需要一年的时间。.NET 可能是使 Microsoft 成功或失败的战略,但无论 Microsoft 能否交付 .NET,.NET 所依赖的基础和概念都是坚实的、永存的。 将你的应用程序创建为具有松散耦合的 Web 服务吧,它们相互之间就可以使用开放语言通讯。如果事情像 Microsoft 计划的那样,.NET 的影响将会是深远的,并且是你不能错过的。 如果找到了所要寻找的信息,那么这个信息也就没有吸引力了。Web 后面的核心思想就是文档不应该以层次结构提供,而是应该让读者能方便地找到和他们正在阅读页面的相关信息,因此,文档应该以交叉连接的方式出现。DotNet 正是让人们能将不同来源的数据组织并显示出来的最新尝试,它的方式是让人们能够根据客户端的需要来处理数据。 .NET 是什么? Microsoft.NET (从前叫做NGWS:Next Generation Windows Services) 是 Microsoft 从以客户机为中心的模式转移到以网络为中心的模式的战略保护伞。Microsoft 花了一段时间才走到这一立场上来。在过去的十年里,Sun 已经在倡导“网络就是计算机”,而 Microsoft 只是在 1998 年才提出了它的第一个支持终端服务的操作系统。然而,一旦 Microsoft 最终意识到 Web 里确实有一些东西,它就立即接受了它。现在,Microsoft接受了基于 Web 的模式。 这一战略的其它部分是宣布 Microsoft 在 Windows 2000 DataCenter 上的工作、宣布通过应用程序服务商 (ASP) 发放 Windows 应用程序许可的最终模型,以及在 Windows 2000 服务器操作系统的核心部分(包括终端服务)的决定。从前,Microsoft的名字总是出现在个人计算机周围的公司,但 .NET 概念的提出,使意义更为重大。 .NET 分成三个部分。一个在服务器端,就是像 Windows DataCenter 这样的操作系统,这里 Microsoft 处于主机市场竞争者的位置。在中间,是 XML,以及用来从数据库或数据表中提供信息,以使开发者能通过 XML 调用他们的简单对象访问协议 (SOAP)。在客户端,是支持 XML 语法分析、从而根据赋予它的标记来显示信息的操作系统。 Microsoft 为什么转移到以网络为中心的模式? 以客户机为中心的桌面厂商为什么要转移到更多地以网络为中心的模式上来?按照 Steve Ballmer 的说法:这是用户所希望的!更进一步,这也是将来用户所希望的。在一个以服务器为中心的环境中分发应用程序减少了客户端的管理、简化了程序的更新和安装,并且会对移动计算环境提供更好的支持。对网络管理员来说,以客户机为中心的模型难于支持,而对家庭用户而言更是如此。要生存得更长久,以客户机为中心的计算将由基于服务器的模型进行补充。 Microsoft .NET 将怎样影响我们做事的方式? 眼前,还不会有什么影响。目前 .NET 是一个前景,而不是现实。然而,如果事情都像计划的那样,它将会对三类人有潜在的影响:用户、网络管理员和开发者。 对于用户能得到的好处,Microsoft 有很多要说。.NET 应用程序倾向于提供一个统一的界面,以便用户可以从一个应用程序里浏览、编辑和创建文档。这个数据模型应该能使应用程序拥有能力查询不同来源的数据,并将其合并到一个可视文档里面。用户将能通过一个兼容的浏览器,从任何设备上访问他们的应用程序和个人设置。在咖啡店的角落里工作将和在家里工作一样 ;-) 灵活的平台意味着用户的数据自动地根据他们的工作环境来进行调节:在桌面客户端和手持式 PC 的较小浏览器中,同样的数据将以不同的方式来显示。 这一模式为网络管理员带来了什么?估计 .NET 应用程序会加载到他们自己的目录中,相互之间保持独立。这会产生两个效果。首先,遵从 Microsoft 所赞同的“共享数据而不是代码”的模型,“DLL陷阱”将被终结。从而,不同的应用程序可能以相同的名字覆盖助手库。 其次,估计应用程序将不去“惊动”注册表,从而解决了注册表“纹身”问题:即使反安装了应用程序,它还是在注册表里留下了配置信息。另外,.NET 应用程序将使用基于 Kerberos 认证的安全机制,以确保只有被授权的用户才能访问用户的数据。 .NET 应用程序同时将是集中安装的,这减少了程序丢失时重新安装它们的客户端的管理工作。预计 .NET 应用程序还能监视它们自己的内存漏洞。在单用户环境里,内存漏洞是多么的糟糕。如果再转移到为很多人提供服务的、基于服务器的计算环境,它们将是致命的。 .NET 与开发者 对开发者而言,.NET 使他们应用自己最熟悉的语言创建应用程序,并从异种数据源查询信息成为可能。开发者将不必从 COM 对象到 DLL 的不同编程模式中换来换去,或者应付不同的调试工具,或者为 .NET 应用程序编写安装包。近期,开发者将能用他们希望使用的语言编写应用程序,创建应用程序需要的支持文件,并使它能运行。 .NET 不会很快成熟。浏览器需要可靠的 XML 分析器,服务器需要将裸数据转换成 XML 的引擎。不是以 XML 格式化的数据将不能提供给应用程序。惯性将使大量现存的 Windows 应用程序很难在一夜之间就完全消失。直到 2001 年的某时,Whistler 系统完成之前,第一个部分支持 .NET 的客户端操作系统不会出现。并且,在 Blackcomb 系统上市之前不会完全实现。DataCenter 还将发挥很长一段时间的功效。 一些开发者指出,作为优秀思想范例的 Java 并没有飞起来,但是 Microsoft 却不同,她拥有丰富的市场能量。他们虽然不是无往不胜的,但他们是优秀的。请记住:当 Windows 刚出现时,也没人需要 |
|
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
JavaScript判断两个数组相等的四类方法
js如何操作video标签
React实战--利用甘特图和看板,强化Paas平
【记录】正则替换的偏方
前端下载 Blob 类型整理
抽象语法树AST必知必会
关于JS定时器的整理
JS中使用Promise.all控制所有的异步请求都完
js中字符串的方法
import-local执行流程与node模块路径解析流程