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

          參加.Net培訓筆記二

          Posted on 2005-04-11 12:31 大阿福 閱讀(313) 評論(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.


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 沙河市| 孝义市| 博湖县| 永德县| 上思县| 寿阳县| 平远县| 镇安县| 隆尧县| 拜泉县| 泰顺县| 鄢陵县| 大渡口区| 民勤县| 赞皇县| 体育| 泾源县| 武鸣县| 弋阳县| 通州市| 藁城市| 蒲城县| 莲花县| 新河县| 光山县| 通道| 新建县| 宁晋县| 龙口市| 留坝县| 磴口县| 大足县| 晋州市| 望江县| 黄平县| 陆良县| 镇远县| 堆龙德庆县| 郧西县| 永新县| 连城县|