Microsoft .NET 框架常见问题(二)

2016-01-29 13:39 3 1 收藏

Microsoft .NET 框架常见问题(二),Microsoft .NET 框架常见问题(二)

【 tulaoshi.com - ASP.NET 】

名称空间与程序集名称之间有什么区别?
名称空间是类型的一种逻辑命名方案,其中简单类型名称(如 MyType)前面带有用点分隔的层次结构名称。这样的命名方案完全在开发人员的控制之下。例如,键入 MyCompany.FileAccess.A 和 MyCompany.FileAccess.B 在逻辑上将会具有与文件访问相关的功能。.NET 框架使用一种层次结构命名方案,用于将类型按相关功能的逻辑类别进行分组,例如,ASP.NET 应用程序框架或远程处理功能。设计工具可以利用名称空间使开发人员更容易在代码中浏览和引用类型。名称空间的概念与程序集的概念之间没有任何联系。一个程序集可以包含其层次结构名称具有不同名称空间根的类型,而一个逻辑名称空间根可以跨越多个程序集。在 .NET 框架中,名称空间是在设计时进行逻辑命名的便捷方式,而程序集在运行时为类型建立名称作用域。

应用程序部署和隔离
部署 .NET 应用程序时可以使用哪些选项?
通过使应用程序的无影响安装和 XCOPY 部署成为可能,.NET 框架简化了部署。因为所有的请求首先在专用应用程序目录中进行解析,所以只需简单地将一个应用程序的目录文件复制到磁盘中,即可运行该应用程序,而不需要注册。

此方案对于 Web 应用程序、Web 服务和独立的桌面应用程序特别有吸引力。不过,在有些方案中 XCOPY 还不足以担当分发机制。例如,当应用程序具有很少的专用代码,而依赖于可用的共享程序集;或者应用程序不是安装在本地(而是按需下载)。对于这些情况,.NET 框架提供了扩展的代码下载服务以及与 Windows Installer 的集成。.NET 框架提供的代码下载支持通过当前平台提供了许多优势,包括增量下载、代码访问安全性(不再有“Authenticode”对话框)和应用程序隔离(为一个应用程序下载的代码不会影响其他应用程序)。Windows Installer 是 .NET 应用程序可以使用的另外一个强大的部署机制。在 Windows Installer 1.5 中,Windows Installer 的所有特性(包括发行、公布和应用程序修补)都可以在 .NET 应用程序中使用。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com)

如果我已经编写了一个程序集,并希望在多个应用程序中使用它,我应该在何处部署它?
要由多个应用程序使用的程序集(如共享程序集)需要部署到全局程序集缓存中。在预发布版和 Beta 版中,使用 Alink SDK 工具的 /i 选项可将程序集安装到缓存中:

al /i:myDll.dll
Windows Installer 的后续版本能够将程序集安装到全局程序集缓存中。

如何才能看到在全局程序集缓存中安装了哪些程序集?
.NET 框架附带了一个 Windows 外壳扩展,用于查看程序集缓存。在 Windows 资源管理器中,转至 % windir%assembly 以激活查看器。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com)

什么是应用程序域?
应用程序域(通常是 AppDomain)是用于隔离应用程序的虚拟进程。在同一个应用程序作用域中创建的所有对象(换句话说,从该应用程序的入口点开始沿着对象激活序列的任何地方)都在同一个应用程序域中创建。多个应用程序域可以存在于一个操作系统进程中,使它们成为隔离应用程序的简便方式。

操作系统进程通过使用各不相同的内存地址空间来提供隔离。尽管它是有效的,但也是代价昂贵的,并且不能达到大型 Web 服务器所需要的数量。与其相比,公共语言运行时通过管理在应用程序域中运行的代码的内存使用来强制进行应用程序隔离。这样就确保它不会访问应用程序域以外的内存。需要注意的是,只有类型安全的代码才能以这种方式管理(当在应用程序域中加载不安全代码时,运行时不能保证隔离)。

