Framework各版本區(qū)別.ppt_第1頁
Framework各版本區(qū)別.ppt_第2頁
Framework各版本區(qū)別.ppt_第3頁
Framework各版本區(qū)別.ppt_第4頁
Framework各版本區(qū)別.ppt_第5頁
已閱讀5頁,還剩58頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

Lets Talk About .NET,歐美事業(yè)部 曹盛,目錄,1.反射 2.委托 3.事件 4. .net各版本之間的區(qū)別 4.1 .NET Framework 1.1 4.2 .NET Framework 2.0 4.3 .NET Framework 3.0 4.4 .NET Framework 3.5 4.5 .NET Framework 3.5 SP1 4.6 .NET Framework 4.0,反射(Reflection)是.NET中的重要機(jī)制,通過放射,可以在運(yùn)行時(shí)獲得.NET中每一個(gè)類型的成員,包括方法、屬性、事件,以及構(gòu)造函數(shù)等。 應(yīng)用程序結(jié)構(gòu)分為應(yīng)用程序域程序集模塊類型成員幾個(gè)層次,公共語言運(yùn)行庫加載器管理應(yīng)用程序域,這種管理包括將每個(gè)程序集加載到相應(yīng)的應(yīng)用程序域以及控制每個(gè)程序集中類型層次結(jié)構(gòu)的內(nèi)存布局。 程序集包含模塊,而模塊包含類型,類型又包含成員,反射則提供了封裝程序集、模塊和類型的對(duì)象。,反射獲取和加載程序集System.Reflection.Assembly,使用反射來獲取程序集常用的有以下幾種方法: 獲取AppDomain 中包含的所有程序集 調(diào)用AppDomain 類的屬性currentDomain 的GetAssemblies 方法將返回一個(gè)由System.Reflection.Assembly元素組成的數(shù)組,示例如下: foreach (Assembly assem in Appdomain.currentDomain.GetAssemblies() 加載單個(gè)程序集,System.Reflecton.Assembly 類型為加載一個(gè)程序集,提供了以下方法: Load方法:例如: Assembly aAssembly= System.Reflecton.Assembly.Load(“PetShop.SQLServerDAL“); LoadFrom 方法:例如:Assembly a = System.Reflecton.Assembly.LoadFrom( “ReflectSample.exe“);,反射獲取類型System.Type,使用反射來獲取類型常用的有以下幾種方法: 使用typeof運(yùn)算符獲取類型的 System.Type 對(duì)象, 如: System.Type type = typeof(int); System.Type type = typeof(HelloWorld); / HelloWorld是自定義的類名 通過類型實(shí)例,使用方法 GetType獲取類型的 System.Type 對(duì)象,如: int intA = 10; System.Type type = intA.GetType(); 獲取程序集所包含的所有類型 使用程序集實(shí)例的GetTypes方法可以獲取程序集所包含的所有類型,如: Assembly a = Assembly.LoadFrom (“ReflectSample.exe“); Type mytypes = a.GetTypes( ); /從程序集獲取所有數(shù)據(jù)類型,反射創(chuàng)建類型的成員,以下介紹幾個(gè)用于類型成員的類: ConstructorInfo類用于類型的構(gòu)造函數(shù),使用ConstructorInfo可以獲取以下信息:構(gòu)造函數(shù)的名稱、參數(shù)、訪問修飾符和實(shí)現(xiàn)詳細(xì)信息等。使用Type的GetConstructors或GetConstructor方法來創(chuàng)建特定的構(gòu)造函數(shù)ConstructorInfo對(duì)象。 ConstructorInfo p = typeof(t).GetConstructors(); for (int i=0;ip.Length;i+) Console.WriteLine(pi.IsStatic); MethodInfo類用于類型的方法成員,使用MethodInfo獲取以下信息:方法的名稱、返回類型、參數(shù)、訪問修飾符和實(shí)現(xiàn)詳細(xì)信息等。使用Type的GetMethods或GetMethod方法來獲取MethodInfo對(duì)象。,反射創(chuàng)建類型的成員,使用 FieldInfo 獲取以下信息:字段的名稱、訪問修飾符和實(shí)現(xiàn)詳細(xì)信息等;并獲取或設(shè)置字段值。使用Type的GetField 等方法來獲取FieldInfo對(duì)象。 使用 EventInfo獲取以下信息:事件的名稱、事件處理程序數(shù)據(jù)類型、自定義屬性、聲明類型和反射類型等;并添加或移除事件處理程序。使用Type的GetEvent等方法來獲取EventInfo對(duì)象。 使用 PropertyInfo 獲取以下信息:屬性的名稱、數(shù)據(jù)類型、聲明類型、反射類型和只讀或可寫狀態(tài)等;并獲取或設(shè)置屬性值。使用Type的GetProperty等方法來獲取PropertyInfo對(duì)象。,反射創(chuàng)建類型的實(shí)例,通過反射創(chuàng)建類型的實(shí)例常用的有以下幾種方法: 使用System.Activator的CreateInstance方法創(chuàng)建類型的實(shí)例。例如: Object obj = Activator.CreateInstance(type); /type是一個(gè)類型對(duì)象 Assembly對(duì)象的CreateInstance實(shí)例方法,如: PetShop.IDAL.Iproduct myProduct= (PetShop.IDAL.IProduct) aAssembly.CreateInstance(“PetShop.SQLServerDAL.Product“); 可以將反射程序集與創(chuàng)建類型的實(shí)例合并如下,這是常用的方法,代碼如下: PetShop.IDAL.Iproduct myProduct= (PetShop.IDAL.IProduct) Assembly.Load( “PetShop.SQLServerDAL“).CreateInstance(“PetShop.SQLServerDAL.Product“);,反射調(diào)用類型實(shí)例的方法,使用反射調(diào)用類型實(shí)例的方法有以下幾種方式: 使用System.type的對(duì)象 t 調(diào)用 InvokeMember方法來調(diào)用一個(gè)類型的實(shí)例方法。如: String s = (String) t.InvokeMember(“ToString“, BindingFlags.DeclaredOnly |BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.InvokeMethod, null, obj, null); 使用System.reflection.MethodInfo的Invoke方法來調(diào)用一個(gè)類型的實(shí)例方法。如: MethodInfo msayhello = ht.GetMethod(“SayHello“); /獲取SayHello方法 msayhello.Invoke(obj,null);/調(diào)用HelloWorld實(shí)例obj 的SayHello方法,委托,委托 委托技術(shù)是.NET引入的一種重要技術(shù),使用委托可以實(shí)現(xiàn)對(duì)象行為的動(dòng)態(tài)綁定,從而提高設(shè)計(jì)的靈活性。 .NET運(yùn)行庫支持稱為“委托”的引用類型,其作用類似于C+中的函數(shù)指針。 所有委托都從System.Delegate繼承而來并且有一個(gè)調(diào)用列表,這是在調(diào)用委托時(shí)所執(zhí)行方法的一個(gè)鏈接列表。 可以使用的委托Cimbine及Remove方法在其調(diào)用列表中添加和移除方法。若要調(diào)用委托,可使用Invoke方法,或者使用BeginInvoke和EndInvoke方法異步調(diào)用委托。委托類的實(shí)現(xiàn)由運(yùn)行庫提供,而不由用戶代碼提供。,委托,委托適用于那種在某些語言中需要用函數(shù)指針來解決的情況,但是與函數(shù)指針不同,它是面向?qū)ο蠛皖愋桶踩摹?委托聲明定義一個(gè)類,它是從System.Delegate類派生的類。委托實(shí)例封裝了一個(gè)調(diào)用列表,其中列出了一個(gè)或多個(gè)方法,每個(gè)方法稱為一個(gè)可調(diào)用實(shí)體。 委托實(shí)例的一個(gè)有用的屬性是它既不知道,也不關(guān)心其封裝方法所屬類的詳細(xì)信息,對(duì)它來說最重要的是這些方法與該委托的類型兼容。 定義和使用委托分為聲明、實(shí)例化和調(diào)用3個(gè)步驟。,.NET委托聲明及特點(diǎn),1) 通用事件處理者委托 delegate void EventHandler (object sender, EventArgs e) 2) 計(jì)算1k+2k+nk的委托 delegate int PowerSum(int n) 3) 特點(diǎn):不需要定義成員 4) 基類:MulticastDelegate、Delegate,委托應(yīng)用:函數(shù)回調(diào)(Callback),定時(shí)器類型 System.Threading.Timer() System.Threading.TimerCallback(object obj) / 委托 定時(shí)回調(diào) TimerCallback cb = new TimeCallback(TimeClick); Timer timer = new Timer(cb, null, 0, 500); void TimeClick(object state) Console.WriteLine(“time click”); ,匿名委托、委托推斷與泛型委托,匿名委托:在委托()中內(nèi)聯(lián)方式創(chuàng)建方法 TimerCallBack cb = new TimerCallback ( delegate(object state) Console.WriteLine(“time click”); ); 委托推斷:不創(chuàng)建委托對(duì)象,直接調(diào)用函數(shù) 泛型委托:委托是類,同樣可以有泛型,事件,事件 事件是類在發(fā)生其關(guān)注的事情時(shí)用來提供通知的一種方式。 事件具有以下特點(diǎn): 事件是用來通知對(duì)象需要執(zhí)行某種操作的方式。 事件通常用在圖形用戶界面中。 事件通常使用委托事件處理程序進(jìn)行聲明。 事件可以調(diào)用匿名方法來替代委托。,使用事件,使用事件步驟是:聲明事件委托類型定義、引發(fā)事件類定義和接受事件類訂閱事件。 聲明事件委托類型 事件和方法一樣具有簽名,簽名包括名稱和參數(shù)列表。事件的簽名通過委托類型來定義,因此首先為事件聲明一個(gè)委托,如: public delegate void ChangedEventHandler(object sender, EventArgs e); 在事件發(fā)送類中添加事件,需要使用event關(guān)鍵字,并提供委托類型和事件名稱。例如: public event ChangedEventHandler Changed;,使用事件,引發(fā)事件類定義 若要引發(fā)事件,類可以調(diào)用委托,并傳遞所有與事件有關(guān)的參數(shù)。然后,委托調(diào)用已添加到該事件的所有處理程序。例如下面代碼中:Changed(this, e);,使用事件,public class ListWithChangedEvent : ArrayList/一個(gè)每次列表更改時(shí)發(fā)送通知的類 / 事件,每當(dāng)列表元素更改時(shí),客戶端可利用該事件獲得通知。 public event ChangedEventHandler Changed; protected virtual void OnChanged(EventArgs e) /每當(dāng)列表更改時(shí)調(diào)用Changed事件 if (Changed != null) /確保該事件不為空 Changed(this, e); /調(diào)用Changed事件 / 重寫可更改列表的Add方法;在每個(gè)重寫后調(diào)用事件 public override int Add(object value) int i = base.Add(value); /調(diào)用基類ArrayList的Add方法 OnChanged(EventArgs.Empty); /觸發(fā)Changed事件 return i; ,訂閱事件,class EventListener private ListWithChangedEvent List; public EventListener(ListWithChangedEvent list) List = list; / 將“ListChanged”添加到“List”中的 Changed 事件。 List.Changed += new ChangedEventHandler(ListChanged); / 每當(dāng)列表更改時(shí)就會(huì)進(jìn)行以下調(diào)用。 private void ListChanged(object sender, EventArgs e) Console.WriteLine(“事件觸發(fā)“); public void Detach() / 分離事件并刪除列表 List.Changed -= new ChangedEventHandler(ListChanged); List = null; ,使用事件,在類Test主函數(shù)Main()中創(chuàng)建引發(fā)事件類實(shí)例和接受事件類實(shí)例,代碼如下: class Test / 測(cè)試 ListWithChangedEvent 類。 public static void Main() / 創(chuàng)建新列表,引發(fā)事件類實(shí)例。 ListWithChangedEvent list = new ListWithChangedEvent(); / 創(chuàng)建一個(gè)類,用于偵聽列表的更改事件。 EventListener listener = new EventListener(list); list.Add(“item 1“);/ 在列表中添加項(xiàng)。觸發(fā)事件顯示“事件觸發(fā)“ listener.Detach();/ 分離事件,之后不再處理事件. list.Add(“item 2“);/ 在列表中添加項(xiàng)。不顯示“事件觸發(fā)“ ,.net各版本之間的區(qū)別,1.0 1.1 安全方面的升級(jí); 自帶對(duì)ODBC Oracle的支持; 支持Ipv6 1.1 2.0 非.net應(yīng)用程序可管理.net應(yīng)用實(shí)例 大量API升級(jí) 2.0 3.0 WPF WCF(SOA支持的安全的WebService框架) WF CardSpace(SSO),.net各版本之間的區(qū)別 II,3.0 3.5 添加LINQ支持(用c#或者VB使用相同語法查詢DB/XML) 利用ASP.net Ajax創(chuàng)建更豐富的web交互 用于生成WCF服務(wù)的全新Web協(xié)議支持(Ajax json etc.) 類庫中升級(jí)新類 3.5 3.5SP1 (重要升級(jí)) ASP.NET動(dòng)態(tài)數(shù)據(jù)和Ajax附加功能 對(duì)SQL Server 2008的數(shù)據(jù)提供程序支持 改進(jìn)WPF性能 改進(jìn)WCF相互操作性支持 4.0主要是增加了并行開發(fā)的支持,提供了獨(dú)立安全的企業(yè)開發(fā)平臺(tái),版本關(guān)系圖,版本解析,根據(jù)版本的發(fā)布情況可得: .NET Framework 3.5 = 3.0 + 3.0sp1 .NET Framework 3.0 = 2.0 + 2.0sp1 + WPF + WCF + WF .NET Framework 1.0 1.1 2.0 彼此完全獨(dú)立 對(duì)于其中的任何一個(gè)版本來說,無論是否安裝其他版本,自己都可以獨(dú)立的存在 兼容性 具有高度的向后兼容性支持 只有1.1版本向后先前兼容,2.0版本不向前兼容 對(duì)于提高安全性、功能性的更改也可能會(huì)引發(fā)兼容問題,.NET Framework 1.1版本,1、ASP.NET移動(dòng)控件 2、ADO.NET的改動(dòng) 添加System.Data.Odbc命名空間 新增System.Data.OracleClient命名空間供Oracle使用 DataReader對(duì)象公開HasRows屬性,判斷是否有返回行 Connection對(duì)象具有EnlistDistributedTransaction,可以在分布式事務(wù)中啟動(dòng)手動(dòng)登記。 3、并發(fā)執(zhí)行 .NET Framework 1.1版本支持并行執(zhí)行。 4、.NET Framework安全性的改動(dòng) 5、.NET Framework中的IPv6支持,.NET Framework 2.0版本,- 公共語言運(yùn)行庫 (CLR)。 - 對(duì)泛型類型和方法的支持。 - 基類庫 - ADO.NET - ASP.NET - windows 窗體 - Web 服務(wù) - C#、Visual Basic、C+ 和 J# 的編譯器 - 64位平臺(tái)支持 - 訪問控制列表支持 - 緩存的編程空間 - FTP支持,CLR,CLR(公共語言運(yùn)行庫)和java虛擬機(jī)一樣也是一個(gè)運(yùn)行時(shí)環(huán)境,它負(fù)責(zé)資源管理(內(nèi)存分配和垃圾收集),并保證應(yīng)用和底層操作系統(tǒng)之間必要的分離。 CLR將監(jiān)視形形色色的常見編程錯(cuò)誤,許多年來這些錯(cuò)誤一直是軟件故障的主要根源,其中包括:訪問數(shù)組元素越界,訪問未分配的內(nèi)存空間,由于數(shù)據(jù)體積過大而導(dǎo)致的內(nèi)存溢出,等等。,對(duì)泛型類型和方法的支持,通過參數(shù)化類型來實(shí)現(xiàn)在同一份代碼上操作多種數(shù)據(jù)類型。泛型編程是一種編程范式,它利用“參數(shù)化類型”將類型抽象化,從而實(shí)現(xiàn)更為靈活的復(fù)用。 類型參數(shù)使得類和方法將一個(gè)或多個(gè)類型的指定推遲到聲明并實(shí)例化該類或方法的時(shí)候。,泛型,class MyStack private T store; private int size; public MyStack() store = new T10; size = 0; public void Push(T x) storesize+ = x; public T Pop() return store-size; class Test static public void Main() MyStack x = new MyStack(); x.Push(17); ,泛型概述,泛型的主要特點(diǎn): 使用泛型類型可以最大限度地重用代碼、保護(hù)類型的安全以及提高性能。 泛型最常見的用途是創(chuàng)建集合類。 .NET框架類庫的System.Collections.Generic 命名空間包含新的泛型集合類如List 泛型類。 可以創(chuàng)建自己的泛型接口、泛型類、泛型方法、泛型事件和泛型委托。 關(guān)于泛型數(shù)據(jù)類型中使用的類型的信息可在運(yùn)行時(shí)通過反射獲取。,基類庫,BCL(基類庫)代表了.NET框架的核心。不管人們開發(fā)何種應(yīng)用程序,BCL總是作為構(gòu)建其他所有功能的起點(diǎn)。核心基類庫的作用是完成框架的通用性開發(fā)而必須的基礎(chǔ)類和常用工具類等,包含有:Think.Core 核心類庫包;Think.Db 數(shù)據(jù)庫類庫包;Think.Exception 異常處理類庫包;Think.Template 內(nèi)置模板引擎類庫包;Think.Util 系統(tǒng)工具類庫包。,ADO.NET,ADO.NET是一組用于和數(shù)據(jù)源進(jìn)行交互的面向?qū)ο箢悗臁DO.NET允許和不同類型的數(shù)據(jù)源以及數(shù)據(jù)庫進(jìn)行交互。 在ASP.NET應(yīng)用程序中可以使用ADO.NET來連接到這些數(shù)據(jù)源,并實(shí)現(xiàn)數(shù)據(jù)的檢索、添加、更新和刪除。,ADO.NET 對(duì)象模型,ADO.NET 對(duì)象模型,.NET Framework數(shù)據(jù)提供程序的核心對(duì)象,DataSet,使用 ADO.NET 訪問數(shù)據(jù),DataSet對(duì)象模型,DataSet對(duì)象是支持ADO.NET的斷開式、分布式數(shù)據(jù)方案的核心對(duì)象。它可以用于多個(gè)不同的數(shù)據(jù)源,可以用于XML數(shù)據(jù),也可以用于管理應(yīng)用程序本地的數(shù)據(jù)。DataSet表示包括相關(guān)表、約束和表間關(guān)系在內(nèi)的整個(gè)數(shù)據(jù)集。下圖描述了DataSet對(duì)象模型。,Connection對(duì)象概述,在ADO.NET中,使用以下Connection對(duì)象來創(chuàng)建和管理數(shù)據(jù)庫連接。 SqlConnection:用于管理與SQL Server 7.0版或更高版本的連接。 OleDbConnection:用于管理與可通過OLE DB訪問的任何數(shù)據(jù)存儲(chǔ)區(qū)的連接。 OdbcConnection:用于管理與通過使用連接字符串或ODBC數(shù)據(jù)源名稱(DSN)創(chuàng)建的數(shù)據(jù)源的連接。 OracleConnection:用于管理與Oracle數(shù)據(jù)庫的連接。 接Access數(shù)據(jù)庫: OleDbConnection objConnection=new OleDbConnection(strConnection); 連接SQL Server數(shù)據(jù)庫: SqlConnection objConnection=new SqlConnection(strConnection); 其中參數(shù)cnectionString給出用于打開數(shù)據(jù)庫的連接字符串。若未指定該參數(shù),則必須首先設(shè)置Connection對(duì)象的ConnectionString屬性,然后才能打開數(shù)據(jù)連接。,Command對(duì)象概述,Command類的構(gòu)造函數(shù): SqlCommand myCommand = new SqlCommand ( cmdText, conn ) myOleDbCommand myCommand = new OleDbCommand( cmdText, conn ) 其中參數(shù)cmdText給出查詢的文本。conn指定一個(gè)Connection對(duì)象,表示與指定數(shù)據(jù)庫的連接。 Command對(duì)象的常用屬性 CommandText CommandTimeout CommandType Connection Parameters Transaction UpdatedRowSource Command對(duì)象的常用方法 Cancel() CreateParameter() ExecuteReader() ExecuteScalar() Prepare() ResetCommandTimeout() ExecuteNonQuery 在Visual Studio .NET中,可以使用Command控件來創(chuàng)建命令對(duì)象,使用DataReader對(duì)象讀取數(shù)據(jù),創(chuàng)建DataReader對(duì)象 SqlDataReader reader = cmd.ExecuteReader(); OleDbDataReader reader=cmd.ExecuteReader(); DataReader對(duì)象的常用屬性 FieldCount HasRows IsClosed Item(index, name) RecordsAffected DataReader對(duì)象的常用方法 Close() GetBoolean( ordinal ) GetDataTypeName( index ) GetFieldType( index ) GetName( index ) GetOrdinal( name ) GetSchemaTable() GetValue( ordinal ) GetValues( values ) IsDBNull(ordinal) NextResult() Read(),DataAdapter 對(duì)象模型,使用DataAdapter對(duì)象訪問數(shù)據(jù),DataAdapter類的構(gòu)造函數(shù) SqlDataAdapter sda = new SqlDataAdapter() OleDbDataAdapter thisAdapter=new OleDbDataAdapter( selectCommandText, _ selectConnection); DataAdapter對(duì)象的主要屬性 DeleteCommand InsertCommand SelectCommand UpdateCommand DataAdapter對(duì)象的常用方法 Dispose() Fill( dataSet, srcTable ) DataAdapter的主要事件 FillError RowUpdated RowUpdating,ASP.NET,ASP 是一項(xiàng)微軟公司的技術(shù),是一種使嵌入網(wǎng)頁中的腳本可由因特網(wǎng)服務(wù)器執(zhí)行的服務(wù)器端腳本技術(shù)。 通用語言的基本庫,消息機(jī)制,數(shù)據(jù)接口的處理都能無縫的整合到ASP.net的Web應(yīng)用中。 ASP.NET 是一個(gè)已編譯的、基于 .NET 的環(huán)境,把基于通用語言的程序在服務(wù)器上運(yùn)行。將程序在服務(wù)器端首次運(yùn)行時(shí)進(jìn)行編譯,且可以用任何與 .NET 兼容的語言(包括 VB.NET、C# 和 JScript .NET.)創(chuàng)作應(yīng)用程序。 ASP.NET 可以無縫地與 WYSIWYG HTML 編譯器和其他編程工具一起工作。這不僅使得 Web 開發(fā)更加方便,而且還能提供這些工具必須提供的所有優(yōu)點(diǎn)。,windows 窗體,簡(jiǎn)單來說:winforms 和 的腳本都是基與c# winforms是做客戶端軟件, 是基與網(wǎng)絡(luò)開發(fā)的 Visual C#是微軟公司.Net FrameWork框架中的一個(gè)重要組成部分,也是微軟公司極力推薦的新一代程序開發(fā)語言。 .Net 為開發(fā)WinForm的應(yīng)用程序提供了豐富的Class Library(類庫)。,創(chuàng)建 WinForms應(yīng)用程序,基礎(chǔ)核心命名空間,提供了大量繪圖工具的訪問權(quán)限,ArrayList、BitArray、Hashtable、Stack、 StringCollection 和 StringTable 類,using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace WindowsApplication3 public partial class Form1 : Form public Form1() InitializeComponent(); ,提供了大量繪圖工具的訪問權(quán)限,基礎(chǔ)核心命名空間,ArrayList、BitArray、Hashtable、Stack、StringCollection 和 StringTable 類,大量窗體和控件,從 System.Windows.Forms.Form 派生,Visual Studio .NET 生成的代碼,創(chuàng)建 WinForms應(yīng)用程序,partial class Form1 / / 必需的設(shè)計(jì)器變量。 / private System.ComponentModel.IContainer components = null;,構(gòu)造函數(shù)調(diào)用 InitializeComponent() 方法,#region Windows 窗體設(shè)計(jì)器生成的代碼 / / 設(shè)計(jì)器支持所需的方法 - 不要 / 使用代碼編輯器修改此方法的內(nèi)容。 / private void InitializeComponent() this.SuspendLayout(); / / Form1 / this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(333, 266); this.Name = “Form1“; this.Text = “Form1“; this.ResumeLayout(false); #endregion,項(xiàng)目的容器,創(chuàng)建 WinForms應(yīng)用程序,/ / 清理所有正在使用的資源。 / / 如果應(yīng)釋放托管資源,為 true;否則為 false。 protected override void Dispose(bool disposing) if (disposing ,釋放系統(tǒng)資源,創(chuàng)建 WinForms應(yīng)用程序,static class Program / / 應(yīng)用程序的主入口點(diǎn)。 / STAThread static void Main() Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1(); ,程序的主入口點(diǎn),Web 服務(wù),Web Service是微軟主推的一種跨平臺(tái)的分布式應(yīng)用程序。他使用SOAP協(xié)議通訊,用XML封裝數(shù)據(jù),所以是跨平臺(tái)的。任何客戶端只要按照WebService發(fā)布的格式發(fā)送數(shù)據(jù)就都可以得到結(jié)果。,Web Service的特點(diǎn),Web Service可看成是一個(gè)可復(fù)用的Web應(yīng)用程序組件 Web Service是平臺(tái)無關(guān)的 Web Service是自說明的 可以使用一種統(tǒng)一的機(jī)制來在互聯(lián)網(wǎng)上查找Web Service,Web Service到底是如何“轉(zhuǎn)”起來的?,Web Service 駐留于Web Server中 使用UDDI機(jī)制查找符合要求的Web Service 網(wǎng)絡(luò)中的機(jī)器通過SOAP協(xié)議進(jìn)行通訊,使用Web Service,跨網(wǎng)絡(luò)調(diào)用Web Service的內(nèi)部機(jī)理,所有這些工作,Visual Studio已幫助人們完成。,.NET Framework3.0,windows Presentation Foundation (WPF)。 提供更佳的用戶體驗(yàn),用來開發(fā)Windows Forms程序以及流覽器應(yīng)用程序 windows Communications Foundation (WCF)。 提供SOA(面向服務(wù)的軟件構(gòu)架)支持的安全的網(wǎng)絡(luò)服務(wù)(Web Service)框架。 windows Workflow Foundation (WF)。 提供一個(gè)設(shè)計(jì)與發(fā)展工作流程導(dǎo)向(Workflow-oriented)應(yīng)用程序基 礎(chǔ)支持的應(yīng)用程序接口。,.NET Framework 3.5,1 、 Ajax的支持 ScriptManager控件和UpdatePanel控件 .NET Framework 3.5 改進(jìn)了對(duì)支持 AJAX 的網(wǎng)站的開發(fā)支持。ASP.NET 支持使用一組新的服務(wù)器控件和 API 進(jìn)行以服務(wù)器為中心的 AJAX 開發(fā)。 (API) Microsoft Ajax Library ASP.NET 還支持使用名為 Microsoft AJAX Library 的新客戶端庫進(jìn)行以客戶端為中心的 AJAX 開發(fā)。,.NET Framework 3.5

溫馨提示

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

評(píng)論

0/150

提交評(píng)論