原创 wcf入門教程之在.net471中創建一個使用tcp網絡協議的wcf控制檯開發測試環境

wcf已經發行了很久的時間,可能還有需要入門wcf的朋友,我這裏專門寫了一個教程來分享給大家!如上圖所示,新建一個WCF服務庫項目,打開VS->新建項目->WCF->WCF服務庫,名字我們就使用默認的WcfServiceLibrary1,

原创 c#中IAsyncEnumerable泛型類型轉換爲ICollection泛型類型

有一個如下IAsyncEnumerable泛型類型的對象IAsyncEnumerable<BlogComment> blogComments = await _blogCommentService.GetCommentsByPostId(

原创 開發自己的c# linq擴展Lambda表達式函數,WhereAsync

我這幾天使用EF Core開發網站的時候,突然想試着開發自己的Linq擴展表達式,因爲EF Core對IQueryable泛型類型,有很多異步表達式的支持。比如,在項目中只要添加了對EF Core命名空間的using支持,那麼IQuery

原创 c#Linq異步async和Task函數管道流

之前我在研究async和Task時發現,使用async和Task的函數會打破函數管道,比如model.Where(... ...).Select(... ...);但是我發現一種繼續使用異步函數管道的方法。比如我自己給IEnumerabl

原创 asp.net core mvc Area區域跳轉

轉入Areareturn RedirectToAction("action", "controller", new { area = "area" });轉出到主Areareturn RedirectToAction("action",

原创 c#5 async Task異步Socket服務端接收數據

c#5有的新特性async異步關鍵字配合Task使用。異步Task將很大的提高程序性能,所以這次我來分享一段採用async關鍵字和Task的socket服務端代碼using System; using System.Collections

原创 Prism入門系列教程-第1天創建WPF示例

打開VS,選擇新建項目,選擇Visual C#->新建項目->WPF應用,名稱輸入:CreatePrismSample,點擊確定,開始創建。創建成功後,選擇VS菜單項,工具->NuGet包管理器->管理解決方案的NuGet程序包選擇Pri

原创 c#中IEnumerable泛型類型轉換爲ICollection泛型類型

比如有一個如下IEnumerable類型名爲post的對象IEnumerable<string> post = new List{ "hello", "world" };將IEnumerable類型轉換爲ICollection類型有如下方

原创 Asp.Net Core MVC利用視圖組件和JQuery動態加載列表

首先我們先創建視圖組件的視圖模型,在項目根目錄下面創建ViewModels文件夾,該文件夾爲項目的視圖模型文件夾,然後在視圖模型文件夾(ViewModels)下面創建PostListModel模型類,代碼內容爲 public cla

原创 關於asp.net core數據安全的思考

使用asp.net core進行網站開發的時候,有很多可以選擇的前端和後端安全措施,但是有一個要點也需要慎重考慮。 一個要點是網站應該都所有的post和get請求進行必要的權限驗證,甚至是重複的多次驗證。 很多網站因爲沒有對post和ge

原创 展望asp.net core Blazor項目c#編譯爲原生WebAssembly

Blazor項目之前爲微軟員工Steve Sanderson創建,現在由微軟的asp.net團隊進行研究測試和維護,當前的Blazor項目github地址爲https://github.com/aspnet/Blazor特別提示:Blaz

原创 c#拋出程序權限不足或者未授權異常

使用InvalidCredentialException和AuthenticationException 異常,做爲在程序權限不足和未授權時,拋出的異

原创 自己對Azure Active Directory B2C用戶授權的一些拙見

如果你在開發一個論壇模塊,有版主、普通用戶。普通的方法是通過B2C原生的羣組來進行授權。但是有時候需要一些特殊的角色身份,比如封禁,你可以建立一個封禁羣組,也可以自己實現一個用戶角色身份模型,通過自己創建的用戶角色身份模塊,來擴展b2c的

原创 C#委託Func函數指針和Lambda表達式

最近在完善自己的項目,使用Func<T>擴展自己的底層函數。在C#中委託Action<T>是無返回值的,Func<T>是有返回值的。一個Func<int, string>類型的參數,我們可以使用 string GetValue(int)這

原创 Prism入門系列教程-第2天WPF使用Region

如上圖所示,新建一個WPF應用,名稱爲UseRegion使用NuGet包管理器,安裝Prism.Unity和Prism.Wpf最新的版本到剛纔創建的UseRegion項目。在項目根目錄新建Views文件夾,並將MainWindow.xam