版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 在線繪圖工具研究與設(shè)計</p><p><b> 摘 要</b></p><p> 互聯(lián)網(wǎng)的普及應(yīng)用催生了很多技術(shù)的發(fā)展與更新,如果仔細(xì)深究,你會發(fā)現(xiàn)軟件技術(shù)的發(fā)展趨勢將主要體現(xiàn)在以下四個方面:客戶端軟件開發(fā)(其中包括客戶端軟件、游戲、中間件和嵌入式開發(fā)等)、Web 開發(fā)(包括傳統(tǒng)的Web技術(shù)、Web游戲以及一些在線應(yīng)用)、移動設(shè)備軟件
2、開發(fā)(主要涉及到手機(jī)等移動設(shè)備)、云計算開發(fā)(公有云、私有云、混合云會逐漸界限清晰,云廠商以及云平臺也會逐漸整合和成熟起來)。</p><p> 基于web應(yīng)用層出不窮,在線繪圖工具的需求日益突出,為解決單機(jī)繪圖工具使用中出現(xiàn)的網(wǎng)絡(luò)交互能力差等問題,本文研究與設(shè)計了一種基本Asp.net的在線繪圖工具。論文以web開發(fā)中Asp.net技術(shù)為理論基礎(chǔ),以C#語言及Visual Studio為軟件設(shè)計平臺,采用GD
3、I+圖像類庫的強(qiáng)大功能,最終實現(xiàn)在線繪圖功能。</p><p> 關(guān)鍵詞:在線繪圖,Asp.net,C#,GDI+</p><p> The Research and design of online drawing tool </p><p> Abstract:The spread of the Internet application spawned
4、 many technology development and renewal, if carefully, you will find that software to delve into the development trend of the technology of will mainly reflects on the following four aspects: the client software develop
5、ment (including client software, games, middleware and embedded development, etc.), Web development (including traditional Web technology, Web games and some online applications), mobile equipment software development (m
6、ainly</p><p> Based on web application layer are emerging one after another, drawing tools demand online have become increasingly prominent, drawing tools used for solving appear in single ability to intera
7、ct with the network issues such as research and design, this paper a basic asp.net online mapping tools. Papers to the web developing asp.net technology in theory, with C# and Visual Studio for software design platform,
8、use GDI+ image class library, and finally achieve the strong function of online mapping </p><p> Keywords: Online mapping, Asp.net,C#,GDI+</p><p><b> 目 錄</b></p><p>
9、<b> 第1章 引言1</b></p><p> 1.1 課題研究背景1</p><p> 1.2 在線繪圖工具的應(yīng)用現(xiàn)狀1</p><p> 1.3 技術(shù)背景2</p><p> 第2章 在線繪圖工具的理論基礎(chǔ)5</p><p> 2.1 c#.net5</p&g
10、t;<p> 2.1.1 C#.net簡介5</p><p> 2.1.2 C#5</p><p> 2.2 GDI+10</p><p> 2.2.1 GDI+圖形簡介10</p><p> 2.2.1 GDI+常用功能10</p><p> 2.2.2 GDI+新增功能11&l
11、t;/p><p> 2.2 常用畫圖對象12</p><p> 2.2.1Pen類12</p><p> 2.2.2 Color結(jié)構(gòu)12</p><p> 2.2.3 Font類13</p><p> 2.2.4 Brush類14</p><p> 2.2.5 Rectangl
12、e結(jié)構(gòu)14</p><p> 2.2.6 Point結(jié)構(gòu)15</p><p> 第3章 在線繪圖工具的軟件設(shè)計平臺15</p><p> 3.1 Visual Studio發(fā)展歷程15</p><p> 3.2 Visual Studio 2008版本特點(diǎn)16</p><p> 3.3 Visual
13、 Studio.NET和C#17</p><p> 3.4 NET Framework與Visual Studio.NET的關(guān)系17</p><p> 第4章 在線繪圖工具的實現(xiàn)方案17</p><p> 4.1 在線繪圖基本思想17</p><p> 4.1.1 繪圖基本原理17</p><p>
14、 4.1.2繪圖的基本方法19</p><p> 4.2 在線繪圖工具實現(xiàn)過程19</p><p> 4.2.1 界面設(shè)計19</p><p> 4.2.2程序代碼添加20</p><p><b> 總 結(jié)24</b></p><p><b> 致 謝25<
15、;/b></p><p><b> 參考文獻(xiàn)26</b></p><p><b> 第1章 引言</b></p><p> 1.1 課題研究背景</p><p> 1950年,麻省理工學(xué)院設(shè)計完成了第一臺圖形顯示器。60年代,交互式圖形技術(shù)誕生,實現(xiàn)了用鍵盤和光筆與計算機(jī)交互。70年
16、代,交互式圖形系統(tǒng)得到了更加廣泛的應(yīng)用。</p><p> 隨著因特網(wǎng)的迅猛發(fā)展,各種基于WEB的應(yīng)用層出不窮。這些應(yīng)用在增強(qiáng)用戶體驗的同時,一定程度上也推動了WEB技術(shù)的發(fā)展。目前基于單機(jī)的繪圖工具已經(jīng)十分成熟,能夠滿足絕大部分用戶的要求,典型的軟件以Macromedia公司Flash,Adobe公司Photoshop等為代表。他們的優(yōu)點(diǎn)是單機(jī)功能強(qiáng)大,但也有著先天的局限性——只能單機(jī)使用,網(wǎng)絡(luò)交互能力差。但
17、越來越便捷發(fā)達(dá)的網(wǎng)絡(luò)用戶對網(wǎng)上在線繪圖工具產(chǎn)生了強(qiáng)烈的需求。用戶想要在其他的終端上繪制或顯示由單機(jī)繪圖工具繪制的圖形文件,就需要使用移動存儲設(shè)備或網(wǎng)絡(luò)對文件進(jìn)去轉(zhuǎn)儲。這種強(qiáng)單機(jī)功能,弱交互的形式已不能適應(yīng)目前用戶對信息隨時、隨地處理的要求。</p><p> 1.2 在線繪圖工具的應(yīng)用現(xiàn)狀</p><p> 1Best4c(Best for chart)</p><
18、p> Best4c(Best for chart) 是一個基于web的在線繪圖工具,能夠讓你隨時,隨地的方便的創(chuàng)建,修改,分享各種圖表。圖表可以使消息變得更為簡練,幫助人們記住要點(diǎn),同時幫助人們跨越文化和技術(shù)障礙。 方便的在線畫圖和分享。 方便的在線畫圖和分享,拖拽靈活,強(qiáng)大的桌面軟件體驗,無需下載安裝 ,兼容FireFox,IE,Opera,Safari,能夠為您的圖導(dǎo)出PDF和PNG格式并且能夠迅速的復(fù)制到Word,Exce
19、l,Powerpoint中。強(qiáng)大的協(xié)同平臺(邀請他人編輯或查看您的圖,并且可以保存所有的修改版本)靈活的模版,能夠輕松畫出 流程圖,室內(nèi)布置圖,網(wǎng)絡(luò)圖,UML圖等多種圖形。</p><p> 2Gliffy Gliffy </p><p> Gliffy Gliffy是一款相對老牌且十分出色的在線繪圖工具,它涉足面之廣,能夠勝任包括統(tǒng)一建模序列圖、組織圖、室內(nèi)設(shè)計圖以及網(wǎng)絡(luò)拓?fù)鋱D在內(nèi)的
20、各種形式的圖形繪制工作。最近,官方低調(diào)發(fā)布了Gliffy2.0新版,較以往,該產(chǎn)品在用戶界面和用戶體驗上都有了很大程度的提高——在初體驗過程中,Gliffy 與桌面端的同類產(chǎn)品 Visio 相比,留給用戶的印象甚至已無太大的差別;與此同時,Gliffy2.0 還以插件的形式全面提升了對JIRA項目管理軟件和 Confluence 知識管理與協(xié)同軟件的支持</p><p> 3Sumopaint</p>
21、;<p> 一款功能強(qiáng)大、界面酷似Adobe Photoshop的在線圖片編輯利器于近日正式上線運(yùn)營!Sumopaint 是一款近日剛剛浮出水面、基于 Web 端開發(fā)的圖片編輯軟件,它提供了若干處理圖片的基本。功能:裁剪、翻轉(zhuǎn)、濾鏡、紅顏、曝光、蒙版、色調(diào)等等等等??梢赃@么說,你所能想到的一款輕量級圖片處理軟件所該有的功能,在 Sumopaint 中都能夠找到!</p><p><b>
22、 1.3 技術(shù)背景</b></p><p> 從理論上講,有多種技術(shù)方案可以實現(xiàn)在線作圖技術(shù),利用不同的實現(xiàn)技術(shù),其優(yōu)缺點(diǎn)也是不同的,目前的主流實現(xiàn)方法的特點(diǎn)闡述如下:</p><p> 1)在線操作WORD實現(xiàn)畫圖</p><p> (1)引用DLL程序集,添加Interop.Word和Interop. Microsoft.Office.cor
23、e引用,在代碼中也必須添加相應(yīng)的命名空間,操作WORD必須讓用戶有讀寫的權(quán)限,這些在Webconfig里面進(jìn)行了相關(guān)配置。</p><p> (2)系統(tǒng)自動生成所需操作的WORD文檔,WORD文檔內(nèi)包含用戶的姓名,用戶編輯WORD的日期。</p><p> (3)利用WORD強(qiáng)大的圖形編輯功能對所需的圖形進(jìn)行編輯,WORD文檔將先保存在本機(jī),用戶必須對其進(jìn)行上傳,用戶在進(jìn)行上傳時,用戶
24、名和日期也將一起上傳,教師要對試卷進(jìn)行評閱時,只需要打開所需評改的WORD文檔。</p><p> 優(yōu)點(diǎn):完全具有WORD圖形編輯器的所有功能。缺點(diǎn):并不是真正意義上的Web畫圖,而且操作比較繁瑣。</p><p> 2)Java Applet實現(xiàn)在線畫圖</p><p> Java Applet實現(xiàn)在線畫圖,首先必須編寫.java程序。</p>
25、<p> 程序的思想:當(dāng)鼠標(biāo)的一個鍵(左鍵或者右鍵)被按下并拖動時,產(chǎn)生一個鼠標(biāo)事件,相應(yīng)的方法mouse Drag被調(diào)用,在這個方法中,我們在當(dāng)前鼠標(biāo)所在點(diǎn)和前一個點(diǎn)中畫一條線,然后將當(dāng)前鼠標(biāo)所在點(diǎn)的位置保存在變量previous和previously中,以供下次使用。</p><p> 當(dāng)鼠標(biāo)按鍵被放開時,表示畫圖已經(jīng)結(jié)束,這時將previous和previously都設(shè)置無效值為-1。<
26、;/p><p> 然后,生成.class文件,生成.class文件過程如圖1所示。</p><p> 最后把Scribble. class類嵌入到網(wǎng)頁里面,即可以進(jìn)行畫圖了。</p><p> 而Java Applet實現(xiàn)在線畫圖的難點(diǎn)在圖形的保存,用鼠標(biāo)進(jìn)行繪畫的圖是記錄在類里面的,而不是生成網(wǎng)頁的htm里面。</p><p> 提出解
27、決方案:記錄點(diǎn)的坐標(biāo),如直線記錄兩個點(diǎn),曲線記錄三個點(diǎn),把坐標(biāo)上傳到服務(wù)器,需要察看時只需要根據(jù)這些點(diǎn)的坐標(biāo)重新生成一次圖形即可。</p><p> 優(yōu)點(diǎn):在線畫圖較容易實現(xiàn)。缺點(diǎn):保存實現(xiàn)困難。</p><p> 3)Flash實現(xiàn)在線畫圖</p><p> 首先,我們得選擇一幅圖片作為背景,然后把背景導(dǎo)入到舞臺。接著把它轉(zhuǎn)變成電影元件,并創(chuàng)建一個新的MC元
28、件,在第一幀處寫入相應(yīng)的動作操作。相同的思想,flash畫圖也是通過對鼠標(biāo)處理的相應(yīng)事件進(jìn)行實現(xiàn)的。</p><p> 而flash實現(xiàn)在線畫圖的難點(diǎn)也在保存,主要原因是受限于flash的Flash Player為保護(hù)最終用戶的安全而作的限制。</p><p> 提出解決方案:如果是保存本機(jī),用shared Object(本地共享對象)以O(shè)bject形式保存數(shù)據(jù);保存到服務(wù)器,用字符串
29、形式保存,保存時只要記錄點(diǎn)的坐標(biāo)和顏色等就可以了。</p><p> 優(yōu)點(diǎn):在線畫圖可以實現(xiàn)且界面較為美觀。缺點(diǎn):保存實現(xiàn)困難。</p><p> 4)VML實現(xiàn)在線畫圖</p><p> VML(Vector Markup Language)矢量可標(biāo)記語言。VML相當(dāng)于IE里面畫筆,能實現(xiàn)你想要的圖形,而其結(jié)合腳本,可以讓圖形產(chǎn)生動態(tài)的效果,可以任意放大縮小
30、而不損失圖形的質(zhì)量。VML是微軟1999年9月附帶IE5.0發(fā)布的,因此,VML智能支持IE5.0或以上IE版本。因而VML具有強(qiáng)大的畫圖功能。</p><p> VML實現(xiàn)在線畫圖 </p><p> (1)需要在HTML語言里面加上引用注意:因為這里沒有用到OFFICE的擴(kuò)展功能的話,所以忽略第二個schema,這里引用為<HTML xmlns:v>。同時我們需要在ST
31、YLE元素中注冊VML和Microsoft Office Extensions 。</p><p> (2)定義VML模版的時候,可以和HTML的CSS一樣理解,它是定義好的一種形狀,下次使用的時候直接聲明type屬性就可以了,在定義模版的同時也定義了V為VML的變量。</p><p> (3)定義線<v:Line></line>、圓形<v:Oval>
32、;</Oval>、矩形<v:rect></rect>、圓矩形<v:roundrect></roundrect>、而插入圖片、插入文字進(jìn)行了可視化編輯是定義在<span></span>里面。</p><p> (4)畫圖中的放大、縮小等操作是通過Shape來實現(xiàn)的。Shape是VML最基本的對象,利用它可以畫出所有你想要的圖形。在
33、VML中,使用的坐標(biāo)并不是Document的坐標(biāo),它有自己的坐標(biāo)系,這樣一來,動態(tài)改變它的坐標(biāo),就可以實現(xiàn)放大、縮小、旋轉(zhuǎn)等功能了。</p><p> (5)VML保存,我們把在網(wǎng)頁上畫的圖形直接保存成htm格式,然后上傳導(dǎo)入服務(wù)器即可。</p><p> 第2章 在線繪圖工具的理論基礎(chǔ)</p><p> 2.1 c#.net </p><
34、p> 2.1.1 C#.net簡介</p><p> C#是一個語言,.net是一個平臺,上面支持用C#或者VBdotNet寫代碼。另外,C#不但可以開發(fā)基于.net的應(yīng)用程序,也可以開發(fā)基于WinForm的程序,這就是區(qū)別。若是單純以概念來說,你可以把.net當(dāng)做一個工作平臺一般,它是一個開發(fā)環(huán)境的基底,提供你開發(fā)Windows、Web、Mobile、XML...等應(yīng)用程式一個共通的平臺,若是要了解深
35、一點(diǎn),則再去了解其運(yùn)作的相關(guān)機(jī)制那是有助于你利用它來開發(fā).C#和.NET主要是應(yīng)用在網(wǎng)際網(wǎng)路. </p><p><b> 2.1.2 C#</b></p><p> C#(C Sharp)是微軟(Microsoft)為.NET Framework量身訂做的程序語言,C#擁有C/C++的強(qiáng)大功能以及Visual Basic簡易使用的特性,是第一個組件導(dǎo)向(Co
36、mponent-oriented)的程序語言,和C++與Java一樣亦為對象導(dǎo)向(object-oriented)程序語言。</p><p> C sharp(又被簡稱為"C#")是微軟公司在二OOO年六月發(fā)布的一種新的編程語言,并定于在微軟職業(yè)開發(fā)者論壇(PDC)上登臺亮相.C#是微軟公司研究員Anders Hejlsberg的最新成果.C#看起來與Java有著驚人的相似;它包括了諸如單一
37、繼承,界面,與Java幾乎同樣的語法,和編譯成中間代碼再運(yùn)行的過程.但是C#與Java有著明顯的不同,它借鑒了Delphi的一個特點(diǎn),與COM(組件對象模型)是直接集成的,而且它是微軟公司.NET windows網(wǎng)絡(luò)框架的主角。</p><p> 微軟c#語言定義主要是從C和C++繼承而來的,而且語言中的許多元素也反映了這一點(diǎn)。C#在設(shè)計者從C++繼承的可選選項方面比Java要廣泛一些(比如說structs),
38、它還增加了自己新的特點(diǎn)(比方說源代碼版本定義).但它還太不成熟,不可能擠垮Java、C#還需要進(jìn)化成一種開發(fā)者能夠接受和采用的語言。</p><p> C#從Java繼承而來的特點(diǎn):</p><p> 在C#中類的申明與Java很相似.這是合理的因為經(jīng)驗告訴我們Java模型工作得很好.C#的關(guān)鍵字import已經(jīng)被替換成using,它起到了同樣的作用.一個類開始執(zhí)行的起點(diǎn)是靜態(tài)Main
39、()方法.下面的Hello World程序展示了程序基本結(jié)構(gòu)形式: </p><p> using System; </p><p> class Hello { </p><p> static void Main() { </p><p> Console.WriteLine("Hello,world&qu
40、ot;); </p><p> Console.ReadLine(); </p><p><b> } </b></p><p><b> } </b></p><p> 在這個例子中,System這個名字指向一個包括了基本C#實用類集合的命名空間(namespace).這個命名空
41、間包括了Console類,它在這個例子中被用來輸出一個字符串.類可以是抽象的和不可繼承的:一個被申明成abstract的類不能被實例化;它只能被用做一個基類.C#關(guān)鍵字lock就象Java關(guān)鍵字final,它申明一個類不是抽象的,但是它也不能被用做另一個類的基類.界面:就象在Java中一樣,一個界面是一組方法集合的抽象定義.當(dāng)一個類或結(jié)構(gòu)體實現(xiàn)一個界面的時候,它必須實現(xiàn)這個界面中定義的所有方法.一個單一的類可以實現(xiàn)幾個界面.也許以后會出
42、現(xiàn)一些微妙的差別,但是這個特點(diǎn)看起來與Java相比沒有變化.布爾運(yùn)算:條件表達(dá)式的結(jié)果是布爾數(shù)據(jù)類型,布爾數(shù)據(jù)類型是這種語言中獨(dú)立的一種數(shù)據(jù)類型.從布爾類型到其他類型沒有直接的轉(zhuǎn)換過程.布爾常量true和false是C#中的關(guān)鍵字.錯誤處理:如Java中那樣,通過拋出和捕捉異常對象來管理錯誤處理過程.內(nèi)存管理:由底層.NET框架進(jìn)行自動內(nèi)存垃圾回收.</p><p> C#從C和C++繼承的特點(diǎn)</p&g
43、t;<p> 編譯:程序直接編譯成標(biāo)準(zhǔn)的二進(jìn)制可執(zhí)行形式.如果前面的Hello World程序被保存成一個文本文件并被命名為Hello.cs,它將被編譯成命名Hello.exe的可執(zhí)行程序. 結(jié)構(gòu)體:一個C#的結(jié)構(gòu)體與C++的結(jié)構(gòu)體是相似的,因為它能夠包含數(shù)據(jù)聲明和方法.但是,不象C++,C#結(jié)構(gòu)體與類是不同的而且不支持繼承.但是,與Java相同的是,一個結(jié)構(gòu)體可以實現(xiàn)界面. 預(yù)編譯:C#中存在預(yù)編譯指令支持條件
44、編譯,警告,錯誤報告和編譯行控制.可用的預(yù)編譯指令有: </p><p><b> #define </b></p><p><b> #undef </b></p><p><b> #if </b></p><p><b> #elif
45、</b></p><p><b> #else </b></p><p><b> #endif </b></p><p> #warning </p><p><b> #error </b></p><p> #
46、line [] </p><p> 沒有了#include 偽指令.你無法再用#define 語句對符號賦值,所以就不存在源代碼替換的概念--這些符號只能用在#if和#elif偽指令里.在#line偽指令里的數(shù)字(和可選的名字)能夠修改行號還有#warning和#error輸出結(jié)果的文件名.</p><p><b> C#獨(dú)有的特點(diǎn)</b></p>
47、<p> C#最引人入勝的地方是它和Java的不同,而不是相似的地方.這一節(jié)(和這個系列第二部分的大部分地方)講述了C#實現(xiàn)的和Java不同的地方或者Java根本沒有的特點(diǎn).</p><p> 動態(tài)查閱:C# 4.0 新增dynami關(guān)鍵字,提供動態(tài)編程(dynamic programming),把既有的靜態(tài)對象標(biāo)記為動態(tài)對象,類似javascript, Python 或 Ruby。 <
48、/p><p> dynamic calc = GetCalculator(); </p><p> int sum = calc.Add(10, 20); </p><p><b> 具名參數(shù)與可選參數(shù)</b></p><p> public StreamReader OpenFile( </p&g
49、t;<p> string path, </p><p> int bufferSize =1024) </p><p> { ... } </p><p> 調(diào)用 OpenFile 時, 順序可以完全顛倒: </p><p> OpenFile(bufferSize:4096, path:&qu
50、ot;foo.txt");</p><p> 中間代碼:微軟在用戶選擇何時MSIL應(yīng)該編譯成機(jī)器碼的時候是留了很大的余地.微軟公司很小心的聲稱MSIL不是解釋性的,而是被編譯成了機(jī)器碼.它也明白許多--如果不是大多數(shù)的話--程序員認(rèn)為Java程序要不可避免的比C編寫的任何東西都要慢.而這種實現(xiàn)方式?jīng)Q定了基于MSIL的程序(指的是用C#,Visual Basic,"Managed C++&qu
51、ot;--C++的一個符合CLS的版本--等語言編寫的程序)將在性能上超過"解釋性的"Java代碼.當(dāng)然,這一點(diǎn)還需要得到事實證明,因為C#和其他生成MSIL的編譯器還沒有發(fā)布.但是Java JIT編譯器的普遍存在使得Java和C#在性能上相對相同.象"C#是編譯語言而Java是解釋性的,"之類的聲明只是商業(yè)技巧.Java的中間代碼和MSIL都是中間的匯編形式的語言,它們在運(yùn)行時或其它的時候被編譯
52、成機(jī)器代碼.</p><p> 命名空間中的申明:當(dāng)你創(chuàng)建一個程序的時候,你在一個命名空間里創(chuàng)建了一個或多個類.同在這個命名空間里(在類的外面)你還有可能聲明界面,枚舉類型和結(jié)構(gòu)體.必須使用using關(guān)鍵字來引用其他命名空間的內(nèi)容.</p><p><b> 基本的數(shù)據(jù)類型</b></p><p> C#擁有比C,C++或者Java更廣泛
53、的數(shù)據(jù)類型.這些類型是bool, byte, ubyte, short, ushort, int, uint, long, ulong, float, double,和decimal.象Java一樣,所有這些類型都有一個固定的大小.又象C和C++一樣,每個數(shù)據(jù)類型都有有符號和無符號兩種類型.與Java相同的是,一個字符變量包含的是一個16位的Unicode字符.C#新的數(shù)據(jù)類型是decimal數(shù)據(jù)類型,對于貨幣數(shù)據(jù),它能存放28位10進(jìn)
54、制數(shù)字.</p><p><b> 兩個基本類:</b></p><p> 一個名叫object的類是所有其他類的基類.而一個名叫string的類也象object一樣是這個語言的一部分.作為語言的一部分存在意味著編譯器有可能使用它--無論何時你在程序中寫入一句帶引號的字符串,編譯器會創(chuàng)建一個string對象來保存它.</p><p><
55、;b> 參數(shù)傳遞:</b></p><p> 方法可以被聲明接受可變數(shù)目的參數(shù).缺省的參數(shù)傳遞方法是對基本數(shù)據(jù)類型進(jìn)行值傳遞.ref關(guān)鍵字可以用來強(qiáng)迫一個變量通過引用傳遞,這使得一個變量可以接受一個返回值.out關(guān)鍵字也能聲明引用傳遞過程,與ref不同的地方是,它指明這個參數(shù)并不需要初始值.</p><p><b> 與COM的集成:</b>&
56、lt;/p><p> C#對Windows程序最大的賣點(diǎn)可能就是它與COM的無縫集成了,COM就是微軟的Win32組件技術(shù).實際上,最終有可能在任何.NET語言里編寫COM客戶和服務(wù)器端.C#編寫的類可以子類化一個已存在的COM組件;生成的類也能被作為一個COM組件使用,然后又能使用,比方說,JScript語言子類化它從而得到第三個COM組件.這種現(xiàn)象的結(jié)果是導(dǎo)致了一個運(yùn)行環(huán)境的產(chǎn)生,在這個環(huán)境里的組件是網(wǎng)絡(luò)服務(wù),
57、可用任何.NET語言子類化.</p><p><b> 索引下標(biāo):</b></p><p> 一個索引與屬性除了不使用屬性名來引用類成員而是用一個方括號中的數(shù)字來匿名引用(就象用數(shù)組下標(biāo)一樣)以外是相似的. </p><p> public class ListBox: Control { </p><p>
58、; private string[] items; </p><p> public string this[int index] { </p><p> get { return items[index]; </p><p><b> } </b></p><p><b> se
59、t { </b></p><p> items[index] = value; </p><p> Repaint(); </p><p> } } } </p><p> 可以用一個循環(huán)器來匿名引用字符串內(nèi)部數(shù)組成員,就象下面這樣: </p><p> ListBox
60、 listBox = ...; </p><p> listBox[0] = "hello"; </p><p> Console.WriteLine(listBox[0]);</p><p><b> 代理和反饋:</b></p><p> 一個代理對象包括了訪問一個特定對象的特定方
61、法所需的信息.只要把它當(dāng)成一個聰明的方法指針就行了.代理對象可以被移動到另一個地方,然后可以通過訪問它來對已存在的方法進(jìn)行類型安全的調(diào)用.一個反饋方法是代理的特例.event關(guān)鍵字用在將在事件發(fā)生的時候被當(dāng)成代理調(diào)用的方法聲明中.</p><p><b> 2.2 GDI+</b></p><p> 2.2.1 GDI+圖形簡介</p><p&
62、gt; GDI是Graphics Device Interface的縮寫,含義是圖形設(shè)備接口,它的主要任務(wù)是負(fù)責(zé)系統(tǒng)與繪圖程序之間的信息交換,處理所有Windows程序的圖形輸出。 </p><p> 在Windows操作系統(tǒng)下,絕大多數(shù)具備圖形界面的應(yīng)用程序都離不開GDI,我們利用GDI所提供的眾多函數(shù)就可以方便的在屏幕、打印機(jī)及其它輸出設(shè)備上輸出圖形,文本等操作。GDI的出現(xiàn)使程序員無需要關(guān)心硬件設(shè)備及設(shè)
63、備驅(qū)動,就可以將應(yīng)用程序的輸出轉(zhuǎn)化為硬件設(shè)備上的輸出,實現(xiàn)了程序開發(fā)者與硬件設(shè)備的隔離,大大方便了開發(fā)工作</p><p> GDI+是Windows XP中的一個子系統(tǒng),它主要負(fù)責(zé)在顯示屏幕和打印設(shè)備輸出有關(guān)信息,它是一組通過C++類實現(xiàn)的應(yīng)用程序編程接口。顧名思義,GDI+是以前版本GDI的繼承者,出于兼容性考慮,Windows XP仍然支持以前版本的GDI,但是在開發(fā)新應(yīng)用程序的時候,開發(fā)人員為了滿足圖形
64、輸出需要應(yīng)該使用GDI+,因為GDI+對以前的Windows版本中GDI進(jìn)行了優(yōu)化,并添加了許多新的功能。作為圖形設(shè)備接口的GDI+使得應(yīng)用程序開發(fā)人員在輸出屏幕和打印機(jī)信息的時候無需考慮具體顯示設(shè)備的細(xì)節(jié),他們只需調(diào)用GDI+庫輸出的類的一些方法即可完成圖形操作,真正的繪圖工作由這些方法交給特定的設(shè)備驅(qū)動程序來完成,GDI+使得圖形硬件和應(yīng)用程序相互隔離.從而使開發(fā)人員編寫設(shè)備無關(guān)的應(yīng)用程序變得非常容易。</p><
65、;p> 2.2.1 GDI+常用功能</p><p> GDI+主要提供了以下三類服務(wù):</p><p> (1) 二維矢量圖形:GDI+提供了存儲圖形基元自身信息的類(或結(jié)構(gòu)體)、存儲圖形基元繪制方式信息的類以及實際進(jìn)行繪制的類。</p><p> (2) 圖像處理:大多數(shù)圖片都難以劃定為直線和曲線的集合,無法使用二維矢量圖形方式進(jìn)行處理。因此,GD
66、I+為我們提供了Bitmap、Image等類,它們可用于顯示、操作和保存BMP、JPG、GIF等圖像格式。</p><p> (3) 文字顯示:GDI+支持使用各種字體、字號和樣式來顯示文本。</p><p> 我們要進(jìn)行圖形編程,就必須先講解Graphics類,同時我們還必須掌握Pen、Brush和Rectangle這幾種類。</p><p> GDI+比G
67、DI優(yōu)越主要表現(xiàn)在兩個方面:</p><p> 第(一)GDI+通過提供新功能(例如:漸變畫筆和alpha混合)擴(kuò)展了GDI的功能;</p><p> 第(二)修訂了編程模型,使圖形編程更加簡易靈活。</p><p> 2.2.2 GDI+新增功能</p><p> (1)漸變的畫刷(Gradient Brushes) GDI+允許用
68、戶創(chuàng)建一個沿路徑或直線漸變的畫刷,來填充外形(shapes),路徑(paths),區(qū)域(regions),漸變畫刷同樣也可以畫直線、曲線、路徑,當(dāng)你用一個線形畫刷填充一個外形(shapes)時,顏色就能夠沿外形逐漸變化。 </p><p> (2)基數(shù)樣條函數(shù)(Cardinal Splines)GDI+支持基數(shù)樣條函數(shù),而GDI不支持。基數(shù)樣條是一組單個曲線按照一定的順序連接而成的一條較大曲線。樣條由一系列
69、點(diǎn)指定,并通過每一個指定的點(diǎn)。由于基數(shù)樣條平滑地穿過組中的每一個點(diǎn)(不出現(xiàn)尖角),因而它比用直線連接創(chuàng)建的路徑更精確。下面是分別使用兩種方法創(chuàng)建的圖形,一個使用基數(shù)樣條,一個使用直線。 </p><p> (3)持久路徑對象(Persistent Path Objects)在GDI中,路徑屬于設(shè)備描述表(DC),畫完后路徑就會被破壞。在GDI+中,繪圖工作由Graphics對象來完成,你可以創(chuàng)建幾個與Gra
70、phics分開的路徑對象,繪圖操作時路徑對象不被破環(huán),這樣你就可以多次使用同一個路徑對象畫路徑了。 </p><p> (4)變形和矩陣對象(Transformations & Matrix Object)GDI+提供了矩陣對象,一個非常強(qiáng)大的工具,使得編寫圖形的旋轉(zhuǎn)、平移、縮放代碼變得非常容易。一個矩陣對象總是和一個圖形變換對相聯(lián)系起來,比方說,路徑對象(PATH)有一個Transform方法,它的一個參
71、數(shù)能夠接受矩陣對象的地址,每次路徑繪制時,它能夠根據(jù)變換矩陣?yán)L制。下面的圖形是一個圖形變換前后的例子,變換按照先縮放后旋轉(zhuǎn)完成。 </p><p> (5)可伸縮區(qū)域(Scalable Regions)GDI+ 在區(qū)域(regions)方面對GDI進(jìn)行了改進(jìn),在GDI中,Regions存儲在設(shè)備坐標(biāo)中,對Regions 唯一可進(jìn)行圖形變換的操作就是對區(qū)域進(jìn)行平移。而GDI+用世界坐標(biāo)存儲區(qū)域(Regions
72、),允許對區(qū)域進(jìn)行任何圖形變換(譬如如圖所示的縮放),圖形變換以變換矩陣存儲,下面例子是一個區(qū)域變換前后的例子(縮放、旋轉(zhuǎn)、平移) </p><p> (6)Alpha Blending(混合)你可能會注意到上面顯示的圖形,紅色未平移區(qū)域與變換后區(qū)域有一部分交叉區(qū)域,這一部分形成的夢幻效果就是由GDI+支持的Alpha Blending(混合)實現(xiàn)的,利用alpha融合,你可以指定填充顏色的透明度,透明顏色與背
73、景色相互融合,填充色越透明,背景色顯示越清晰,下圖所示的四個橢圓被填充了同樣的顏色,但由于擁有不同的透明度而呈現(xiàn)不同的顯示效果。 </p><p> ?。?)多種圖像格式支持. 圖像在圖形界面程序中占有舉足輕重的地位,GDI+除了支持BMP等GDI支持的圖形格式外,還支持JPEG(Joint Photographic Experts Group)、GIF(Graphics Interchange Format
74、)、PNG(Exchangeable Image File)、TIFF(Tag Image File Format)等圖像格式,你可以直接在程序中使用這些圖片文件,而無需考慮它們所用壓縮算法。 </p><p> ?。?)其它。GDI+還將支持其它技術(shù),譬如重新著色、顏色校正、元數(shù)據(jù)、圖形容器,也許這些功能我們會在將來的WindowsXP或者M(jìn)icrosoft VisualStudio。</p>
75、<p> 2.2 常用畫圖對象</p><p><b> 2.2.1Pen類</b></p><p> Pen用來繪制指定寬度和樣式的直線。使用DashStyle屬性繪制幾種虛線,可以使用各種填充樣式(包括純色和紋理)來填充Pen繪制的直線,填充模式取決于畫筆或用作填充對象的紋理。</p><p> 使用畫筆時,需要先實例化
76、一個畫筆對象,主要有以下幾種方法。</p><p> 用指定的顏色實例化一只畫筆的方法如下:</p><p> public Pen(Color);</p><p> 用指定的畫刷實例化一只畫筆的方法如下:</p><p> public Pen(Brush);</p><p> 用指定的畫刷和寬度實例化一只
77、畫筆的方法如下:</p><p> public Pen(Brush, float);</p><p> 用指定的顏色和寬度實例化一只畫筆的方法如下:</p><p> public Pen(Color, float);</p><p> 實例化畫筆的語句格式如下:</p><p> Pen pn=new P
78、en(Color.Blue);</p><p> 或者Pen pn=new Pen(Color.Blue,100);</p><p> Pen常用的屬性有以下幾個,如表1所示:</p><p> 表1 Pen常用屬性</p><p> 2.2.2 Color結(jié)構(gòu)</p><p> 在自然界中,顏色大都由透明度
79、(A)和三基色(R,G,B)所組成。在GDI+中,通過Color結(jié)構(gòu)封裝對顏色的定義,Color結(jié)構(gòu)中,除了提供(A,R,G,B)以外,還提供許多系統(tǒng)定義的顏色,如Pink(粉顏色),另外,還提供許多靜態(tài)成員,用于對顏色進(jìn)行操作。</p><p> Color結(jié)構(gòu)的基本屬性如表2所示。</p><p> 表2 顏色的基本屬性</p><p> Color結(jié)構(gòu)的
80、基本(靜態(tài))方法如表3所示</p><p> 表3 顏色的基本方法</p><p> Color結(jié)構(gòu)變量可以通過已有顏色構(gòu)造,也可以通過RGB建立,例如:</p><p> Color clr1 = Color.FromArgb(122,25,255);</p><p> Color clr2 = Color.FromKnowCol
81、or(KnowColor.Brown);//KnownColor為枚舉類型</p><p> Color clr3 = Color.FromName("SlateBlue");</p><p> 在圖像處理中一般需要獲取或設(shè)置像素的顏色值,獲取一幅圖像的某個像素顏色值的具體步驟如下:</p><p> ?。?)定義Bitmap</p&g
82、t;<p> Bitmap myBitmap = new Bitmap("c:\\MyImages\\TestImage.bmp");</p><p> ?。?)定義一個顏色變量把在指定位置所取得的像素值存入顏色變量中</p><p> Color c = new Color();</p><p> c = myBitmap.
83、GetPixel(10,10);//獲取此Bitmap中指定像素的顏色。</p><p> (3)將顏色值分解出單色分量值</p><p> int r,g,b;</p><p><b> r= c.R;</b></p><p><b> g=c.G;</b></p><
84、p><b> b=c.B; </b></p><p> 2.2.3 Font類</p><p> Font類定義特定文本格式,包括字體、字號和字形屬性。Font類的常用構(gòu)造函數(shù)是public Font(string 字體名,float 字號,F(xiàn)ontStyle 字形),其中字號和字體為可選項和public Font(string 字體名,float 字號
85、),其中“字體名”為Font的FontFamily的字符串表示形式。下面是定義一個Font對象的例子代碼:</p><p> FontFamily fontFamily = new FontFamily("Arial");</p><p> Font font = new Font(fontFamily,16,FontStyle.Regular,GraphicsUn
86、it.Pixel);</p><p> 字體常用屬性如表4所示。</p><p><b> 表4字體的常用屬性</b></p><p> 2.2.4 Brush類</p><p> Brush類是一個抽象的基類,因此它不能被實例化,我們總是用它的派生類進(jìn)行實例化一個畫刷對象,當(dāng)我們對圖形內(nèi)部進(jìn)行填充操作時就會用到
87、畫刷。</p><p> 2.2.5 Rectangle結(jié)構(gòu)</p><p> 存儲一組整數(shù),共四個,表示一個矩形的位置和大小。矩形結(jié)構(gòu)通常用來在窗體上畫矩形,除了利用它的構(gòu)造函數(shù)構(gòu)造矩形對象外,還可以使用Rectangle結(jié)構(gòu)的屬性成員,其屬性成員如表5所示。</p><p> 表5 Rectangle結(jié)構(gòu)屬性</p><p> R
88、etangle結(jié)構(gòu)的構(gòu)造函數(shù)有以下兩個:</p><p> //用指定的位置和大小初始化Rectangle類的新實例。</p><p> public Retangle(Point,Size);//Size結(jié)構(gòu)存儲一個有序整數(shù)對,通常為矩形的寬度和高度。</p><p><b> 和</b></p><p> p
89、ublic Rectangle(int,int,int,int);</p><p> 2.2.6 Point結(jié)構(gòu)</p><p> 用指定坐標(biāo)初始化Point類的新實例。這個結(jié)構(gòu)很像C++中的Point結(jié)構(gòu),它描述了一對有序的x,y兩個坐標(biāo)值,其構(gòu)造函數(shù)為:public Point(int x,int y);其中x為該點(diǎn)的水平位置;y為該點(diǎn)的水垂直位置。下面是構(gòu)造Point對象的例子代
90、碼:</p><p> Point pt1=new Point(30,30);</p><p> Point pt2=new Point(110,100);</p><p> 第3章 在線繪圖工具的軟件設(shè)計平臺</p><p> 微軟Visual Studio開發(fā)系統(tǒng)是一套開發(fā)工具,旨在幫助軟件開發(fā)者,無論他們是新手還是經(jīng)驗豐富的專業(yè)
91、人員,面對復(fù)雜的挑戰(zhàn),并建立創(chuàng)新的解決方案。每一天,軟件開發(fā)商突破難點(diǎn)問題,以創(chuàng)建軟件,使不同于他人的生活。Visual Studio的作用是改善發(fā)展的進(jìn)程,使工作實現(xiàn)這些突破,更容易和更滿意。</p><p> 3.1 Visual Studio發(fā)展歷程</p><p> Visual Studio97是最早的Visual Studio版本。包含有面向Windows開發(fā)使用的 Vis
92、ual Basic 5.0、Visual C++ 5.0,面向Java開發(fā)的Visual J++和面向數(shù)據(jù)庫開發(fā)的Visual FoxPro,還包含有創(chuàng)建DHTML(Dynamic HTML)所需要的 Visual InterDev。其中,Visual Basic和Visual FoxPro使用單獨(dú)的開發(fā)環(huán)境,其他的開發(fā)語言使用統(tǒng)一的開發(fā)環(huán)境。</p><p> 1998 年,微軟公司發(fā)布了Visual Stu
93、dio 6.0。所有開發(fā)語言的開發(fā)環(huán)境版本均升至6.0。這也是 Visual Basic最后一次發(fā)布,從下一個版本(7.0)開始,Microsoft Basic進(jìn)化成了一種新的面向?qū)ο蟮恼Z言:Microsoft Basic NET。由于微軟公司對于Sun 公司Java語言擴(kuò)充導(dǎo)致與Java虛擬機(jī)不兼容被Sun告上法庭,微軟在后續(xù)的Visual Studio中不再包括面向Java虛擬機(jī)的開發(fā)環(huán)境。</p><p>
94、 2002 年,隨著.NET口號的提出與Windows XP / Office XP的發(fā)布,微軟發(fā)布了Visual Studio .NET(內(nèi)部版本號為7.0)。在這個版本的Visual Studio中,微軟剝離了Visual FoxPro作為一個單獨(dú)的開發(fā)環(huán)境以Visual FoxPro 7.0單獨(dú)銷售,同時取消了Visual InterDev。與此同時,微軟引入了建立在.NET框架上(版本1.0)的托管代碼機(jī)制以及一門新的語言C#
95、(讀作C Sharp,意為C++++)。C#是一門建立在 C++和Java基礎(chǔ)上的現(xiàn)代語言,是編寫.NET框架的語言。.NET 的通用語言框架機(jī)制(Common Language Runtime, CLR),其目的是在同一個項目中支持不同的語言所開發(fā)的組件。所有 CLR 支持的代碼都會被解釋成為CLR 可執(zhí)行的機(jī)器代碼然后運(yùn)行。Visual Basic、Visual C++都被擴(kuò)展為支持托管代碼機(jī)制的開發(fā)環(huán)境,且Visual Basic
96、 .NET更是從Visual Basic脫胎換骨,徹底支持面向?qū)ο蟮木幊虣C(jī)制。而Visual J++也變?yōu)閂isual J#</p><p> 2003 年,微軟對Visual Studio 2002進(jìn)行了部分修訂,以Visual Studio 2003的名義發(fā)布(內(nèi)部版本號為 7.1)。Visio作為使用統(tǒng)一建模語言(UML)架構(gòu)應(yīng)用程序框架的程序被引入,同時被引入的還包括移動設(shè)備支持和企業(yè)模版。.NET 框
97、架也升級到了1.1。</p><p> 2005 年,微軟發(fā)布了Visual Studio 2005。.NET字眼從各種語言的名字中被抹去,但是這個版本的Visual Studio仍然還是面向.NET 框架的(版本2.0)。 這個版本的 Visual Studio 包含有眾多版本,分別面向不同的開發(fā)角色。同時還永久提供免費(fèi)的Visual Studio Express版本。 </p><
98、;p> 隨著即將發(fā)布的 Windows Vista和 Office 2007,Visual Studio 9也漸漸浮出水面。Visual Studio 9目前可以確定的是支持建立于DHTML基礎(chǔ)上的AJax技術(shù),這種微軟在Visual InterDev時代提出的基于異步的客戶端動態(tài)網(wǎng)頁技術(shù)在當(dāng)年并沒有像微軟預(yù)期中的那么流行起來,反而隨著GMail等應(yīng)用而東山再起,漸漸成為主流網(wǎng)絡(luò)應(yīng)用之一。同時Visual Studio 9會強(qiáng)化
99、對于數(shù)據(jù)庫的支持以及微軟新的基于工作流(Workflow)的編程模型。預(yù)計為了保持與Office系列的統(tǒng)一,Visual Studio 9 的名稱為Visual Studio 2007。 </p><p> 2007年11月,微軟發(fā)布了 Visual Studio 2008 英文版,2008年2月14日發(fā)布了簡體中文專業(yè)版。 </p><p> 2010年4月12微軟發(fā)布Vis
100、ual Studio 2010以及.NET Framework 4.0,并于2010年5月26發(fā)布了中文版。</p><p> 3.2 Visual Studio 2008版本特點(diǎn)</p><p> Visual Studio 2008 在三個方面為開發(fā)人員提供了關(guān)鍵改進(jìn): </p><p> 快速的應(yīng)用程序開發(fā) </p><p&g
101、t; 高效的團(tuán)隊協(xié)作 </p><p> 突破性的用戶體驗 </p><p> Visual Studio 2008 提供了高級開發(fā)工具、調(diào)試功能、數(shù)據(jù)庫功能和創(chuàng)新功能,幫助在各種平臺上快速創(chuàng)建當(dāng)前最先進(jìn)的應(yīng)用程序。 Visual Studio 2008 包括各種增強(qiáng)功能,例如可視化設(shè)計器(使用 .NET Framework 3.5 加速開發(fā))、對 Web 開發(fā)工具的大量
102、改進(jìn),以及能夠加速開發(fā)和處理所有類型數(shù)據(jù)的語言增強(qiáng)功能。Visual Studio 2008 為開發(fā)人員提供了所有相關(guān)的工具和框架支持,幫助創(chuàng)建引人注目的、令人印象深刻并支持 AJAX 的 Web 應(yīng)用程序。 開發(fā)人員能夠利用這些豐富的客戶端和服務(wù)器端框架輕松構(gòu)建以客戶為中心的 Web 應(yīng)用程序,這些應(yīng)用程序可以集成任何后端數(shù)據(jù)提供程序、在任何當(dāng)前瀏覽器內(nèi)運(yùn)行并完全訪問 ASP NET 應(yīng)用程序服務(wù)和 Microsoft 平臺。&l
103、t;/p><p><b> 快速的應(yīng)用程序開發(fā)</b></p><p> 為了幫助開發(fā)人員迅速創(chuàng)建先進(jìn)的軟件,Visual Studio 2008 提供了改進(jìn)的語言和數(shù)據(jù)功能,例如語言集成的查詢 (LINQ),各個編程人員可以利用這些功能更輕松地構(gòu)建解決方案以分析和處理信息。 Visual Studio 2008 還使開發(fā)人員能夠從同一開發(fā)環(huán)境內(nèi)創(chuàng)建面向多個 .N
104、ET Framework 版本的應(yīng)用程序。開發(fā)人員能夠構(gòu)建面向 .NET Framework 2.0、3.0 或 3.5 的應(yīng)用程序,意味他們可以在同一環(huán)境中支持各種各樣的項目。</p><p> 突破性的用戶體驗:Visual Studio 2008 為開發(fā)人員提供了在最新平臺上加速創(chuàng)建緊密聯(lián)系的應(yīng)用程序的新工具,這些平臺包括 Web、Windows Vista、Office 2007、SQL Server
105、2008 和 Windows Server 2008。對于 Web,ASP NET AJAX 及其他新技術(shù)使開發(fā)人員能夠迅速創(chuàng)建更高效、交互式更強(qiáng)和更個性化的新一代 Web 體驗。</p><p> 高效的團(tuán)隊協(xié)作:Visual Studio 2008 提供了幫助開發(fā)團(tuán)隊改進(jìn)協(xié)作的擴(kuò)展的和改進(jìn)的服務(wù)項目,包括幫助將數(shù)據(jù)庫專業(yè)人員和圖形設(shè)計人員加入到開發(fā)流程的工具。</p><p> 3
106、.3 Visual Studio.NET和C#</p><p> Visual Studio.NET為我們提供了一種編寫Windows應(yīng)用程序的良好環(huán)境。很早之前要編寫Windows應(yīng)用程序時需要用到C++,對于初學(xué)者來說不但難學(xué),而且在創(chuàng)建應(yīng)用Windows應(yīng)用程序時既復(fù)雜又費(fèi)時。</p><p> 隨著Visual Studio.NET和C#的推出變革了Windows的軟件開發(fā),不
107、僅如此對其他類型程序的開發(fā)也有獨(dú)到之處。</p><p> C#是惟一為.NET Framework而設(shè)計的語言,是移植到其他操作系統(tǒng)上的.NET版本中使用的主要語言,能使用.NET Framework代碼庫提供的每種功能,如果要使用語言如VB.NET盡可能類似其以前的語言,且仍遵循CLR,就不能完全支持.NET代碼庫的某些功能。</p><p> 3.4 NET Framework與
108、Visual Studio.NET的關(guān)系</p><p> NET Framework構(gòu)結(jié):不管在Visual Studio.NET IDE中或用記事本采用何種.NET開發(fā)語言,都必須安裝.NET Framework。這是因為它們都依賴于.NET Framework來編譯和執(zhí)行應(yīng)用程序。</p><p> .NET Framework主要由公共語言運(yùn)行時和.NET Framework類
109、庫組成,它們分別定義了數(shù)據(jù)類型和.NET下語言的互操作性,構(gòu)成了.NET Framework的基礎(chǔ)。</p><p> Visual Studio.NET應(yīng)用程序開發(fā)環(huán)境的核心就是.NET Framework的軟件組件。.NET Framework定義了語言之間互相操作的規(guī)則,以及如何把應(yīng)用程序編譯為可執(zhí)行代碼;同時,.NET Framework還負(fù)責(zé)任何Visual Studio.NET語言創(chuàng)建的應(yīng)用程序的執(zhí)
110、行,.NET Framework旨在實現(xiàn)下列:</p><p> 提供一個一致的面向?qū)ο蟮木幊汰h(huán)境,而無論對象代碼在本地存儲和執(zhí)行,還是在Internet上發(fā)布,或者在遠(yuǎn)程執(zhí)行。</p><p> 提供一個可提高代碼執(zhí)行安全性的環(huán)境。</p><p> 提供一個可消除腳本環(huán)境或解釋環(huán)境性能問題的代碼執(zhí)行環(huán)境</p><p> 使開發(fā)人
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 手寫繪圖板的設(shè)計與實現(xiàn)【畢業(yè)設(shè)計】
- 畢業(yè)設(shè)計---在線考試系統(tǒng)設(shè)計與開發(fā)
- 在線商店的研究與實現(xiàn)-畢業(yè)設(shè)計畢業(yè)設(shè)計(論文)開題報告
- 畢業(yè)設(shè)計----在線像冊的設(shè)計與實現(xiàn)
- 畢業(yè)設(shè)計----在線考試系統(tǒng)設(shè)計與實現(xiàn)
- 在線考試系統(tǒng)設(shè)計與實現(xiàn)畢業(yè)設(shè)計
- 基于arm的手寫繪圖板設(shè)計【畢業(yè)設(shè)計】
- 基于arm的手寫繪圖板設(shè)計【畢業(yè)設(shè)計】
- 畢業(yè)設(shè)計----漏洞掃描工具原理與實現(xiàn)
- 在線購物系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)設(shè)計
- 畢業(yè)設(shè)計---在線考試系統(tǒng)的設(shè)計與實現(xiàn)
- 畢業(yè)設(shè)計--在線考試系統(tǒng)的設(shè)計與實現(xiàn)
- 畢業(yè)設(shè)計---在線選課系統(tǒng)的設(shè)計與實現(xiàn)
- 在線書店系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)設(shè)計
- 在線判題系統(tǒng)設(shè)計與實現(xiàn)【畢業(yè)設(shè)計】
- 網(wǎng)絡(luò)聊天工具的設(shè)計與實現(xiàn)畢業(yè)設(shè)計
- 繪圖機(jī)畢業(yè)設(shè)計說明書
- 在線學(xué)習(xí)系統(tǒng)畢業(yè)設(shè)計
- 在線考試系統(tǒng)畢業(yè)設(shè)計
- 在線考試系統(tǒng)畢業(yè)設(shè)計
評論
0/150
提交評論