畢業(yè)設計-用c#實現(xiàn)xml編輯器_第1頁
已閱讀1頁,還剩45頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p><b>  引言</b></p><p>  微軟公司近期推出了C#程序設計語言,引起業(yè)界的普遍關注。為什么有了VB,VC++,業(yè)界又公認了Java,還要推出一個新的語言?C#能代替VB,VC++,成為微軟統(tǒng)一的語言嗎?我們將以多大的關注去學習C#?這對于業(yè)界第一線軟件開發(fā)者,的確是個問題。我們已被各種描述語言(Jscript,VBScript),置標語言(XML, eXM

2、L,HTML,SGML),模型語言(UML),體系結構描述語言(ADL)弄得不堪重負,偏偏最直接表述軟件的編程語言又出了一個C#,殊知,編程語言是專業(yè)程序員“找飯碗”的工具。</p><p>  眾所周知,經常換語言滋味是不好受。這是因為無論什么語言既是表達工具也是思維工具,習慣了某種語言的表達也就習慣了這種語言的思維范型。一旦習慣,改起來就不舒服。幾年前,從C到C++,不少人編程序依然是DFD圖,結構圖,過程模

3、塊,最后湊出對象,以C++表示。直到相當一段時間之后,才理解到OO的開發(fā)好處。一遇到問題,首先想到的是什么是對象,她和對象如何交互,直接用C++表達對象。</p><p>  一個編程語言不斷帶來新的思維范形式好學的,但是學不到軟件開發(fā)新技術。正如ALGOL,C程序員學習FORTRAN和Pascal一樣。僅僅學會了一種新的表示法,從C++到C#卻不是這樣,C#帶來新的編程范型,即從面向對象編程到Web服務編程。這

4、中間有這個業(yè)界巨大的轉變:從分布式客戶/服務器計算轉向“軟件就是服務”的網(wǎng)絡計算。后者把資源共享,軟件重用又提成到一個新的階段,租賃,下載在Internet上進行。在ASP(應用服務提供者)提供的各式各樣服務基礎上,業(yè)務系統(tǒng)的應用開發(fā)者幾乎不用編制,維護(升級,糾錯)軟件就可以快速交付十分復雜的系統(tǒng)。而ASP用C#開發(fā)的Web服務也使大量的使用其它ASP提供的服務(當然也包括以Java,甚至C++提供的服務構件)。</p>

5、<p>  微軟公司提供的Microsoft.NET就是為了完善新一代網(wǎng)絡計算環(huán)境,而C#是其中的核心工具之一,簡單說是表達Web服務軟件最方便的工具。然而微軟在開發(fā)推行C#時,又是非常穩(wěn)健的。原因是網(wǎng)絡計算還在縱深發(fā)展,目前成功的應用,如電子商務,企業(yè)門戶,信息檢索不過是網(wǎng)絡計算最早期的成果,C#還在不斷試探中完善。</p><p>  本文用C#實現(xiàn)XML編輯器,XML是1998年2月在WWW(W

6、3C:World Wide Web Consortium)的不懈推動之下持續(xù)向前發(fā)展。起初,許多開發(fā)者還嘲笑XML,認為它只不過是編寫腳本的新方法而已。但那些常用數(shù)據(jù)庫進行管理和開發(fā)的人員很快就意識到XML的潛力之所在;XML會成為不需要任何專門的方法,就能為團體之間提供數(shù)據(jù)服務的一種新的途徑。</p><p>  開發(fā)員開始把XML的一些片斷融入到他們的桌面應用程序中,有的用來存儲配置數(shù)據(jù),有的作為輸出文件。隨

7、著時間的推移,他們開始把XML放到Internet上,使數(shù)據(jù)庫之間開始通過XML進行通信。許多企業(yè)發(fā)現(xiàn),得益于XML,他們對外部數(shù)據(jù)的數(shù)據(jù)操作變得更加輕松了。</p><p>  不過開發(fā)人員并不是唯一發(fā)現(xiàn)XML潛力的群體:還有微軟和那些讓XML成為.NET Framework基礎的人士。. NET的目標是:在桌面應用程序與在線應用程序之間建立聯(lián)系;使其對象之間的通信變得更為方便。</p><

8、p><b>  第一章XML簡介</b></p><p>  第一節(jié) XML產生的背景</p><p>  可擴展標記語言Extensive Markup Language--簡稱XML,它同HTML(即超文本標記語言--Hyper Text Markup Language)一樣,都是來自Standard Generalized Markup Language,

9、即標準通用標記語言,簡稱SGML。SGML是一種用標記來描述文檔資料的通用語言,它包含了一系列的文檔類型定義(簡稱DTD),DTD中定義了標記的含義,因而SGML的語法是可以擴展的。SGML十分龐大,既不容易學,用不容易使用,在計算機上實現(xiàn)也十分困難。鑒于這些因素,Web的發(fā)明者--歐洲核子物理研究中心的研究人員根據(jù)當時(1989年)計算機技術的能力,提出了HTML。</p><p>  HTML只使用SGML中

10、很小一部分標記。為了便于在計算機上實現(xiàn),HTML規(guī)定的標記是固定的,既HTML語法是不擴展的,它不需要包含DTD。HTML這種固定的語法是它易學易用,在計算機上開發(fā)的瀏覽器也十分容易。正是由于HTML的簡單性,使Web技術從計算機界走向全社會,Web的發(fā)展如日中天。</p><p>  近年來,隨著的Web應用越來越廣泛和深入,人們覺得HTML不夠用了,HTML過去簡單得愈發(fā)嚴重阻礙了用它來表現(xiàn)復雜的形式。盡管H

11、TML推出了一個又一個新版本,已經有了腳本.表格等表達功能,但始終滿足不了不斷增長的需求。另一方面,這幾年來計算機技術的發(fā)展也十分迅速,已經可以實現(xiàn)比當初發(fā)明創(chuàng)造HTML時復雜得多的Web瀏覽器,所以開發(fā)一種新的Web頁面語言是十分必要的,也是可能的。</p><p>  有人建議直接使用SGML作為Web語言,這固然能解決HTML遇到的困難。但是SGML太龐大了,用戶學.用不方便不說,要全面實現(xiàn)SGML的瀏覽器

12、就十分困難,于是自然會想到僅使用SGML的子集,使新的語言既方便實用又實現(xiàn)容易。正是在這種形勢下,標準化組織W3C建議使用一種精簡的SGML版本--XML應運而生了。它繼承了SGML重要的三個特性:可擴展性,結構化,有效性,成為表示結構化信息的一種標準文本格式[5]。 </p><p>  第二節(jié)XML的基本內容</p><p>  XML文檔:XML標識語言寫成的XML原代碼文件,實際上

