• 《Asp.Net 2.0 揭秘》读书笔记(十四)


    创建组件

    首先这里的组件不是通常意义的组件

    *动态编译的过程的一个主要缺陷就是如果组件中出现任何错误,会导致整个站点出错不能运行;

    *不同语言编写的组件需要放在不同的文件夹中,如果是一种语言写的就无所谓;

    *静态(static)在其它语言中被称作共享,它是没有任何实例归属的;这句话太好了啊,记得学C++的时候就一直搞不懂,一直都是从它的实现机制上去理解,啥静态的不变的啦,后来用了一段时间后不这么想了,但是一直没有一个很好的理解总感觉缺点什么,共享两个字真的太好了,它的后半句话也解释了为什么静态变量不能引用其它的变量;

    *Asp.Net这种多线程环境中使用共享成员变量和属性,可能会引发一些稀奇古怪的多线程并发问题,如果一定要使用静态属性,请尽量将其定义为只读;这个问题也一直困扰着我,哎,看好书就是如此的获益匪浅啊;

    *静态构造函数在所有实例构造函数执行前执行,并且在程序生命中只执行一次,哈哈,这个是我当初看到有人用的时候自己悟出来,想想自己都感觉自己天才,吹完了~

    *抽象类是Asp.Net 2.0 Provider的基础,如Personalization、Membership、Roles、等;

    *新建组件类库的时候一般都要引用System.Web.dll的引用;

    *引用有两种方法,一个是放在Bin目录下,不知道咋回事windows的程序都是直接自动搜索当前目录下的Bin文件夹中的程序集,另一个是直接放全局程序集缓存中就是C:\\windows\assembly

    *添加到全局缓存签必须要先请命名程序集,类似于GUID,命令行工具(sn.exe –k KeyPair.snk),生成KeyPair.snk文件,中放着随机生成了公/私密钥;

    *在AssemblyInfo.cs中

    [assembly:AssemblykeyFile("KeyPair.snk")]
    [assembly:AssemblyVersion("0.0.0.0")]

    四个0分别代表主版本号、副版本号、构建编号和修订编号

    *加入全局缓存命令行(GacUtil.exe /i MyLibrary.dll)

    *config中添加引用的代码示例:

    <system.web>
      <comilation>
        <assemblies>
          <add assembly="MyLibrary,Version=0.0.0.0,Culture=neutral,PublicKeyToken=123456123456"/>
        </assemblies>
      </coml\pilation>
    </system.web>
    *通常情况下避免全局应用程序集的使用
    *当程序开始进入架构设计的时候会有很多问题值得思考,反正我只知道没有最完美的设计只有最适合当前的设计!
    慢慢来,加油吧;
    *简单的三层应用page468
    作者:KKcat
        
    个人博客:http://jinzhao.me/
        
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    Linux 性能优化之 IO 子系统
    Percona 开始尝试基于Ceph做上层感知的分布式 MySQL 集群,使用 Ceph 提供的快照,备份和 HA 功能来解决分布式数据库的底层存储问题
    Ceph常用维护操作
    linux系统数据落盘之细节
    Ceph: validate that the RBD cache is active
    linux初始化
    GlusterFS 安装
    GlusterFS常用设置命令
    kubernetes --- Glusterfs
    kubernetes --- weave
  • 原文地址:https://www.cnblogs.com/jinzhao/p/1373486.html
Copyright © 2020-2023  润新知