開發(fā)人員技術(shù)精粹概述_第1頁
開發(fā)人員技術(shù)精粹概述_第2頁
開發(fā)人員技術(shù)精粹概述_第3頁
開發(fā)人員技術(shù)精粹概述_第4頁
開發(fā)人員技術(shù)精粹概述_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

02四月2024開發(fā)人員技術(shù)精粹概述02四月2024開發(fā)人員技術(shù)精粹概述1大綱內(nèi)置控件呈現(xiàn)數(shù)據(jù)布局和視圖動(dòng)畫觸摸為您保留了一些示例,關(guān)于如何:創(chuàng)建Windows8Style應(yīng)用和個(gè)性化面向.NET開發(fā)人員的WinRT異步開發(fā)工具您將了解以下內(nèi)容:XAML開發(fā)人員構(gòu)建Windows8Style應(yīng)用需要了解的新概念大綱內(nèi)置控件為您保留了一些示例,關(guān)于如何:創(chuàng)建Window2面向.NET開發(fā)人員的WinRT面向.NET開發(fā)人員的WinRT3您已經(jīng)掌握了用C#和VB構(gòu)建Windows8Style應(yīng)用的技能您已經(jīng)掌握了用C#和VB構(gòu)建Windows8S4Windows一直為開發(fā)人員提供構(gòu)建應(yīng)用的出色功能Windows并沒有總是為您從C#或VB使用這些功能提供便利Windows一直為開發(fā)人員提供構(gòu)建應(yīng)用的出色功能Wind5[DllImport(“avicap32.dll”,EntryPoint=“capCreateCaptureWindow”)]

staticexternintcapCreateCaptureWindow(

stringlpszWindowName,intdwStyle,

intX,intY,intnWidth,intnHeight,

inthwndParent,intnID);

[DllImport(“avicap32.dll”)]

staticexternboolcapGetDriverDescription(

intwDriverIndex,

[MarshalAs(UnmanagedType.LPTStr)]refstringlpszName,

intcbName,

[MarshalAs(UnmanagedType.LPTStr)]refstringlpszVer,

intcbVer);

//moreandmoreofthesame您現(xiàn)在必須這樣編寫C#代碼……[DllImport(“avicap32.dll”,Ent6您的托管代碼傳統(tǒng)的WindowsAPI手動(dòng)

生成的

互操作代碼您的托管代碼傳統(tǒng)的WindowsAPI手動(dòng)

生成的

互操作7在Windows8上可以這樣編寫C#代碼usingWindows.Media.Capture;

varui=new

CameraCaptureUI();

ui.PhotoSettings.CroppedAspectRatio=new

Size(4,3);

varfile=awaitui.CaptureFileAsync(CameraCaptureUIMode.Photo);

if(file!=null)

{

varbitmap=new

BitmapImage();bitmap.SetSource(awaitfile.OpenAsync(FileAccessMode.Read));Photo.Source=bitmap;

}在Windows8上可以這樣編寫C#代碼using8您的托管

代碼Windows8APIWindows

運(yùn)行時(shí)您的托管

代碼Windows8APIWindows

運(yùn)9Windows運(yùn)行時(shí)架構(gòu)Windows8styleappLanguageSupport(CLR,WinJS,CRT)LanguageProjectionWindows

Metadata&NamespaceWebHost

(HTML,CSS,JavaScript)WindowsCoreRuntimeBrokerWindowsRuntimeCoreUIPickersControlsMediaXAMLStorageNetwork…Windows運(yùn)行時(shí)架構(gòu)Windows8stylea10在Windows運(yùn)行時(shí)環(huán)境下編寫C#和VisualBasic感覺更自然、更熟悉在Windows運(yùn)行時(shí)環(huán)境下編寫C#和Visual11在C#中使用Windows運(yùn)行時(shí)演示在C#中使用Windows運(yùn)行時(shí)演示12Windows運(yùn)行時(shí)和.NET之間的映射幾乎都是直接映射Primitives

(strings,numbers,etc)InterfacesEnumsStructsDelegatesClassesConstructorsStaticMembersMethodsPropertiesEventsWindows運(yùn)行時(shí)和.NET之間的映射幾乎都是直接映13Windows運(yùn)行時(shí)和.NET之間的大多數(shù)差異都是隱藏的Windows運(yùn)行時(shí)和.NET之間的大多數(shù)差異都是隱藏14.NET自動(dòng)將集合接口映射到Windows運(yùn)行時(shí)中的對(duì)應(yīng)接口IReadOnlyDictionary<K,V>IMapView<K,V>IEnumerable<T>IIterable<T>IList<T>IVector<T>IReadOnlyList<T>IVectorView<T>IDictionary<K,V>IMap<K,V>.NET自動(dòng)將集合接口映射到Windows運(yùn)行時(shí)中的對(duì)15擴(kuò)展方法在Windows運(yùn)行時(shí)與托管代碼之間架起了橋梁擴(kuò)展方法在Windows運(yùn)行時(shí)與托管代碼之間架起了橋梁16流代碼示例FileOpenPickerpicker=new

FileOpenPicker();

picker.FileTypeFilter.Add("*");

StorageFilefile=awaitpicker.PickSingleFileAsync();

