顯示具有 MVP2020 標籤的文章。 顯示所有文章
顯示具有 MVP2020 標籤的文章。 顯示所有文章

2021年12月8日 星期三

Blazor實戰故事經驗分享 2 - 風雲再現 探究 Blazor 可以快速開發出來內部細節

Blazor實戰故事經驗分享 2 - 風雲再現 探究 Blazor 可以快速開發出來內部細節

在上一篇文章 Blazor實戰故事經驗分享 1 - 風起雲湧 如何從無到有建立Blazor團隊與採用全端開發方式設計出給上市企業使用的Web系統 中,介紹了這個專案的啟動緣由與需要執行完成的工作和需要注意的事項,在這第二篇文章中,將會闡明究竟如何這個專案可以成功執行完成的關鍵因素與使用到的相關工具和技能。

對於採用 ASP.NET Core Blazor 這個全新的技術要來進行專案開發,對於許多人都是新的嘗試,畢竟這是新的技術,每個人都會有不同的考量因素,然而,在這裡將會根據當時實際環境與需求進行考量,評估要採用何種因應方法來讓團隊可以進行專案開發,這才是這個專案可以成功的主要關鍵因素。底下將來了解 陳少 的技術團隊,是採用甚麼方式來進行成功的 Blazor 專案開發。

套句作者經常講的話,若是有興趣、沒信心,那就做個 POC,再決定接下來要如何進行。若只是坐著發呆、泡茶聊是非、發功觀落陰,還是把這些時間省下來,不要再去想太多了。

人員訓練

對於人員訓練這個過程,是這個 Blazor 專案導入過程中極為重要的過程,畢竟要在短短的三個月內,要能夠採用一個全新的 Blazor 開發框架技術來開發出一個專案,必須承認這是個滿嚴峻的挑戰,失敗機率相當的高,而且這些開發人員都是新招募進來的,他們之前技術背景也都不相同,要如何讓大家可以使用 Blazor 的技術來進行專案開發,這就需要一些訣竅;這裡是透過專門設計的教育訓練課程與教材來解決此一問題,讓所有開發人員先求有,再求好,也就是說,先把專案開發出來,再自行針對不同核心關鍵技術,自行後續的研究與了解。

團隊成員在接受教育訓練的時候,並不只是坐著聽講而已,而是會跟著不同設計好的練習題目,一起進行練習,隨時針對學習狀況進行調整進度與內容,另外,上完課程之後,原則上都會有課後作業要自行練習,並且繳交回來;一旦課程完成之後,也會需要針對學員上課吸收能力與是否真的有認真學會這些技術,進行檢視與分析。

因為,天下沒有白吃的午餐,坐著聽課也許很容易,上課的講師一直講話,更是辛苦。

.NET / C# 物件導向程式設計能力

當在招募人員的時候,第一要求能力就要有 .NET / C# 程式設計的經驗與能力,至少要有兩年以上的工作經驗,至於是在甚麼框架底下開發專案,這都不是很重要;對於比較進階與延伸應用的 C# 開發技能,我與陳少會根據當時成員的情況,適度地進行這方面的教育訓練,例如:介面、委派、Lambda、事件、泛型等等,不過,只要時間允許,也會針對 .NET CLR 相關特性來進行相關的訓練課程。

HTML / CSS 開發經驗

對於這方面的需求,並沒有這麼的嚴格,原則上,至少要有這方面的基礎認識與了解,而團隊原則上不會針對這方面安排額外的教育訓練課程,因為,這些學習文章、書籍、影片,在網路上已經很多了。

Blazor Server-Side or WebAssembly

相信第一次接觸到 Blazor 這樣的開發框架的人,若對於這樣的技術產生興趣的話,必定對於要使用哪種 Blazor 開發方式感到迷惑。

首先,若你對於自己的開發方式,不管是前後端分離,或者全端開發方式感到滿意與沒有甚麼遺憾的話,個人建議無須繼續探討是否要使用 Blazor 這樣的方式;若你看到一些現有開發方式的問題與遇到瓶頸,個人覺得 Blazor 是個滿值得選擇的一種開發方式。

對於這個團隊選擇 Blazor 的首要考量因素,那就是無需使用 JavaScript ,僅需要會 .NET / C# 就可以進行 Web 專案開發,當然,這與之前的 Web Forms & Silverlight 是決然不同的運作方式,這兩個開發技術上存在的問題與瓶頸,在 Blazor 上已經獲得大部分的解決,至於 Blazor 是否會像這兩個技術有著相同的下場,那就是微軟已經放棄了這兩種開發方式,不再提供任何技術支援與新的版本,個人覺得未來的事情很難說,畢竟,除了傳統的 HTTP Request / Response 的動態網頁開發方式,與現今相當豐富的前端開發框架而言,Blazor是個絕佳的選擇,畢竟僅需要會 .NET / C# 就可以開發 Web App 是件相當誘人因素,JavaScript在這樣的開發方式下,就變成幾乎不再需要這樣能力的考量了。

