青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆 - 13, 文章 - 0, 評(píng)論 - 3, 引用 - 0
數(shù)據(jù)加載中……

程序集 與 托管模塊(引用)

 

引用原文網(wǎng)址:http://www.moon-soft.com/doc/33045.htm
程序集 與 托管模塊

 

    如果你正在開發(fā)面向DotNet平臺(tái)的應(yīng)用程序,那么你肯定對(duì)“程序集”和“托管模塊”這兩個(gè)概念不陌生,這是DotNet帶來的術(shù)語。這兩個(gè)概念很容易混淆,有人認(rèn)為它們指的是同一樣事物,其實(shí)不然。這里,我寫下自己的一些理解。

     

       為了便于說明問題,我們先看看一個(gè)公司的某項(xiàng)目開發(fā)團(tuán)隊(duì),這個(gè)“團(tuán)隊(duì)”由團(tuán)隊(duì)“成員”組成(可能還有一些資源),而在這些團(tuán)隊(duì)成員中,必然有一個(gè)成員是這個(gè)團(tuán)隊(duì)的頭頭,為了表示不是普通的成員,頭頭都有一個(gè)稱號(hào),比如說“經(jīng)理”或者“負(fù)責(zé)人”。經(jīng)常的,說到某個(gè)團(tuán)隊(duì),我們只要知道它的頭頭就可以了。也就是說,頭頭代表了這個(gè)團(tuán)隊(duì)(注意,這里是"代表")。如果其他人有什么事情要與這個(gè)團(tuán)隊(duì)交流(比如團(tuán)隊(duì)向外說明本團(tuán)隊(duì)完成了什么任務(wù)等),沒有必要將每個(gè)成員找來交流,我們只要找到頭頭就可以了。 因?yàn)轭^頭知道本團(tuán)隊(duì)的一切,他掌握了關(guān)于團(tuán)隊(duì)的所有信息:本團(tuán)隊(duì)有哪些成員,而且有些什么資源可以利用,與其他哪些團(tuán)隊(duì)有交流等等。常見的團(tuán)隊(duì)有多個(gè)成員,一個(gè)成員的團(tuán)隊(duì)很少見(頭頭也是他),但為了說明問題,我們假定一個(gè)成員的團(tuán)隊(duì)和多個(gè)成員的團(tuán)隊(duì)都存在。

 

    從上面的討論中我們可以這樣總結(jié):團(tuán)隊(duì)是個(gè)邏輯概念,并不是指某個(gè)人或資源,它是一個(gè)集合,而且這個(gè)集合不為空,只有當(dāng)擁有大于或者等于多個(gè)成員的時(shí)候它才稱之為團(tuán)隊(duì)。

 

       嘿,大家看出來了,我之所以要說項(xiàng)目開發(fā)團(tuán)隊(duì)和成員,是因?yàn)樵?/span>DotNet中的程序集和托管模塊的概念與此類似。程序集其實(shí)并不是說某個(gè)文件,它是一個(gè)邏輯概念,就像一個(gè)團(tuán)隊(duì)。當(dāng)然,我們習(xí)慣說a.exe 或者b.dll是個(gè)程序集,其實(shí)這樣說多少會(huì)讓人混淆,請(qǐng)看下面的說明。而托管模塊就像是團(tuán)隊(duì)中的團(tuán)隊(duì)成員。哈,你肯定想到了,其中必然有一個(gè)托管模塊是整個(gè)“團(tuán)隊(duì)”的“頭頭”,它負(fù)責(zé)管理所有的托管模塊,關(guān)于這個(gè)程序集的一些信息也保存在這個(gè)托管模塊中。我們把這樣的模塊叫做“主托管模塊”(我記得某本書上是這樣叫的)。為了區(qū)分主托管模塊和普通托管模塊,怎么辦呢?這個(gè)好說,人最擅長(zhǎng)給自己掛頭銜了,借鑒一下。我們給普通托管模塊和主托管模塊不同的后綴名,普通托管模塊的后綴名是.netmodule,而主托管模塊的后綴名是.exe 或者.dll。和開發(fā)團(tuán)隊(duì)中頭頭代表整個(gè)團(tuán)隊(duì)一樣,主托管模塊代表著整個(gè)程序集。既然是主托管模塊,那么它肯定與其他托管模塊不一樣。一般的托管模塊包含有IL代碼和元數(shù)據(jù),而這個(gè)主托管模塊有沒有IL代碼和元數(shù)據(jù)并不重要,但它一定要有“清單”,也就是關(guān)于整個(gè)程序集的數(shù)據(jù)。

 

