demoshop

demo, trying to be the best_

情境解說

在資料庫中的資料表欄位會依據資料面來設計,但往往會與「顯示」「新增」「編輯」時所需的欄位不同,可能有多也可能有少,得過且過的開發人員會一股腦的都用 DB Model 來傳遞資料,但這是一種浪費也可能造成資安問題,依據我們開發 MVC 的習慣會建立稱為 View Model 的傳遞物件,本篇文章就來示範此情境在 ASP.NET MVC 與 Razor Pages 我們會怎麼做。

為了讓範例可以達到不用解釋的目的,我們將以會員註冊這大家都寫過的東西來做範例。

 身為講者與愛分享的我,一直以來都有這樣的需求,之前是使用「擴充套件」來滿足,現在內建功能已經可以辦到了,來看看如何啟用吧。

首先我是有在玩遊戲的,所以有安裝雷電模擬器,而這模擬器會在開啟的時候提示玩家是否有開啟虛擬化技術(VT),最近新買電腦,第一次開啟雷電模擬器時看到了 VT 沒有正確啟用的警告,上網搜尋了許久看了一堆問答,最後終於在官方文件找到調整方式,也更進一步的找到 GUI 的設定方式,所以特別記錄一下。

從 .NET Framework 時代的 ASP.NET MVC 就有內建防範 CSRF 的機制,這機制在 MVC 架構下開發者可自由的選擇啟用或關閉,但是 .NET Core 發行時新推出的 RazorPage 則是預設開啟了 CSRF 防範機制,現在的網路環境越來越危險了預設開啟是非常正確的選擇,但是這樣的預設啟用對於初級的開發者來說就會很挫折,為什麼一個 AJAX 都寫不好呢。

雖然說官方文件都有,但開發人員不看文件的比例和不寫文件差不多,所以我還是寫一篇來記錄一下吧

 

在 RazorPage 中一個頁面(功能)需要的是多個集合的物件那就這一頁的 PageModel 自己建立就好,回想一下寫 MVC 的時候是不是會有一堆只用一次的 ViewModel ,一個物件只使用一次不是問題,問題在於很多功能很類似的 ViewModel 命名上是相當困難的,為了要明確的識別每一個 ViewModel 所以命名就會越來越長,到最後就難以維護。

RazorPage 資料傳遞的類別都會包在自己身上,對於前後端需要並行開發的專案來說會比 MVC 更簡單一點,開發過程中的調整也都不用擔心會有人共用,造成改A錯B的窘境,直接改就可以也再次呼應了上一篇講的,如果你的專案在開發的時候還不知道最後到底要做什麼,還沒有規劃完善那 RazorPage 會是你更好的選擇。

對於 RazorPage 開發有興趣的朋友可以參考 SkillTree 的課程😎

RazorPage 與 MVC 兩者設計的差異在於 MVC 完成一個功能會至少產生 Controller , View , Model(ViewModel),而 RazorPage 則是就只有自己本體一頁,並不是說檔案少就比較好,檔案多就比較差,這就和遵循物件導向設計模式的檔案數一定會多過大無畏開發的檔案數,但我們是整天接觸實務的開發者,如果專案還沒長大就把架構想的太大是會造成開發過程複雜化

RazorPage 的設計很適合敏捷開發與人力不足或經常流動的公司,因為每一個功能都是相對獨立的,抽換簡單,可快速面對市場變化。快速交付持續改善,是現在網路世界的不二法門!

對於 RazorPage 開發有興趣的朋友可以參考 SkillTree 的課程😎

在 .NET Core 的環境中開發 Web Application 的選擇分為 RazorPage 和 MVC 兩種模式,技術上這兩種模式是相輔相成的,但實務上為了維護方便開發時還是會選擇一種作為主力,等到合適的情境時才會混者用。那開發者一開始建立專案的時候到底該選 RazorPage 還是 MVC 呢?在我教 RazorPage 課程時經常聽到這樣的問題,所以就想來寫個系列文說明我的經驗與我的主觀建議,預期會有多篇文章,從各種面向下去比較探討,但不會牽扯到實做的部分,畢竟身為一個開發人員是不會被框架限制的對吧😎

上一篇文章介紹到了好用的 AutoHistory 受到不少人的好評(大家都喜歡省時間)而該篇文章的最後提到了擴充記錄欄位的方式,但留下了一個關鍵 Code ,有不少讀者反應不知道怎麼用,所以這篇文章就來補齊這一部份。

部分系統對於歷程是很在乎的,Before After 的記錄往往是抓鬼的好幫手,以前我們多多少少都會自行開發類似的 Log 機制,不過如果你的需求沒有很特別,倒是可以試試看這套 AutoHistory 簡單的完成這需求。

demo 已經改用 新版 Edge 很久了,在這裡分享一個大多數人應該用不到的技巧,在 Edge 中預設的搜尋引擎是 Bing 我也一直是使用 Bing 搜尋,但大家都了解 Bing 有時候不是令人很滿意,所以需要切換到 Google 去搜,但如果你每次切換搜尋都要

input google.com enter 再輸入 keyword 就顯的有點麻煩,這篇就是介紹快速切換搜尋引擎的方法。

上週的 SkillTree MVC 課程進度來到了 Area 但我的 Visual Studio 2019 卻找不到建立的選項,後來經由全班學員一起測試後才知道原來在 16.4 版以後,換地方啦,所以特別寫篇文記錄一下,免得忘記。