對於 陳少 的開發團隊,講求的是能夠快速開發出 Web 專案產品,對於開發速度、執行效能與品質上,也有著相當的要求,對於招募能力上,已具備 .NET / C# 能力的開發者為主要選擇,最為重要的是,一旦開發人員進入團隊之後,要能夠在最短的時間投入到產品研發、開發,更是佔有極重要的考量,所以,當然會優先選擇 Blazor 這樣的開發框架技術。

對於現階段的開發產品而言,經過分析,不論採用 Blazor Server-Side 或者 WebAssembay 的方式,都是可行的選擇,不過,若採用 Blazor Server-Side 方案的話,更可以大幅減少開發時間與學習門檻,讓每個開發人員都是個全端開發人員 (而後,會培養這些人員,都能夠朝向超全端開發能力邁進),如此,不論是在投資成本、人員調度、技術分享上,都具有相當優異的表現。因此,經過討論,在未來一年之內,相關開發的產品,都會使用 Blazor Server-Side 的方式來進行開發,然而,在使用 Blazor Server-Side 開發技術所做出來的產品,也在開發架構上,預留了隨時可以轉換成為使用 WebAssembly 的空間,這樣的設計讓技術轉換上變得更加有彈性。

Blazor 快速上手

好了,決定了要使用哪種 Blazor 的開發方式,現在就要如何讓現有人員,快速的開始使用 Blazor 來進行產品開發,記住,不是要花費大量的時間來學習甚麼是 Blazor 與相當細節的 Blazor 運作技術。

這裡採用的方式如下

首先,會先請開發人員先行觀看 Youtube 影片 Blazor 快速體驗 之 線上操作教學影片 ,自行根據影片來進行開發過程的體驗,其目的是要能夠讓程式設計在最短的時間內,快速的了解 Blazor 開發框架的開發方式,並且能夠了解到在這個開發方式下,會有哪些特色或者技術需要學習,當然,有心的程式設計師也會自行搭配微軟官方的 Blazor 介紹 網站內容,做進一步的研究,當然在學習之後,會根據看完該影片與練習之後進行評估與討論,看看學習上遇到甚麼問題,適度的解惑,如此便可以進入下一個訓練課程。

EF Core 與制式專案開發訓練課程

在這個課程則是透過直接的教學,配合不同的練習題目,實際現場進行操作,了解到各種 Entity Framework Core 這個工具的使用方式,以及有甚麼要注意的地方和限制,而後在同樣的課程內,進入到下一個階段內容

Blazor + Syncfusion 的核心設計準則

在這裡將會讓程式設計師實際體驗真正複雜的 Blazor 開發環境,在下面示意圖中,規劃了 Blazor 與 Syncfusion 元件的整合應用架構,透過分層的設計,讓整個專案密切的整合起來。

在這裡除了能夠瞭解到一個實際在 Blazor 下整合 Entity Framework Core + AutoMapper + Syncfusion 元件 + 不用使用 Code Behind 的方式來進行開發的方式,當然,在這裡將會首先了解到如何理解與使用這樣的開發架構,當然,在課堂上也會讓學員實際自行開發練習,並且會有課後作業,讓把課堂是學習的內容,能夠獨立開發出來。

原則上,會留些時間讓學員可以理解、體會、領悟這個架構的精神與各分層是如何串接起來的方式,當然,最有效的方式,那就是會有課後成果考核與評分,確認學員真的學會這樣的設計技能。

在這裡提到的分層架構將會充分發揮 Blazor 開發框架的特色,使用 Razor 元件 的方式來設計,不論是 CSS 或者 HTML 標記,或者某個頁面的部分內容,經過這樣的元件化設計,將會大幅簡化整個系統開發的複雜度。另外,對於 Blazor Serer-Side 開發方式所提供的優異除錯除錯能力,表達衷心的感恩,因為這樣的機制解省了許多開發上的時間。

相依性注入、非同步程式設計、多執行緒程式設計、物件導向設計原則

關於這些技術,都已經完成了相關訓練教材,預計至少需要花費9天以上的時間來進行教育訓練,不過,因為,時間緊迫,在這個專案進行過程中,僅會針對部分的 相依性注入、非同步程式設計 的內容作教育,因為,許多的觀念與技能將會有助於團隊成員設計出更有效率、更好維護、不容易出錯的程式碼,不過,對於整個團隊成員會於日後將這些技能補足到他們身上,原則上,有些課程將會需要進行本身能力進行評估,確認他們已經具備了這樣的能力或者資質,才能夠接受這些教育訓練,提升自我能力,否則,需要他們自行研究與提升本身實力。

身分驗證與授權