為什么主托管模塊會(huì)有兩種后綴名呢?這是因?yàn)榉止さ脑颍械某绦蚣菫槠渌绦蚣峁┍憷模鼘?shí)現(xiàn)了一些數(shù)據(jù)類型(類庫)或者擁有某些資源――這就是后綴名為.dll的程序集。這樣的程序集不喜歡拋頭露面,它們是“幕后程序集”。另一種程序集,后綴名為.exe,用戶直接和它們打交道。有的功能它自己實(shí)現(xiàn),但有些呢就交給幕后程序集去實(shí)現(xiàn)。為了區(qū)別,我們就把這樣的程序集叫做“前臺(tái)程序集”吧。DotNet規(guī)范中沒有這兩個(gè)概念,這里是為了理解才造的詞。當(dāng)然,讀者朋友都會(huì)有自己比較習(xí)慣的理解名字。一個(gè)可執(zhí)行應(yīng)用程序中,只有一個(gè)前臺(tái)程序集的概念,但是可以有零個(gè)或一個(gè)或多個(gè)幕后程序集。

 

我們又回到實(shí)際生活中的開發(fā)團(tuán)隊(duì)概念上來。團(tuán)隊(duì)的組成有這樣幾種情況:

a.一個(gè)成員,這樣的成員是比較厲害的那種,比如個(gè)人軟件開發(fā)者,自己對(duì)自己負(fù)責(zé),自己是自己的頭頭;

b.多個(gè)成員,其中某個(gè)成員是頭頭;

程序集與此類似,所以就有了單模塊和多模塊程序集(有時(shí)也稱單文件程序集和多文件

程序集)。如果要實(shí)現(xiàn)的功能不是很煩雜,那么就用單模塊程序集吧;但是,如果要實(shí)現(xiàn)的功能比較多,而且也好分開,那么建議你用多模塊程序集吧,如果以后某個(gè)功能的實(shí)現(xiàn)方案改變的話,只要修改這個(gè)模塊就行了,這樣一來,極大的降低了開發(fā)的煩雜度。還有幾點(diǎn)要注意,有的托管模塊并不實(shí)現(xiàn)某種計(jì)算功能,它們僅僅是提供一些資源,比如說字符串;有時(shí)程序集除了包含托管模塊外,還包含一些另外的資源文件。上面說的好像不是很直觀,我們?cè)俳Y(jié)合下面的幾幅圖來理解。

 --------------------------------------

項(xiàng)目頭頭:經(jīng)理

成員:小王

成員:小李

其他成員

其他成員

 

 -------------------------------------- 
                     圖1。某開發(fā)團(tuán)隊(duì)

--------------------------------------

主托管模塊:a.exeb.dll

普通托管模塊1

file1.netmodule

普通托管模塊2

file2.netmodule

其他托管模塊

一些資源文件

 

                              

------------------------------------
                                          2。某程序集示意圖


    我相信現(xiàn)在大家對(duì)程序集和托管模塊分別是什么以及兩者間的關(guān)系有了較好的理解。但是如果有源代碼輔助一下那就更好了。是的。對(duì)程序員來說,源代碼比什么都親切。好的,下面就舉兩個(gè)簡(jiǎn)單的例子