13、是ASCII的純文本文件,可以用Notepad創(chuàng)建和修改。XML文檔的后綴名為.XML,用IE5.0以上瀏覽器可以直接打開并顯示成樹狀結構,看到的就是XML文檔.一般來說,XML文檔包含三個部分:</p><p>  a一個XML文檔聲明 : <?xml version="1.0"?></p><p>  b 一個關于文檔類型的定義 : <!DOCTY

14、PE data SYSTEM "data.dtd">如不需要可以省略</p><p>  c. 用XML標識創(chuàng)建的內容. </p><p><b>  舉例:</b></p><p>  <?xml version="1.0"?></p><p><b>

15、;  <books></b></p><p><b>  <book></b></p><p>  <author>Carson</author></p><p>  <price format="dollar">31.95</price>&

16、lt;/p><p>  <pubdate>05/01/2001</pubdate></p><p><b>  </book></b></p><p><b>  <pubinfo></b></p><p>  <publisher>MSPre

17、ss</publisher></p><p>  <state>WA</state></p><p>  </pubinfo></p><p><b>  </books> </b></p><p>  文檔對象模型 (DOM) 類是 XML 文檔的內存中表示形

18、式下圖顯示將此 XML 數(shù)據(jù)讀入 DOM 結構中時內存的構造。 </p><p>  圖1.1 XML文檔的樹形結構</p><p>  下面是XML中的有關概念:</p><p>  (1)Element(元素) </p><p>  元素是組成XML文檔的最小單位,由標識來定義,包括其中的內容,如<author>Carson&

19、lt;/author>,而且要由自己創(chuàng)建。元素可以包含元素,也可以包含通常只用于文檔中的文本的那些詞和句子。在XML中,這些文本叫做文檔的字符數(shù)據(jù)。</p><p>  標記語言方面的專業(yè)人員把他稱作為文檔的樹型結構。包含所有元素的元素叫根元素。根元素所直接包含的那些元素叫做子元素。它們也可以包含它們自己的子元素。如果元素包含子元素,我們叫他熟知。如果元素只包含字符數(shù)據(jù),我們叫它樹葉</p>

20、<p>  (2)Attribute(屬性)</p><p>  元素還可以具有屬性,屬性是一種將特征或特性賦給文檔元素的一種方式。例如:<price format="dollar">31.95</price>其中format就是屬性的名稱,dollar是屬性值。屬性值用單引號或雙引號包圍。</p><p>  (3)Declarati

21、on(聲明) </p><p>  所有XML文檔的第一行都有一個L聲明表示是一個XML文檔,并指出遵循哪個版本的規(guī)范:<?xml version="1.0"?>說明是1.0版本的XML文檔。</p><p>  (4)Entity(實體)</p><p>  文檔被定義為一個字符序列。一個處理器自始至終處理這個序列。提供了一種機制,

22、可以使文本非線性的組織,也就是以多片的形式組織,語法分析器可以重新變成線性結構。</p><p>  “文本片”這個概念叫做實體。一個實體可以小到一個字符,大到可以大到一本書的所有自負。</p><p>  每個實體都有名字。在文檔中,可以通過插入實體應用來引用實體。處理器將用實體替換相應的實體引用,這叫做文本替換。元素是描述文檔的邏輯結構,而實體是描述組成文檔的那些字節(jié)塊的位置,我們把它

23、稱作文檔的物理結構。</p><p>  (5)DTD(文件類型定義)。</p><p>  DTD是由元素類型,屬性,符號和實體等一系列定義組成的一個集合。他明確規(guī)定在文檔中哪些是合法的,以及在哪些地方是合法的。一個文檔可以在他的文檔類型中說明它符合哪種特定的DTD。(文檔類型通常所寫成,因為首字母縮寫將和文檔類型定義類型相同)。</p><p>  DTD文檔包

24、含:元素的定義規(guī)則,元素間關系的定義規(guī)則,元素可使用的屬性,可使用的實體或符號規(guī)則。DTD文件也是一個ASCII的文本文件,后綴名為.dtd。</p><p>  一些文檔并沒有相應的文檔類型說明,但這并不是說它們就不符合相應的文檔類型,而是說它們沒有聲明符合某種定義的文檔類型定義</p><p>  (6)Shape completely but legality(形式完備而合法)<

25、;/p><p>  在XML中,“在正確的地方使用正確的單詞”叫做合法。它同文檔類型密切相關,所謂一個文檔和法是指在文檔類型說明中他聲稱符合某種DTD,并且事實上也符合該DTD。那些沒有文檔類型說明的文檔并不是真正的非法,他們沒有違反他們的DTD,但也不能因為沒有辦法確定它們違反DTD而說明他們是違法的。</p><p>  在創(chuàng)建一個形式完備而不合法的文檔之前,應該仔細考慮清楚。如果該文擋類