這部份對於 Web 開發專案上具有相當的重要性,這包含了如何使用 Blazor + ASP.NET Core 來設計出具有 Cookie 與 JWT 方式的身分驗證與授權機制,整個 Blazor 專案將會受到這樣的機制保護下,避免沒有授權的使用者能夠存取到不屬於他們可以使用的資源。而這樣的課程將會使用到約 4 個小時的時間來上課,這個課程已經於 10 月上課完畢,而且在課後之後,團隊成員已經將這樣的機制時實作在要交付給客戶的產品中。

這個專案也包含了許多 Web API,要能夠讓 Windows Forms 應用程式可以存取這個 Blazor 開發出來的系統內資源,這些資源將會受到 JWT 的保護;當然,對於完整的 JWT Token 的取得、更新、與強制撤銷上,在標準的設計專案上,都已經有所提供,團隊成員可以從無到有的自行開發出這些機制,也可以直接套用已經開發好的機制,套用到現有產品上。

在這裡也會使用到 ASP.NET Core 之 Web API 功能,設計出具有 RESTfule 能力的 Web API 功能,對於 Dto 的相關物件規劃,也會實際時做出來。這些功能都會完全在 Blazor 專案內可以做出來。

Xamarin.Forms

最後一部分也是最為精采的,就是要訓練團隊成員具備超全端開發設計能力,這包含了 Web 專案的開發 + 跨平台行動裝置地的開發能力;對於 Xamarin.Forms 的開發技術,在今年10月之前,已經進行了快要 1/2 的內容,預計年底之前,這些跨平台行動開發能力將會全數上完相關課程,因為,整個團隊將會至少擁有3名具有超全端程式設計能力的程式設計師。

執行結果分析

如同這系列文章一開始所提到的,這個採用 Blazor 開發框架技術,在三個月內是如期開發出來並且交付給客戶,實際運作也是十分的優異與滿足當初規劃的需求,這樣的成果將會取決於底下的因素

  • 公司領導人的支持與信任、妥善的團隊分工規劃與決策

    由於該公司的總經理充分的授權與信任,可以讓這個新成立的團隊使用各種可行性方案來完成這個專案開發,團隊領導人的充分規劃與落實執行、追蹤與分析,遇到問題就找出 Root Cause,並且嘗試解決問題,大家可以在平行的方式下開發,這樣所展現的成果也是與所有團隊成員一起共享的。

  • 優異與具有未來發展能力的 Blazor 開發環境

    雖然 Blazor 是在去年年底才發表的新 Web 開發方式,不過,整體架構採用了 MVU 方式的設計著實方便了不少,也簡化了許多設計工作;對於 Blazor 更多的內部運作細節與核心技術,也會在日後逐步透過教育訓練(Blazor的訓練教材已經完成了約 300頁以上的簡報)與技術分享的方式,與團隊成員一起來精通這個開發方式;另外,在年底的 ASP.NET 5 的發表,這裡也已經準備好隨時可以順利切換到這個新的技術框架內,明年也會進行規畫可以在同樣的開發模式下,在最少的痛苦情形下,華麗變身成為 WebAssembly 開發方式(當然,只要該專案的需求確實需要擁有這樣的條件,確信轉移上是不會遇到太多的障礙的)。對於 ASP.NET Core 這個優異平台已經提供了許多功能,實際在進行開發過程中不再需重新發明輪子,也節省了許多開發時間,而所做出產品當然也有高效能的表現。

  • 完整與完善的教育訓練培訓機制

    一開始要進行這樣的開發模式的時候,就已經開始籌畫開發人員所需要的技術教育訓練內容,在適時提供相關技術的新知與開發方法,透過在課堂上實際練習各項實作內容,讓大家在下課之後,就可以把上課所學習的內容,實際應用在工作上;另外,相關的教育訓練、技術討論與分享,都有使用微軟 Teams 進行錄影下來,課後學員可以藉由上課錄影內容,來進行複習課堂上的各項技術與技能,這點也是一個相當不錯的效果。

  • 即時與充分的技術支援

    再好的技術平台或者工具,總會遇到各項問題與困難,在團隊中需要有精通這些技術的人員,適時地提供相關解決方案、協助進行除厝或者討論出更好的因應做法,透過這樣的分工做法,著實提升整體專案的開發效能與品質。最重要的整個團隊都是樂於彼此分享自己的開發成果與經驗,讓大家一起成長。

最後想要表達的是, Blazor 是真的可以開發出在現實應用上的 Web 開發框架技術,陳少 這個團隊就是一個活生生的例子,若你曾經也嘗試要使用 Blazor 來開發專案並且遇到瓶頸,這可能需要靜下來分析究竟問題在哪裡?還是一開始本身你的公司或者團隊就不需要、不適合採用 Blazor 技術,甚至想要在 Blazor 開發環境中,加入許多你自己也不確定的因素,總之,找出問題,嘗試解決,最後下出決定:要改善還是要放棄這個開發平台。我們可以,相信你也可以做到的。

