歷史活動

  • 精準解析 .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 具有兩個非常重要的優勢:

    1. WPF 的建置核心是無關解析度的向量式圖形呈現引擎 (Vector-Based Rendering Engine),能夠善用新式圖形硬體的優點,其函式庫內的 UI 元素具有靈活的擴張性以及便利的動畫,能夠輕鬆變化出非常豐富視覺效果。
    2. WPF 具有強大的資料繫結引擎,能夠有效地分離資料與視覺介面的設計,對於程式架構擴充與維護提供了正向效益。

    將會從最基本的 XAML 概念談起,一路延伸到 UI 元素的使用與變化、資料繫結、Model-View-ViewModel 等等,用最快的途徑理解 WPF 的強大應用。內容設計經過審慎的考量與組織,讓每個想學習 WPF 應用程式開發的人員都能夠在課程結束後順利上手。

    我們與多家金融機構密切合作,如您有意願轉職我們可推薦您前往面試,年薪可到200萬(視能力而定)

  • 精準解析 .NET Thread 執行緒

    在 .NET 要建立一個執行緒,將需要指定一個委派方法,而一個執行緒 Thread 代表一個正在同步執行程式碼,若想要同時執行多個委派方法,則需要建立多個執行緒,而一台電腦能夠同時處理執行緒的數量,將會取決於這台電腦上的 CPU 的能力。

    身為一個 .NET / C# 程式設計師,想要提升自我能力,使其可以進行平行程式設計技能,就需要具備多執行緒開發技術。透過多執行緒設計出來的程式碼,將可以同時執行多個程式碼,並會有助於整體應用程式的執行效能提升,充分發揮這台電腦 CPU 的執行效能。

    然而,如何進行多執行緒的程式設計,將會需要學習 .NET 中的 Thread 物件的使用與操作,當完成此課程之後,你將會具有多執行緒程式設計的能力,並且了解到多執行緒程式設計上會遇到的問題與瓶頸。

  • SQL Server 高可用性與災害復原規劃與實作

    建構完善的 SQL Server 高可用性和災害復原 (HADR) 解决方案,包括熱備援機制的容錯移轉叢集執行個體和AlwaysOn 可用性群組,暖備援機制的無叢集的讀取級別可用性群組和交易記錄檔傳送,規劃多層次防護的HADR機制,以確保關鍵應用服務資料庫系統持續可用。

  • 從相依到注入-進階篇

      相依性影響了很多事情,系統架構、工法、可變性全都受到相依性的影響,因此,適當的處理相依性成為了建置好軟體的基礎,而 Dependency Injection 則是讓相依性生命週期管理變得更好的一種技術,事實上,在套用 Dependency Injection 之前,你必須先把相依性處理好,這需要改變思維及套用一些相依性的設計模式,此活動接續基礎篇,將理論化為實務,討論應用面,例如在 .NET 6 中使用 AutoFac 及 Microsoft DI,並討論在不同情境下的注入法則及 Anti-Pattern,最終帶領學員實作一個可抽換資料存取層的 Lab。

  • 從相依到注入-基礎篇

       相依性影響了很多事情,系統架構、工法、可變性全都受到相依性的影響,因此,適當的處理相依性成為了建置好軟體的基礎,而 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# 開發經驗、了解泛型與委派的使用方式,並且具備基本電腦架構運作知識。

  • 決戰設計模式

    程式設計師每天都有許多挑戰與問題要解決,如何規劃出一個好的架構設計需要長時間的經驗累積,但每一種絕世武功都要練30年,人生短短幾個秋,該如何應對?

    坊間多數設計模式的課程或書籍都只是介紹每一個設計模式的用途,甚至以肌肉記憶的方式強背架構圖,例子都是些飛機、車子難以與實務產生共鳴,最後學員只覺得設計模式不好懂又離現實太遠,進而放棄。

    我們覺得這樣很可惜,經過了仔細規劃與討論後,屬於 SkillTree 風格的設計模式課程出爐了!如果你放棄過設計模式,如果你嘲弄過設計模式,現在就是讓你改觀的時候了。

  • 例外處理實戰

    在 C# 程式設計中,例外處理是一個重要的錯誤處理機制,因此每位 C# 程式設計師每天都必須面對例外。有些人認為例外很複雜,有些人則認為例外不重要。然而,適當地處理例外是 C# 程式設計師必須具備的技能。如果你想從 coder 轉變為 software developer,你需要了解如何設計好系統架構,其中例外處理是一個重要的環節。

    本活動將介紹不同的例外類型及處理方法,幫助學員學會如何適當地處理並記錄例外,建構強固的 C# 應用程式。然而,理論知識無法取代實務經驗。要從問題中學習,你需要透過大量的線上維運經驗,思考和學習,如果以往的工作較少接觸產品的線上維運階段(例如接案公司),更應該參加本活動。用半天到一天的時間,讓師父領你進門,建立正確的觀念,將可以節省在職涯中許多摸索的時間。

  • 初探 .NET 平行程式設計

    這年頭手機都多核心了我們寫的程式還跑在單核上嗎?

    一台電腦8核16緒但我們的程式就是跑不快?

    平行程式設計是近年來一個很務實的議題,之前 SkillTree 有開過較進階的「勇闖非同步程式設計」,收到許多開發人員的好評但有開發人員反應希望能夠開設更初階一點的入門主題,於是本活動來了!針對「沒實際摸過平行運算、非同步計算」的 .NET / C# 開發人員提供一個全方位的體驗與透視這方面技術管道,了解到各種 .NET 所提供的平行程式設計功能與用法。