zoukankan      html  css  js  c++  java
  • 《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/
        
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    Django: 获取头信息
    好用工具:火狐浏览器的境内境外版本区分
    Django: request.GET.get()
    es6: 展开运算符
    Vue: 配置axios基准路径并使用
    js: 获取Blob的值
    ApiPost: Error:ESOCKETTIMEDOUT
    Vue错误:Cannot read properties of undefined (reading '$router')
    git报错:error: Your local changes to the following files would be overwritten by checkout:
    Django: request.query_params取值
  • 原文地址:https://www.cnblogs.com/jinzhao/p/1373486.html
Copyright © 2011-2022 走看看