相關文章

Blazor實戰故事經驗分享 1 - 風起雲湧 如何從無到有建立Blazor團隊與採用全端開發方式設計出給上市企業使用的Web系統

Blazor實戰故事經驗分享 2 - 風雲再現 探究 Blazor 可以快速開發出來內部細節 





2021年9月16日 星期四

Blazor實戰故事經驗分享 1 - 風起雲湧 如何從無到有建立Blazor團隊與採用全端開發方式設計出給上市企業使用的Web系統

Blazor實戰故事經驗分享 1 - 風起雲湧 如何從無到有建立Blazor團隊與採用全端開發方式設計出給上市企業使用的Web系統

摘要

(Blazor 實戰故事經驗分享 Part 2 : 風雲再現 探究 Blazor 可以快速開發出來內部細節)

這是一個系列文章,說明作者與好友 Steve 如何從無到有打造出一個使用 Blazor 開發框架技術的3人團隊,沒有前端與後端之分,沒有使用 JavaScript,便可以順利在三個月內設計出 Web 應用程式與 Windows Forms 的平版應用程式,當然,最重要的是將產品交付給客戶,完成此一任務的經驗分享;故事的結局當然是十分完美,要不然也不會有這一系列文章與讀者也不需要繼續來觀看這些文章了。

在這個專案內,共使用到底下的技術與內容

起源

作者於今年四月離開了待了快要八年的公司,不要問我問甚麼要離開、是哪裡不爽快、有甚麼恩怨,沒有,沒有,沒有,甚麼都沒有,要對號入座,請自己挑好位置,最好準備好觀落陰的工具,也許你會有更好的八卦主題。

而在今年因為寫了一本 Blazor 快速體驗 電子書,趁著離職後的閒暇時間,也把這本書的各個實作過程,錄製成為 Youtube 影片 Blazor 快速體驗 之 線上操作教學影片,有興趣的人,可以訂閱本頻道

作者從 2018 年底開始接觸 Blazor,一邊研究 Blazor 實驗性版本,也一邊寫出許多關於 Blazor 應用的文章 約 28 篇,而在研究過程中,讓我想起想要能夠充分掌握 Blazor 的設計精神與發揮這個開發框架的價值,據以傳統的 Desktop 設計經驗,也就是類似 Client / Server 經驗的人,更能夠進入狀況;這讓我突然想起快要 30 年的好友,我們當初一起研究與使用 Delphi 這套開發工具 (而我本身是從事於 Delphi 的推廣與教育訓練課程的規劃與授課) ,那就是人稱 陳少 的 Steve。

找個時間到高軟與陳少碰面,談起了 Blazor & Delphi 的經驗,瞬間找回當初在研究 Delphi 的時光,而我們兩人都是從來無緣接觸過 Web 開發的人,而我本身對於 JavaScript 這個程式語言,從他一發表來,都沒有任何好感 (我依稀記得,當初 Borland 也有推出關於 JavaScript 的開發工具,無奈無緣),所以,當我一提起 Blaror,陳少瞬間了解 Blazor 的價值,也看出對於許多開發者而言,透過 Blazor 這套框架,是可以獨立一個人開發出 Web 應用程式,根本不需要做甚麼前後端分離的做法。

對於為什麼要做到前後端分離,這需要各位看官自行去了解當初的背景,以及這樣的作法是要解決甚麼樣的問題,並且透過這樣的做法會帶來甚麼樣的好處,以及要付出甚麼樣的代價。想想,當初在使用 Client / Server 開發環境下,每個 Delphi 程式設計師不都是甚麼前後端工作都一手包辦,而且這些專案也都有開發出來,那麼,為什麼現在不能夠在 Web 開發環境下,一樣可以做到這樣的事情呢? (你知道問題在哪裡嗎?沒錯,那就是 JavaScript,我從來沒有喜歡過這個語言與其相關環境,更不用說他在不同瀏覽器下造成的許多不一致現象與許多詭異問題)。

好了,既然英雄有志一同,就請他根據 先看過 Blazor 快速體驗 電子書 與 Blazor 快速體驗 之 線上操作教學影片 ,之後,順理成章也就在五月份針對如何使用 Blazor 開發的過程與相關應用,針對陳少做了一場一天的訓練,不過,請注意到,陳少其實對於 C# 並不是十分孰悉,不過,對於整場的訓練下來之後,陳少發現到原來他也可以輕鬆自在的開發出 Web 應用程式。

