引用> If we can't even look at the source, it will make it virtually
> impossible for .net developers to contribute to mono, since the source
> viewing will be integrated with visual studio and will greatly enhance
> debugging, it would be stupid not to use it for regular developing.
> Soon everyone will have seen at least some part of the code.
Then we will not accept their contributions. It is that easy. If you look at code in System.Net, it does not mean that you can notcontribute to say System.Windows.Forms. So there is some nuance here.
Microsoft Corporation(或 Microsoft Corporation 在您所在地的分公司)現(xiàn)授予您本補(bǔ)充程序的許可證。如果您獲得了使用 Microsoft Windows 操作系統(tǒng)軟件(“軟件”)的許可證,您可以使用本補(bǔ)充程序。如果您沒(méi)有該軟件的許可證,則不得使用。您可以隨該軟件的每份獲得有效許可的副本使用一份本補(bǔ)充程序。
下列許可條款說(shuō)明了。這些條款和軟件的許可條款在您使用本補(bǔ)充程序時(shí)適用。如果發(fā)生沖突,則以這些補(bǔ)充程序許可條款為準(zhǔn)。
----------------------------------
使用本補(bǔ)充程序即表示您接受這些條款。如果您不接受這些條款,請(qǐng)不要使用本補(bǔ)充程序。
如果您遵守這些許可條款,您將具有下列權(quán)利。
1. 對(duì)補(bǔ)充程序的支持服務(wù)。Microsoft 為該補(bǔ)充提供支持服務(wù);相關(guān)說(shuō)明,請(qǐng)參見(jiàn) www.support.microsoft.com/common/international.aspx。
2. MICROSOFT .NET FRAMEWORK 基準(zhǔn)測(cè)試。此補(bǔ)充軟件包括 Windows 操作系統(tǒng)的 .NET Framework 組件(即“.NET 組件”)。在遵守以下條款的前提下,您可以披露 .NET 組件基準(zhǔn)測(cè)試的結(jié)果:(1) 您必須披露復(fù)制此測(cè)試所需的全部信息,包括關(guān)于您的基準(zhǔn)測(cè)試方法的完整而準(zhǔn)確的詳細(xì)資料、測(cè)試腳本/案例、應(yīng)用的調(diào)試參數(shù)、測(cè)試的硬件和軟件平臺(tái)、用來(lái)測(cè)試的任何第三方工具的名稱和版本號(hào)以及由您開(kāi)發(fā)或?yàn)槟_(kāi)發(fā)的用來(lái)測(cè)試 .NET 組件和競(jìng)爭(zhēng)性實(shí)施方式的基準(zhǔn)套件/裝置的完整源代碼;(2) 您還必須披露您執(zhí)行基準(zhǔn)測(cè)試的日期和所有測(cè)試的 Microsoft 軟件(包括 .NET 組件)的具體版本信息;(3) 您的基準(zhǔn)測(cè)試是使用產(chǎn)品文檔中和/或 Microsoft 的支持網(wǎng)站點(diǎn)上提供的所有性能優(yōu)化和最佳做法指南進(jìn)行的,并且使用了已為 .NET 組件和相關(guān)的 Microsoft 操作系統(tǒng)提供的最新更新、修補(bǔ)程序和修復(fù)程序;(4) 您在可公開(kāi)訪問(wèn)場(chǎng)所,例如網(wǎng)站,根據(jù)上述規(guī)定所做出的披露將被視為充分,只要基準(zhǔn)測(cè)試結(jié)果公開(kāi)披露中明確指出包含所要求披露的場(chǎng)所;以及 (5)本提款中的任何內(nèi)容都不得被視為放棄任何您所擁有的進(jìn)行基準(zhǔn)測(cè)試的權(quán)利。上述義務(wù)不適用于您對(duì)于任何.NET 組件特別基準(zhǔn)測(cè)試結(jié)果的披露,只要該披露是根據(jù)與潛在客戶報(bào)價(jià)要求有關(guān)的保密義務(wù),且該客戶產(chǎn)品被特別測(cè)試,其測(cè)試結(jié)果僅向該特定用戶披露。盡管您同 Microsoft 可能還有其他協(xié)議,但如果您披露此類基準(zhǔn)測(cè)試結(jié)果,Microsoft 也有權(quán)披露對(duì)您與產(chǎn)品 .NET 組件競(jìng)爭(zhēng)的產(chǎn)品進(jìn)行的基準(zhǔn)測(cè)試的結(jié)果,條件是它符合上述的相同條款。
Microsoft .NET Framework 2.0 版可再發(fā)行組件包將安裝運(yùn)行針對(duì) .NET Framework 2.0 版開(kāi)發(fā)的應(yīng)用程序時(shí)所需的 .NET Framework 運(yùn)行庫(kù)及相關(guān)文件。
.NET Framework 2.0 版改進(jìn)了緩存,從而提高了應(yīng)用程序的可擴(kuò)展性和性能;使用 ClickOnce 改進(jìn)了應(yīng)用程序部署和更新;通過(guò) ASP.NET 2.0 控件和服務(wù)對(duì)各種瀏覽器和設(shè)備提供更強(qiáng)大的支持。有關(guān) .NET Framework 2.0 的詳細(xì)信息,請(qǐng)單擊此處。重要事項(xiàng):不能在同一臺(tái)計(jì)算機(jī)上安裝兩種不同語(yǔ)言版本的 .NET Framework。試圖安裝第二種語(yǔ)言版本的 .NET Framework 時(shí),將會(huì)導(dǎo)致出現(xiàn)以下錯(cuò)誤:“安裝程序無(wú)法安裝 Microsoft .NET Framework,因?yàn)橐呀?jīng)安裝了該產(chǎn)品的其他版本。”如果您要使用非英語(yǔ)的平臺(tái)或要以另一種語(yǔ)言查看 .NET Framework 資源,則必須下載相應(yīng)語(yǔ)言版本的 .NET Framework 語(yǔ)言包。
支持的操作系統(tǒng): Windows 2000 Service Pack 3; Windows 98; Windows 98 Second Edition; Windows ME; Windows Server 2003; Windows XP Service Pack 2
.NET基本類庫(kù):
System,System.CodeDom,System.Collections,System.ComponentModel, System.Diagnostics, System.Drawing, System.Globalization, System.IO, System.Net, System.Reflection, System.Runtime, System.Security, System.Text, System.Threading
ASP.NET:
System.Web, System.Web.Extensions
Windows Forms:
System.Windows.Forms
Windows Presentation Foundation:
System.Windows
ADO.NET和 XML:
System.Data
System.Xml
以下內(nèi)容含腳本,或可能導(dǎo)致頁(yè)面不正常的代碼 |
---|
說(shuō)明:上面顯示的是代碼內(nèi)容。您可以先檢查過(guò)代碼沒(méi)問(wèn)題,或修改之后再運(yùn)行. |
已經(jīng)讀到第二章了,就從第二章開(kāi)始記吧!
Chapter 2: Building, Packaging, Deploying, and Administering Applications and Types
DOT NET Framework Deployment Goals
Previous Windows Pragram have three question:
1 DLL hell cause application unstale
2 Customers are diffuclt to manage installing application.
3 Security problem.Customers didn't know what the application have do.
Building Types into a Module
MSCorLib.dll is a special file in that it contains all the core types, such as bytes, integers,
characters, strings, and so on. In fact, these types are so frequently used that the C# compiler
automatically references this assembly.
A managed PE file has four main parts: the PE header, the CLR header, the metadata, and the intermediate language (IL).
The PE header is the standard information that Windows expects.
CLR header was defined as struct the IMAGE_COR20_HEADER(We can find the definition from the the CorHdr.h header file.
typedef struct IMAGE_COR20_HEADER
{
// Header versioning
ULONG cb;
USHORT MajorRuntimeVersion;
USHORT MinorRuntimeVersion;
// Symbol table and startup information
IMAGE_DATA_DIRECTORY MetaData;
ULONG Flags;
ULONG EntryPointToken;
// Binding information
IMAGE_DATA_DIRECTORY Resources;
IMAGE_DATA_DIRECTORY StrongNameSignature;
// Regular fixup and binding information
IMAGE_DATA_DIRECTORY CodeManagerTable;
IMAGE_DATA_DIRECTORY VTableFixups;
IMAGE_DATA_DIRECTORY ExportAddressTableJumps;
// Precompiled image info (internal use only - set to zero)
IMAGE_DATA_DIRECTORY ManagedNativeHeader;
} IMAGE_COR20_HEADER;
The metadata is a block of binary data that consists of several tables. There are three categories of
tables: definition tables, reference tables, and manifest tables.
Combining Modules to form an assembly
An assembly is a collection of one or more files containing type definitions and resource files,the following characteristics of assembly should be remembered:
An assembly defines the reusable types
An assembly is marked with a version number
An assembly can have secuity information associated with it
]]>
正在向上面的類庫(kù)列表中添加其他的框架庫(kù)(包括LINQ, WCF和Workflow)過(guò)程之中。在接下來(lái)的幾周或者幾個(gè)月之內(nèi)它們將可用。
在Visual Studio 2008中啟用.NET框架庫(kù)源代碼訪問(wèn)只要幾分鐘就可以配置完成。Shawn Burke在這里有一篇很詳細(xì)的博客,說(shuō)明了如何啟用源碼支持的具體步驟。
如果你在配置時(shí)遇到了麻煩或者有問(wèn)題的話,請(qǐng)?jiān)贛SDN這里的Reference Source Forum論壇提問(wèn)。
在按Shawn上面的博客中的步驟配置完成之后,你就可以動(dòng)態(tài)地加載.NET框架庫(kù)的調(diào)試符號(hào)并且調(diào)試進(jìn)入到源碼之中。在你調(diào)試框架庫(kù)代碼的過(guò)程中,VS 2008將會(huì)從MSDN源碼服務(wù)器上按需下載符號(hào)和源碼文件:
開(kāi)發(fā)者的注釋也包括在源文件中。在上面的例子中,你可以看到Control基類中的Dispose方法的注釋例子。
有時(shí),你會(huì)看到一些注釋引用了我們的缺陷/工作項(xiàng)跟蹤數(shù)據(jù)庫(kù)(bug/work-item tracking database)中以前的缺陷跟蹤號(hào)碼,這些號(hào)碼提供了關(guān)于某個(gè)特定編碼決定的額外歷史信息。例如,上面的注釋指出,某個(gè)特定的成員變量,為保持與框架的一個(gè)老版本的向后兼容性,不該設(shè)置成null,并且指出了因此而修正的一個(gè)向后兼容性缺陷。
.NET 框架源碼是在一個(gè)只讀參考許可(read-only reference license)下發(fā)布的。去年十月份我們宣布將要公布源碼的時(shí)候,一些人對(duì)他們查看源碼的的潛在影響有些顧慮。為了澄清和對(duì)這些顧慮作一個(gè)說(shuō)明,我們對(duì)許可作了一個(gè)小小的改動(dòng),特別指出這個(gè)許可不適用于在擁有和.NET框架“相同或者本質(zhì)上相同的特性或者功能(the same or substantially the same features or functionality)”的非Windows平臺(tái)下開(kāi)發(fā)軟件的開(kāi)發(fā)者。如果你開(kāi)發(fā)的軟件是針對(duì)Windows平臺(tái)的,那么你就可以查看這些源碼,即使那些軟件擁有和.NET框架“相同或者本質(zhì)上相同的特性或者功能”。
我們認(rèn)為,提供源碼訪問(wèn)和.NET框架庫(kù)的調(diào)試集成對(duì).NET開(kāi)發(fā)者來(lái)說(shuō)是非常有價(jià)值的。能夠單步調(diào)試和查看源碼對(duì).NET框架庫(kù)是如何實(shí)現(xiàn)的應(yīng)該會(huì)提供一個(gè)更好的認(rèn)識(shí),然后使你開(kāi)發(fā)出更好的應(yīng)用程序,更好地應(yīng)用.NET框架。
]]>
以下內(nèi)容含腳本,或可能導(dǎo)致頁(yè)面不正常的代碼 |
---|
說(shuō)明:上面顯示的是代碼內(nèi)容。您可以先檢查過(guò)代碼沒(méi)問(wèn)題,或修改之后再運(yùn)行. |