(C#語言表述)。一個(gè)是單模塊程序集,一個(gè)是多模塊程序集。兩者都是前臺(tái)程序集(后綴名是exe)。我用Visual C# 2003 集成開發(fā)環(huán)境試了一下,竟然發(fā)現(xiàn)它不支持多程序集的開發(fā)(希望是我沒有找到)。沒關(guān)系,我們還有DotNet FrameWork SDK呢,不用怕。它自帶的C#編譯器csc.exe很好用。至于csc的用法我就不多說了。

 

例子1。單模塊程序集:

首先找個(gè)文本編輯器,將下面的代碼敲進(jìn)去,然后將它保存起來,取名為hello.cs 例如我把它存為e:\test\hello.cs

 

/*

 *hello.cs 在控制臺(tái)上顯示一行字符串

 */

using System;

namespace nsApp

{

    public class CEnterPoint

    {

       static void Main()

       {

           Console.WriteLine("Hello, verybody!");

       }

    }

}

 

然后,打開SDK命令行提示,定位在hello.cs所在的文件夾,比如我的是e:\test。在命令行提示中輸入命令 csc hello.cs,這個(gè)命令默認(rèn)的是生成 .exe文件,也就是一個(gè)主托管模塊。 現(xiàn)在到hello.cs所在的文件夾中看看,你會(huì)發(fā)現(xiàn)一個(gè)新文件hello.exe。好,一個(gè)主托管模塊誕生了。既然有主托管模塊,那么就標(biāo)志著一個(gè)程序集的誕生。再看看,沒有其他的托管模塊,那么這個(gè)程序集就是一個(gè)單模塊程序集。

 

例子2。多模塊程序集:

假設(shè)我們要編一個(gè)程序來管理動(dòng)物園。這里為了簡(jiǎn)單,不考慮繼承等問題,每個(gè)動(dòng)物用一個(gè)類來表示,并且用一個(gè)托管模塊來實(shí)現(xiàn)。將所有的動(dòng)物都放在命名空間nsZoo中。現(xiàn)在動(dòng)物園有兩種動(dòng)物:DogCat。看下面的代碼:

/* Dog.cs */

using System;

 

namespace nsZoo

{

    public class Dog

    {

       public void SayHello()

       {

           Console.WriteLine("I am a dog, wang wang wang");

      

    }

}

 

/* Cat.cs */

using System;

 

namespace nsZoo

{

    public class Cat

    {   

       public void SayHello()

       {

           Console.WriteLine("I am a cat, miao miao miao");

       }

    }

}

 

/* Main.cs */

using System;

using nsZoo;

 

namespace nsApp

{  

    class CEnterPoint

    {   

       static void Main(string[] args)

       {   

           Dog aDog = new Dog();

           Cat aCat = new Cat();

 

           aDog.SayHello();

           aCat.SayHello();

 

           Console.ReadLine();

       }

    }

}

將上面的三個(gè)文件保存好,比如放在文件夾e:\zoo 中。再一次打開SDK命令行提示,定位到e:\zoo  

輸入命令 csc /t:module Dog.cs 看看文件夾,你會(huì)發(fā)現(xiàn)一個(gè)新文件 Dog.netmodule

哈,這是一個(gè)托管模塊,普通的托管模塊。

接著輸入命令 csc /t:module Cat.cs 同樣得到一個(gè)普通托管模塊 Cat.netmodule 。好現(xiàn)在有了兩個(gè)普通托管模塊。

為了實(shí)現(xiàn)一個(gè)程序集的夢(mèng)想,必須還要有一個(gè)主托管模塊。好,接著輸入

csc /addmodule:Dog.netmodule;Cat.netmodule Main.cs  你會(huì)在文件夾中發(fā)現(xiàn)一個(gè)名為Main.exe的文件,這就是你想要的主托管模塊。

 

好了。現(xiàn)在你有三個(gè)托管模塊,并且任命其中一個(gè)為主托管模塊,這樣你就擁有了一個(gè)程序集了。這個(gè)程序集的組成是:Dog.netmodule, Cat.netmodule, Main.exe 。我們習(xí)慣說這個(gè)程序集是Main.exe 。但是一定要知道,Main.exe 其實(shí)是一個(gè)程序集的“頭頭”,由它代表著整個(gè)程序集。

 

posted on 2009-04-11 20:46 五味雜陳 閱讀(202) 評(píng)論(0)  編輯 收藏 引用


只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            日韩一级免费观看| 欧美一区二区啪啪| 理论片一区二区在线| 国产精品家教| 亚洲国产激情| 欧美在线一二三| 亚洲精品欧美在线| 快射av在线播放一区| 国产日韩一区| 亚洲视频在线播放| 在线观看成人网| 亚洲国产精品尤物yw在线观看| 午夜精品亚洲| 99精品国产99久久久久久福利| 久久躁狠狠躁夜夜爽| 国产色产综合产在线视频| 亚洲午夜在线观看| 亚洲精品乱码久久久久久久久 | 亚洲视频在线二区| 欧美精品一区二区三区很污很色的| 韩国亚洲精品| 久久久爽爽爽美女图片| 久久综合久久久| 亚洲免费在线看| 国产精品理论片| 亚洲自拍高清| 一区二区欧美在线观看| 欧美日韩国产黄| 99re视频这里只有精品| 欧美激情日韩| 欧美二区在线播放| 亚洲日本理论电影| 亚洲国产精品精华液2区45| 久久午夜精品| 亚洲二区在线视频| 欧美h视频在线| 久久狠狠亚洲综合| 日韩一二在线观看| 欧美日韩一区二区三区| 一区二区三区偷拍| 99精品国产在热久久| 欧美日韩在线免费| 亚洲网址在线| 亚洲性xxxx| 久久成人精品视频| 在线午夜精品自拍| 国产精品激情电影| 性欧美精品高清| 午夜精品亚洲一区二区三区嫩草| 国产精品永久免费视频| 久久成人精品| 久久久欧美一区二区| 亚洲第一黄色| 午夜精品福利在线观看| 亚洲欧美视频| 精品51国产黑色丝袜高跟鞋| 你懂的视频一区二区| 免费欧美网站| 亚洲视频在线看| 亚洲视频1区| 国产亚洲欧美在线| 免费在线看一区| 欧美激情综合色综合啪啪| 亚洲视频在线观看| 午夜欧美精品| 亚洲电影激情视频网站| 亚洲欧洲在线播放| 欧美bbbxxxxx| 欧美日韩爆操| 欧美一区二区在线| 久久久久久久性| 亚洲欧洲综合另类| 亚洲精品一二三区| 久久久久久久综合狠狠综合| 久久久欧美精品| 中国女人久久久| 香蕉久久一区二区不卡无毒影院 | 欧美国产免费| 亚洲专区一二三| 久久本道综合色狠狠五月| 亚洲经典三级| 亚洲少妇在线| 精品福利电影| 亚洲精品一区二区在线观看| 久久疯狂做爰流白浆xx| 亚洲精品美女在线| 亚洲一区欧美二区| 亚洲国产精品免费| 亚洲性夜色噜噜噜7777| 久久久久久久波多野高潮日日| 国产美女精品| 欧美激情视频在线播放 | 久久在线播放| 欧美精品观看| 久久黄色网页| 欧美区高清在线| 久久久久久婷| 欧美色精品在线视频| 国产日韩亚洲欧美精品| 99国内精品久久久久久久软件| 亚洲欧美日韩系列| 亚洲激情影院| 香蕉成人久久| 亚洲视频一区二区| 狂野欧美一区| 欧美在线视频导航| 欧美va天堂| 久久久久一区二区三区| 欧美黑人国产人伦爽爽爽| 久久精精品视频| 欧美日韩视频| 欧美激情在线观看| 国产午夜精品久久| 一区二区三区视频在线观看 | 一区二区三区高清| 久久久久久久久久久久久久一区| 亚洲午夜女主播在线直播| 久久婷婷一区| 久久www成人_看片免费不卡| 欧美全黄视频| 免费观看成人| 国产亚洲福利一区| 在线视频你懂得一区| 亚洲人成77777在线观看网| 欧美在线日韩在线| 欧美日韩p片| 亚洲视频免费看| 欧美电影打屁股sp| 免费欧美视频| 国产一区二区三区成人欧美日韩在线观看 | 亚洲国产精品一区二区www| 午夜在线精品偷拍| 亚洲欧美国产另类| 欧美精品尤物在线| 亚洲电影一级黄| 黄色小说综合网站| 香蕉久久夜色精品| 欧美一区二区成人6969| 欧美性做爰毛片| 亚洲茄子视频| 亚洲精品美女久久久久| 欧美a级大片| 欧美sm视频| 伊人色综合久久天天| 欧美一区二区免费视频| 欧美综合77777色婷婷| 国产精品qvod| 亚洲视频一区在线观看| 亚洲你懂的在线视频| 欧美色图五月天| 欧美日韩一二区| 日韩亚洲精品在线| 一区二区三区欧美激情| 欧美极品在线播放| 91久久久久久| 99精品视频网| 欧美久久久久| 日韩香蕉视频| 亚洲欧美美女| 国产精品网站一区| 亚洲综合成人在线| 久久成人18免费网站| 国语对白精品一区二区| 久久久久久9999| 欧美大片在线观看一区二区| 亚洲国产高清视频| 欧美成人按摩| 亚洲精品免费一区二区三区| 一区二区三区福利| 国产精品乱码| 性欧美大战久久久久久久久| 久久免费视频网站| 亚洲国产cao| 欧美国产日本| 一本久道久久综合狠狠爱| 午夜精品久久久久久久| 国产色婷婷国产综合在线理论片a| 欧美在线一级视频| 欧美高潮视频| 一区二区三区高清视频在线观看| 欧美日韩在线一区二区| 亚洲欧美国产毛片在线| 久久人人爽人人| 亚洲欧洲日夜超级视频| 欧美日韩一区二区三区在线观看免| 在线亚洲高清视频| 久久久精品免费视频| 亚洲韩国青草视频| 欧美三级午夜理伦三级中文幕 | 欧美韩国日本综合| 一本色道久久综合亚洲91 | 欧美第一黄网免费网站| 中日韩高清电影网| 久久久久久一区二区| 亚洲激情一区二区三区| 欧美天堂亚洲电影院在线播放| 亚洲欧美视频在线观看视频| 免费在线国产精品| 中国av一区| 激情视频一区|