zoukankan      html  css  js  c++  java
  • 第一讲 应用程序的执行

        微软为什么要用.NET Framework ,原因只有一点,就是为它的各个操作系统产品,找一个中间件,在移植和安全性方面得到统一。不过有一点是肯定的,速度慢了许多,这也是.net程序员最不爽的事。

        在Common Language Runtime(运行时环境)中运行的程序都是授控的程序,C#程序员有一个方便的好处就是不用像C++程序员哪样要考虑很多内存垃圾清理的工作,这一切都由CLR自动完成。编程方便了很多,但也不知道了很多细节!

        现在的编程序是基于组件的编程序,程序包含一个或多个组件(dll)组成。在.net环境中称为Assembly。一个Assembly是一个或多个源文件编译结果。在Assembly中可以包括我们自己写的类,也可以包括Framework Class Library。和一切可以引用的类。

    *部署软件的时候就是部署Assembly。
    安装到.EXE所在的文件夹中
    最简便,也称作 xcopy deployment
    将一部分安装到.EXE所在的文件夹中,另一部分在GAC中
    GAC 允许你共享、安装多个版本
    通过配置文件自定义部署
    可以自定义安装位置,例如安装到某台服务器上
    “Zero-touch” 部署
    通过URL安装: http://server/app/app.exe
    应用程序可以定期自动更新
    在VS 2005中进化为ClickOnce部署

    *应用程序在哪里找Assembly,这里有一个算法。
    应用程序(.EXE)指定将要使用的assembly版本
    在GAC(Global Assembly Cache)中搜索相应版本
    If 未找到 and 存在.config文件 then
           到配置文件指定的位置搜索
       else    到.EXE文件所在的路径搜索
    If 未找到 then
            发生错误,程序终止

    *NET如何发现的版本信息?
    .net把mannifest编译到.DLL/.EXE中
    可以通过ILDASM工具查看
    ILDASM = Intermediate Language Disassembler
    Manifest中存储了版本,依赖关系等信息

    ildasm是.net的汇编语言工具。在SDK Tools中找!

  • 相关阅读:
    with 上下文协议
    __del__
    描述符使用
    理解并发(Concurrency)和并行(Parallelism)
    理解ThreadLocal
    理解死锁的概念(实例)
    遇到的几种设计模式的应用
    面试题02
    操作 mysql练习14-16题
    mysql练习11-13题
  • 原文地址:https://www.cnblogs.com/iceberg2008/p/1398903.html
Copyright © 2011-2022 走看看