August 15th, 2016

Generalize a method to read any master table with C# and Dapper

On a web page or application form, it is common to have different master data like Country, State…etc. available in dropdownlist, listbox or any other control. It is needed to read all master data from database and bind to proper controls. This post explains different ways to read master tables with C# and Dapper.

August 15th, 2016

ASP.NET Core Identity: Allow Login with either Email or Username

Do you want to allow user to login with either Username or Email address? ASP.NET Identity uses Username for Signin verification and In default Core template, Email is used as Username. In this post, we will change ASP.NET Core Identity setup to allow both Username and Email on login.

Assumptions:
1. Username is unique for each user. It is either input by user or generated by application on registration.
2. No @ symbol allowed in Username.

July 17th, 2016

ASP.NET Core MVC: Enums with Select TagHelper

In this post, we will see how to use select tag helper in ASP.NET Core MVC and how to bind select tag helper to model data or enum values. The following environment is used for this post:

ASP.NET Core 1.0.1
Dapper 1.50.2
Visual Studio 2015 update 3

For the demo, let us assume we have following Department enum

July 17th, 2016

PostgreSQL Enum, C# and Dapper

Error: column "Gender" is of type enum but expression is of type text.

Are you getting this error when you are using enum datatype in PostgreSQL database? This blog post explains how to fix the error with C# and Dapper. The following environment is used for this post:

July 16th, 2016

ASP.NET Core Identity: Add Roles on Application Startup

In ASP.NET Core application, you want to seed roles and users in the database. This post explains how to add Roles on application startup using ASP.NET Core Identity. It is written in following environment:

ASP.NET Core 1.0.1
Postgresql 9.5.4 database
Npgsql 3.1.9
Dapper 1.50.2
Visual Studio 2015 update 3
Identity.Dapper

July 10th, 2016

JavaScript Promises: Understanding Error Handling with Example

Promises are an alternative to callbacks for delivering the results of an asynchronous computation. All modern browsers have native support for Promises in JavaScript. In this post, we will see how error handler works with JavaScript chain promises. Before we get started, let’s see how to create a promise:

July 7th, 2016

Troubleshooting Docker Issues on Hyper-V in Windows 10

Recently, I decided to setup Docker on my Windows 10 machine and saw two options available:

Docker for Windows
Docker Toolbox

Docker for Windows looks more promising (but it is currently in public beta). It runs as a native Windows application and uses Hyper-V to virtualize the Docker Engine environment and Linux kernel-specific features for the Docker daemon.

July 3rd, 2016

Git Commands: Step By Step Guide (Part 2)

In this tutorial, we will go through Git commands related to Branching and Merging. Branches are used to develop features isolated from each other. It represents an independent line of development. The master branch is the “default” branch when you create a repository. Use other branches for development and merge them back to the master branch upon completion.
Before getting started, if you are beginner, I highly recommend to read the previous post which covers the basic commands:
Git Commands: Step By Step Guide (Part 1)
The following video covers to create a new branch and merge it back.

July 3rd, 2016

Git Commands: Step By Step Guide (Part 1)

In this tutorial, we will go through basic Git commands step by step and see how to use in the project. Also, we will put the code in the cloud using GitHub. It is assumed Git is already installed and configured on your machine. I am using Windows 10 for this post, but the same Git commands can be applied on Linux/Ubuntu.

April 10th, 2016

Visual Studio Code: Setting Environment Variable for Tasks

Visual Studio Code (VSCode) is a lightweight, open-source code editor and available on Linux, Mac OSX, and Windows. One of the key features of Visual Studio Code is its great debugging support for Node.js (JavaScript and TypeScript) and another feature is to run Tasks(Grunt, Gulp, MSBuild…etc.) from the IDE. If you are new to VSCode, I would recommend to see following video which shows how to debug Node.js app, put break-point and use watch window, use environment variable in Visual Studio Code editor:

March 27th, 2016

MongoDB Query: $elemMatch vs. Dot Notation

In MongoDB query, Dot notation is to match by specific fields in an embedded document. When the field holds an array of embedded documents, then to match the field, concatenate the name of the field that contains the array, with a dot (.) and the name of the field in the embedded document.

{ <array field name>.<embedded document field> : <value> }

To specify multiple criteria on an array of embedded documents such that AT LEAST ONE embedded document satisfies all the specified criteria, $elemMatch operator is used.

{ <array field name>: { $elemMatch: { <query1>, <query2>, ... } } }

Let us take an example to understand it. Consider schoolinfo collection includes following documents

March 22nd, 2016

How to display SSRS Report in ASP.NET MVC Application

Today, we will explain how to show SSRS reports in ASP.NET MVC application. Suppose you already created awesome SSRS reports and want to use MVC as Report viewing application. Here is your solution.
Open existing application or create new MVC application. You can install reporting package from NuGet.
Go to Tools -> Library Package Manager -> click on Package Manager Console and type following command into command window.