More

    Programming

    傳遞資訊到前端的通用型服務 (.NET MVC 5 – Ch.11)

    到目前為止,已經介紹了很多屬於基礎建設的部份。從核心的DI用Autofac開始,再到那裡都使用的到的Log服務。再來介紹了ViewModel和如何透過框架來讓對應變得更加簡單。最後介紹了透過Repository 和 Unit of work,使得實際的DAL層級能夠被abstraction出來。 在這一篇,將會介紹比較偏向Controller層級的內容,也就是每一個application一定會使用到的:如何提供一種一致性的服務用於從Server傳遞訊息到客戶端? 同步發表於我的部落格:http://alantsai2007.blogspot.tw/2014/10/BuildYourOwnApplicationFrameworkOnMvc-11-alertservice.html 如何從後端傳遞訊息到前端 所謂傳遞訊息到前端的意思是,通常來說每當一個功能執行完成之後,一定會提供一些feedback給user。例如,新增一筆資料成功,系統可能會用一個alert訊息來顯示「新增成功」。 因為這個功能非常通用,因此Mvc裡面有一個特殊的儲存空間叫做TempData。有別於ViewData只能保存一次的request值到View裡面,TempData 底層也是用Session來儲存,但是有別於Session在,當TempData的值被讀過,那一筆資料就會被清掉。 因此,TempData非常適合用來存這一種一次性的feedback訊息,顯示完之後就不需要了。 使用TempData的難處 TempData很適合存一次性資訊,但是實際在開發的時候不是那麼方便。在一個多人團隊開發的情況可能有以下幾個情況: 在沒有講好的情況下,每個人使用的TempDataKey不一樣:開發者A可能使用message作為key,但是開發者B可能使用messages。要設定錯誤訊息的時候不方便:Action裡面設定TempData其實不是很好用。 因此這一次我們會建制一個AlertService來提供一個好用的傳遞訊息的方式。 AlertService功能概念 基本上我們會先建立一個用來封轉要顯示在前端的訊息ViewModel。這個ViewModel只有兩個Property,一個是Message:代表要顯示的訊息,還有一個是 AlertClass:也就是這個訊息要顯示的樣式。 為了能夠讓設定要傳遞的訊息更加簡單,將會建立一個AlertDecoratorActionResult,這個特別的ActionResult只是讓設定訊息更加的方便。同時,為了讓使用這個...

    加上 Unit of Work,抽離Entity Framework的依賴就完美了 (.NET MVC 5 Ch.10)

    在上一篇介紹完了Repository Pattern,我們能夠抽離實際在做儲存的動作,讓我們在替換實際儲存動作更加容易。 但是光靠一個Repository Pattern其實還是有些缺陷,因此,通常來說會實作Unit of Work pattern搭配Repository pattern達到一個比較完美的狀態。 同步發表於我的部落格:http://alantsai2007.blogspot.tw/2014/10/BuildYourOwnApplicationFrameworkOnMvc-10-UnitOfWork.html Repository...

    用 Repository Pattern 抽離對 Entity Framework 的依賴 (.NET MVC 5 Ch.9)

    在上一篇介紹完了如何讓ViewModel和Entity之間的轉換透過AutoMapper變的更簡單,然後透過框架讓設定ViewModel和Entity之間的對應關係變的容易。 在這一篇,將會看Data Access Layer (DAL)的部份,也就是儲存資料層的部份。 同步發表於我的部落格:http://alantsai2007.blogspot.tw/2014/10/BuildYourOwnApplicationFrameworkOnMvc-09-RepositoryPattern.html Data Acce Layer (DAL) 不管任何大小的軟體,通常都會需要儲存資料。而這個儲存資料最常見的就是儲存到資料庫裡面。以Asp...

    asp.net core系列70 即時通迅-WebSocket+Redis發布訂閱 

    一.概述   在asp.net core 中可以用WebSocket 或asp.net core SignalR來開發即時通迅。在項目中由於開發前後端分離,對於SignalR前端技術人員不想依賴juqery和SignalR.js包,後端確定使用WebSocket 來實現。對於asp.net...

    asp.net core 系列 71 Web架構分層指南

    一.概述   本章Web架構分層指南,參考了“Microsoft應用程式體系結構指南”(該書是在2009年出版的,當時出版是為了幫助開發人員和架構師更快速,更低風險地使用Microsoft平台和.NET Framework設計和構建有效,高品質的應用程式)。雖然已過去十年了,技術架構已更新(如流行的DDD/CQRS模式,微服務,容器),但web分層思想還是一樣可取,下面是一個“傳統N分層設計”架構圖,該架構在2010年左右是最流行的,包括了表現層presentation,服務層services,業務層business,數據訪問層data,橫切關注點cross,如下所示:   對比傳統多層或三層.net web架構,下圖是當前流行的.net web微服務架構,在web程式分層之上還包含了容器,web api網關,各服務對應的數據存儲(sqlserver,redis,mongoDB),web程式有web api並結合應用了DDDCQRS分層模式,以及系統各種中間件。   下圖是一個訂單微服務站點,包含了簡化的cqrs分層,藍色長方格是表示cqrs分層的職責,包括了查詢 Queries...

    .Net Core Project 從零開始 — Miniprofiler record Dapper SQL Statement

    繼上次分享的.Net Core Project 從零開始 — Miniprofiler針對application進行效能監控,這次要使用Miniprofiler套件將Dapper execute...

    .Net Core Project 從零開始 — Miniprofiler針對application進行效能監控

    在專案開發階段和模擬測試時application的效能如何常常被忽略掉,在開發或是測試環境上要是能看到目前運作的狀況、執行的效率與執行時間多長,是非常重要的,如果你的目標是要做好一個穩定的系統,絕對不能忽略效能這件事。 這邊就要在.Net core 的Project 使用MiniProfiler這個套件來做application的效能監控。 Step1:首先請使用NuGet 再來查詢:MiniProfiler.AspNetCore.Mvc 接著將它安裝 Step2: 在Startup.cs的ConfigureServices方法中,註冊MiniProfiler services.AddMiniProfiler(); Step3:在Startup.cs的Configure方法中,加入...

    .Net Core Project 從零開始 — Create Web API with Swagger

    在介接上提供Web API給外部其他系統使用是很常見的,通常會搭配Swagger 套件來使用,一方面有Swagger UI 清楚簡潔的畫面方便測試使用,另一方面會產生Swagger Json簡易規格文件。 Step 1...

    .Net Core Project 從零開始 — 認識與實作Filter

    我想在專案上目前頁面再查看前增加一個權限登入的驗證如果沒登入就導頁至登入頁面,但又不想在每個Action都增加一個權限驗證的事件,我想在更有彈性且不想寫這麼多Code,那該怎麼做呢? 可以試著使用Filter的特性 說明一下,Filter 在.NET Core裡有五種: 1.Authorization filters: 在生命週期裡會最先執行,用來判斷使用者是否已針對要求取得授權。 2.Resource filters:...

    Recent Articles

    Stay on op - Ge the daily news in your inbox

    spot_img