版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度個(gè)人教育培訓(xùn)資金延期使用合同4篇
- 二零二五年度高端建筑涂料工程分包合同標(biāo)準(zhǔn)版3篇
- 二零二五年度個(gè)人肖像權(quán)授權(quán)使用合同音樂MV個(gè)人形象使用4篇
- 清潔能源技術(shù)轉(zhuǎn)讓合同
- 快遞合作合同
- 二零二五年度集體土地承包經(jīng)營權(quán)轉(zhuǎn)讓合同范本3篇
- 2025版水電節(jié)能改造與咨詢服務(wù)協(xié)議3篇
- 代收款協(xié)議書范本
- 決策咨詢常年顧問服務(wù)合同
- VIP會(huì)員儲(chǔ)值卡銷售協(xié)議
- 2024年產(chǎn)權(quán)管理部年終工作總結(jié)例文(3篇)
- 《血管性血友病》課件
- 高三日語一輪復(fù)習(xí)日語助詞「に」和「を」的全部用法課件
- 機(jī)場(chǎng)地勤勞動(dòng)合同三篇
- 2024年山東省高考政治試卷真題(含答案逐題解析)
- 《用銳角三角函數(shù)解決問題(3)》參考課件
- 訂婚協(xié)議書手寫模板攻略
- 風(fēng)水學(xué)的基礎(chǔ)知識(shí)培訓(xùn)
- 施工組織設(shè)計(jì)方案針對(duì)性、完整性
- 2002版干部履歷表(貴州省)
- 第21課《鄒忌諷齊王納諫》對(duì)比閱讀 部編版語文九年級(jí)下冊(cè)
評(píng)論
0/150
提交評(píng)論