垃圾回收
什么是垃圾回收?
垃圾回收是使计算机能检测何时不再能够访问某个对象的一种机制。它将自动释放由该对象使用的内存(也调用用户编写的称为“结束者”的清理例程)。一些垃圾回收器(如由 .NET 使用的)会压缩内存,并因此减少程序的工作集。

非确定性垃圾回收是如何影响代码的?
对于大多数编程人员而言,拥有一个垃圾回收器(并且使用可作为垃圾回收的对象)意味着永远不需要操心释放内存或引用计数对象,即使您使用了复杂的数据结构。但如果您通常在同一个用于释放对象内存的代码块中释放系统资源(文件句柄、锁定等等),那么在编码样式方面需要做一些修改。使用可作为垃圾回收的对象时,您应该提供一种方法,来明确释放系统资源(也就是说,由您的程序控制),同时允许垃圾回收器在压缩工作集时释放内存。

是否能够避免使用可作为垃圾回收的堆?
所有支持运行时的语言都允许您从可作为垃圾回收的堆中分配类对象。这在快速分配方面带来了好处,并且使编程人员无需自己来计算何时应该显式“free”每个对象。

CLR 还提供了 ValueTypes 对象——它们与类相似,但 ValueType 对象是在运行时堆栈(不是堆)中分配的,因此当您的代码退出定义这些对象的过程时,将自动回收它们。这就是 C# 中“struct”的操作方式。

C++ 的托管扩展使您可以选择类对象分配的位置。如果使用 __gc 关键字声明为托管类,它们将从可作为垃圾回收的堆中分配;如果它们不包含 __gc 关键字,它们将与普通的 C++ 对象一样从 C++ 堆中分配

来源:https://www.tulaoshi.com/n/20160129/1490984.html

延伸阅读
标签: PHP
   四、 问:当我将PHP和APACHE一起编译时,好象有问题。它总是说无法找到httpd.h文件,可事实上该文件时存在的。为什么? 答:你需要让PHP配置/安装脚本知道你的APACHE源码的最高级目录,而不是包含httpd.h文件的目录。也就是说,应该指定"--with-apache=/path/to/apache/"而不是"--with-apache=/...
平安WiFi常见问题?   是目前市场上唯一一个无条件、零门槛的免费上网APP,用户只需要下载平安WiFi APP,一次登录就可以免费连接平安WiFi覆盖的热点上网。上网过程中不需要浏览广告、输入验证码、完成任务、下载其他APP等任何繁琐步骤。 常见问题大全 安卓问题: 1、什么是平安WiFi APP? 它免费吗? 平安...
标签: 问题肌肤
角质 老茧组织是用来保护脚部免遭外伤的,但同时也会使双脚显得很粗糙。使用足锉或含有保湿成分的足部去角质产品,光滑足部皮肤。除了脚后跟, 脚趾根也要仔细清除角质。 开裂 当足部的老茧过于干燥的时候,会产生开裂的情况,严重时会有疼痛感,含蜂蜜等成分且滋润度高的乳霜可有效治疗干燥',干裂的脚部皮肤。 ...
360压缩常见问题   (1)如何给压缩包添加注释? 压缩文件时,在界面,点击按钮,即可在新弹出的窗口内输入注释。或者在软件主界面,选中一个压缩包后,点击菜单栏上菜单里的按钮,给已有压缩文件添加注释。 (2)什么是自解压文件? 自解压文件是一种压缩文件,这种文件可以不通过外部软件,自行实现解压操作。使用3...
标签: 电脑入门
估计大家在PPT配色的时候常见问题有: 1、不知道PPT主色一般放在什么地方? 面积较大,主宰整体换面的色调,给人整体印象的色彩(无位置限制) 2、不知道PPT辅色放在什么地方? 运用于过渡、平衡色彩、丰富色彩层次等;一般应用于标题强调,正文,背景等; 3、不知道PPT主色和PPT辅色之间的面积关系? 主色占有较大比例,辅助色起到画龙点睛...

经验教程

998

收藏

96
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部