歷史活動
-
精準解析async await 非同步程式設計
當進行專案開發的時候,為了要能夠有助於提高應用程序的性能、速度和響應能力,這個時候便可以使用非同步程式設計做法來進行改善原先系統的效能和響應能力問題。在 .NET / C# 內,提供了 APM, EAP, TAP 設計模式讓開發人員方便進行非同步程式設計,不過,想要進行非同步程式設計畢竟不是很簡單的工作。
有鑑於此,微軟在 C# 5.0 推出了 async 與 await 功能,讓 .NET 開發者可以輕鬆、容易的使用同步程式設計觀念,設計出具有非同步執行能力的程式設計開發方式,而且,在此之後,微軟所提供的 BCL 類別庫內,也絕大多數都已經提供了這些非同步運作的 API。
然而,許多開發者在面對 async 與 await 開發做法的時候,面臨到許多問題:例如:打死結、射後不理、對於 async 和 await 運作方式理解錯誤。這次我們將會洞悉 async 和 await 的內部運作方式,透過各種平行與非同步程式碼考驗與除錯題目,了解與學習到實際執行過程,其中輔助許多動畫來強化理解這些設計注意事項,進而深入淺出的探討各種使用 async await 用法與背後運作原理,搭配各式口訣加深記憶,並且提供開發設計指引來遵循寫出好的非同步程式代碼,充分發揮使用非同步程式設計所帶來的好處。
-
程式碼的鍊金術-重構Plus
-
精準解析 .NET Task 工作
以往想要進行平行或非同步程式設計(平行計算是一種非同步計算,前者屬於透過 CPU 來做到同時執行的需求,後者大多表示要進行 I/O 或者網路呼叫的時候,所要進行的處理作業),往往需要透過多執行緒來完成,可是要能夠充分駕馭執行緒來完成上述設計需求,對於絕大多數的程式設計師而言,將不是一件簡單的工作;有鑑於此,微軟在 .NET Framework 4.0 之後,推出了 工作平行類別庫 Task Parallel Library (TPL),而在 .NET BCL 中的許多 API,也都改寫成為使用了 TAP 以工作為基礎的非同步模式 Task-based Asynchronous Pattern 的 API,取代以往 APM 與 EAP 的程式設計做法;這樣的改變將會讓 C# 程式設計師可以享受到許多 TPL 類別庫所帶來好處。
使用 TPL 中來執行的工作 Task 物件,通常是從執行緒集區上取得執行緒來以非同步方式進行執行,透過將複雜的執行緒操作封裝到工作物件內,讓程式設計師可以更加輕鬆與容易地來進平行與非同步的需求設計。
當完成此活動之後,你將會具備使用 Task 物件來進行非同步程式設計能力,讓設計出來的應用程式專案不在執行時候發生卡卡現象,充分享受到非同步程式設計所帶來的好處,當然,對於日後要精通 C# 5.0 所提供的 async 與 await 技術,將是不可或缺與必備的知識。
-
現代桌面應用程式,玩轉WPF
🚨本活動改為 0520 開始
在現代桌面應用程式的世界裡, WPF (Windows Presentation Foundation) 漸漸地取代 Windows Forms 的地位;因為 WPF 具有兩個非常重要的優勢:
- WPF 的建置核心是無關解析度的向量式圖形呈現引擎 (Vector-Based Rendering Engine),能夠善用新式圖形硬體的優點,其函式庫內的 UI 元素具有靈活的擴張性以及便利的動畫,能夠輕鬆變化出非常豐富視覺效果。
- WPF 具有強大的資料繫結引擎,能夠有效地分離資料與視覺介面的設計,對於程式架構擴充與維護提供了正向效益。
將會從最基本的 XAML 概念談起,一路延伸到 UI 元素的使用與變化、資料繫結、Model-View-ViewModel 等等,用最快的途徑理解 WPF 的強大應用。內容設計經過審慎的考量與組織,讓每個想學習 WPF 應用程式開發的人員都能夠在課程結束後順利上手。
我們與多家金融機構密切合作,如您有意願轉職我們可推薦您前往面試,年薪可到200萬(視能力而定)
-
精準解析 .NET Thread 執行緒
在 .NET 要建立一個執行緒,將需要指定一個委派方法,而一個執行緒 Thread 代表一個正在同步執行程式碼,若想要同時執行多個委派方法,則需要建立多個執行緒,而一台電腦能夠同時處理執行緒的數量,將會取決於這台電腦上的 CPU 的能力。
身為一個 .NET / C# 程式設計師,想要提升自我能力,使其可以進行平行程式設計技能,就需要具備多執行緒開發技術。透過多執行緒設計出來的程式碼,將可以同時執行多個程式碼,並會有助於整體應用程式的執行效能提升,充分發揮這台電腦 CPU 的執行效能。
然而,如何進行多執行緒的程式設計,將會需要學習 .NET 中的 Thread 物件的使用與操作,當完成此課程之後,你將會具有多執行緒程式設計的能力,並且了解到多執行緒程式設計上會遇到的問題與瓶頸。
-
SQL Server 高可用性與災害復原規劃與實作
-
從相依到注入-進階篇
-
從相依到注入-基礎篇
相依性影響了很多事情,系統架構、工法、可變性全都受到相依性的影響,因此,適當的處理相依性成為了建置好軟體的基礎,而 Dependency Injection 則是讓相依性生命週期管理變得更好的一種技術,事實上,在套用 Dependency Injection 之前,你必須先把相依性處理好,這需要改變思維及套用一些相依性的設計模式,我們從一個例子開始,逐步調整相依性到可以使用 DI Container 的程度,接著進一步思考在各種情況下使用不同設計會如何影響注入動作,即使沒有使用 DI Container,學會這些手法跟設計概念也有助於建構中大型軟體,掌握相依性,便能在設計系統架構時擁有更清晰的視野。
-
由 Parallel.For 來看多執行緒程式設計
在多執行緒程式設計領域中,有許多技術可供開發者使用,例如 TPL、ThreadPool、Parallel.For、PLINQ 等等,其主要目的是降低複雜度,提供高階程式設計模型,使開發者可以更容易地使用這些功能。然而,坊間流傳了許多各式各樣的技巧,有些是聽從前輩的建議,有些是根據自身特定情境中的經驗而得出的結論。這些技巧與看法並不一定是錯誤的,但卻往往是零散且片段化的,缺乏對技術原理和限制的全面理解。
因此,SkillTree 組織了本次活動,專注於對 Parallel.For 技術進行深入探討。透過實際解決使用 Parallel.For 方法來平行執行一萬件作業的問題,學員們可以通過動手練習各種實作程式碼,觀察其中的差異和背後的原理。同時,透過逐步深入的案例學習,學員們可以全面了解 Parallel.For 技術的奧妙。
在活動中,學員們將學習如何克服 Parallel.For 技術在執行時遇到的瓶頸和限制,並學會如何解決這些問題的方法和技巧。這將有助於學員們更好地應用 Parallel.For 技術,從而提高程式的效率和性能。
本課程是平行程式設計的初階,不是程式學習的初階,您必須具備 C# 開發經驗、了解泛型與委派的使用方式,並且具備基本電腦架構運作知識。
-
決戰設計模式