ASP.NET Blazor 怎麼處裡狀態?
關於狀態 其實原則上來說,對於現代的應用程式開發、如果相容於 Cloud 環境/Microservices 等環境的話,您根本不應該將狀態保存在應用程式自身,但這不代表應用程式不處理狀態!注意囉,不管哪一種應用程式,都有(自身的狀態/User 使用者的狀態)需要被保存,最典型的來說(如:login Security)我怎麼知道你 User 目前是否有登入到系統?這是個典型的例子,但即便如此,不代表應用程式要將狀態資訊保存在自身的 Context 環境中,因為應用程式可能所處在一個隨時可橫向擴展 Scale-Out 的環境裡,應用程式自身的 Context 隨時會 Scale-Out/Restart,甚至應用程式自身也不會知道自己會被執行在哪一台(主機/環境)裡。 使用 Redis 使用 Redis 來處理狀態是一個最佳的選擇,它的高效能讓它不僅僅是適合用在分散式運算環境、Cloud/Microservices 等環境中,當然也是 ASP.NET Core 或 Blazor 類型應用程式處裡狀態的首選。 在 ASP.NET MVC 5/ASP.NET Blazor/.NET Core 環境下,同樣可使用 StackExchange.Redis 套件可以使用,程式的撰寫方式也出乎沒有什麼不同,本篇就不再詳述。 一般來說,可以使用如方式; 可使用如下程式碼進行(操作/存取)Redis: 使用 ASP.NET Core 內建的 MemoryCache 在 Blazor 的環境下其實就等同於 ASP.NET Core 的環境,所以同樣具備 MemoryCache,使用方式就是在 Startup 的 ConfigureServices() 裡加入該 Middleware 即可!如下: 不過,即便你要在 Blazor 的應用程式下使用 Redis 當作 SessionState 的保存的儲存體,你也是要開啟 Session 的功能才可以,Blazor 是基於 ASP.NET Core 的應用程式,所以方式與 ASP.NET Core 完全相同,只是 Session 的起用必須同時啟用分散式快取,如下: 使用 MemoryCache 的方式如下,這邊以一個 Controller 為例: 我們可以拿 Blazor 預設樣板中的 Cou...