![C#.NET-開發(fā)者指南-計(jì)算機(jī)專業(yè)畢業(yè)設(shè)計(jì)外文翻譯-中英文對照_第1頁](http://file4.renrendoc.com/view/53a24fd17d358827599cd8020f565f90/53a24fd17d358827599cd8020f565f901.gif)
![C#.NET-開發(fā)者指南-計(jì)算機(jī)專業(yè)畢業(yè)設(shè)計(jì)外文翻譯-中英文對照_第2頁](http://file4.renrendoc.com/view/53a24fd17d358827599cd8020f565f90/53a24fd17d358827599cd8020f565f902.gif)
![C#.NET-開發(fā)者指南-計(jì)算機(jī)專業(yè)畢業(yè)設(shè)計(jì)外文翻譯-中英文對照_第3頁](http://file4.renrendoc.com/view/53a24fd17d358827599cd8020f565f90/53a24fd17d358827599cd8020f565f903.gif)
![C#.NET-開發(fā)者指南-計(jì)算機(jī)專業(yè)畢業(yè)設(shè)計(jì)外文翻譯-中英文對照_第4頁](http://file4.renrendoc.com/view/53a24fd17d358827599cd8020f565f90/53a24fd17d358827599cd8020f565f904.gif)
![C#.NET-開發(fā)者指南-計(jì)算機(jī)專業(yè)畢業(yè)設(shè)計(jì)外文翻譯-中英文對照_第5頁](http://file4.renrendoc.com/view/53a24fd17d358827599cd8020f565f90/53a24fd17d358827599cd8020f565f905.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
重慶大學(xué)本科生畢業(yè)論文翻譯PAGE\*ArabicDash-16-譯文:<C#.NET開發(fā)者指南>前言在電腦軟件的歷史上,很少有一種技術(shù)能夠得到開發(fā)者和業(yè)界如此強(qiáng)烈的正面響應(yīng)。全球已經(jīng)有數(shù)百萬的開發(fā)者下載了Microsoft的.NET軟件開發(fā)工具包,已經(jīng)出現(xiàn)了很多有關(guān).NET平臺及其相關(guān)技術(shù)和語言的教材、網(wǎng)站和新聞團(tuán)體。
Microsoft在創(chuàng)建.NET上已經(jīng)投入了數(shù)十億美元進(jìn)行了多年的研究。.NET是一種全面的策略,它由操作系統(tǒng)、數(shù)據(jù)庫服務(wù)器、應(yīng)用程序服務(wù)器和.NET運(yùn)行時(shí)庫組成,還包括運(yùn)行于.NET平臺之上的操縱語言。
很多人把.NET平臺看作先前所說的WindowsDNA的實(shí)際實(shí)現(xiàn),也有人把它看作是改進(jìn)先前技術(shù)和語言的結(jié)果。然而,這些僅僅說明了.NET是對Microsoft以前技術(shù)的重大改進(jìn)。其實(shí).NET平臺是從頭開始設(shè)計(jì)的,包括許多內(nèi)在目標(biāo),如安全性、可升級性、可靠性、靈活性和互操作性。為了使.NET平臺適合于企業(yè)和開發(fā)者,所有這些目標(biāo)從一開始就被考慮到了。
NET平臺呈現(xiàn)了Microsoft思想的重大轉(zhuǎn)變。建立.NET平臺時(shí),Microsoft表現(xiàn)出對開放標(biāo)準(zhǔn)極大的支持,如XML、SOAP和UDDI,而不是建立自己的標(biāo)準(zhǔn)和技術(shù)。而且.NET平臺的核心部分(CommonLanguageInfrastructure,CLI)和C#規(guī)范都已提交給ECMA,并通過了標(biāo)準(zhǔn)化。
C#來源于C和C++,是一種簡單的、現(xiàn)代的、面向?qū)ο蠛皖愋桶踩木幊陶Z言,由Microsoft的AndersHejlsberg專門為.NET平臺開發(fā)的語言,繼承了許多語言的特征,如C、C++和Java。C#是為了綜合VisualBasic的簡單和C++作為面向?qū)ο笳Z言的功能強(qiáng)大的優(yōu)點(diǎn)而寫的,對于開發(fā)者來說,C#使企業(yè)應(yīng)用程序的創(chuàng)建、調(diào)試和配置變得很容易。有人預(yù)言,C#將成為在.NET平臺上開發(fā)應(yīng)用程序最受歡迎的語言。
作為VisualStudioIDE的下一個(gè)版本,VisualStudio.NET也是.NET戰(zhàn)略的關(guān)鍵組成部分。VisualStudio.NETIDE也已經(jīng)被整合并裝入了大量的新功能。位圖編輯器、調(diào)試器、Web窗體設(shè)計(jì)器、Windows窗體設(shè)計(jì)器、Web服務(wù)設(shè)計(jì)器、XML編輯器、HTML編輯器、Web瀏覽器、服務(wù)器資源管理器和多語言支持,所有這些都被集成在IDE中。
C#.NETWeb開發(fā)指導(dǎo)的重點(diǎn)不是教你C#語言的核心內(nèi)容,而是提供代碼實(shí)例來幫助你使用.NET框架類庫的功能?;A(chǔ)類庫的.NET框架集合覆蓋了大量API。盡管不可能在一本書中包含所有的特征,但是本書中包含了其中的關(guān)鍵思想、類庫和.NET框架的API,希望本書能夠幫助你容易地使用C#創(chuàng)建新的應(yīng)用程序。
既然有這么多特征要學(xué)習(xí)和掌握,那就不要再等待了,咱們現(xiàn)在就開始吧!第一章 微軟.NET平臺的介紹簡介Microsoft在創(chuàng)建.NET上已經(jīng)投入了數(shù)十億美元并進(jìn)行了多年的研究,并且將極大可能考慮把它作為新興的標(biāo)準(zhǔn)。許多微軟的伙伴也宣布支持NET工具和部件——你可以瀏覽/vstudio/partners上的供應(yīng)商表來查看。.NET平臺能提供強(qiáng)大的新服務(wù),新的獨(dú)立于處理器的二進(jìn)制格式,新的管理語言,現(xiàn)有的語言擴(kuò)展的管理語言,這樣的例子不勝枚舉。沒有良好的操作背景是不可能有效地使用這些新工具的來運(yùn)行你的應(yīng)用程序。在這一章中,我們來看一看.NET平臺的各個(gè)組成部分。我們不僅介紹他們的技術(shù)和概念,而且還要用專業(yè)術(shù)語去解釋它們。這將使你對.NET平臺的內(nèi)部工作有一個(gè)深入的了解,并在接下來的章節(jié)中能有更多的收獲。.NET平臺簡介 .NET平臺的所處的背景是:世界正在從個(gè)人電腦連接到一個(gè)服務(wù)器(比如互聯(lián)網(wǎng))中改變到一個(gè)地方的所有職能設(shè)備、電腦和服務(wù)協(xié)同工作中能為用戶提供更豐富的體驗(yàn)。.NET平臺是微軟為軟件開發(fā)人員給這種改變提供的解答。.NET平臺到底有幾個(gè)組成部分,每個(gè)人都會(huì)給你不同的答案。比如微軟的商務(wù)對話和結(jié)構(gòu)化查詢語言以及.NET中的我的服務(wù),它們中的第一個(gè)可見組件.NET通行證通常被視為.NET平臺的有機(jī)組成部分。然而,對很多人來說,.NET框架是當(dāng).NET被提到時(shí)我們想象中的樣子。它包括VS.NET,.NET公共語言庫(CLR)和.NET基類庫(BCL)。其他組件可能會(huì)要求特定的應(yīng)用,但它們不是所有.NET應(yīng)用程序的必要組成部分。 下面來看.NET的整體結(jié)構(gòu),它由這幾個(gè)個(gè)主要部分組成: ■.NET框架一個(gè)全新的應(yīng)用開發(fā)平臺。 ■幾個(gè).NET產(chǎn)品多重基于.NET框架的應(yīng)用,包括新版本的并由可擴(kuò)展標(biāo)記語言(XML)在.NET平臺上的集成交互和結(jié)構(gòu)化查詢語言(SQL)服務(wù)器。 ■幾種.NET服務(wù)它是由微軟為在.NET框架開發(fā)應(yīng)用程序使用的。微軟的Hailstorm實(shí)際上是一個(gè)囊括了微軟品牌的最重要網(wǎng)站某些服務(wù)的計(jì)劃。 ■公共語言庫托管執(zhí)行環(huán)境,處理內(nèi)存分配,捕獲錯(cuò)誤,并與作業(yè)系統(tǒng)服務(wù)進(jìn)行交互。 ■基類庫對組件的編程和應(yīng)用程序接口(API)的廣泛的收集。 ■兩個(gè)最高發(fā)展目標(biāo)一個(gè)用于Web應(yīng)用程序
(ASP.NET),另外一個(gè)用于普通的Windows應(yīng)用程序(Windows
表格)
。 由.NET框架提供的好處包括:縮短開發(fā)周期(減少代碼重用,減少編程意外,多種編程語言的支持),更簡單的配置,由于整體式安全性而導(dǎo)致更少的數(shù)據(jù)類型相關(guān)的錯(cuò)誤,由于垃圾回收器的存在而引起內(nèi)存泄漏的減少,而且,具有一般的更具可擴(kuò)展性、可靠性的應(yīng)用程序。微軟的.NET和WINDOWS的基因 .NET周圍中的一些營銷宣言聽起來很熟悉:.NET平臺被稱為WINDOWS基因的下一代。不過,雖然視窗系統(tǒng)的基因確實(shí)提供了健壯的,可擴(kuò)展的,分布式系統(tǒng)的基石,但是對一些人來說其本身并沒有什么實(shí)質(zhì)性。 WindowsDNA的是一種技術(shù)規(guī)范,重點(diǎn)是對微軟服務(wù)器產(chǎn)品的基礎(chǔ)建設(shè),利用多種技術(shù)和語言(ASP,HTML,JavaScript,MTS,COM等等),其中有相當(dāng)多是與開發(fā)無關(guān)的。這些服務(wù)器和語言包括不同的API和系統(tǒng),使互操作性達(dá)到最好。.NET與其有很大的不同:它不只是一個(gè)規(guī)范。在它的好的產(chǎn)品中,它包括語言所需要的工具和發(fā)展,使n層應(yīng)用這些類型更容易,整齊地作為一個(gè)單一的連貫和全面的API封裝。微軟.NET體系結(jié)構(gòu) 從本質(zhì)上講,根據(jù)公共語言規(guī)范,.NET語言編譯的種類和微軟中間語言(MSIL,或者只是IL)的輸出是不同的。應(yīng)用程序開發(fā)的主要類型是Web窗體,Web服務(wù)和Windows窗體應(yīng)用程序。這些應(yīng)用程序使用XML和簡單對象訪問協(xié)議(SOAP)進(jìn)行通信,從而使得他們能在基類庫中繼承并能在公共語言中運(yùn)行。
VisualStudio.NET不僅是為了發(fā)展需要.NETFramework應(yīng)用程序,而且它還提供了可擴(kuò)展的架構(gòu),從而使之成為發(fā)展.NET軟件的理想選擇。.NET平臺的特點(diǎn) .NET平臺的核心是在公共語言庫,基類庫,和公共語言規(guī)范中發(fā)現(xiàn)的。
.NET的基類庫用相同的方法揭露了公共語言庫的功能,這樣,Windows
API允許你利用的Windows作業(yè)系統(tǒng)的特點(diǎn)的共同語言運(yùn)行庫的功能。而且,它也提供了許多更高級別的功能,促進(jìn)代碼重用。 這種架構(gòu)提供了許多好處,至少一個(gè)很大的數(shù)目一致的API。通過書面形式向公共語言運(yùn)行庫和使用.NET基礎(chǔ)類庫,所有的應(yīng)用服務(wù)是通過一個(gè)共同的面向?qū)ο缶幊棠P吞峁=裉?,一些操作系統(tǒng)的功能是通過調(diào)用DLL的訪問使用基于C的API和其他設(shè)施,通過訪問COM對象,從而使開發(fā)人員的工作更加簡捷,使一切順利。某些功能只提供給開發(fā)人員在低層次的語言工作,從而迫使他們設(shè)計(jì)決策。 這種新的編程模型大大簡化了那些需要編寫Windows
DNA應(yīng)用程序的工作或?yàn)榱送瓿蓱?yīng)用程序的幾乎所有Win32和COM項(xiàng)目的工作難度。開發(fā)人員不再需要有一個(gè)對GUIDS、調(diào)用、釋放、HRESULTS等等有著深入了解的Windows或COM的大師。.NET也不是隱藏在開發(fā)這些之中,在新的網(wǎng)絡(luò)平臺上,這些概念根本不存在的。 另一個(gè)為.NET開發(fā)人員帶來極大的好處是其錯(cuò)誤異常處理模型。為Windows開發(fā)平臺軟件始終意味著你會(huì)出現(xiàn)錯(cuò)誤的地方,特別是在錯(cuò)誤的方式會(huì)返回值。有些函數(shù)會(huì)返回錯(cuò)誤的Win32代碼,一些返回HRESULTS,還有的則比較例外,所有要求程序員編寫錯(cuò)誤處理代碼的不同類型。
.NET中,所有的錯(cuò)誤報(bào)告都會(huì)通過這個(gè)模型,從而大大簡化了書寫,閱讀和維護(hù)代碼。由于公共語言規(guī)范和通用類型系統(tǒng),.NET也可以在跨模塊和跨語言的界限工作多國語言的發(fā)展由于許多語言對.NET公共語言運(yùn)行庫有規(guī)范,現(xiàn)在更容易語言應(yīng)用部分適應(yīng)你的操作。以前,不同的編程語言互操作是允許的,如COM或CORBA,這樣做是通過一個(gè)接口定義語言(IDL)的來實(shí)現(xiàn)的。.NET平臺的語言,通過MSIL對彼此的使用加以整合。雖然它包含指示類似的匯編代碼和移入和移出寄存器變量,它也包含了管理對象和調(diào)用它們的方法,操縱陣列,提高和捕獲異常的說明。Microsoft公共語言規(guī)范描述了其他開發(fā)工具,作者必須為他們的編譯器輸出IL代碼,使它們能很好的融入.NET語言。微軟目前針對.NET公共語言運(yùn)行庫的幾個(gè)編譯器提供了IL代碼:C++的托管擴(kuò)展的C#,JAVAScript和VisualBasic中。此外,微軟和其他幾家公司正在生產(chǎn)用于語言的編譯器。這些編譯器也針對.NET公共語言運(yùn)行庫。目前支持為COBOL,Eiffel,F(xiàn)ortran語言,Perl,Python和Scheme。供應(yīng)商還公布了其他不同的許多語言。這是一個(gè)當(dāng)前供應(yīng)商的列表:
/vstudio/partners/language/default.asp。為什么你應(yīng)該關(guān)心的IL詳情?因?yàn)樗鼮?NET管理著跨語言功能。由于IL整個(gè)翻譯的開銷的復(fù)雜性,無接口定義語言需要啟用跨語言的元數(shù)據(jù)來處理。舉例來說,一個(gè)對IL的定義,同樣的對象可以不管是不是能捕獲.NET語言。您的組件在C??梢詴嫣岢鲆粋€(gè)可以由Fortran采用資訊科技應(yīng)用捕獲的異常。而且關(guān)于不同的調(diào)用約定或數(shù)據(jù)類型,不必再擔(dān)心無縫互操作性。 跨語言繼承的另一個(gè)特點(diǎn)是可以使用IL?,F(xiàn)在您可以創(chuàng)建源代碼,而且無需再為新類中的基本成分編寫其他的語言。例如,您可以創(chuàng)建一個(gè)C++的類,從VisualBasic中實(shí)現(xiàn)了一個(gè)派生類。.NET可以實(shí)現(xiàn)這一點(diǎn),因?yàn)樗x和類型系統(tǒng)都提供了一個(gè)共同的.NET語言。 對應(yīng)用開發(fā)的規(guī)范下,WindowsDNA的巨大挑戰(zhàn)之一是各種語言開發(fā)的應(yīng)用程序時(shí)的調(diào)試。由于統(tǒng)一的VisualStudio.NET開發(fā)環(huán)境和IL都使用了.NET語言作為輸出,跨語言調(diào)試就不會(huì)排斥匯編語言。
.NET公共語言運(yùn)行庫調(diào)試應(yīng)用程序,完全支持跨語言的界限。運(yùn)行庫還提供了內(nèi)置的堆疊設(shè)施,使其更容易找到漏洞和錯(cuò)誤。 平臺和處理器獨(dú)立性 中間語言是與CPU無關(guān)的,它遠(yuǎn)高于大多數(shù)機(jī)器語言水平。.NET應(yīng)用程序可以在任何平臺上支持寫、新建以及托管,這樣就可以支持.NET公共語言運(yùn)行庫。由于.NET通用類型系統(tǒng)定義不論基本數(shù)據(jù)類型大小都可以使用.NET應(yīng)用程序,而且這些應(yīng)用程序可以在公共語言的環(huán)境中運(yùn)行,所以任何硬件或操作系統(tǒng)都支持.NET平臺。 雖然在寫這篇文章的時(shí)候,.NET應(yīng)用程序只能運(yùn)行在Windows平臺。但2001年6月27日,微軟宣布,它已經(jīng)與Corel達(dá)成協(xié)議,共同開發(fā)一個(gè)C#編譯器和.NET
框架基礎(chǔ)結(jié)構(gòu)組件,它們將共享源代碼并執(zhí)行FreeBSD版本的UNIX。這個(gè)測試版本目前預(yù)計(jì)將在2002年上半年的某個(gè)時(shí)候發(fā)布。 幾個(gè)星期后,也就是在二零零一年七月十日微軟給出了積極的信號。一個(gè)深藍(lán)設(shè)計(jì)的.NET,這是一個(gè)為Linux用戶界面設(shè)計(jì)的流行的Gnome計(jì)劃的開源版本。你可以在找到該項(xiàng)目,稱為MONO。該小組正在開發(fā)一個(gè)C#語言的編譯器,以及.NET公共語言運(yùn)行庫,而且關(guān)于基類庫的工作也開始了。在2001年年底該項(xiàng)目的發(fā)布了它的第一個(gè)可用單代碼計(jì)劃。自動(dòng)內(nèi)存管理 提到內(nèi)存泄漏問題,可能一個(gè)開發(fā)環(huán)境中并沒有提供自動(dòng)內(nèi)存來管理開發(fā),從而導(dǎo)致調(diào)試無數(shù)個(gè)小時(shí)。對那些想在這個(gè)工作中花費(fèi)一些時(shí)間來降低棘手的代碼的人來說,繞過資源管理應(yīng)該是一種不錯(cuò)的方法。 從VisualBasic開發(fā)人員或有COM背景與未來技術(shù)的相關(guān)的人員的角度來說,這項(xiàng)技術(shù)在只有一個(gè)對象而且沒有其他物體對其引用的時(shí)候會(huì)恢復(fù)內(nèi)存,而且基本上它不再需要使用內(nèi)存。雖然這在理論上聽起來完善,但在實(shí)踐中卻有幾個(gè)問題。最常見的是循環(huán)引用問題,即一個(gè)對象到另一個(gè)對象,它本身包含一個(gè)回到第一個(gè)對象的引用。當(dāng)內(nèi)存管理的對象不使用它們看起來時(shí)候的摸樣時(shí),這些對象將始終大于零。因此,除非它們是隱式解構(gòu),不然他們的內(nèi)存可能永遠(yuǎn)不會(huì)被發(fā)現(xiàn)。 C或C++程序員的習(xí)慣是自己銷毀對象,因?yàn)樗麄兡芄芾砥渥杂械膬?nèi)存。他們不信任任何人能利用管理資源并將之照顧好。然而,在.NET環(huán)境下,微軟正在努力使軟件開發(fā)更加容易。在本章后面的內(nèi)容,我們涉及.NET如何進(jìn)行已經(jīng)經(jīng)過嚴(yán)格的引用計(jì)數(shù)或手動(dòng)內(nèi)存管理方法改進(jìn)的垃圾收集工作。支持的版本 誰如果不理解“DLLHELL”,那就是他尚未開發(fā)Windows(或至少支持)軟件很長時(shí)間。對于外行,當(dāng)客戶使用您的應(yīng)用程序相同的DLL之一安裝了一個(gè)軟件包時(shí),你會(huì)發(fā)現(xiàn)自己就身在DLLHELL之中。但是,所有開發(fā)人員總是把每件事情都向后100%兼容,就像您的應(yīng)用程序使用此DLL的版本1.0,新的1.1軟件版本能兼容1.0版本的,對不對?當(dāng)新的DLL使您的應(yīng)用程序表現(xiàn)出一些奇怪的問題或者完全停止工作的時(shí)候,你要經(jīng)過大量調(diào)查找出有問題的DLL是什么,并用新的版本替換您的軟件版本。但是,如果現(xiàn)在他們的新軟件不工作了,那么就是DLLHELL發(fā)揮作用了。當(dāng)應(yīng)用程序加載庫時(shí),許多開發(fā)人員僅需要采取安裝每個(gè)DLL的應(yīng)用程序需要的目錄的方法。這雖然違背了共享庫的目的,但它是一個(gè)解決問題的方法。 COM以前是這樣的:你以前從來沒有改變一個(gè)方法接口,你只是添加新的方法。不幸的是,軟件開發(fā)人員經(jīng)常是玩弄主義者,留下一些“漏洞”的功能玩弄一些人。問題是,一旦在使用時(shí)產(chǎn)生了不良的客戶端軟件,那么改變一個(gè)組件的接口會(huì)被以前的所謂添加新的方法的行為影響。不過它也有解決方法,由于COM對象是被加載在注冊表中的信息,所以只需替代該DLL或應(yīng)用程序目錄,那么這個(gè)問題便不會(huì)發(fā)生。 現(xiàn)在,.NET架構(gòu)將應(yīng)用程序組件分開,這樣應(yīng)用程序就能總是加載與它建立和測試相關(guān)的元件。如果應(yīng)用程序安裝運(yùn)行后,應(yīng)用程序應(yīng)該始終運(yùn)行。這是通過程序集和.NET的封裝組件實(shí)現(xiàn)的。雖然目前的DLL和COM的對象包含了許多不同的版本信息,但是操作系統(tǒng)不會(huì)真正使用任何這些信息。程序集包含了.NET公共語言運(yùn)行時(shí)使用的版本信息,以確保應(yīng)用程序在加載它時(shí)建立使用組件。我們將在后面的章節(jié)涵蓋了更多關(guān)于配件和版本如何工作的內(nèi)容。支持的開放標(biāo)準(zhǔn) 在今天的世界上,不是每個(gè)你可能工作的設(shè)備都是運(yùn)行微軟操作系統(tǒng)或使用英特爾處理器。為了實(shí)現(xiàn)開放的標(biāo)準(zhǔn),.NET的建構(gòu)是基于XML和SOAP的,它將使你可以通過Internet激活應(yīng)用程序,而不論其背后依托標(biāo)準(zhǔn)的信息基礎(chǔ)是什么設(shè)施。
SOAP將為不同的系統(tǒng)提供容易的交換信息的方法,而且更好的是,SOAP允許您調(diào)用遠(yuǎn)程系統(tǒng)的方法和返回結(jié)果。因?yàn)镾OAP是一個(gè)類似于HTTP的簡單的基于文本的協(xié)議,它可以輕易地穿過防火墻,不像DCOM或CORBA。 由.NET平臺提供的其他標(biāo)準(zhǔn)包括通用描述,發(fā)現(xiàn)和集成(UDDI)以及它們的XML接口和Web服務(wù)描述語言(WSDL),它描述了一個(gè)應(yīng)用程序代碼做目錄。通過許多基于開放標(biāo)準(zhǔn).NET的基礎(chǔ)并向ECMA(一個(gè)國際標(biāo)準(zhǔn)組織)提交對C#和.NET公共語言基礎(chǔ)結(jié)構(gòu)的標(biāo)準(zhǔn)草案,微軟希望籍由軟件的未來版本看到其超出自己的領(lǐng)域。配置簡單 今天,基于Windows的應(yīng)用程序的開發(fā)和安裝達(dá)到了令人難以置信的困難。由于這一點(diǎn),大多數(shù)公司對于用于開發(fā)他們的安裝程序的第三方工具很不滿意。通常需要在幾個(gè)目錄中安裝大量的文件,設(shè)置各種注冊表,安裝所需的COM組件和建立快捷方式等等。完全卸載的應(yīng)用程序幾乎是不可能的,即使他們提供卸載功能,大多數(shù)仍會(huì)遺留很多字節(jié)以及碎片。隨著Windows2000的發(fā)布,微軟引入了一個(gè)新的安裝引擎幫助解決這些問題,但它仍然有可能是一個(gè)不正常的微軟安裝程序包。即使專門設(shè)計(jì)一種第三方軟件,使得更容易開發(fā)一些工具,但要正確地在檢索中安裝一個(gè)應(yīng)用仍然是一項(xiàng)艱巨的任務(wù)。 .NET設(shè)計(jì)隊(duì)伍面對這個(gè)問題同樣感到了的困惑,但.NET隊(duì)伍計(jì)劃將這些問題解決了。.NET組件中不引用注冊表,由于元數(shù)據(jù)和引用的使用,組件描述是自發(fā)的。事實(shí)上,安裝大部分.NET應(yīng)用程序僅僅需要將他們的文件復(fù)制到一個(gè)目錄,卸載應(yīng)用程序?qū)⒅皇莿h除這些文件。分布式體系結(jié)構(gòu) 今天的分布式應(yīng)用程序與未來的那些仍然有很大的不同。微軟堅(jiān)定地認(rèn)為:他們十分看好分布式Web服務(wù)概念的公司。例如,現(xiàn)在,當(dāng)用戶與門戶網(wǎng)站互動(dòng)時(shí),在他們看來是與一個(gè)遠(yuǎn)程服務(wù)器打交道。我們大多數(shù)人都知道,通常情況并非如此,至少在那些大規(guī)模的網(wǎng)站上不是這樣的。其實(shí)是各種服務(wù)器和應(yīng)用程序在后臺運(yùn)行,當(dāng)訪問幾個(gè)遠(yuǎn)程站點(diǎn)的信息時(shí),服務(wù)器結(jié)合自己的用戶信息數(shù)據(jù)庫,合并成一個(gè)集成產(chǎn)品,用戶則瀏覽傳遞到瀏覽器上的信息。 由于這些類型的應(yīng)用很有用,他們的開發(fā)和維護(hù)都非常的復(fù)雜。每條信息提供商已經(jīng)開發(fā)不同的接口來訪問他們的服務(wù)器上的數(shù)據(jù)和流程。這是非常低效的重復(fù)建設(shè),并在大多數(shù)情況相當(dāng)乏味,所以在許多活動(dòng)已經(jīng)形成了三個(gè)標(biāo)準(zhǔn)以簡化流程:XML,SOAP和UDDI。正如我們前面討論的,這些都是用來在.NET并都在競爭。但是,少為人知的是,這些都是IBM和Sun的倡議。與非托管代碼的互用 正如你可能已經(jīng)猜到了,與非托管代碼是不被.NET公共語言運(yùn)行庫管理的代碼。但是,此代碼仍然是由CLR運(yùn)行時(shí),它只是沒有得到諸如通用類型系統(tǒng)和自動(dòng)內(nèi)存管理優(yōu)勢。您最終可能會(huì)在不同的情況使用不同的代碼 ■調(diào)用DLL函數(shù)現(xiàn)在有許多函數(shù)都綁定了DLL。并不是每一個(gè)公司都要急于推出的.NET產(chǎn)品組件的版本,所以如果你需要接觸他們,你會(huì)調(diào)用與非托管代碼。 ■使用COM組件這應(yīng)該是你調(diào)用DLL函數(shù)的相同原因。 ■從COM組件中調(diào)用.NET服務(wù)雖然這聽起來有點(diǎn)古怪,但它是可能的。一個(gè)COM客戶端可以調(diào)用.NET組件,就好像這是一個(gè)COM服務(wù)器一樣。 這里有一點(diǎn)關(guān)于COM互用問題的更多信息。微軟并沒有想迫使公司放棄現(xiàn)有的COM組件,特別是因?yàn)楝F(xiàn)在微軟自己的產(chǎn)品很多是基于COM的.COM組件中的消息,這些消息是在.NET運(yùn)行的時(shí)候,它的互操作層通過非法侵占來處理所有管理運(yùn)行和COM組件系統(tǒng)之間翻譯時(shí)傳遞的,就像與非托管代碼一樣。 在這其中的另一面,有公司出于對.COM技術(shù)的既得利益考慮,可能想使用.NET平臺的一些零零碎碎的功能之后,然后才會(huì)采取堅(jiān)持.COM客戶端可以方便地通過COM
非法侵占層與.NET組件聯(lián)系。譯文原出處:C#.NET開發(fā)者指南<C#.NETWebDeveloper'sGuide>AdrianTurtschi,DotThatC,JasonWerry,GregHack,JosephAlbahari,SaurabhNandu技術(shù)編輯,WeiMengLee資深編輯原文:<C#.NETWebDeveloper'sGuide>ForewordSeldominthehistoryofcomputersoftwarehasanytechnologyreceivedsuchapositiveresponsefromdevelopersandtheindustry,evenwhilethetechnologyisstillinitsnascentbetastage.The.NETBeta2SDKfromMicrosofthasalreadybeendownloadedbymillionsofdevelopersallovertheworld.Dozensofpublishedbooks,Websitesandnewsgroupsdevotedtothe.NETplatform,andrelevanttechnicalknow-how.Microsofthasinvestedbillionsofdollarsandyearsofresearchinthecreationof.NET..NETisacomprehensivestrategy,consistingofoperatingsystems,databaseservers,applicationservers,andthe.NETRuntime,aswellasmanagedlanguagesthatoperateoverthe.NETplatform.Somepeoplethinkofthe.NETplatformasthepracticalimplementationofthepreviouslyformulatedWindowsDNA.Othersconsideritasaresponsetodevelopers’ticklersofworkingwithprevioustechnologiesandlanguages.Nevertheless,thecommonmisunderstandingstillexists,simplyassumingthat.NETisthemereimprovementoverpreviousMicrosofttechnologies.Infact,the.NETplatformhasstartedfromscratch,withsuchgoalsassecurity,scalability,reliability,flexibility,andinteroperability,therebymakingthe.NETaccessibletoplatformenterprise.The.NETplatformdisplaysasignificantshiftofMicrosoft’sthinking.Whilebuildingthe.NETplatform,MicrosofthasshownstrongsupportforopenstandardslikeXML,SOAP,andUDDI,ratherthanbuildingitsownproprietarystandardsandtechnologies.Eventhecorepartofthe.NETplatform—theCommonLanguageInfrastructure(CLI)—andtheC#specificationshavebeenplacedbeforeECMAforstandardization.C#,developedbyAndersHejlsbergofMicrosoft,isdefinedasasimple,modern,object-oriented,andtype-safeprogramminglanguagederivedfromCandC++,derivingfromanumberoflanguageslikeC,C++,andJava.SpecificallywrittentoofferthesimplicityofVisualBasicandpowerofC++asanobject-orientedlanguage,C#makesiteasierfordeveloperstocreate,debug,anddeployenterpriseapplications.IthasalsobeenpredictedthatC#willbecomethefavoredlanguagefordevelopingapplicationsonthe.NETplatform.VisualStudio.NET,thenextversionofVisualStudioIDE,isalsoakeycomponentofthe.NETstrategy.TheVisualStudio.NETIDEhasalsobeengivenafaceliftandpackedwithawidevarietyofnewfunctionalities.Abitmapeditor,debugger,WebFormsdesigner,WindowsFormsdesigner,WebServicesdesigner,XMLeditor,HTMLeditor,Webbrowser,ServerResourcesExplorer,andmulti-languagesupporthaveallbeenpackedintoonesingleIDE.ThefocusofTheC#.NETWebDeveloper’sGuideisnotonteachingyouthecoreC#language,butratherprovidingyouwithcodeexamplesthatwillhelpyouleveragethefunctionalitiesofthe.NETFrameworkClassLibraries.The.NETFrameworkcollectionsofbaseclassescovermanyofthemultipleAPIs.Althoughimpossibleforonebooktocoverallthefeatures,wehavecovered,inthisbook,thekeyconcepts,libraries,andAPIsofthe.NETFramework,whichcanhelpcreatenewapplicationsusingC#.Youhavesomanyfeaturestolearnandmasterthatwemustgetstartednow!!Chapter1IntroductionoftheMicrosoft.NETPlatformIntroductionThe.NETplatformisthefoundationuponwhichthenextgenerationofsoftwarewillbebuilt.Microsofthasinvestedalotofcapitalinitsdevelopmentandattemptedtomakeitasthenewstandard.AlistofMicrosoftpartnershasalsosupported.NETtoolsandcomponents.Youcancheck/vstudio/partnersforacurrentlistofvendorswhohave.NETofferings.The.NETplatformisanythingmorethanamerenewlanguage,softwaredevelopmentkit(SDK),orevenanoperatingsystem.Itofferspowerfulnewservices,anewprocessor-independentbinaryformat,newmanagedlanguages,managedlanguageextensionstoexistinglanguages,andsoforth.Effectivelyusingthesenewtoolsmakespossibleafirmbackgroundoftheplatformthatwillenhanceyourapplications.Inthischapter,wetakealookatthevariouscomponentsofthe.NETplatform.Wenotonlyintroducetheconceptandtechnology,butexplaintheterminologyusedtodescribethemaswell.Thiswillenableyoutohaveastrongunderstandingoftheinternalworkingsofthe.NETplatform,thusreapingmorebenefitsfromthefollowingchapters.Introductionofthe.NETPlatformThepreceptbehindthe.NETplatformistheshiftfromoneofPCsconnectedtoserversthroughnetworkssuchastheInternet,toonewhereallmannerofsmartdevices,computers,andservicesworktogethertoprovidearicheruserexperience.The.NETplatformisMicrosoft’sanswertothechallengesthischangewillprovidetosoftwaredevelopers.Howmanycomponentsthe.NETplatformhave?Differentpeoplehavedifferentanswers.ServerssuchasBizTalkandSQLServer,aswellasservicessuchas.NETMyServicesanditsfirstvisiblecomponent,.NETPassport,arebeingdescribedbysomeasintegralpartsofthe.NETplatform.Nonetheless,the.NETFramework,asfarasmanyofusareconcerned,canbeanythingthatwecanimaginewhenreferringto.NET.ItcomprisesVisualStudio.NET(VS.NET),the.NETCommonLanguageRuntime(CLR),andthe.NETBaseClassLibraries(BCL).Theothercomponentsmayberequiredbyspecificapplications,buttheyarenotthenecessarypartofall.NETapplications.Lookingattheoverallarchitecture,.NETconsistsofthreeprimarycomponents:■The.NETFrameworkAcompletelynewapplicationdevelopmentplatform.■Several.NETproductsVariousapplicationsfromMicrosoftbasedonthe.NETFramework,includingnewversionsofExchangeandSQLServer,whichareExtensibleMarkupLanguage(XML)–enabledandintegratedintothe.NETplatform.■Several.NETservicesProvidedbyMicrosoftfordevelopingapplicationsrunningunderthe.NETFramework.Microsoft’sHailstormprojectactuallyattemptstopackagesomeofthemostcrucialWebServicesundertheMicrosoftbrandname.The.NETFrameworkitselfcanbedividedintothreeparts:■TheCLRAmanagedexecutionenvironmentthathandlesmemoryallocation,errortrapping,andinteractingwiththeoperating-systemservices.■TheBaseClassLibraryAnextensivecollectionofprogrammingcomponentsandapplicationprograminterfaces(APIs).■Twotop-leveldevelopmenttargetsOneforWebapplications(ASP.NET)andtheotherforregularWindowsapplications(WindowsForms)Theadvantagesofferedbythe.NETFrameworkincludeshorterdevelopmentcycles(codereuse,fewerprogrammingsurprises,supportformultipleprogramminglanguages),easierdeployment,fewerdatatype-relatedbugsduetointegraltypesafety,reducedmemoryleaksattributedtothegarbagecollector,and,ingeneralmorescalable,reliableapplications.Microsoft.NETandWindowsDNA Ifthepropagationregarding.NETsoundsfamiliar,there’sagoodreason:The.NETplatformisthenextgenerationofWindowsDNA.However,althoughWindowsDNAoffersomeofthebuildingblocksforcreatingrobust,scalable,distributedsystems,itgenerallyhadlittlesubstanceinandofitself.WindowsDNAwasatechnicalspecificationthatfocusedonbuildingsoftwarebasedonMicrosoftserverproducts,utilizingnumeroustechnologiesandlanguages(ASP,HTML,JavaScript,MTS,COM,andsoon),manyofwhicharequiteunrelatedfromadeveloper’spointofview.TheserversandlanguagesinvolvedallhavevaryingAPIsandtypesystems,makinginteroperabilityachallengeatbest.Hereinliesthebigdifference:.NETismuchmorethanaspecification.Aproductinitsownright,itincludesthetoolsandlanguagesrequiredtomakedevelopingthesetypesofn-tieredapplicationseasier,neatlypackagedasasinglecoherentandcomprehensiveAPI.Microsoft.NETArchitectureHierarchyThecompileof.NETfamiliesoflanguagesare,inessence,differentfromtheoutputofMicrosoftIntermediateLanguage(MSIL,orjustIL)restedontheCommonLanguageSpecification.TheprimarytypesofapplicationdevelopmentareWebForms,WebServices,andWindowsFormsapplications.TheseapplicationscommunicatebywayofusingXMLandSimpleObjectAccessProtocol(SOAP),gettingtheirfunctionalityfromtheBaseClassLibraryandrunningwithintheCommonLanguageRuntimeenvironment.VisualStudio.NETisnotrequiredinordertodevelop.NETFrameworkapplications;butitdoesofferanextensiblearchitecturethatmakesitanidealchoicefordeveloping.NETsoftware.Featuresofthe.NETPlatformThecoreofthe.NETplatformisfoundedontheCommonLanguageRuntime,BaseClassLibrary,andtheCommonLanguageSpecification.The.NETBaseClassLibraryexposesthefeaturesoftheCommonLanguageRuntimeinmuchthesamewaythattheWindowsAPIallowsyoutoutilizethefeaturesoftheWindowsoperatingsystem;however,italsoprovidesmanyhigher-levelfeaturesthatfacilitatecodereuse.Thisarchitecturegivesagreatnumberofbenefits,notthemereconsistentAPI.ByvirtueofwritingtotheCommonLanguageRuntimeandusingthe.NETBaseClasslibrary,allapplicationservicesareavailableinacommonobject-orientedprogrammingmodel.TodaysomeOSfunctionsareaccessedviaDLLcallsusingtheC-basedAPIaswellasotherfacilitiesareaccessedviaCOMobjects,makingthedeveloperdothenecessarylegworktomakeeverythingworktogethersmoothly.Somefeaturesareavailableonlytodevelopersworkinginlow-levellanguages,forcingtodesigndecisions.ThisnewprogrammingmodelgreatlysimplifiestheeffortsthatwererequiredwhenwritingWindowsDNAapplications,orforthatmatter,almostanyWin32andCOMproject.DevelopersneednottobeaWindowsorCOMarchitectureguruwithanin-depthunderstandingofGUIDs,IUnknown,AddRef,Release,HRESULTS,andsoon..NETdoesn’tjusthidethesefromthedeveloper;inthenew.NETplatform,theseconceptsdonotexistatall.Anothergreatbenefitfor.NETdevelopersisitsmodelforerrorhandlingviaexceptions.DevelopingsoftwarefortheWindowsplatformhasalwaysmeantyouwerepulledintoitsowninconsistencies:particularlyinthewayserrorswerereturned.SomefunctionswouldreturnWin32errorcodes,somereturnHRESULTS,andsomeraiseexceptions,requiringtheprogrammertowritedifferenttypesoferror-handlingcode.In.NET,allerrorsarereportedintheformofexceptions,thereforegreatlysimplifyingwriting,reading,andmaintainingcode.DuetotheCommonLanguageSpecificationandCommonTypeSystem,.NETexceptionstranscendmoduleandlanguageboundariesaswell.MultilanguageDevelopmentBecausemanylanguagestargetthe.NETCommonLanguageRuntime,itisnowmucheasiertoimplementportionsofyourapplicationusingthelanguagethat’sbestsuitedforit.Erstwhilemethods,allowingsuchprogramminglanguagesasCOMorCORBAtointeroperate,didsothroughtheuseofanInterfaceDefinitionLanguage(IDL).The.NETplatformallowslanguagestobeintegratedwithoneanotherthroughtheuseoftheMSIL.Althoughitcontainsinstructionsthatappearsimilartoassemblycode,suchaspushingandpoppingvaluesandmovingvariablesinandoutofregisters,italsocontainsinstructionsformanagingobjectsandinvokingtheirmethods,manipulatingarrays,andraisingandcatchingexceptions.TheMicrosoftCommonLanguageSpecificationdescribeswhatotherdevelopmenttoolauthorsmustdoinorderfortheircompilerstooutputILcodethatwillallowthemtointegratewellwithother.NETlanguages.MicrosoftcurrentlyprovidesseveralcompilersthatproduceILcodetargetingthe.NETCommonLanguageRuntime:C++withmanagedextensions,C#,Jscript,andVisualBasic.Inaddition,severalcompaniesotherthanMicrosoftareproducingcompilersforlanguagesthatalsotargetthe.NETCommonLanguageRuntime.CurrentlyhavingalreadysupportedforCOBOL,Eiffel,Fortran,Perl,Python,Scheme,andmanymorehavebeenannouncedbyvariousvendors.Foracurrentlistcheck:/vstudio/partners/language/default.asp.WhyshouldyoucareaboutthedetailsofIL?Becausethisishow.NETmanagesmanyofitscross-languagefeatures.NoInterfaceDefinitionLanguageisrequiredtoenablecross-languagefunctionalitybecauseILmetadatahandlestheentiretranslationoverhead.Forinstance,withanexceptionobjectdefinedbyIL,thesameobjectcanbecaughtregardlessofthe.NETlanguageused.YourcomponentwritteninC#canraiseanexceptionthatcanbecaughtbytheFortranapplicationusingit.Nomoreworriesaboutdifferentcallingconventionsordatatypes,justseamlessinteroperability.Cross-languageinheritanceisanotherfeaturemadepossiblebytheuseofIL.Youcannowcreatenewclassesbasedoncomponentswritteninotherlanguages,withoutneedingthesourcecodetothebasecomponent.Forexample,youcancreateaclassinC++thatderivesfromaclassimplementedinVisualBasic..NETcanrealizethisbecauseitdefinesandprovidesatypesystemcommontoall.NETlanguages.OneofthegreatchallengesofdevelopingapplicationsundertheWindowsDNAspecificationwasindebuggingapplicationsdevelopedinavarietyoflanguages.BecauseofboththeunifieddevelopmentenvironmentofVisualStudio.NETandtheuseofILastheoutputofall.NETlanguages,cross-languagedebuggingispossiblewithoutresortingtoassemblylanguage.The.NETCommonLanguageRuntimefullysupportsdebuggingapplicationsthatcrosslanguageboundaries.Theruntimealsoprovidesbuilt-instack-walkingfacilities,makingitmucheasiertolocatebugsanderrors.PlatformandProcessorIndependenceTheintermediatelanguageisCPU-independent,andthereismuchhigherlevelthanmostmachinelanguages.Oncebeingwrittenandbuilt,amanaged.NETapplicationcanexecuteonanyplatformthatsupportsthe.NETCommonLanguageRuntime.Becausethe.NETCommonTypeSystemdefinesthesizeofthebasedatatypesthatareavailableto.NETapplications,andapplicationsrunwithintheCommonLanguageRuntimeenvironment,theapplicationdeveloperisinsulatedfromthespecificsofanyhardwareoroperatingsystemthatsupportsthe.NETplatform.Althoughatthetimeofthiswriting.NETapplicationsrunonlyonWindowsplatforms,MicrosoftannouncedthatithadreachedanagreementwithCoreltodevelopashared-sourceimplementationofaC#compilerandthe.NETFrameworkinfrastructurecomponentsfortheFreeBSDversionofUNIXonJune27th,2001.Thisiscurrentlyexpectedtobeavailableinabetaversionsometimeinthefirsthalfof2002.Afewweekslater,onJuly10,2001Microsoftgavethego-aheadtoanopen-sourceversionof.NETbeingplannedbyXimian,thedeveloperthepopularGNOMEuserinterfaceforLinux.Youcanfindtheproject,calledMono,at.ThegroupisdevelopingaC#languagecompiler,alongwiththe.NETCommonLanguageRuntime.WorkhasalsobegunontheBaseClassLibrary.ThereleaseofthefirstusableProjectMonocodeisplannedfortheendof2001.AutomaticMemoryManagementThemerementionofamemoryleakproblembringsforthimagesofendlesshoursofdebuggingfordeveloperswhohavecomefromadevelopmentenvironmentthatdidnotofferautomaticmemorymanagement.Evenforthosefortunateenoughtoworkwiththisinsomeformhavelikelyspentsometimetryingtohuntdownobscurebugscausedbytrickycodethatcircumventedtheresourcemanagementmethodology.Developers,specializinginVisualBasicorCOM,arefamiliarwiththereferencecountingtechnique.Thistechniquerecoversthememoryusedbyanobjectwhennootherobjecthasareferencetoit,essentiallywhenitisnotneededanymore.Althoughthisis,tosomeextent,theoreticallyperfect,ithasafewproblemsinpractice.Themostcommonmatteristhecircularreferenceforoneobjectcontainsareferencetoanotherobjectwhichitselfcontainsareferencebacktothefirstobject.Whenthememorymanagerlooksforobjectsthatarenotinuse,theseobjectswillalwayshaveareferencecountgreaterthanzero,sounlesstheyareimplicitlydeconstructed,theirmemorymayneverberecovered.ForaCorC++programmer-accustomedtoensuringthatobjectsareproperlydestroyed,essentiallymanagingmemoryontheirown-thissoundsperfectlynormal,andagoodreasonfornottrustinganyoneelsetotakecareofmanagingresources.However,inthe.NETenvironment,Microsoftisstrivingtomakedevelopingsoftwareeasier.Laterinthischapter,wecoverahow.NETgarbagecollectionworks,andtheimprovementsthathavebeenmadeoverstrictreferencecountingormanualmemorymanagementapproaches.VersioningSupportAnyonewhodoesn’tunderstandthephrase“DLLHell”hasnotbeendeveloping(oratleastsupporting)softwareforWindowsverylong.Fortheuninitiated,you’llfindyourselfinDLLHellsomedaywhenacustomerinstallsasoftwarepackagethatusesoneofthesameDLLsasyourapplication.However,yourapplicationusedversion1.0ofthisDLL,andthenewsoftwarereplacesitwithversion1.1.Wedevelopersallalwaysmakesureeverythingis100%backwards-compatible,right?ThenewDLLmakesyourapplicationexhibitsomestrangeproblemorperhapsjuststopworkingaltogether.Afteralotofinvestigation,youfigureoutwhattheoffendingDLLisandhavethecustomerreplacethenewonewiththeversionthatworkswithyoursoftware.Nowtheirnewsoftwaredoesn’twork-welcometoDLLHell.ManydevelopersresorttosimplyinstallingeveryDLLtheirapplicationrequiresintheapplicationdirectorysothatitwillbefoundfirstwhentheapplicationloadsthelibraries.Thisdefeatsthepurposeofsharedlibraries,butitisonewayaroundtheproblem.COMwasgoingtochangethis:oneofitsprimarytenantswasthatyouneverchangedthemethodinterfaceyousimplyaddnewmethods.Unfortunately,softwaredevelopersarefrequentlyperfectionists,andleavinga“broken”functionalonejustchafessomepeople.Problemisthatchangingacomponentsinterfaceonceit’sinusecanhaveadverseaffectsontheclientsoftwarethatexpectedtheoldbehavior.BecauseCOMobjectsareloadedusinginformationintheRegistry,simplyplacingtheDLLorcontrollingintheapplicationdirectorydoesn’tworkforthisproblem.The.NETarchitecturenowseparatesapplicationcomponentssothatanapplicationalwaysloadsthecomponentswithwhichitwasbuiltandtested.Iftheapplicationrunsafterinstallation,thentheapplicationshouldalwaysrun.Thisisdonewithassemblies,whichare.NET-package
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年水電工程招投標(biāo)代理服務(wù)合同
- 2025年帶燈座項(xiàng)目投資可行性研究分析報(bào)告
- 制作度服務(wù)合同范例
- 2025年度綠色建筑項(xiàng)目施工資料審核承包合同范本
- 車輛出質(zhì)抵押合同范本
- 個(gè)人股東合作合同范本
- 2025年三相中頻電源行業(yè)深度研究分析報(bào)告
- 臨建混凝土勞務(wù)合同范本
- 2025年度工程合同風(fēng)險(xiǎn)預(yù)警與防控策略
- 加工彈簧合同范本
- 《工作場所安全使用化學(xué)品規(guī)定》
- 2022年菏澤醫(yī)學(xué)??茖W(xué)校單招綜合素質(zhì)考試筆試試題及答案解析
- 市政工程設(shè)施養(yǎng)護(hù)維修估算指標(biāo)
- 課堂嵌入式評價(jià)及其應(yīng)用
- 《管理學(xué)基礎(chǔ)》完整版課件全套ppt教程(最新)
- 短視頻:策劃+拍攝+制作+運(yùn)營課件(完整版)
- 基金會(huì)財(cái)務(wù)報(bào)表審計(jì)指引
- 藍(lán)色卡通風(fēng)好書推薦教育PPT模板
- 2022年江蘇省泰州市中考數(shù)學(xué)試題及答案解析
- 石家莊鐵道大學(xué)四方學(xué)院畢業(yè)設(shè)計(jì)46
- 智能化系統(tǒng)培訓(xùn)
評論
0/150
提交評論