什么是托管、非托管??

什么是托管、非托管??,第1张

可以理解为所有.net程序的环境支持,或说运行环境。

详细解释:

NET Framework 是一种新的计算平台,它简化了在高度分布式 Internet 环境中的应用程序开发。.NET Framework 旨在实现下列目标:

提供一个一致的面向对象的编程环境,而无论对象代码是在本地存储和执行,还是在本地执行但在 Internet 上分布,或者是在远程执行的。

提供一个将软件部署和版本控制冲突最小化的代码执行环境。

提供一个保证代码(包括由未知的或不完全受信任的第三方创建的代码)安全执行的代码执行环境。

提供一个可消除脚本环境或解释环境的性能问题的代码执行环境。

使开发人员的经验在面对类型大不相同的应用程序(如基于 Windows 的应用程序和基于 Web 的应用程序)时保持一致。

按照工业标准生成所有通信,以确保基于 .NET Framework 的代码可与任何其他代码集成。

.NET Framework 具有两个主要组件:公共语言运行库和 .NET Framework 类库。公共语言运行库是 .NET Framework 的基础。您可以将运行库看作一个在执行时管理代码的代理,它提供核心服务(如内存管理、线程管理和远程处理),而且还强制实施严格的类型安全以及可确保安全性和可靠性的其他形式的代码准确性。事实上,代码管理的概念是运行库的基本原则。以运行库为目标的代码称为托管代码,而不以运行库为目标的代码称为非托管代码。.NET Framework 的另一个主要组件是类库,它是一个综合性的面向对象的可重用类型集合,您可以使用它开发多种应用程序,这些应用程序包括传统的命令行或图形用户界面 (GUI) 应用程序,也包括基于 ASP.NET 所提供的最新创新的应用程序(如 Web 窗体和 XML Web services)。

.NET Framework 可由非托管组件承载,这些组件将公共语言运行库加载到它们的进程中并启动托管代码的执行,从而创建一个可以同时利用托管和非托管功能的软件环境。.NET Framework 不但提供若干个运行库宿主,而且还支持第三方运行库宿主的开发。

例如,ASP.NET 承载运行库以为托管代码提供可伸缩的服务器端环境。ASP.NET 直接使用运行库以启用 ASP.NET 应用程序和 XML Web services(本主题稍后将对这两者进行讨论)。

Internet Explorer 是承载运行库(以 MIME 类型扩展的形式)的非托管应用程序的一个示例。使用 Internet Explorer 承载运行库使您能够在 HTML 文档中嵌入托管组件或 Windows 窗体控件。以这种方式承载运行库使得托管移动代码(类似于 Microsoft® ActiveX® 控件)成为可能,但是它具有只有托管代码才能提供的重大改进(如不完全受信任的执行和安全的独立文件存储)。

表 1:WKO 模型支持的方案

WKO 客户端 WKO 服务器

VB 6.0 或非托管 C++ VB 6.0 或非托管 C++

VB 6.0 或非托管 C++ VB .NET 或 C#

VB 6.0 或非托管 C++ SOAP V1.1(在 WSDL 中描述)

VB 6.0 或非托管 C++ Microsoft SOAP(ATL Server,SOAP TK)

C# 或 VB .NET SOAP V1.1(在 WSDL 中描述)

C# 或 VB .NET VB 6.0 或非托管 C++

C# 或 VB .NET VB .NET 或 C#

C# 或 VB .NET Microsoft SOAP(ATL Server,SOAP TK)

Microsoft SOAP Toolkit V2.0 VB 6.0 或非托管 C++

Microsoft SOAP Toolkit V2.0 C# 或 VB .NET

SOAP v1.1 VB 6.0 或非托管 C++

SOAP v1.1 C# 或 VB .NET

表 2:CAO 模型支持的方案

CAO 客户端 CAO 服务器

C# 或 VB .NET(早期绑定) VB 6.0 或非托管 C++

VB 6.0 或非托管 C++ VB 6.0 或非托管 C++

VB 6.0 或非托管 C++ C# 或 VB .NET

C# 或 VB .NET C# 或 VB .NET

这种新的 COM+ Web 服务适用于以下用户:

当前安装有 Microsoft? Visual Basic? 6.0 或者非托管 Microsoft Visual C++? COM+ 应用程序(需要通过防火墙才能进行某些激活操作)的 COM+ 用户。(使用 SOAP 并不排斥通过 DCOM 访问服务器上的相同组件,客户端计算机可以选择协议。)对于这些客户来说,如果要使用 SOAP 而不是 DCOM,则使用客户端代理导出和 CAO 模型都不需要更改客户端和服务器应用程序。只需要在服务器应用程序上启用 SOAP,将其作为客户端代理导出,然后将代理安装在要用作 SOAP 客户端的 Windows XP 计算机上。

完全迁移到 Windows XP 和 Windows .NET Server 上的托管代码的公司。COM+ Web 服务有助于在连接的两端设置远程端点。

需要在上述两种方案中组合和匹配各种服务的开发人员,以及编写托管服务器组件、或带有非托管服务器组件的托管客户端应用程序的开发人员。在第二种情况中,开发人员可以利用 COM+ Web 服务,在用托管代码替换之前充分利用早期的非托管组件。

COM+ Web 服务的设计目的是简化结合 .NET Remoting 和 COM+ 服务(Windows XP 和 Windows .NET Server 系列均包含此服务)的过程。它只是为了简化常见的任务,并非包含所有的选项或涵盖用户可能遇到的各种情况。与使用向导在 Visual Studio .NET 中创建程序类似,某些高级的任务留给用户自行解决。为了使用户可以扩展,生成的项目很少被完全删除。此外,XML 类用于编辑生成的配置文件,如果已经存在配置文件,则会在该文件中添加或删除节点,以反映来自组件服务管理工具或 Microsoft COM+ 管理 SDK 的更改。COM+ Web 服务的设计使用户可以轻松地扩展或自定义已经生成的内容。

总之,COM+ Web 服务为现有的 Visual Basic 和 Visual C++ COM+ 组件,以及在 Visual Basic .NET 和 C# 中编写的新托管的 ServicedComponents,提供了一条实现 XML Web Services 和 SOAP 的简单途径。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/348616.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-07
下一篇2023-05-07

发表评论

登录后才能评论

评论列表(0条)

    保存