所謂的機緣就是這麼奇妙,突然間 陳少 被邀請到另外一家公司內,負責整個專案研發部門的管理工作;然而,實際的狀況是這個部門就僅有他一個人,他要負責把原先公司使用 PHP & MySQL 開發出來的多套產品,重新設計出來(為什麼不去改善原有的 PHP 系統,這是因為原有系統已經值得打掉重練的五顆星評價),更為險峻的是原有系統的許多開發文件、系統架構都極為混亂與不見了;看樣子是無法看著原先的程式碼,逐一轉換成為另外一套系統,順而求其次,只好看著原有使用手冊畫面,猜測與理解原先系統背後的運作方式。另外,這些產品都有 Windows Forms 的用戶端與手機 App 也需要與新系統能夠串接起來,當然,二話不說, Windows Forms 與原生 Android / iOS App 也是需要打掉重練。

現在,問題來了,要選擇甚麼樣的開發環境來進行這樣的專案開發,要找到多少人來重新打造這樣的系統出來,當初接收到的指示是期望能夠在 2020 年底,打造出新一代的產品出來。

既然身為好友,現在又沒有工作,我就想說要不要我來幫忙一起設計與打造出這樣的團隊與開發出這樣的產品,對我而言,這是一個自我挑戰,也是驗證我對於 Blazor 這個開發框架的眼光是否準確,不過,我僅能夠每周投入個1~2天的時間,幫忙一起進行這樣的挑戰,,其餘的時間,我想要把之前沒有開發完成的 .NET C# 相關教育訓練教材完成,例如,多執行緒方面方面的課程(現在這個課程已經整理到快要 400 頁的程度了,這其中還包含了來自於微軟官方技術支援的方想);因此,這個 Blazor實戰故事經驗分享 應該要就此開始囉...

人員招募

由於陳少與我都是高雄人,他所待的公司自然是在高雄,不過,對於要找到可以具備擁有開發 Blazor 的程式設計師,在高雄真的滿大的挑戰;經過分析過後,我決定使用之前設計 Xamarin.Forms 教育訓練課程的技巧,在最短的時間內,設計出讓具備 .NET / C# 能力的程式設計師,就算沒有甚麼 Web 開發經驗的人,也可以進行 Blazor 專案開發。

不要以為我瘋了,或者我話唬爛,因為,最後證明這樣做法,可以讓程式設計師都可以進行 Blazor 專案開發,並且開發出交付給客戶產品。

另外,有鑑於整個系統的 UI/UX 的設計考量

  • UI

    讓畫面更好看

  • UX

    讓系統更好用

根據上面的準則,首先要解決 UI 上的問題,雖然,在 Blazor 還在實驗性階段,就已經有許多免費的 UI 套件,當然,到現在為止,原先的 UI 套件更加的豐富與完整,而且還有更多的 UI 套件也陸續推出;為了避免選擇或者整合不同 UI 套件的困擾,以及這些 UI 套件在升級過程中,產生了中斷變更 Break-Change 的問題,陳少決定使用 Syncfusion 這家的 Blazor 付費套件。

其實,選擇哪家付費 Blazor UI 套件並不是十分難選擇,先分析這個專案會有哪些的 UI ,這家的原件是否可以滿足需求即可,最重要的是,雖然 Blazor 正式版本在今年才推出,幾乎市面上聽得過名字的有名元件公司,都有提供 Blazor 的原件,這些元件當然都是原生的,若沒有問題,使用上完全使用 C# 來設定與呼叫,幾乎不會用到任何一行 JavaScript 程式碼。

從這裡可以看的出來,各家付費元件廠商早在 Blazor 在實驗性產品的時候,就已經推出相對應的 Blazor 加值元件,從此可以看的出來,各家元件廠商都相當看好 Blazor 這個開發平台,要不然,賠錢的生意沒人做,殺頭的生意有人做,各家元件廠商是不會傻到投入一個沒有前途的開發平台元件上。

有了讓應用程式是否好看的決定性要素,接下來要解決是否好用的因素,這裡將會設計一個通用型的 CRUD SS 與新增、取得、更新、刪除、搜尋、排序等應用的程式寫法,這部分也在決定要使用 Syncfusion元件之後,於五月底完成相關範例程式碼的開發工作。

在五月中旬,招募了第一個程式設計師,本身大約有業界 3 年開發經驗,之前是在上海工作,因為疫情無法回去上海,因此,決定到 陳少 這裡來上班;這位程式設計師的經歷大部分是在 Windows Forms 上,對於 Web 專案開發的經驗並沒有很多;雖然人已經招募進來了,因為新的辦公室還在裝潢中,因此,大約等到六月中旬,他才開始進駐新辦公室,準備進行相關 Blazor 開發訓練。

另外一位工程是在六月的時候招募進來,剛好是前一位程式設計師的同校、同屆、同科系、但沒有同班,算是有機緣可以一起共事;這樣程式設計之前是在新竹友達駐廠,使用 ASP.NET MVC 負責開發系統。