Windows.Storage.Streams.IInputStreaminputStream=

awaitfile.OpenForReadAsync();

System.IO.Streamstream=inputStream.AsStream();

System.IO.StreamReaderreader=new

StreamReader(stream);

stringcontents=reader.ReadToEnd();流代碼示例FileOpenPickerpicker=n17只要遵守幾個(gè)簡單的規(guī)則,就可以構(gòu)建映射到C++或JavaScript的Windows運(yùn)行時(shí)托管組件只要遵守幾個(gè)簡單的規(guī)則,就可以構(gòu)建映射到C++或Jav18在托管Windows運(yùn)行時(shí)組件項(xiàng)目中,只有公共類型和公共成員需要遵守這些簡單的規(guī)則。在托管Windows運(yùn)行時(shí)組件項(xiàng)目中,只有公共類型和公共19API簽名必須僅使用Windows運(yùn)行時(shí)類型結(jié)構(gòu)體只能擁有公共數(shù)據(jù)字段只能在XAML控件上使用繼承,其他所有類型都必須封裝類型(sealed)僅支持系統(tǒng)提供的泛型類型API簽名必須僅使用Windows運(yùn)行時(shí)類型結(jié)構(gòu)體只能20VisualStudio提供了對(duì)托管Windows運(yùn)行時(shí)組件項(xiàng)目的內(nèi)置支持VisualStudio提供了對(duì)托管Windows運(yùn)21用C#構(gòu)建Windows運(yùn)行時(shí)組件演示用C#構(gòu)建Windows運(yùn)行時(shí)組件演示22異步異步23在現(xiàn)代的、互連的應(yīng)用中,異步編程變得很常見在現(xiàn)代的、互連的應(yīng)用中,異步編程變得很常見24同步與異步vardata=DownloadData(...);ProcessData(data);var

future=DownloadDataAsync(...);future.ContinueWith(data=>ProcessData(data));異步下載數(shù)據(jù)處理數(shù)據(jù)STOP處理數(shù)據(jù)下載數(shù)據(jù)同步與異步vardata=DownloadData(.25異步編程模型Windows運(yùn)行時(shí):IAsyncOperation<T>.NETFramework:Task<T>Javascript:Promises所有模型都是代表“正在進(jìn)行的操作”的對(duì)象所有模型都使用回調(diào)來表示操作的完成挑戰(zhàn):回調(diào)造成代碼順序混亂洞察:自動(dòng)轉(zhuǎn)換至回調(diào)是有可能的異步編程模型Windows運(yùn)行時(shí):IAsyncOperat26異步方法自動(dòng)將普通代碼轉(zhuǎn)換成回調(diào)狀態(tài)機(jī)異步方法自動(dòng)將普通代碼轉(zhuǎn)換成回調(diào)狀態(tài)機(jī)27異步方法public

async

Task<XElement>GetXmlAsync(stringurl){

varclient=new

HttpClient();varresponse=awaitclient.GetAsync(url);

vartext=response.Content.ReadAsString();

return

XElement.Parse(text);}public

Task<XElement>GetXmlAsync(stringurl){

vartcs=new

TaskCompletionSource<XElement>();

varclient=new

HttpClient();client.GetAsync(url).ContinueWith(task=>{

varresponse=task.Result;

vartext=response.Content.ReadAsString();tcs.SetResult(XElement.Parse(text));});

returntcs.Task;}異步方法publicasyncTask<XElement28異步方法……使用新的“async”修飾符標(biāo)記必須返回void或Task<T>使用“await”操作符來配合交出控制權(quán)完成需等待的操作后繼續(xù)執(zhí)行實(shí)現(xiàn)“等待模式”的任何操作都可以等待在調(diào)用者的同步上下文中執(zhí)行允許使用常規(guī)的編程結(jié)構(gòu)來編寫感覺就像以前的同步代碼一樣!異步方法……使用新的“async”修飾符標(biāo)記必須返回voi29在C#和VisualBasic中,無需使用回調(diào)即可進(jìn)行異步編程在C#和VisualBasic中,無需使用回調(diào)即可30async將方法變成異步方法async將方法變成異步方法31await

將方法的其他部分變成一個(gè)回調(diào)方法await將方法的其他部分變成一個(gè)回調(diào)方法32Task允許您對(duì)活動(dòng)進(jìn)行協(xié)調(diào)Task允許您對(duì)活動(dòng)進(jìn)行協(xié)調(diào)33WinRT中的異步演示W(wǎng)inRT中的異步演示34工具工具35VisualStudio設(shè)計(jì)器對(duì)所有支持的語言使用相同的設(shè)計(jì)器,這些語言包括:C#、C++和VB核心編輯用戶界面與ExpressionBlend共享一致的XAML解析在所有可能的地方使用共享的用戶界面每個(gè)工具都針對(duì)目標(biāo)用戶和工作流程進(jìn)行了優(yōu)化VisualStudio設(shè)計(jì)器對(duì)所有支持的語言使用相同的36VisualStudioExpress11XAML設(shè)計(jì)器演示VisualStudioExpress11演示37重述要點(diǎn)重述要點(diǎn)38您已經(jīng)掌握了使用C#和VB

構(gòu)建Windows8Style應(yīng)用的技能

溫馨提示

  • 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)論