2009-12-11 99 views
5

任何人都可以指出使用組件的優點,在的ASP.NET「語境」。裝配VS類庫(.NET)

據我瞭解,組件運行的可執行文件,有一個單一的入口點,並且可以在應用領域內運行,但我發現在網絡上很少有合適的例子。

回答

8

的組件不僅是一個可執行的...組件本質上是一個.NET庫,可能有一個可執行文件入口點......

Wikipedia article with description of assemblies第一段:

在Microsoft .NET框架, 程序集是用於部署的部分編譯代碼 庫,版本控制和安全性是 。有兩個 類型:進程程序集(EXE)和 庫程序集(DLL)。程序 程序集表示 將使用程序庫 程序集中定義的類的程序。 .NET組件包含在CIL 代碼,這通常是 從.NET語言生成,並然後 由CLR剛剛在時間 編譯器編譯成機器語言在運行時 。程序集可以由一個或多個文件組成 。代碼文件是 稱爲模塊。組件可以包含多於一個的代碼模塊和 ,因爲可以使用不同的 語言來創建代碼模塊,因此在技術上可以使用多個 不同的語言來創建 程序集。但Visual Studio 不支持在一個程序集中使用不同的語言 。

+1

所以庫是一個程序集的子集? – maxp

+0

我不會說子集...這兩個定義之間有重疊.. –

3

組件並不總是可執行文件。大多數人會將它們定義爲一個以單個DLL或EXE文件形式呈現的類模塊的集合。最接近他們的是Java JAR。

他們有一個包含了一堆的信息,如

  • 版本
  • 方法和類型

他們也有一個明顯的是這個元數據的一部分(元數據(見http://en.wikipedia.org/wiki/.NET_metadata)見http://msdn.microsoft.com/en-us/library/1w45z383.aspx)。

您可以將程序集註冊到全局程序集緩存(GAC)(請參閱http://en.wikipedia.org/wiki/Global_Assembly_Cache),並且您將使它們可供機器上的所有其他程序使用。 (在Visual Studio中,使用「添加引用」並瀏覽.Net選項卡,即可看到GAC中的程序集列表)。

您不必將它們添加在GAC,您可以直接引用的私人集會,但在GAC註冊它們使它們全局可用的計算機上。

此鏈接包含有關組件敏感信息:

2

這個問題並沒有做出很大的意義。程序集包含類庫,它不是一個或任何類型的東西。即使你只有aspx文件,第一次有人訪問一個頁面,ASP.Net將它編譯成一個類,然後編譯成一個程序集。

0

@maxp,你問是否將該類作爲.cs文件包含在項目中或者作爲參考中的編譯後的.dll更好?

我曾經在類文件(.cs)中保留常用函數,並將它們包含在我正在處理的項目中。這些類在源代碼控制下生活,所以我只要確保在創建新項目時能夠獲得最新版本。但最近,我已經開始編譯它們並在GAC中註冊它們。這有助於減少並非每個人都知道給定項目中包含哪個版本的類的頭痛。如果您對班級進行了更改,只需將其重新註冊到GAC中,即可更新所有應用程序並使用相同的版本。

我遇到的唯一真正的缺點是,如果您嘗試調試並逐步完成邏輯。在編譯並放置到GAC中之前,確保您的類是穩定的。

希望這有助於回答你的問題。

+0

不是真的,但感謝您的答覆。我們的解決方案可以解決您的「最新版本代碼」問題,它有一個包含所有項目的大型解決方案,包括類庫。然後,我們爲每個項目添加對類庫的引用,所以每次新編譯時,所有項目都會使用最新的庫進行更新。 – maxp