這兩位工程是共同的特色那就是

  • 都有 .NET C# 的開發經驗
  • 程式設計年資都差不多
  • 不過,開發領域不相同
  • 沒有任何 Blazor 的開發經驗
  • 沒有任何 ASP.NET Core 的開發經驗
  • 對於相關近代的設計模式或者技術,例如 相依性注入、非同步程式設計等技能,也沒有經驗
  • 對於資料庫存取、觀念與 Entity Framework Core 也沒有經驗
  • JavaScript 應該功力不深

至於第三位程式設計師大約是在八月份招募進來,大約有超過八年以上的經驗,不過,最近10年的工作,大多是在前端開發,使用 Vue 開發框架,當然,JavaScript 有一定的經驗,不過,對於 .NET / C# 則是很早之前工作上用到的。

好了,就在 7月11日,陳少接收到公司總經理的訊息,詢問是否可以提前先完成已經成交的某上市公司案子,這個案子預計要能夠在 10月27日交付,並且所開發出來的產品,要能夠經過客戶的確認與驗收,更悲慘的是,這個產品案子要能夠存 SQL Server、Oracle、SQLite 三個資料庫系統,而且也需要包含一個 Windows Forms 的前台應用程式,透過 SQLite 資料庫做到離線與同步處理的能力。

結論

看到這裡,若你是陳少,你會怎麼解決這樣的問題

  • 要能夠使用新的工具與平台,打造出公司新一代的產品
  • 大約只有三個月的時間可以來支配
  • 相關要開發的程式設計師具備的經驗與經歷都不盡相同
  • 要開發該產品的領域知識 Domain-How 也還沒摸清楚
  • 這個新一代的產品,究竟要使用甚麼樣的開發技術
  • 所選定的技術,以現有人力,是否足夠呢
  • 對於所選定的技術架構,對於日後開發產品上又會有何影響

相信大家對 陳少 一定捏一把冷汗,他究竟會如何解決這些問題?反觀,若是你承接了這樣的工作,你又會怎麼處理。

最重要的是,這樣的運作模式決定之後,對於日後相關新系統的開發與人力支配,又會該如何成長,如何做到最佳經濟成本,獲得絕佳的效益。

而且,未來將會要做到超全端 Hyper Full Stack 的開發模式,讓一個工程師可以獨力完成 Web App的前後台系統、跨平台手機 App,這也是要納入思考的。

繼續觀賞第二部分

相關文章

Blazor實戰故事經驗分享 1 - 風起雲湧 如何從無到有建立Blazor團隊與採用全端開發方式設計出給上市企業使用的Web系統

Blazor實戰故事經驗分享 2 - 風雲再現 探究 Blazor 可以快速開發出來內部細節


 

2021年3月24日 星期三

平行處理、多執行緒、非同步設計等相關課程之 Visual Studio 2019 安裝說明

平行處理、多執行緒、非同步設計等相關課程之 Visual Studio 2019 安裝說明

在這篇文章中,將會說明對於要參加 .NET Go 教育訓練課程的時候,Visual Studio 2019 這個軟體的安裝步驟與內容

  • 打開 Visual Studio 2019 下載 網頁

    Visual Studio 2019 下載

  • 原則上,可以下載 [社群] 這個免費的版本,若你本身擁有 Visual Studio 其他付費版本的使用授權,可以依照你購買的使用者授權,下載 [Professional] 或者 [Enterprise] 版本

  • 點選你選擇的 Visual Studio 2019 版本的 [免費下載] 或者 [免費試用] 按鈕

  • 當安裝檔案下載完成之後,開啟下載的安裝檔案

  • 當 Visual Studio Installer 視窗出現之後,點選該視窗右下方的 [繼續] 按鈕

    Visual Studio Installer

  • 現在將會看到 Visual Studio 2019 安裝程式的工作負載頁次畫面

    Visual Studio 2019 安裝程式的工作負載頁次

  • 請勾選 [.NET 桌面開發] 之 工作負載 選項

    .NET 桌面開發

  • 請勾選 [.NET Core 跨平台開發] 之 工作負載 選項

    .NET Core 跨平台開發

  • 請勾選 [ASP.NET 與網頁程式開發] 之 工作負載 選項

    ASP.NET 與網頁程式開發

  • 在 Visual Studio 2019 安裝程式畫面右下方,點選 [安裝] 按鈕

  • Visual Studio 安裝程式對話窗將會顯示正在進行安裝軟體的進度

    Visual Studio 安裝程式對話窗

  • Visual Studio 安裝完成後,會顯示下圖,若此時你不想登入,可以點選 [不是現在,以後再說],若想要登入,你需要擁有 Micosoft 帳號 (例如 @Hotmail.com 或者 @outlook.com 帳號)

    登入 Visual Studio

  • 接下來需要設定你喜歡的色彩佈景主題,在這裡,可以選擇預設值,接著按下 [啟動 Visual Studio] 按鈕

    Visual Studio 色彩佈景主題

  • 現在若看到下面的畫面,則表示你的 Visual Studio 安裝完成了

    Visual Studio 2019 開始

 



