Posted by Anuraj on Friday, December 2, 2016 Reading time :2 minutes
AutoMapper ASP.NET Core MVC
This post is about using Automapper in ASP.NET Core project. AutoMapper is an object-object mapper which allows you to solve the problem of manually mapping each property of a class with the same properties of another class. Before AutoMapper, if you want to map properties of one object to another, you have manually assign each of the property objects, it will hard and error-prone if an object got lot of properties. If you are a MVC developer most of the time you manually map model objects with viewmodel objects. AutoMapper helps to do it in clean and readable way. For using AutoMapper, first you need to set the mapping classes in AutoMapper, you can use CreateMap method for this. To for map classes, you can use Map method.
Posted by Anuraj on Thursday, December 1, 2016 Reading time :1 minute
dotnet core FluentAssertions xUnit
This post is about using FluentAssertions in xUnit unit tests. Fluent Assertions is a set of .NET extension methods that allow you to more naturally specify the expected outcome of a TDD or BDD-style test. It has better support for exceptions and some other features that improves readability and makes it easier to write unit tests. In this post I am using ASPNET Yo man generator to create unit tests. And I have added FluentAssertions reference via project.json file.
Posted by Anuraj on Tuesday, November 29, 2016 Reading time :1 minute
ASP.NET Core .NET Core dotnet
This post is about configuring the output filename of a .NET Core application. By default compiling a .NET Core application, the output filename will be the project directory name. So if you are compiling the application from a directory abc, the output dll name will be abc.dll. This can cause an issue when using CI where you may not control the folder structure in which the command is executed. This can be fixed using buildOptions configuration in the project.json file.
Posted by Anuraj on Monday, November 14, 2016 Reading time :1 minute
ASP.NET Core Redis Cache Session
This post is about Configuring Redis for ASP.NET Core Session Store. Redis is an open source (BSD licensed), in-memory data structure store, used as database, cache and message broker. It supports data structures such as strings, hashes, lists, sets, sorted sets with range queries. Redis works with an in-memory dataset. it also supports persisting the dataset to disk. Moreover, It provides master-slave asynchronous replication. Redis is not officially supported on windows. However, the Microsoft Open Tech group develops and maintains Windows port targeting Win64 available here. You can install redis using chocolatey package manager, using choco install redis-64 command. Once you install redis you can run redis-server command to start the redis server.
Posted by Anuraj on Wednesday, November 9, 2016 Reading time :2 minutes
Posted by Anuraj on Sunday, November 6, 2016 Reading time :1 minute
C# ASP.NET Core Unit Testing Code Coverage .NET Core
This post is about getting code coverage of .NET Core using Opencover. This is an update post, long back I wrote a post on code coverage using ASP.NET Core in RC days. This post is using dotnet command and 1.0 version. Opencover is a code coverage tool for .NET 2 and above, support for 32 and 64 processes with both branch and sequence points; roots proudly based in PartCover - https://github.com/OpenCover/opencover/
Posted by Anuraj on Friday, October 28, 2016 Reading time :1 minute
C# ASP.NET Core Middleware filter Middleware
This post is about a new feature in ASP.NET MVC, Middleware filter. Middleware typically sits in the global request handling pipeline. If you want to apply middleware to a specific controller or action method, you can use this feature. This feature only available with ASP.NET Core MVC 1.1. Long back I created a middleware (HTML Minification Middleware), which helps to minify generated HTML of an action. After few days I got a request to implement configuration options, which helps to exclude certain actions from minification. Now I can use Middleware filters instead of configuring the options.