Search in Help for developer site.

Monday, 11 June 2018

Deploy Dotnet Core API and Angular 5 on IIS - PART 1

While working with Dotnet core and Angular, I come across a requirement to deploy production code to server.I am going to share hosting method for Dotnet core Api and Angular 5 On IIS server.

Host Dotnet Core App On IIS

NOTE: I installed dotnet core version 2.1.200 in my machine.
I am assuming that you you have created Api project and ready to IIS configure.you can create api from here
When creating a new project you can see a Program.cs file in folder, and it contains the following code.

public class Program
{
public static void Main(string[] args)
{
var webHost = new WebHostBuilder()
.UseStartup<Startup>()
.Build();

webHost.Run();
}
}

Configure WebHostBuilder

In dotnet core application we have to define WebHostBuilder object for web server.Inside the WebHost object we have add some configuration for application hosting.

Add bellow methods in WebHostBuilder setup code


.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()


What does these method ?


UseKestrel() :  kestrel is a cross-platform web server for asp.net core. and it's by default included in asp.net core project templates.
UseContentRoot : When you call dotnet run from your project folder without this function, the content root path is in your bin output folder.

UseIISIntegration() : If you are going to host your app ISS, the UseIISIntegration() method should be called as part of building the host.
And it will be work as revers proxy in front of Kestrel.

NOTE: Usekestrel and UseIISIntegration() are very different actions.IIS is only used as a reverse proxy.Usekestrel creates the server and hosts the code.UseIISIntegration specifies IIS as the reverse proxy server. And also examines environment variables used by IIS/IISExpress and makes decisions like which dynamic port use,which headers to set,etc.

What is AspNetCoreModule ?
As you can see the web.config file is available in your project root folder.
It’s only used when deploying your application to IIS. It registers the AspNetCoreModule as an HTTP handler. It handles all incoming traffic to IIS. And ensures that your application is running.

<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
</handlers>
  

 

Okay… let’s move for server configuration


1) Install Dotnet Core Windows server hosting bundle


The deployment is not same as asp.net, there are some tooling for host your application. Before you deploy your application, you need to install the dotnet core hosting bundle for IIS. This will install .NET core runtime, libraries, and AspNetCoreModule.

Make sure you pick “windows server hosting”


2) Build and Publish


If you simply run this command…

dotnet publish
Your project will be published to the default location which is inside your application’s bin folder.
<YourApplication>\bin\Debug\netcoreapp2.0\publish

Here you will find a portable version of your project which can be hosted in any number of place including on Linux or via IIS on windows.




3) Create Application is IIS

Copy files to preferred IIS location where you want the files to live. If you are deploying to a remote server, you may want to zip up the files and move to the server.

Open IIS manager, create a new IIS Application Pool.you will want to create under the .NET CLR version of “No managed Code” Since IIS only works reverse proxy, it’s not actually executing any .NET code




Now Create your new application under your existing hosted sites,or create new ISS application.select your new IIS Application pool here.Point your published code.


4) Check and Run

Before run the application you need to check the AspNetCoreModule is present or not. To check go to Modules from application home and inside the Modules you can find that your application is running under AspNetCoreModule.



That’s it, Now you can run your app using Manage Application > Browse





Monday, 23 April 2018

Null Conditional Operator in C Sharp 6

Null Conditional Operator New Feature in C Sharp 6.

Overview:

I focus on little things. Null check is small thing yet big.
Today i am going to share a New feature introduced in C# 6, It is called Null Conditional Operator.
While coding we need to check null to prevent any exception at run time.

I have 3 classes as follow:

    public class Vendor
    {
        public int VendorId { get; set; }
        public string CompanyName { get; set; }
        public string Email { get; set; }
    }

    public class Product
    {
        public int ProductId { get; set; }
        public string ProductName { get; set; }
        public Vendor Vendor { get; set; }
    }

    public class Order
    {
        public long OrderId { get; set; }
        public Product Product { get; set; }
        public string GetCompanyName()
        {
            string companyName = string.Empty;
            try
            {
                //Null exception at run time
                companyName = Product.Vendor.CompanyName;
            }
            catch (Exception ex)
            {
                throw;
            }
            return companyName;
        }
    }

The GetCompanyName() Method is used to get the company name.
But it throws an exception at run time.



So we have to check null. There are two ways to check null.


Traditional way of checking null.

   public string GetCompanyName()
        {
            string companyName = string.Empty;
            try
            {
                //Null checking using If.
                if (Product != null && Product.Vendor != null)
                    companyName = Product.Vendor.CompanyName;
            }
            catch (Exception ex)
            {
                throw;
            }
            return companyName;
        }
In a large project the traditional way of checking null is a tedious task and code becomes unreadable. 

Using C Sharp 6 Null-Conditional Operator.


        public string GetCompanyName()
        {
            string companyName = string.Empty;
            try
            {
                companyName = Product?.Vendor?.CompanyName;
            }
            catch (Exception ex)
            {
                throw;
            }
            return companyName;
        }

How null operator works?.

  • If the variable on the left side is null, the expression is null.
  • If the variable on the left side is not null, then we continue with the dot.
  • "If null then null; if not then dot".
  • ?. Is the null-conditional operator.
  • Called as "Elvis operator".

Summary.

In this article i discussed about new feature introduced in C Sharp 6. Use it in your project and share your feedback in the comment section.


Friday, 29 December 2017

Resharper Increase your .Net Productivity

ReSharper: Turbocharge your .NET Development

OverView :


Hi folks.. wassup..hope you doing great..!!!.

Today i have come infront of you  guys to share some information about
useful add-in to visual studio.Yes.. today i am gonna explain you all about
ReSharper tool and its key features and also i will be explaining you
why do i recommend you guys to use it in your daily development routine.

What is ReSharper :

ReSharper is a popular developer productivity extension for Microsoft 
Visual Studio. It automates most of what can be automated in your coding 
routines. It finds compiler errors, runtime errors, redundancies, and code 
smells right as you type, suggesting intelligent corrections for them.

ReSharper helps you explore code by visualizing the structure of files, 
type and style hierarchies, call and value chains, project dependencies. 
It allows you to instantly traverse your entire solution and jump right to 
the exact file and line that you are looking for, decompiling library code 
if necessary.

Why ReSharper :



You can spend less time on routine, repetitive manual work and instead 
focus on the task at hand. A robust set of features for automatic 
error-checking and code correction cuts development time and 
increases your efficiency. You'll find that ReSharper quickly pays back its 
cost in increased developer productivity and improved code quality. 
With ReSharper, .NET developers can truly experience what we mean 
when we say "Develop with pleasure!"


Key Features :

·         Error Highlighting and Quick-Fixes


·         Advanced Coding Assistance


·         Numerous Refactorings 


·         Navigation and Search


·         Unit Testing


·         Code analysis and quick fixes


·         Code generation and templates etc.



Some  Important  Links





https://www.jetbrains.com/resharper/docs/ReSharper_DefaultKeymap_VSscheme.pdf


Download Link


      https://marketplace.visualstudio.com/items?itemName=JetBrains.ReSharper


Thank you guys and feel free to drop  your queries in comment box.