posts - 38, comments - 9, trackbacks - 0, articles - 1

          參加.Net培訓(xùn)筆記二

          Posted on 2005-04-11 12:31 大阿福 閱讀(313) 評(píng)論(0)  編輯  收藏

          GC:collect the isolated object in the shared heap.
          machinism:
          1.When we create an new object in the shared heap, if the memory size of the shared heap can't fit the new object, CLR will invoke the GC.
          2.GC will wait until all the .NET apps in the same computer pends.
          3.GC creates a list of all the referenced objects in the shared heap.
          In addition, GC will add all the object with destructor to the list.
          GC will create a new array named FReachable, and add all those objects with destructor to this array.

          4.GC moves all the referenced objects to the bottom of the shared heap.
          5.GC updates all the referenced objects's pointer.
          6.CLR will execute all the destructor of the objects in the FReachable. After exected, CLR will reset the destructer's flag.

          when will the GC execute the destructor?

          1.Destructor
          2.Dispose(reset destructor's flag)

          using  -> invoke Dispose() method.


          Assembly deployment:

          How does CLR load an assembly?
          CLR(Class loader)
          1. CLR looks for a config file(app.exe.config).
          2. CLR will look for the assembly from the path that the app config file defines. -> internet(http://www.founder.com/a.dll), private path(bin;app\bin;app\dll)
          3. If not find, CLR will look for the GAC(Global Assembly Cache).
          4. If not find, CLR will look for the executing folder.

          CLR(Exception Manager)
          TestDep, Version=1.0.1925.15891, Culture=neutral, PublicKeyToken
          1. AssemblyName
          2. Version Number
          3. Culture Information
          4. PublicKeyToken

          Deployment path:
          1. Execution folder
          2. Config folder
          1)Internet config: <codeBase>
          2)private path: <probing>
          <configuration>
             <runtime>
                <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
                   <probing privatePath="bin;bin2\subbin;bin3"/>
                </assemblyBinding>
             </runtime>
          </configuration>

          3. GAC:
          precondition:
          1)strong name: CLSID/PrgID
          a pair asyncArithmatic key.
          TestDep, Version=1.0.1925.15891, Culture=neutral, PublicKeyToken

          sn.exe

          2)version number

          gacutil.exe

          1. verion control:

          verion redirect. <bindingRedirect>
          <configuration>
             <runtime>
                <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
                 
                     <probing privatePath="v1.1\Debug"/>
          <dependentAssembly>
                      <assemblyIdentity name="TestDep"                          publicKeyToken="5ad115fe5d425e50"/>
                      <bindingRedirect oldVersion="1.0.0.0"
                                       newVersion="1.1.0.0"/>
                   </dependentAssembly>
               
                </assemblyBinding>
             </runtime>
          </configuration>


          native images: NGen.exe

           


          2. install package:

          installshield

          .NET Framework redistributed

          Custom action in the process of installation!

           

          zh-cn

           
          Assembly reflection:
          1) read resouce file from assembly.
          2) get types from assembly.
          3) create object dynamic from the assembly.

          .NET Event:
          Delegate -> a anoymouse function pointer

          int/double... -> System.Int32/Double
          delegate    -> Delegate

          overload operator +

          Data Type -> .NET Framework struct/class

          Common Type System: CTS
          1)value type: stack
          value copy.
          structure

          2)reference type: shared heap
          pointer copy.


          Change Data Type:
          1)implicity convertion: int16 -> int32 -> int64
          short -> long

          2)
          long -> short

          3)different type convertion:
          any type -> string: ToString()
          string -> other type: Parse()

          anytype <-> object: boxing/unboxing


          4)System.Convert class


          lab:
          1. create install package, add custom action. record the username and company information in a file during the installation process.
          2. create a reflection application, can be runned as a unit tester.
          3. create a component with an event.


          只有注冊用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 青田县| 济南市| 河北区| 奇台县| 左权县| 比如县| 望江县| 南郑县| 漠河县| 合山市| 本溪| 抚顺县| 兰西县| 高密市| 保靖县| 萍乡市| 永城市| 沈丘县| 泗水县| 绥棱县| 银川市| 曲水县| 许昌县| 丰县| 鲁甸县| 长垣县| 宁河县| 松滋市| 巨鹿县| 永兴县| 海晏县| 四会市| 右玉县| 临澧县| 泸定县| 英超| 和龙市| 永福县| 广汉市| 德阳市| 宜宾县|