版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
WebService編程
------C#.NET老師:I94SelfE_mail:QQ:200762716第一章.NET和.NET框架本章要點:通用語言運行時〔CommonLanguageRuntime〕裝配集〔Assembiles〕應(yīng)用域通用類型系統(tǒng)元數(shù)據(jù)和自描述控件第一章.NET和.NET框架.NET簡介.NET的產(chǎn)品集合和特點.NET框架概述通用語言運行時〔CLR〕裝配集〔Assembiles〕應(yīng)用域通用類型系統(tǒng)元數(shù)據(jù)和自描述控件跨語言互用能力和平安機制第一章.NET和.NET框架.NET簡介開展背景XML
.NETBaseon
第一章.NET和.NET框架.NET簡介開展背景HailStormWindows.NETOffice.NETbCentral第一章.NET和.NET框架.NET簡介什么是.NETMicrosoft.NET代表了一個集合、一個軟件環(huán)境、一個可以作為平臺來支持下一代Internet的可編程結(jié)構(gòu)。關(guān)鍵點:開發(fā)環(huán)境〔軟件平臺〕、分布式、平臺〔硬件〕無關(guān)。優(yōu)勢:語言無關(guān)、與操作系統(tǒng)緊密結(jié)合、體系完備,易于使用。第一章.NET和.NET框架.NET的產(chǎn)品集合和特點.NET主要組成局部及其作用Windows.NET.NETFramework.NET企業(yè)效勞器模塊構(gòu)建效勞OrchestrationVisualStudio.NET第一章.NET和.NET框架.NET的產(chǎn)品集合和特點.NET的技術(shù)特征軟件變效勞基于XML的共同語言融合多種設(shè)備和平臺新一代的人機界面第一章.NET和.NET框架.NET框架概述.NET的技術(shù)特征.NET提供一個基于網(wǎng)絡(luò)的分布式的編程環(huán)境提供一個軟件配置和版本控制的代碼執(zhí)行環(huán)境提供一個代碼執(zhí)行環(huán)境,保證代碼平安執(zhí)行,包括那些由不確認和非完全確認的第三方提供的代碼提供一個與平臺無關(guān)的編程和執(zhí)行環(huán)境提供能夠整合多種編程語言的工業(yè)標準第一章.NET和.NET框架.NET框架概述VisualBasicVisualC#VisualC++VisualJ#…公共語言運行規(guī)范(CLS)ASP.NET
(WebForm&WebServices)WindowsFormADO.NET(Data&XML).NET框架類庫(.NETFrameworkClassLibrary)公共語言運行庫(CommonLanguageRuntime)第一章.NET和.NET框架.NET框架概述VB應(yīng)用程序VisualC#應(yīng)用程序VisualC++應(yīng)用程序.NET架構(gòu)代碼.NET框架類庫WindowsWebserviceADO.NETCLR源代碼編譯成MSIL代碼編程效勞JIT編譯器
生本錢機代碼數(shù)據(jù)類型第一章.NET和.NET框架.NET框架概述.NET框架類庫
.NET框架類庫是一個和CLR緊密結(jié)合的可重用類型集合。類庫是基于對象的、提供了受控代碼可以派生功能的類型集合。特別的,第三方控件可以和.NET框架的類輕易整合。第一章.NET和.NET框架.NET框架概述.NET框架類庫.NETFrameworkClassLibrary有的著作也稱之為“根本類庫BasicClassLibrary,簡稱“BCL”跨所有編程語言支持跨語言繼承和調(diào)試和工具集成良好命名空間.NET框架類庫由命名空間組成各種類型的集合相當于JAVA的Package第一章.NET和.NET框架.NET框架概述客戶端應(yīng)用的開發(fā)視窗程序的開發(fā)WEB上的ActiveX控制.NET整合上述所有所有客戶端的開發(fā)功能,建立了自己的一個單獨的,完整的開發(fā)環(huán)境。效勞器端開發(fā)效勞器端的應(yīng)用在受控世界里是通過Runtime主機實現(xiàn)的。非受控應(yīng)用調(diào)用Runtime可以使受控代碼控制效勞器行為。第一章.NET和.NET框架通用語言運行時〔CLR〕CLR的產(chǎn)生WindowsDNA有很多開發(fā)語言每種語言都有自己的運行庫是否有:“可以被多種語言共用”的通用環(huán)境有,這就是CLR!第一章.NET和.NET框架通用語言運行時〔CLR〕托管代碼與非托管代碼托管代碼〔ManagedCode〕以CLR為目標的代碼非托管代碼以“操作系統(tǒng)”為目標第一章.NET和.NET框架通用語言運行時〔CLR〕即時編譯微軟中間語言MicrosoftIntermediateLanguage,MSIL即時編譯Just-in-timeCompilation,JITCLR就相當于Java語言的虛擬機第一章.NET和.NET框架通用語言運行時〔CLR〕編譯和執(zhí)行MSIL源代碼語言編譯編譯在安裝或函數(shù)/方法第一次被調(diào)用時執(zhí)行即時編譯(JITCompiler)二進制代碼(NativeCode)中間代碼元數(shù)據(jù)〔Metadata〕第一章.NET和.NET框架通用語言運行時〔CLR〕CLR執(zhí)行模型VB源代碼CompilerC++C#CompilerCompilerAssemblyILCodeAssemblyILCodeAssemblyILCode操作系統(tǒng)效勞公共語言運行時即時編譯器JITCompiler二進制代碼管理代碼ManagedcodeUnmanagedComponent第一章.NET和.NET框架裝配集〔Assembiles〕概述裝配集是使用NET框架編程的根底局部,提供了以下功能:包含了通用語言運行時執(zhí)行的代碼〔一個裝配集只有一個入口〕形成平安邊界確定一個引用范圍邊界確定了個版本邊界形成了一個配置單元使并行執(zhí)行成為了可能第一章.NET和.NET框架裝配集〔Assembiles〕裝配集的優(yōu)點裝配集用來簡化應(yīng)用程序的配置和解決在基于控件的應(yīng)用中經(jīng)常出現(xiàn)的版本問題裝配集的內(nèi)容裝配集可以包含四個元素裝配集清淡,包含了裝配集元數(shù)據(jù)數(shù)據(jù)類型實現(xiàn)這鞋類型的中間語言代碼一個資源集合
只有裝配清單是必要的,但是對一個有意義的裝配集來說類型和資源集合也是必須的第一章.NET和.NET框架應(yīng)用域過去進程邊界用來隔離應(yīng)用程序在CLR中,應(yīng)用程序域提供給用程序之間的隔離以極小的性能損失進行代碼類型平安檢查來隔離應(yīng)用程序多個應(yīng)用程序域可并存于同一個應(yīng)用程序中能夠在不停止整個進程的情況下停止單個應(yīng)用程序在一個應(yīng)用程序中運行的代碼不能直接訪問其他應(yīng)用程序中的代碼或資源在一個應(yīng)用程序中的錯誤不會影響其他的應(yīng)用程序第一章.NET和.NET框架應(yīng)用域
應(yīng)用域和裝配集我們必須在應(yīng)用程序運行之前將裝配集裝入應(yīng)用域。一個應(yīng)用程序的運行可能導致許多裝配集裝入應(yīng)用域。默認情況下,通用語言運行時將包含了代碼引用的裝配集都裝入運行時。通過這種方法,裝配集的代碼和數(shù)據(jù)就會和其他使用它們的應(yīng)用程序隔離。第一章.NET和.NET框架應(yīng)用域應(yīng)用域和裝配集假設(shè)一個裝配集在進程中被多個應(yīng)用域使用,這樣可以采用中立域技術(shù)使該裝配集在多個應(yīng)用域之間共享。當決定是否把裝配集作為中立域裝入后,必須在提高系統(tǒng)性能與減少內(nèi)存使用之間進行平衡。第一章.NET和.NET框架應(yīng)用域應(yīng)用域和線程應(yīng)用域和線程之間不存在一對一的關(guān)系。許多線程可以在任何給定的時間在一個單獨的應(yīng)用域中執(zhí)行,一個線程也不一定要限定在一個應(yīng)用域中。也就是說,線城可以跨越應(yīng)用域邊界;并不是對每個應(yīng)用域都創(chuàng)立一個新的線城。第一章.NET和.NET框架通用類型系統(tǒng)概述通用類型系統(tǒng)支持兩種一般意義上的類型:〔說明:所有的類型都是從System.Object類派生出來的〕值類型:包含他們的數(shù)據(jù),值類型的實例也在堆棧中分配過在結(jié)構(gòu)中分配!值類型和建立,用戶定義或列舉。值類型的變量都有他們自己的數(shù)據(jù)拷貝,因此對一個變量的操作不會影響到其他變量引用類型:引用類型存儲一個引用在值的內(nèi)存地址中,在堆中分配!引用類型可以是自描述的類型,指針類型,接口類型。引用類型可能指向同一個對象,所以對一個變量的操作,也許會改變其他變量的值!第一章.NET和.NET框架通用類型系統(tǒng)以下代碼顯示了值類型和引用類型的區(qū)別------------------------------------------
usingSystem;
classClass1
{
publicintValue=0;
}
classTest
{
staticvoidMain()
{
intval1=0;
intval2=val1;
val2=123;
Class1ref1=newClass1();
Class1ref2=ref1;
ref2.Value=123;
Console.WriteLine("value:{0},{1}",val1,val2);
Console.WriteLine("ref:{0},{1}",ref1.Value,ref2.Value);
}
}
-------------------------------------------輸出結(jié)果是:
Value:0,123
Refs:123,123第一章.NET和.NET框架通用類型系統(tǒng)類型定義
類型定義包括:類型中的屬性的定義類型的可見性類型的名稱類型的基類類型實現(xiàn)的接口類型成員的定義第一章.NET和.NET框架通用類型系統(tǒng)值類型內(nèi)嵌的值類型
.NET框架定義了內(nèi)嵌的值類型如:
System.Int32,System.Boolean用戶定義的值類型
值類型可以有域,屬性,事件,還可以用靜態(tài)的和非靜態(tài)的方法,當被裝箱時,并且可以實現(xiàn)0個過多個接口,值類型是封閉的,其他類不可以從他派生,可以在值類型上定義虛擬方法,這些虛擬方法可以從裝箱或折箱的形式調(diào)用
下列代碼顯示了怎么樣唯一化一個復數(shù)構(gòu)造值類型
------------------------------------------
usingSystem;publicstructComplex
{
publicdoubler,i;
publicComplex(doubler,doublei)
{
this.r=r;
this.i=i;
}
publicComplexReciprocal
{
get
{
if(r==0&&i==0)
thrownewDivideByZeroException();
doublediv=r*r+i*i;
returnnewComplex(r/div,-i/div);
}
}
publicstaticexplicitoperatordouble(Complexa)
{
returna.r;
}
publicstaticimplicitoperatorComplex(doubler)
{
returnnewComplex(r,0);
}
publicstaticComplexoperator+(Complexa)
{
returna;
}
publicstaticComplexoperator-(Complexa)
{
returnnewComplex(-a.r,-a.i);
}
publicstaticComplexoperator+(Complexa,Complexb)
{
returnnewComplex(a.r+b.r,a.i+b.i);
}
publicstaticComplexoperator-(Complexa,Complexb)
{
returnnewComplex(a.r-b.r,a.i-b.i);
}
publicstaticComplexoperator*(Complexa,Complexb)
{
returnnewComplex(a.r*b.r-a.i*b.i,a.r*b.i+a.i*b.r);
}
publicstaticComplexoperator/(Complexa,Complexb)
{
returna*b.Reciprocal;
}
publicoverridestringToString()
{
returnString.Format("{0}+{1}i",r,i);
//this.r,this.i
howabout?
yes
}}publicclassValueTypeSample
{
publicstaticvoidMain()
{
Complexa=newComplex(0,1);
Complexb=newComplex(1,-2);
Console.WriteLine();
Console.WriteLine("a="+a);
Console.WriteLine("b="+b);
Console.WriteLine("a+b="+(a+b));
Console.WriteLine("a-b="+(a-b));
Console.WriteLine("a*b="+(a*b));
Console.WriteLine("a/b="+(a/b));
Console.WriteLine();
Console.WriteLine("(double)a="+(double)a);
Console.WriteLine("(Complex)5="+(Complex)5);
}}輸出結(jié)果是:
a=(0+1i)b=(0+-2i)a+b=(0+-1i)a-b=(0+3i)a*b=(2+0i)a/b=(-0.5+0i)(double)a=0(Complex)5=(5+0i)第一章.NET和.NET框架通用類型系統(tǒng)值類型枚舉是一種特殊類型的值類型,他是從System.Enum繼承的,一個枚舉有個名字,一個根本類型和一個域集!。根本類型必須是內(nèi)嵌的有符號或是無符號的整數(shù)類型〔如:Byte,Int32,UInt64)枚舉的一些限制不能定義自己的方法不能實現(xiàn)接口不能定義屬性和事件
下列代碼顯示了如何使用一小塊域和普通枚舉類型------------------------------------------
usingSystem;
usingSystem.Collections;
//
定義枚舉
publicenumSomeRootVegetables
{
HorseRadish,
Radish,
Turnip,
}
[Flags]
//whatthemean?
publicenumSeasons
{
None=0,
Summer=1,
Autumn=2,
Winter=4,
Spring=8,
All=Summer|Autumn|Winter|Spring,
//why?
}
publicclassEnumerationSample
{
publicstaticvoidMain()
{
HashtableAvailableIn=newHashtable();
AvailableIn[SomeRootVegetables.HorseRadish]=Seasons.All;
AvailableIn[SomeRootVegetables.Radish]=Seasons.Spring;
AvailableIn[SomeRootVegetables.Turnip]=Seasons.Spring|Seasons.Autumn;
Seasons[]seasons=newSeasons[]{
Seasons.Winter,Seasons.Spring,Seasons.Summer,Seasons.Autumn};
for(inti=0;i<seasons.Length;i++)
{
Console.WriteLine("\t\nThefollowingrootvegetablesareharvestedin"+seasons[i].ToString()+":");
foreach(DictionaryEntryeinAvailableIn)
{
if(((Seasons)e.Value&seasons[i])>0)
Console.WriteLine("\t"+((SomeRootVegetables)e.Key).ToString("G"));
}
}
}
}輸出結(jié)果是:
a=(0+1i)b=(0+-2i)a+b=(0+-1i)a-b=(0+3i)a*b=(2+0i)a/b=(-0.5+0i)(double)a=0(Complex)5=(5+0i)第一章.NET和.NET框架通用類型系統(tǒng)其他代表〔Delegate)類似C++函數(shù)指針接口可以有靜態(tài)成員,嵌套類型,抽象虛擬成員,屬性,事件。每一個實現(xiàn)了接口的類必須定義接口中申明的抽象成員接口有如下的限制:接口可以聲明任何種類,但是接口中的成員必須是PUBLIC的接口以及成員不能
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 股票策劃發(fā)行承銷合同書
- 2025-2030全球結(jié)構(gòu)健康監(jiān)測解決方案行業(yè)調(diào)研及趨勢分析報告
- 2025-2030全球電磁精密儀器行業(yè)調(diào)研及趨勢分析報告
- 2025年全球及中國便攜式扭矩測量儀行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025-2030全球液液式冷量分配單元(CDU)行業(yè)調(diào)研及趨勢分析報告
- 2025-2030全球云基礎(chǔ)設(shè)施解決方案行業(yè)調(diào)研及趨勢分析報告
- 二零二五年度電商內(nèi)容營銷與推廣服務(wù)協(xié)議8篇
- 婚紗攝影居間服務(wù)協(xié)議合同
- 紅酒莊園股權(quán)轉(zhuǎn)讓居間合同
- 主題KTV裝修設(shè)計合同
- 人員密集場所消防安全管理培訓
- 《聚焦客戶創(chuàng)造價值》課件
- PTW-UNIDOS-E-放射劑量儀中文說明書
- JCT587-2012 玻璃纖維纏繞增強熱固性樹脂耐腐蝕立式貯罐
- 保險學(第五版)課件全套 魏華林 第0-18章 緒論、風險與保險- 保險市場監(jiān)管、附章:社會保險
- 典范英語2b課文電子書
- 員工信息登記表(標準版)
- 17~18世紀意大利歌劇探析
- 春節(jié)工地停工復工計劃安排( 共10篇)
- 何以中國:公元前2000年的中原圖景
- 新教材人教版高中物理選擇性必修第二冊全冊各章節(jié)課時練習題及章末測驗含答案解析(安培力洛倫茲力電磁感應(yīng)交變電流等)
評論
0/150
提交評論