Click here to Skip to main content
16,017,857 members
Articles / Web Development / ASP.NET / ASP.NETvNext

Tutorial | Quick start-up for .NET core on Windows and Linux

Rate me:
Please Sign up or sign in to vote.
5.00/5 (14 votes)
21 Jul 2016CPOL4 min read 33.2K   641   37   4
This article will give a kick off start to build an application using .NET core on Linux and Windows

Introduction

This article will cover the following things

  • Brief Concepts
  • Implementation - Two ways to develop an application in Windows:
  • Implementation - Develop application in Windows:
  • Implementation - Install .NET Core on Linux Server (Ubuntu 16.04)
  • Implementation - Deploy Application (Created on Windows) on Linux Server (Ubuntu 16.04)
  • Implementation - Develop application on Linux
  • Implementation - Develop a MVC application on Windows using Visual Studio:

Brief Concepts

What is Dot Net Core?

  • Development platform/framework maintained by Microsoft.
  • It supports following OS:
    • Windows
    • MAC
    • Linux
    • cloud
    • Embedded/IOT scenarios

Features

  • Flexible deployment: 
    • Can be deployed on all the supported machines.
  • Cross-platform: 
    • Runs on Windows, MAC and Linux; - - will be covered in today’s session
    • Can be ported to other OS. - - will be covered in today’s session
  • Can be installed by any command line tool.
  • Compatibility:
    • NET Core is compatible with .NET Framework, Xamarin and Mono, via the .NET Standard Library.
  • Open source: 

Implementation (Using Code):

1. Two ways to develop an application in Windows

  • Using command line
  • Using Visual Studio IDE

2. Develop application in Windows

2.1. Using Command Line - STEPS

Image 1

  • Open cmd.exe / relevant command line tool
  • Follow the below commands to create a sample project and install .NET core
    • cd C:\Gourav_Personal\Study Material\.NET CORE\Demo
    • mkdir demo1
    • cd demo1
    • dotnet new

Image 2

  • Restore the packages and run the project
    • dotnet restore
    • dotnet run

Image 3

Download demo1 attachment for the reference.

2.2. Using Visual Studio - STEPS

  • Install and Open VS 2015 with update 3 or above
  • Install .NET Core RC2 Package
  • Create a project
  • Choose .NET Core tab and select console application(.NET Core)

Image 4

  • Write few line of codes in program.cs

Image 5

  • Run the application.

Image 6

Download demo2 attachment for the reference.

3. Install .NET Core on Linux Server (Ubuntu 16.04)

  • I am using Oracle Virtual Box with Ubuntu 16.04 image on my windows machine to execute this use case.
  • Run the following commands to get this working:
    • sudo sh -c 'echo "deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/dotnet/ trusty main" > /etc/apt/sources.list.d/dotnetdev.list'
    • sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 417A0893
    • sudo apt-get update

Image 7

Image 8

  • Now GO to the downloaded location and run the following commands :
    • sudo dpkg -i libicu52_52.1-3ubuntu0.4_amd64.deb

Image 9

  • sudo apt-get install dotnet-sharedframework-microsoft.netcore.app-1.0.0-rc2-3002702

Image 10

  • sudo apt-get install dotnet-dev-1.0.0-preview2-003121

Image 11

4. Deploy Application (Created on Windows) on Linux Server (Ubuntu 16.04)

  • Move the demo1 application attached in the article into the Linux machine and un-pack it.
  • Go the application location in terminal.

Image 12

  • Restore the packages and run the project
    • dotnet restore

Image 13

  • dotnet run

Image 14

5. Develop application on Linux

STEPS

  • Open Terminal
  • Follow the below commands to create a sample project and install .NET core
    • cd Downloads
    • mkdir demo2
    • cd demo2
    • dotnet new

Image 15

  • Restore the packages and run the project
    • dotnet restore
    • dotnet run

Image 16

6. Develop a MVC application on Windows using Visual Studio

STEPS – Multiple Concepts

  • General:
    • Open VS 2015 and Create Project

Image 17

  • Choose Web - > ASP .NET Core Web Application (.NET Core) and Choose template – Empty (To understand the concept better)

Image 18

  • Run the application

Image 19

  • Static Files:
    • Comment the default code in the StartUp.cs file.

Image 20

  • Add Html files in wwwroot folder

Image 21

  • Add “Microsoft.AspNetCore.StaticFiles” into the project.json file under the dependencies section

Image 22

  • Restoring of packages once we save the file in VS 2015
  • Add app.UseStaticFiles() into the startup file into the configure method.

Image 23

  • Run the application with the static URL for e.g. http://localhost:50938/Sample.html

Image 24

  • MVC
    • Add “Microsoft.AspNetCore.Mvc” into the project.json file

Image 25

  • Add MVC structure (Add Controllers and Views Folder and default files into that)

Image 26

  • Add  services.AddMvc() in the "ConfigureServices" method  into the startup file
  • Add the following code into the "Configure" method related to MVc route
C#
app.UseMvc(routes =>
      {
        routes.MapRoute(
          name: "default",
          template: "{controller}/{action}/{id?}",
          defaults: new { controller = "Home", action = "Index" }
        );
      });

Image 27

  • Run the application with the MVC URL for e.g. http://localhost:50938/Home/Index

Image 28

  • Class Library Concept:
    • Add Class library to extract any common code (type .NET core)

Image 29

  • Create interface and class and implement some logic

Image 30

  • Mention the entry into the main project's project.json “for the class library” to use it in the main project. For e.g. "ClassLibrary1": "1.0.0-*"

Image 31

  • Use it as a service in Startup.cs file using dependency injection concept. For e.g.  services.AddSingleton<IInterface, Class1>();

Image 32

  • Implement the same into the controller as "Controller Injection"

Image 33

  • Run the application with the MVC URL for e.g. http://localhost:50938/Home/Index

Image 34

  • Middleware Concept:
    • Comment all the code in the "Configure" method into the StartUp.cs file.

Image 35

  • Add middleware class into the main project.

Image 36

  • Few changes into the "Invoke" method into the middleware class for e.g.  
C#
public Task Invoke(HttpContext httpContext)
{
  httpContext.Response.WriteAsync("Middleware Output");
  return _next(httpContext);
}

Image 37

  • Use the same middleware class into the startup file for e.g. app.UseMiddleware();

Image 38

  • Run the application  for e.g. http://localhost:50938 

Image 39

Download demo3 attachment for the reference.

Points of Interest

I loved using .NET core as it allows us to develop application on any platform and apart from that if the application is developed on Windows or Linux,it can be deployed on both of them.

Thats amazing thing by Microsoft :)

Reference Demos

I have attached three demo files for the demostration of the explaination showed in the above article.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



Comments and Discussions

 
GeneralMy vote of 5 Pin
tbayart26-Jun-17 1:27
professionaltbayart26-Jun-17 1:27 
GeneralMy vote of 5 Pin
Dmitriy Gakh22-Jul-16 21:31
professionalDmitriy Gakh22-Jul-16 21:31 
QuestionBetter now Pin
Nelek22-Jul-16 2:11
protectorNelek22-Jul-16 2:11 
QuestionFormat? Pin
Nelek19-Jul-16 1:32
protectorNelek19-Jul-16 1:32 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.