26、型只有唯一的一個文檔并且文檔很小,那麼文檔形式完備也許就夠了。但如果它是信息系統(tǒng)(即是很?。┑囊徊糠只蚴且粋€大文擋,那就應該為他寫一個DTD,并且應經常查看文檔是否合法。[1]</p><p>  第三節(jié) XML語法基礎</p><p>  基本構成單元叫實體(entity),包含解析的或未解析的數(shù)據(jù).解析的數(shù)據(jù)由字符構成,可以看成是標記,由XML處理函數(shù)處理,而未解析的字符數(shù)據(jù)被當成原始

27、文本不被處理,例如<name>Delfan</name>,<name>和</name>就是標記,而Delfan是原始文本。標記用來描述文件的存儲結構(實體)和邏輯結構(元素)。XML語法實際描述了用來定義XML文件的結構和布局的構造,也包含了約束關系,而XML需要XML處理函數(shù)來處理,所以必須遵守嚴格的語法。</p><p><b>  一個簡單的例子:&

28、lt;/b></p><p>  < ?xml version="1.0" encoding="GB2312" ?></p><p><b>  <我的電話本></b></p><p><b>  <記錄></b></p>&l

29、t;p>  <姓名>Delfan</姓名></p><p>  <電子郵件>programer@21cn.com</電子郵件></p><p><b>  </記錄></b></p><p><b>  <記錄></b></p>&

30、lt;p>  <姓名>某某</姓名></p><p>  <電子郵件>a@b.c</電子郵件></p><p><b>  </記錄></b></p><p><b>  </我的電話本></b></p><p>  一個

31、XML文件只能有一個根,而且,XML是基于UNCODE編碼的,標記都可以是漢字.還有,IE本身就是個XML的解析器,雖然不很完善??梢詫⒁陨洗a寫到一個文本文件中,例如文件名為test.xml,雙擊,IE就可以把這個XML文檔解析成一棵樹并按層次顯示出來。[8]</p><p>  第四節(jié) XML編輯器</p><p>  現(xiàn)今的XML編輯器有多種多樣,例如XML Explorer(XML

32、 Edition) 2.6.7,</p><p>  XML Spy 5.0, XML Blueprint 2.2 , Bonodi XML Edition 2.0, XML DB Query簡體中文版,Easy XML, XML Generate 1.0等等。</p><p>  Bonodi XML Editor 2.0 </p><p>  一個適用于Mic

33、rosoft Windows 98/Me/NT4/2000/XP的多語言XML編輯器。你可以用不同的語言編輯XML文檔,比如說英語、日語、漢語、韓語、西班牙語、法語、德語、俄語、希臘語、泰語、希伯萊語、阿拉伯語以及其它任何Windows所支持的語言</p><p><b>  Easy XML</b></p><p>  XML編輯/檢查工具 – Easy XML,支

34、持 QXML 查詢語言的結點選擇,文件可以以樹狀結構顯示,XSLT 功能可以將 XML 轉譯成 HTML。</p><p>  XML Spy 5.0</p><p>  XML編輯器,提供三種XML文檔視圖:結構顯示和編輯,原碼視圖和支持CSS,XSL的預覽。</p><p>  XML Generate 1.0</p><p>  XML

35、的結構與樹控件結構非常相似,本軟件能夠通過樹控件的操作來產生XML文件,產生的文件可以用來給其他程序使用。樹控件操作可以添加,刪除,修改,拖放,XML的讀取及存儲。</p><p>  XML Blueprint 2.2</p><p>  是一款專為Windows開發(fā)者而設計的XML編輯器,高效易用。其主要功能包括:淺顯的文本編輯功能;能編輯任何DTD文件;XML圖層整理;即時XML色彩

36、;XML目錄設定;無限制的undo/redo功能。 </p><p>  XML Explorer (XML Editor) 2.6.7</p><p>  XML Explorer是一個XML和schema編輯器、XML數(shù)據(jù)分析工具。它簡單好用,可以展現(xiàn)多個窗口。你可從樹形圖、列表、表格、文字模式和跳出式編輯區(qū)等方式操作任何XML數(shù)據(jù)。它copy and paste的功能讓使用者復制任何

37、XML 文字到系統(tǒng)剪貼簿上,然后貼到任何XML Explorer窗口,它支持雙向Xpath,所以只要點任何XML節(jié)點或屬性,一個標準的Xpath就出來了。它兩欄的文字展現(xiàn)方式方便比較和編輯。它的schema完全支持樹形圖、列表、集合觀看模式、文字模式。有了它,你還能輕易把微軟Excel、Access和任何ODBC數(shù)據(jù)轉成XML格式。新版本增加了XML數(shù)據(jù)的圖表與統(tǒng)計分析功能。</p><p>  本軟件的目的是要

38、做一個編輯XML文擋的編輯器。由于XML文擋是樹形結構的,所以在本軟件中XML文擋就用TreeView控件顯式顯示出來,TreeView也是樹形結構的,但TreeView控件允許有多個根節(jié)點,需要對TreeView作一些限制,另外TreeView控件只是將XML文檔的樹形結構顯示出來,但XML文檔中各個節(jié)點的屬性值和文本值不能在TreeView中顯示出來,所以,要給TreeView中的每個節(jié)點賦一個指針,指針所指的地址中存儲著XML文檔

39、中對應節(jié)點的文本值和屬性值。</p><p>  這是實現(xiàn)XML編輯器的難點,通過addxmlnode和addtreenode函數(shù)可以完成打開文件,保存文件的功能。以下是XML編輯器的界面:</p><p>  圖1.2 XML編輯器</p><p>  該軟件通過編輯按鈕或工具欄里的箭頭可以添加,刪除,插入,編輯結點;通過更改按鈕可以輸入選定結點的文本值,屬性值,

40、屬性名稱;通過更改完成按鈕可以保存更改;通過文件按鈕可以打開,保存,新建,另存,退出功能。還可以通過工具欄的最后一個按鈕,察看把XML文件代碼。</p><p>  第二章 Microsoft .Net中的C#</p><p>  第一節(jié) .NET平臺</p><p><b>  1 .NET的簡介</b></p><p&g

41、t;  要介紹C#。就要先介紹一下C#所運行的平臺.NET。</p><p>  我們正處于一個嶄新的計算時代,一個互聯(lián)網(wǎng)時代。Internet應用開發(fā)新技術層出不窮,其中微軟的.NET是近來最熱門的技術之一,因此也受到越來越多軟件開發(fā)者和用戶的關注。但. NET到底是什么?大家對.NET平臺的看法和觀點也不盡相同。有的說.NET是微軟的下一代Visual Studio開發(fā)環(huán)境;有的說它是一個新的程序語言(C#)

42、;還有些人說它是以XML和SOAP為基礎的信息交換與消息傳遞的機制。其實,這些說法都是整個.NET的一部分。.NET的發(fā)布是近十年來微軟開發(fā)平臺的一個戰(zhàn)略轉變。. </p><p>  Mixrosoft.NET是把Internet轉換成一個分布式計算平臺的技術。.NET蘊含的基本理念就是將注意力從單獨的Web站點和與Internet相聯(lián)的各種設備,轉移到與各種計算機,設備,和服務協(xié)同工作的構架之上,從而提供涉及

43、面更廣,功能更全面的解決方案。.Net 的設計理念及在于在合作解決方案構架內,繼承和協(xié)調Internet上的任意資源組。</p><p>  .NET平臺為創(chuàng)建分布式Web應用,提供了所有的技術和工具。它在應用的各個層次上提供了一個語言中立的統(tǒng)一編程模型,同時對已有技術進行了無縫集成。.NET平臺集成了所有在微軟平臺出現(xiàn)的表示技術。構件技術和數(shù)據(jù)技術。整個.NET平臺將使Internet應用的開發(fā)如同桌面應用程序

44、一樣簡單。</p><p>  .NET提供了新型的基于Web服務的應用開發(fā)模式。公司提供的產品和服務方式將可以令用戶和供應商將這些產品和服務無縫的嵌入在其自身的業(yè)務進程和日?;顒拥碾娮訕嫾苤小?NET平臺支持標準的Internet協(xié)議,包括HTTP,XML,SOAP(簡單對象訪問協(xié)議),同時對Web服務的大力支持將使它與非.Net平臺交互變得簡單。[9]</p><p>  2 .NET

45、的技術基礎</p><p>  隨著三層/多層企業(yè)信息系統(tǒng)結構的深度發(fā)展和下一代分布式計算模型Web</p><p>  服務的出現(xiàn),企業(yè)應用中關于平臺、框架、語言的競爭也愈演愈烈。2000年6月微軟公司發(fā)布了.NET開發(fā)平臺。.NET開發(fā)平臺在開發(fā)者用以創(chuàng)造應用程序的工具和技術上做了根本的改變。</p><p>  .NET開發(fā)平臺包括以下內容:</p>

46、;<p>  (1).NET framework(架構),包括:Common Language Runtime(CLR)(通用語言運行環(huán)境),這是用于運行和加載應用程序的軟件組織;新的類庫,分級組織了開發(fā)者可以在他們的應用程序中用來顯示圖形用戶界面、訪問數(shù)據(jù)庫和文件以及在Web上通信的代碼集。</p><p>  (2).NET開發(fā)工具,包括:VisualStudio.NET Integrated

47、Development Environment (IDE)(Visual Studio.NET集成開發(fā)環(huán)境),用來開發(fā)和測試應用程序;.NET編程語言(例如VB.NET和新的C#),用來創(chuàng)建運行在CLR下并使用類庫的應用程序。(3)ASP.NET,一個取代以前的Active Server Pages (ASP)的特殊類庫,用來創(chuàng)建動態(tài)的Web內容和Web服務器應用程序,這些都將采用諸如HTML、XML和SOAP(簡單對象訪問協(xié)議)等In

48、ternet協(xié)議和數(shù)據(jù)格式。</p><p>  圖2.1 .NET開發(fā)框架的主要組成部分</p><p>  從上圖我們可以簡要的了解.NET開發(fā)框架的主要組成部分:首先是整個開發(fā)框架的基礎,即通用語言運行環(huán)境以及它所提供的一組基礎類庫;在開發(fā)技術方面,.NET提供了全新的數(shù)據(jù)庫訪問技術ADO.NET,以及網(wǎng)絡應用開發(fā)技術ASP.NET和Windows編程技術Winforms;在開發(fā)語言

49、方面,.NET提供了Visual Basic、Visual C++、C#和Java script等多種語言支持;而Visual studio.net則是全面支持.NET的開發(fā)工具,.NET平臺在底層的執(zhí)行引擎也引用了Java宿主的虛擬機概念,但.NET的通用語言運行環(huán)境CLR(common language runtime)比Java虛擬機(JVM)又多了新的概念。CLR在借鑒了JVM的自動垃圾收集、異常處理等機制的同時,又為.NET平

50、臺添加了多語言支持、組件自描述等新的特性。和Java源代碼翻譯成字節(jié)代碼(ByteCode)類似,.NET將所有Visual Studio。NET中性語言翻譯成一種稱為Intermediary Language(IL)的通用語言而實現(xiàn)了.NET平臺的跨語言承諾。執(zhí)行時,中間語言被</p><p>  這樣我們就了解了微軟開發(fā).NET的目的、含義、特點、以及技術基礎。</p><p>  第

51、二節(jié) XML Web Service</p><p>  何謂.NET?它是Microsoft面向XML Web服務的平臺。但準確地說,什么是XML Web服務呢? 它是未來的計算。Microsoft .NET 擴展了通過任何設備隨時隨地操作數(shù)據(jù)和進行通訊的能力。. NET 使用分布式計算模型并基于開放標準(如 XML)將 PC 與其他智能設備連接在一起。. NET 就是 Microsoft 的 XML Web

52、服務平臺。不論操作系統(tǒng)或編程語言有何差別,XML Web 服務能使應用程序在 Internet 上傳輸和共享數(shù)據(jù)。[10]</p><p>  前面講道.Net是面向XML Web服務的平臺,那XML Web服務又具體是什么呢?</p><p>  1 XML Web Service的定義</p><p>  XML Web Service是基于XML數(shù)據(jù)交換標準的

53、Web服務,是通過標準的Web協(xié)議(HTTP)可編程訪問的Web組件,或者說提供函數(shù)調用的Web站點。它的核心觀念是將軟件作為服務(Soft ware As A Service)即可以將軟件作為Web服務并在Internet上進行發(fā)布,真正的使企業(yè)只面向核心的商務邏輯,企業(yè)可以使用標準的Web協(xié)議(XML,HTTP,SOPA)與遠程應用通信。軟件向服務轉化是目前的業(yè)界重點,基于Internet的Web服務是實現(xiàn)這一轉變的最佳選擇。<

54、;/p><p>  以XML Web Service方式提供現(xiàn)有應用程序,可以構建新的、更強大的應用程序,并利用XML Web Service作為構造塊。例如,用戶可以開發(fā)一個采購應用程序,以自動獲取來自不同供應商的價格信息,從而使用戶可以選擇供應商,提交訂單,然后跟蹤貨物的運輸,直至收到貨物。而供應商的應用程序除了在Web上提供服務外,還可以使用XML Web Service檢查客戶的信用、收取貨款,并與貨運公司辦

55、理貨運手續(xù)。</p><p>  2 XML Web Service的優(yōu)點</p><p><b>  其主要優(yōu)點有:</b></p><p>  (1)采用W3C標準,真正的與平臺無關。允許在不同平臺上、以不同語言編寫的各種程序以基于標準的方式相互通信。這雖然與CORBA和DCE有著相同的目標,但是SOPA比以前的方法要簡單得多。</p

56、><p>  (2)使用標準的協(xié)議—XML,HTTP和TCP/IP。許多公司都已經建立了Web基礎結構,同時它們的員工在維護方面也都具備相應的知識和經驗。因此,引入XML Web Service與引入以前的技術相比,其成本要低得多。</p><p>  (3)現(xiàn)有的遠程訪問協(xié)議—DCOM,CORBA,RMI不能很好用于互聯(lián)網(wǎng)環(huán)境。</p><p>  (4)不受現(xiàn)有的代

57、理和防火墻的限制。</p><p>  (5)可以利用HTTP驗證模式,支持安全套接層(SSL)[4]</p><p>  3 XML Web Services的基礎結構</p><p>  若要在 Web 的多樣性世界里取得成功,在涉及到操作系統(tǒng)、對象模型和編程語言的選擇時,XML Web services 不能有任何傾向性。同樣,若要使 XML Web serv

58、ices 像其他基于 Web 的技術一樣被廣泛采用,則它們必須是: </p><p>  松耦合的:如果對兩個系統(tǒng)的唯一要求是要理解前面提到的自我描述的基于文本的消息,那么這兩個系統(tǒng)就被認為是松耦合的。另一方面,緊耦合系統(tǒng)要求大量自定義系統(tǒng)開銷來進行通信,并要求系統(tǒng)之間有更多的了解。 </p><p>  常見的通信:大概不會有人會在現(xiàn)在或不遠的將來生成一個無法連接到 Internet 的

59、操作系統(tǒng),因此,需要提供常見的通信信道。同樣,能夠將幾乎所有系統(tǒng)或設備連接到 Internet 的能力將確保這樣的系統(tǒng)和設備能夠為連接到 Internet 的所有其他系統(tǒng)或設備所使用。 </p><p>  通用數(shù)據(jù)格式:通過用現(xiàn)有的開放式標準而不是專用的封閉通信方法,任何支持同樣的開放式標準的系統(tǒng)都能夠理解 XML Web services。在采用自我描述的基于文本的消息時,XML Web services 及

60、其客戶端無須知道每個基礎系統(tǒng)的構成即可共享該消息,這使得自治系統(tǒng)和完全不同的系統(tǒng)之間能夠進行通信。XML Web services 使用 XML 實現(xiàn)此功能。 </p><p>  XML Web services 采用一種基礎結構,該基礎結構提供下列內容:定位 XML Web services 的發(fā)現(xiàn)機制、定義如何使用這些服務的服務說明以及通信時使用的標準連網(wǎng)形式。下圖顯示了此基礎結構的一個示例。</p&

61、gt;<p>  圖2.2 XML基礎結構</p><p>  UDDI(Universal Description Discovery Integration)—通用發(fā)現(xiàn)、說明和集成(UDDI)是Web服務的黃頁。UDDI允許你查找提供的Web服務的公司。</p><p>  WSDL(XML Web service Description Language)—描述Web

62、service的語言規(guī)范,相當于訪問Web Service的接口。WSDL(Web Service Description Language)表示W(wǎng)eb服務說明語言。WSDL文件是一個XML文檔,用于說明一組SOAP消息以及如何交換這些消息。換句話說,WSDL對于SOAP的作用就像IDL對于CORBSA或COM的作用。由于WSDL是XML文檔,因此很容易進行閱讀和編輯;但大多數(shù)情況下,它由軟件生成和使用。</p><

63、p>  SOAP(Simple Object Access Protocal)—簡單對象訪問協(xié)議,用XML實現(xiàn)Web Service的標準協(xié)議,是XML Web Service的通信協(xié)議。[6]</p><p>  第三節(jié) .NET 框架概述</p><p>  以上是對.Net在宏觀方面的解釋,下面就說一說.Net在微觀方面既具體在計算機上是如何實現(xiàn)的,這一部分也就是Microso

64、ft構建的面向開發(fā)人員的 Visual Studio .NET。Visual Studio .NET 提升了下列高產的編程語言:Microsoft Visual Basic®,它包含了新的面向對象的編程功能;Microsoft Visual C++®,它提升了 Windows® 開發(fā)并可用于創(chuàng)建 .NET 應用程序;以及 C#,它給 C 和 C++ 開發(fā)人員帶來了 RAD。</p><p

65、>  現(xiàn)將.Net框架簡述如下: </p><p>  .NET 框架是一種新的計算平臺,它簡化了在高度分布式 Internet 環(huán)境中的應用程序開發(fā)。. NET 框架旨在實現(xiàn)下列目標: </p><p>  提供一個一致的面向對象的編程環(huán)境,而無論對象代碼是在本地存儲和執(zhí)行,還是在本地執(zhí)行但在 Internet 上分布,或者是在遠程執(zhí)行的。 </p><p>

66、;  提供一個將軟件部署和版本控制沖突最小化的代碼執(zhí)行環(huán)境。 </p><p>  提供一個保證代碼(包括由未知的或不完全受信任的第三方創(chuàng)建的代碼)安全執(zhí)行的代碼執(zhí)行環(huán)境。 </p><p>  提供一個可消除腳本環(huán)境或解釋環(huán)境的性能問題的代碼執(zhí)行環(huán)境。 </p><p>  使開發(fā)人員的經驗在面對類型大不相同的應用程序(如基于 Windows 的應用程序和基于 W

67、eb 的應用程序)時保持一致。 </p><p>  按照工業(yè)標準生成所有通訊,以確?;?.NET 框架的代碼可與任何其他代碼集成。 </p><p>  .NET 框架具有兩個主要組件:公共語言運行庫和 .NET 框架類庫。公共語言運行庫是 .NET 框架的基礎。您可以將運行庫看作一個在執(zhí)行時管理代碼的代理,它提供核心服務(如內存管理、線程管理和遠程處理),而且還強制實施嚴格的類型安全

68、以及可確保安全性和可靠性的其他形式的代碼準確性。事實上,代碼管理的概念是運行庫的基本原則。以運行庫為目標的代碼稱為托管代碼,而不以運行庫為目標的代碼稱為非托管代碼。. NET 框架的另一個主要組件是類庫,它是一個綜合性的面向對象的可重用類型集合,您可以使用它開發(fā)包含從傳統(tǒng)的命令行或圖形用戶界面 (GUI) 應用程序到基于 ASP.NET 所提供的最新創(chuàng)新的應用程序(如 Web 窗體和 XML Web services)在內的應用程序。[

69、11]</p><p>  .NET 框架可由非托管組件承載,這些組件將公共語言運行庫加載到它們的進程中并啟動托管代碼的執(zhí)行,從而創(chuàng)建一個可以同時利用托管和非托管功能的軟件環(huán)境。. NET 框架不但提供若干個運行庫宿主,而且還支持第三方運行庫宿主的開發(fā)。</p><p>  Internet Explorer 是承載運行庫(以 MIME 類型擴展的形式)的非托管應用程序的一個示例。使用 I

70、nternet Explorer 承載運行庫使您能夠在 HTML 文檔中嵌入托管組件或 Windows 窗體控件。以這種方式承載運行庫使得托管移動代碼(類似于 Microsoft® ActiveX® 控件)成為可能,但是它具有只有托管代碼才能提供的重大改進(如不完全受信任的執(zhí)行和安全的獨立文件存儲)。[7]</p><p>  下面的章節(jié)將更加詳細地描述 .NET 框架的主要組件和功能。<

71、;/p><p>  圖2.3顯示公共語言運行庫和類庫與應用程序之間以及與整個系統(tǒng)之間的關系。該插圖還顯托管代碼如何在更大的結構內運行。</p><p>  圖2.3 .NET 框架環(huán)境 </p><p>  1 公共語言運行庫的功能</p><p>  公共語言運行庫管理內存、線程執(zhí)行、代碼執(zhí)行、代碼安全驗證、編譯以及其他系統(tǒng)服務。這些功能是在公

72、共語言運行庫上運行的托管代碼所固有的。</p><p>  至于安全性,取決于包括托管組件的來源(如 Internet、企業(yè)網(wǎng)絡或本地計算機)在內的一些因素,托管組件被賦予不同程度的信任。這意味著即使用在同一活動應用程序中,托管組件既可能能夠執(zhí)行文件訪問操作、注冊表訪問操作或其他須小心使用的功能,也可能不能夠執(zhí)行這些功能。</p><p>  運行庫強制實施代碼訪問安全。例如,用戶可以相信

73、嵌入在 Web 頁中的可執(zhí)行文件能夠在屏幕上播放動畫或唱歌,但不能訪問他們的個人數(shù)據(jù)、文件系統(tǒng)或網(wǎng)絡。這樣,運行庫的安全性功能就使通過 Internet 部署的合法軟件能夠具有特別豐富的功能。</p><p>  運行庫還通過實現(xiàn)稱為通用類型系統(tǒng) (CTS) 的嚴格的類型驗證和代碼驗證基礎結構來加強代碼可靠性。CTS 確保所有托管代碼都是可以自我描述的。各種 Microsoft 和第三方語言編譯器生成符合 CTS

74、 的托管代碼。這意味著托管代碼可在嚴格實施類型保真和類型安全的同時使用其他托管類型和實例。</p><p>  此外,運行庫的托管環(huán)境還消除了許多常見的軟件問題。例如,運行庫自動處理對象布局并管理對對象的引用,在不再使用它們時將它們釋放。這種自動內存管理解決了兩個最常見的應用程序錯誤:內存泄漏和無效內存引用。</p><p>  運行庫還提高了開發(fā)人員的工作效率。例如,程序員可以用他們選擇

75、的開發(fā)語言編寫應用程序,卻仍能充分利用其他開發(fā)人員用其他語言編寫的運行庫、類庫和組件。任何選擇以運行庫為目標的編譯器供應商都可以這樣做。以 .NET 框架為目標的語言編譯器使得用該語言編寫的現(xiàn)有代碼可以使用 .NET 框架的功能,這大大減輕了現(xiàn)有應用程序的遷移過程的工作負擔。</p><p>  盡管運行庫是為未來的軟件設計的,但是它也支持現(xiàn)在和以前的軟件。托管和非托管代碼之間的互操作性使開發(fā)人員能夠繼續(xù)使用所需

76、的 COM 組件和DLL。</p><p>  運行庫旨在增強性能。盡管公共語言運行庫提供許多標準運行庫服務,但是它從不解釋托管代碼。一種稱為實時 (JIT) 編譯的功能使所有托管代碼能夠以它在其上執(zhí)行的系統(tǒng)的本機語言運行。同時,內存管理器排除了出現(xiàn)零碎內存的可能性,并增大了內存引用區(qū)域以進一步提高性能。</p><p>  最后,運行庫可由高性能的服務器端應用程序(如 Microsoft

77、® SQL Server? 和 Internet 信息服務 (IIS))承載。此基礎結構使您在享受支持運行庫宿主的行業(yè)最佳企業(yè)服務器的優(yōu)越性能的同時,能夠使用托管代碼編寫業(yè)務邏輯。[15]</p><p>  2 .NET 框架類庫</p><p>  .NET 框架類庫是一個與公共語言運行庫緊密集成的可重用的類型集合。該類庫是面向對象的,并提供您自己的托管代碼可從中導出功能的類

78、型。這不但使 .NET 框架類型易于使用,而且還減少了學習 .NET 框架的新功能所需要的時間。此外,第三方組件可與 .NET 框架中的類無縫集成。</p><p>  例如,.NET 框架集合類實現(xiàn)一組可用于開發(fā)您自己的集合類的接口。您的集合類將與 .NET 框架中的類無縫地混合。</p><p>  正如您對面向對象的類庫所希望的那樣,.NET 框架類型使您能夠完成一系列常見編程任務(

79、包括諸如字符串管理、數(shù)據(jù)收集、數(shù)據(jù)庫連接以及文件訪問等任務)。除這些常見任務之外,類庫還包括支持多種專用開發(fā)方案的類型。例如,可使用 .NET 框架開發(fā)下列類型的應用程序和服務: </p><p><b>  控制臺應用程序。 </b></p><p>  腳本應用程序或寄宿的應用程序。 </p><p>  Windows GUI 應用程序(

80、Windows 窗體)。 </p><p>  ASP.NET 應用程序。 </p><p>  XML Web services。 </p><p>  Windows 服務。 </p><p>  例如,Windows 窗體類是一組綜合性的可重用的類型,它們大大簡化了 Windows GUI 的開發(fā)。如果要編寫 ASP.NET Web 窗

81、體應用程序,可使用 Web 窗體類。[12]</p><p>  3 客戶端應用程序開發(fā)</p><p>  客戶端應用程序在基于 Windows 的編程中最接近于傳統(tǒng)風格的應用程序。這些是在桌面上顯示窗口或窗體從而使用戶能夠執(zhí)行任務的應用程序類型??蛻舳藨贸绦虬ㄖT如字處理器和電子表格等應用程序以及自定義的業(yè)務應用程序(如數(shù)據(jù)輸入工具、報告工具等等)。客戶端應用程序通常使用窗口、菜單、

82、按鈕和其他 GUI 元素,并且它們可能訪問本地資源(如文件系統(tǒng))和外圍設備(如打印機)。</p><p>  另一種客戶端應用程序是作為 Web 頁通過 Internet 部署的傳統(tǒng) ActiveX 控件(現(xiàn)在被托管 Windows 窗體控件所替代)。此應用程序非常類似于其他客戶端應用程序:它在本機執(zhí)行,可以訪問本地資源,并包含圖形元素。</p><p>  過去,開發(fā)人員將 C/C++

83、與 Microsoft 基礎類 (MFC) 或應用程序快速開發(fā) (RAD) 環(huán)境(如 Microsoft® Visual Basic®)一起使用來創(chuàng)建這樣的應用程序。.NET 框架將這些現(xiàn)有產品的特點合并到了單個且一致的開發(fā)環(huán)境中,該環(huán)境大大簡化了客戶端應用程序的開發(fā)。</p><p>  包含在 .NET 框架中的Windows 窗體類旨在用于 GUI 開發(fā)。您可以輕松創(chuàng)建具有適應多變的商業(yè)

84、需求所需的靈活性的命令窗口、按鈕、菜單、工具欄和其他屏幕元素。</p><p>  例如,.NET 框架提供簡單的屬性以調整與窗體相關聯(lián)的可視屬性。某些情況下,基礎操作系統(tǒng)不支持直接更改這些屬性,而在這些情況下,.NET 框架將自動重新創(chuàng)建窗體。這是 .NET 框架集成開發(fā)人員接口從而使編碼更簡單更一致的許多方法之一。</p><p>  和 ActiveX 控件不同,Windows 窗體

85、控件具有對用戶計算機的不完全受信任的訪問權限。這意味著二進制代碼或在本機執(zhí)行的代碼可訪問用戶系統(tǒng)上的某些資源(如 GUI 元素和受限制的文件訪問)而不能訪問或危害其他資源。由于具有代碼訪問安全性,許多曾經需要安裝在用戶系統(tǒng)上的應用程序現(xiàn)在可以通過 Web 安全地部署。您的應用程序可以在像 Web 頁那樣部署時實現(xiàn)本地應用程序的功能。[13]</p><p>  4 服務器應用程序開發(fā)</p><

86、;p>  在托管領域中,服務器端應用程序是通過運行庫宿主實現(xiàn)的。非托管應用程序承載公共語言運行庫,后者使您的自定義托管代碼可以控制服務器的行為。此模型在獲得主服務器的性能和可伸縮性的同時提供給您公共語言運行庫和類庫的所有功能。</p><p>  圖2.4顯示在不同服務器環(huán)境中運行托管代碼的基本網(wǎng)絡架構。在應用程序邏輯通過托管代碼執(zhí)行時,服務器(如 IIS 和 SQL Server)可執(zhí)行標準操作。<

87、/p><p>  圖 2.4 服務器端托管代碼</p><p>  ASP.NET 是使開發(fā)人員能夠使用 .NET 框架開發(fā)基于 Web 的應用程序的宿主環(huán)境。但是,ASP.NET 不止是一個運行庫宿主;它是使用托管代碼開發(fā) Web 站點和通過 Internet 分布的對象的完整結構。Web 窗體和 XML Web services 都將 IIS 和 ASP.NET 用作應用程序的發(fā)布機制,并

88、且兩者在 .NET 框架中都具有支持類集合。</p><p>  XML Web services 作為基于 Web 的技術的重要發(fā)展,是類似于常見 Web 站點的分布式服務器端應用程序組件。但是,與基于 Web 的應用程序不同,XML Web services 組件不具有 UI 并且不以瀏覽器(如 Internet Explorer 和Netscape Navigator)為目標。相反,XML Web serv

89、ices 包含旨在供其他應用程序(如傳統(tǒng)的客戶端應用程序、基于 Web 的應用程序或者甚至是其他 XML Web services)使用的可重用的軟件組件。因此,XML Web services 技術正迅速地將應用程序開發(fā)和部署推向高度分布式 Internet 環(huán)境。</p><p>  如果您使用過 ASP 技術的早期版本,您馬上就會注意到 ASP.NET 和 Web 窗體提供的改進。例如,您可以用支持 .NE

90、T 框架的任何語言開發(fā) Web 窗體頁。此外,您的代碼不再需要與 HTTP 文本共享同一個文件(盡管如果您愿意,代碼還可以繼續(xù)這樣做)。Web 窗體頁用本機語言執(zhí)行,這是因為與所有其他托管應用程序一樣,它們充分利用運行庫。與此相對照,非托管 ASP 頁始終被寫成腳本并解釋。ASP.NET 頁比非托管 ASP 頁更快、更實用并且更易于開發(fā),這是因為它們像所有托管應用程序一樣與運行庫進行交互。</p><p>  .

91、NET 框架還提供類和工具的集合來幫助開發(fā)和使用 XML Web services 應用程序。XML Web services 是基于 SOAP(一種遠程過程調用協(xié)議)、XML(一種可擴展的數(shù)據(jù)格式)和 WSDL(Web 服務描述語言)這些標準生成的?;谶@些標準生成 .NET 框架的目的是為了提高與非 Microsoft 解決方案的互操作性。</p><p>  例如,.NET 框架 SDK 所包含的Web 服

92、務描述語言工具可以查詢在 Web 上發(fā)布的 XML Web services,分析它的 WSDL 描述,并產生 C# 或 Visual Basic 源代碼,您的應用程序可以使用這些代碼而成為 XML Web services 的客戶端。這些源代碼可以創(chuàng)建從類庫中的類派生的類,這些類使用 SOAP 和 XML 分析處理所有基礎通訊。雖然您可以使用類庫來直接使用 XML Web services,Web 服務描述語言工具和包含在 SDK 中

93、的其他工具可以使您更加方便地用 .NET 框架進行開發(fā)。</p><p>  如果您開發(fā)和發(fā)布自己的 XML Web services,.NET 框架為您提供了一組符合所有基礎通訊標準(如 SOAP、WSDL 和 XML)的類。使用這些類使您能夠將注意力集中在服務的邏輯上,而無需關注分布式軟件開發(fā)所需要的通訊基礎結構。</p><p>  最后,與托管環(huán)境中的 Web 窗體頁相似,您的 X

94、ML Web services 將使用 IIS 的可伸縮通訊以本機語言的速度運行。[14]</p><p><b>  第四節(jié) C#概述</b></p><p>  Microsoft.NET是一個完善的平臺! 它提供了一套公共的運行庫!并制定了一套公共語言規(guī)范!所有符合該規(guī)范的語言都可以無縫使用這套運行庫! 這也就是說在Microsoft.NET平臺下使用符合Mic

95、rosoft.NET規(guī)范的都可以開發(fā).NET 應用程序。微軟Micarosoft.NET認證要求從C#(C Sharp)和Visual Basic.NET兩種語言中任一種語言進行Microsoft.NET平臺應用程序開發(fā)。由于C# 是微軟公司針對Microsoft.NET平臺而開發(fā)一種新型編程語言。它從C/C++ 演變而來,是一種簡單.現(xiàn)代.類型安全和完全面向對象的語言。微軟公司力薦開發(fā)者使用C#開發(fā)Microsoft.NET應用程序,

96、下面我們就看看C#語言的有關知識。[1]</p><p><b>  1 C#簡介</b></p><p>  C#(讀作“C sharp”)是一種簡單、現(xiàn)代、面向對象且類型安全的編程語言。C和C++程序員能很快熟悉它。C#同時具備“應用程序快速開發(fā)”(RAD)語言的高效率和 C++ 固有的強大能力。</p><p>  Visual C# .

97、NET是Microsoft的C#開發(fā)工具。它包括交互式開發(fā)環(huán)境、可視化設計器(用于生成 Windows 和 Web 應用程序)、編譯器和調試器。Visual C#.NET 是Visual Studio .NET的產品套件的組成部分,該產品套件還包括 Visual Basic.NET、Visual C++.NET和JScript腳本語言。所有這些語言都支持對 Microsoft .NET Framework的訪問,該框架包括一個公共執(zhí)行引

98、擎和一個豐富的類庫。.NET Framework定義了一個“公共語言規(guī)范”(CLS),這是一種通用規(guī)范,它確保遵循該規(guī)范的語言與類庫之間實現(xiàn)無縫的互操作性。對C#開發(fā)人員而言,這意味著即C#是一種新語言,但仍可恰如其他成熟工具(如 Visual Basic.NET 和Visual C.NET)一樣,使用相同的、功能豐富的類庫。C# 本身不包含類庫。[5]</p><p><b>  2 C#的主要特點&

99、lt;/b></p><p><b>  (1)簡單性</b></p><p>  C#首先是一個簡單的語言。它加入了許多新的特征,但同時也為了提供簡單性,也舍棄了一些語言的特性。C++的編程是很復雜的。舉個簡單的例子,對于“—〉”和“::”以及“.”操作符,分別用于引用,名字空間和成員等操作。C#意識到了C++編程中這個煩人的地方。C#去掉了別的操作符,所有的

100、操作符都用“.”表示。程序員只需理解名字嵌套的概念就可以了。C#程序中使用一種受管代碼,所有對象的分配釋放都是由公共語言運行時替你完成的,不安全操作,諸如直接內存存取是不允許的。這樣就消除了懸掛指針,內存泄漏,循環(huán)引用等問題。值得一提的是,C#還可繼續(xù)使用指針,可以通過unsafe代碼。這也體現(xiàn)了C#的靈活性。Unsafe代碼恰如其分的表示了它本身的含義。大多數(shù)情況下不建議使用unsafe代碼,但在一些需要高性能程序或本地資源訪問時可以

101、使用。執(zhí)行unsafe代碼需要一個很高的安全許可,畢竟它是不安全的。C和C#編程中的另一個煩人的地方就是選擇使用的數(shù)據(jù)類型。C#中,一個UNICODE 的字符不再是 wchar_t,它就代表一個字符。64位的整形是long型,而不是__int64,字符就是字符,不再需要對cha</p><p>  C和C++編程中還有一個令人困擾的地方,就是整形可以當作布爾值使用,而且程序員經常把==錯寫成=。C#對兩者進行了

102、區(qū)分。C#提供了一個單獨的bool類型來表示bool值,可以為true也可以為false,但是不可以轉換為其他類型。同樣,整形和對象引用也不可以當作布爾值使用,只能和0或null比較。這意味著if判別式中的結果只能是bool類型。如果是其他類型的話,編譯器將會做出錯誤報告。</p><p>  對C++另一個改進就是switch語句了。C++程序中如果switch語句中的case語句沒有break結尾的話,將繼續(xù)

103、執(zhí)行直到遇到break或跳出程序塊。C#和VB類似,在每一個case語句中隱含加入了break語句,但如果確實像往下繼續(xù)執(zhí)行的話,可以使用goto語句。</p><p>  簡單性的另一個體現(xiàn)是一步到位的編碼。C#程序中所有元素的聲明和實現(xiàn)合為一體在同一個源文件中,不再需要額外的頭文件或IDL文件中對他們進行聲明;性質的get/set方法被合并;程序的文檔信息也嵌在程序中;程序員只要維護一個文件就夠了。如果項目太

104、大且程序員想把它分成幾個小一些的源文件。那編譯時候仍可把它當作整個項目來看待。程序員不用關心聲明在哪里和某個類在哪里實現(xiàn)的問題。</p><p>  (2)類型系統(tǒng)的統(tǒng)一性</p><p>  C#統(tǒng)一了類型統(tǒng)一。C#中所有類型,不論是基本類型,還是普通的class類,都可作為對象看待。這種機制在其他語言中也曾經有過。但C#提供的脫匣和裝匣的機制降低了執(zhí)行的難度。不論使用的是類class,

105、結構struct,數(shù)組array,或是簡單類型,都可以把他們當作對象。這個類型統(tǒng)一的系統(tǒng)意味著所有類型—接口,結構,委派,枚舉,和數(shù)組,都有相同的基本功能,例如轉化成字符串,序列化,在集合類型中存儲 。</p><p>  對象包含在名字空間中,可以編程訪問。這樣就不必手動編寫很多include語句來包含頭文件,只需使用using 語句包含相應的名字就可以使用其中的類了。使用名字空間也可以省去類的前綴。</

106、p><p>  那如何編寫自己的類呢?只要把自己的類包含進名字空間即可。例如編寫了一個類MyClass,想在另一個應用中使用,那可以聲明一個空間MyNamespaces,并把MyClass包含進該名字空間,同時聲明MyClass為公有的Public的。然后編譯成DLL,并把DLL放入應用程序所在的目錄下,最后在使用MyClass的應用中用using MyNamespace包含進自定義的名字空間就可以了。如果覺得類的引

107、用字符串太長(例如NS1.NS2.MyClass),那麼可以在C#中使用別名來替代它。例如使用using A=NS1.NS2.MyClass就可以在程序中使用A來代表NS1.NS2.MyClass了,是不是有點像C++中的宏。</p><p><b>  (3)現(xiàn)代性</b></p><p>  從編程語言出現(xiàn)的第一天起,程序員的需求就不斷在增加。雖然不斷有新的語言,

108、新的技術增加,但是仍舊或多或少的滿足不了程序員的需要。功能強大的C和C++同樣有不盡人意的地方。C#提供了C和C++程序員一直夢想的幾個特征,垃圾回收就是一個例子。程序員不再負責整個內存的管理。.NET平臺運行環(huán)境提供了一個垃圾回收器負責C#程序的內存管理,不被引用的對象都將被自動釋放。然而,垃圾回收時要付出代價的。風險操作如指針(unsafe代碼)錯誤將更難發(fā)現(xiàn),對程序員的潛在威脅更大。對于這種情況C#引入了類型安全性來增加程序的穩(wěn)定

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論