Xamarin.Forms 之 Visual Studio 2019 完整安裝攻略說明

Xamarin.Forms 之 Visual Studio 2019 完整安裝攻略說明

在這篇文章中,將會說明對於要參加 .NET Go 教育訓練課程,且要學習 Xamarin.Forms 工具使用的課程,你的 Visual Studio 2019 這個軟體與電腦的需要按照底下安裝步驟與說明內容進行設定

確認與啟用虛擬化技術

  • 首先,若你的電腦安裝的不是 Windows 10 Professional 以上的版本,請重新安裝一台至少為 Windows 10 Profession 版本的作業系統

    若你的電腦為 家用版 Home Edition,請不要嘗試去做升級為 Professional 版本的工作,你需要重新安裝一台至少為 Windows 10 Profession 版本的作業系統,否則,請不要繼續底下的相關安裝設定工作

  • 請確認你的電腦 BIOS 或者 UEFI 有啟用虛擬化技術,這部分可以參考 Step-By-Step: Enabling Hyper-V for use on Windows 10 文章

  • 現在,可以繼續來進行底下的其他安裝與設定工作

啟動 Hyper-V

  • 一旦完成上面提到 [確認與啟用虛擬化技術] 檢查與設定工作,請進行開機

  • 作業系統開機完成後,打開 [工作管理員] > [效能] 標籤頁次

  • 從右下方將會看到 [模擬] 欄位將會顯示 [已啟用],表示這台電腦具備可以使用虛擬化的技術

  • 請先點選左下方的 [視窗] 圖示,接著點選 [齒輪] 圖示的設定選項,便會看到下圖畫面

    Windows 10 系統設定

  • 點選 [應用程式] 的圖示,緊接著會看到底下的 [應用程式與功能] 這個視窗

  • 請點選這個 [應用程式與功能] 內的 [程式和功能] 選項

  • 當 [程式和功能] 視窗出現之後,點選左邊的 [開啟或關閉 Windows 功能] 選項

  • 在 [Windows 功能] 視窗出現之後,勾選 [Hyper-V] 這個選項

  • 接著 勾選 [Windows Hypervisor 平台] 這個選項

  • 最後點選右下方的 [確定] 按鈕

  • 接著,你需要重新開機

安裝 Visual Studio 2019

  • 打開 Visual Studio 2019 下載 網頁

    Visual Studio 2019 下載

  • 原則上,可以下載 [社群] 這個免費的版本,若你本身擁有 Visual Studio 其他付費版本的使用授權,可以依照你購買的使用者授權,下載 [Professional] 或者 [Enterprise] 版本

  • 點選你選擇的 Visual Studio 2019 版本的 [免費下載] 或者 [免費試用] 按鈕

  • 當安裝檔案下載完成之後,開啟下載的安裝檔案

  • 當 Visual Studio Installer 視窗出現之後,點選該視窗右下方的 [繼續] 按鈕

    Visual Studio Installer

  • 現在將會看到 Visual Studio 2019 安裝程式的工作負載頁次畫面

     Visual Studio 2019 安裝程式的工作負載頁次

  • 請勾選 [使用 .NET 進行行動開發] 之 工作負載 選項

    使用 .NET 進行行動開發

  • 請勾選 [.NET Core 跨平台開發] 之 工作負載 選項

    .NET Core 跨平台開發

    選擇這個是某些課程將會帶領大家進行透過 Xamarin.Forms 應用程式,可以存取後端 Web API 教學與練習

  • 在 Visual Studio 2019 安裝程式畫面右下方,點選 [安裝] 按鈕

  • Visual Studio 安裝程式對話窗將會顯示正在進行安裝軟體的進度

    Visual Studio 安裝程式對話窗

  • Visual Studio 安裝完成後,會顯示下圖,若此時你不想登入,可以點選 [不是現在,以後再說],若想要登入,你需要擁有 Micosoft 帳號 (例如 @Hotmail.com 或者 @outlook.com 帳號)

    登入 Visual Studio

  • 接下來需要設定你喜歡的色彩佈景主題,在這裡,可以選擇預設值,接著按下 [啟動 Visual Studio] 按鈕

    Visual Studio 色彩佈景主題

  • 現在若看到下面的畫面,則表示你的 Visual Studio 安裝完成了

    Visual Studio 2019 開始

