Skip to main content

Posts

.Net Core HttpClient JSON Extension Methods Using System.Net.Http.Json Package

.Net Core 3.0 onwards Microsoft brought up a new package called System.Net.Http.Json. This new package provides JSON extension methods for HttpClient. These JSON extension methods will have a prebuild mechanism for serializing or deserializing response data or payload of HttpClient call. System.Net.Http.Json extension methods that are provided to HttpClient, few of them are mentioned below. GetFromJsonAsync PostAsJsonAsync PutAsJsonAsync ReadFromJsonAsync In this article, we understand System.Net.Http.Json package by implementing the HttpClient samples by with and without JSON extension methods and compare them. Create A .Net Core Web API Sample Application: Let's create a .Net Core sample Web API application, from this application we will consume another Web API by implementing HttpClient calls. We can create a Web API sample application using IDE like Visual Studio 2019(Supports .Net Core 3.0 plus) or  Visual Studio Code . Create A Typed Client: In .Net Core using the Http

A Brief Tour On .NET Core View Components

View Components are small pieces or chunks of a reusable block of code.   A View Component is made of the class(Component Class) and a view that looks like Controller. But View Component can't be triggered or initialized by a user request like MVC Controller, it will be invoked from code manually. A View or Razor can be completely or partially build using View Components. Create A .Net Core MVC Sample: Let's understand View Components by doing simple examples on it. So let's create a sample .Net Core MVC application(another choice to use like Razor Pages sample application). Use either Visual Studio 2019(IDE supports .Net Core 3.0 plus version) or Visual Studio Code . Implement The View Component Class: View Component Class is the logic container where we can prepare data that need to be bind to view on the render. Create a folder like ViewComponents where will create all our application components. A POCO class that inherits Microsoft.AspNetCore.Mvc.ViewComponent can be

Split HTML And C# Code In Blazor Using Either Partial Class Or ComponentBase Class

By default Blazor component file consists of HTML code and C# code under the single file. For better coding standards we can split HTML code and C# code to separate files using concepts like: Partial Class ComponentBase Class Create Sample Blazor Server Application: Blazor Single Page Application comes with two types of templates like  (1) Blazor Server,  (2) Blazor Web Assembly . Let's create a Blazor Server templated sample application to understand to split the *.razor(Blazor file extension) files.  Using Visual Studio 2019 using a rich user interface we can create Blazor Templated application very easily. But for this sample, I'm using .Net Core CLI(Command Line Interface) with Visual Studio Code IDE.   Click to know how to use Visual Studio Code Editor for .Net Core applications . .Net Core Blazor Server CLI Command:- dotnet new BlazorServer -n Your_Application_Name Blazor project preview:- Open a command prompt whose path needs to be pointed to the  Startup.cs file

Dynamic Data Binding Of Email Body Template Using .NET Core Razor Library

In general, there are two most common approaches to build an email template like: System.Text.StringBuilder using this we generate template by appending n-number of strings. This approach is hard to maintain, can not do code debug, etc. Another approach is like storing the entire email template in the database , where the template contains a placeholder to be replaced with dynamic data. Compare to the StringBuilder approach, the preferring database will make code Maintainance easy. But in this approach also debug code is hard. What Kind Of Solution Razor Library Provides?: Razor Library is a .Net Standard Library that has an inbuild razor engine where we can create Razor Page, MVC Views. It works as similar to MVC Views or Razor Pages where generate pages with Model binding. So by using the Razor Library, we need to create a custom provider Razor Engine where we can fetch the Html of the page render using Model binding. So in this approach, we create Mvc View or Razor Page (.cshtml

.Net Core Protection Using Antiforgery Token

AntiForgeryToken is a security token generated by the .Net Core web application, which is used to validate a post request to guard against Cross-Site Request. Automatic AntiforgeryToken Generation: AntiforgeryToken used for validating the post request. So if we access an MVC or RazorPages view which contains the form element with an attribute  'method="post"' then the view gets rendered with an automatic generated AntiforgertyToken value, which gets injected into the form as hidden input field. Let's test automatic AntiforgeryToken generation as follow: Controllers/TestController.cs: using Microsoft.AspNetCore.Mvc; namespace AntiforgeryTokeSample.Mvc.Controllers { public class TestController : Controller { public IActionResult Index() { return View(); } } } Let's create a view for the above index action method as follows: Views/Test/Index.cshtml: <form method="POST"> <button type="sub

.Net Core Session Management

The Session helps to store user data in the application memory. Since the user data stores on the application it quick and fast to access. .Net Core Session data stored application using the cache, this cache can be either In-Memory or Distributed Cache.  Session Work-flow: On the user request the application from the browser, the server will create a session with an id called Session-Id.  This Session-Id will be given to the user in response by storing it in the cookie. So on every next request, this cookie will reach to the application which contains Session-Id.  An application uses the SessionId as the main key and stores all user data in the application cache. So by receiving a cookie from a client with Session-Id application will fetch the session stored data as per request.  This cookie session is browser-specific it is not sharable between browsers.  We can set session time out in our application, where after the time session data will get automatically cleared. Create A Sample