進行 Android 開發環境的設定

  • 在 Visual Studio 2019 對話窗的右下方,點選 [建立新的專案] 按鈕

  • 現在會看到 [建立新專案] 對話窗

  • 在上方文字搜尋盒內輸入 Xamarin 文字,將會看到所有與 Xamarin 有關的專案範本都會顯示出來

  • 請選擇 [行動應用程式 (Xamarin.Forms)] 選項

  • 點選 [下一步] 按鈕

    Visual Studio 2019 建立新專案

  • 在 [設定新的專案] 對話窗內

    • 於 [專案名稱] 欄位內,輸入要建立的專案名稱
    • 這裡輸入 MyFirstForms (當然,你可以輸入任何的專案名稱)

    請注意,檔案名稱、路徑位置名稱,不要有中文字或者特殊符號文字

    路徑位置請不要設定到你的桌面上

    建議在你電腦的根目錄下,建立一個練習用的目錄,將這裡的路徑位置指向剛剛建立的目錄

    Visual Studio 2019 設定新的專案

  • 若有看到 [Windows 安全性警訊] 視窗出現,請點選 [允許存取] 按鈕

    Windows 安全性警訊

  • 此時將會看到 [新增行動應用程式] 對話窗出現

  • 請選擇 [空白] 這個選項

  • 點選右下方的 [建立] 按鈕

    Visual Studio 2019 新增行動應用程式

  • 稍待一段時間,這個 Xamarin.Forms 專案將會建立完成

    Visual Studio 2019 Xamarin.Forms 專案將會建立完成

  • 原則上,對於第一次安裝好且第一次建立完成 Xamarin.Forms 的專案,應該會看到底下的 [Android SDK - 接受授權] 這個對話窗

  • 請點選右下方的 [接受] 按鈕

    Visual Studio 2019 Android SDK - 接受授權

    Visual Studio 2019 Android SDK - 接受授權

  • 若沒有看到上面的視窗,但是卻在 [錯誤清單] 視窗內看到底下的錯誤訊息,請使用滑鼠雙擊這個訊息,就會看到上述的視窗。

    Visual Studio 2019 錯誤清單 缺少 Android SDK

  • 當 Android SDK 安裝與更新完成後

  • 點選 Visual Studio 2019 功能表 [工具] > [Android] > [Android SDK 管理員]

    Visual Studio 2019 功能表 工具 Android

  • 此時,將會看到 Android SDK 及工具 視窗出現

  • 在這裡將會看到這台電腦所設定的 Android SDK 有哪些版本與安裝了那些工具;若有尚未更新到最新版本的訊息出現,可以在這裡進行更新操作

    • 點選 [平台] 標籤頁次,查看有安裝那些 Android SDK 版本
    • 點選 [工具] 標籤頁次,查看有安裝那些 工具

    Visual Studio 2019 Android SDK 及工具 平台

    Visual Studio 2019 Android SDK 及工具 工具

  • 點選 Visual Studio 2019 功能表 [工具] > [Android] > [Android 裝置管理員]

  • 現在將會出現 Android 開發時候可以使用的模擬器

    Visual Studio 2019 Android 裝置管理員

  • 請點選右上方的 [新增] 按鈕,便可以看到底下的畫面

  • 在這個 [新增裝置] 對話窗內,可以設定這個模擬器相關特性

  • 在這裡將會先使用預設值,請點選右下方的 [建立] 按鈕

    Visual Studio 2019 Android 新增裝置 模擬器

  • 由於是第一次使用,所以將會顯示 [接受授權] 對話窗,請點選右下方的 [接受] 按鈕

    Visual Studio 2019 Android 新增裝置 接受授權

  • 等候一些時間,將會線上下載模擬器,並且進行設定,一旦完成後,就會看到底下畫面

  • 請點選 [啟動] 按鈕,啟動這個模擬器

    Visual Studio 2019 Android 模擬器 啟動

  • 也是因為第一次啟動,需要花費比較多的時間,然後就會看到如下圖畫面,Android 模擬器已經成功啟動了。

    Visual Studio 2019 Android 模擬器已經成功啟動了

  • 最後,要來實際在 Android 環境中,執行一個 Xamarin.Forms 專案程式

  • 請在功能表的下方,使用下拉選單 UI 來切換預設專案為 [MyFirstForms.Android]

  • 緊接著在剛剛下拉選單按鈕旁,會看到一個綠色三角形的按鈕,其顯示要在哪個 Android 裝置下來進行執行與除錯

  • 請點選這個綠色三角形按鈕,以便開始進行建置、除錯這個 Android 專案

    開始進行建置、除錯這個 Android 專案

  • 正常情況,將會看到這個 Xamarin.Forms 範例專案成功的在剛剛建立的模擬器上啟動與執行起來

  • 到了這個步驟,你可以確定這件事情,你的電腦已經具備可以開發 Xamarin.Forms 跨平台專案的能力

    剛剛建立的模擬器上啟動與執行 Xamarin.Forms 範例專案 起來

    若在最後的步驟遇到問題,可以關閉模擬器,關閉 Visual Studio ,接著,再重新打開 Visual Studio,開啟剛剛建立的專案,啟動模擬器,重新再執行一次