微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

LINUX实操:10分钟学会在Windows/Linux下设置ASP.Net Core开发环境并部署应用

《LINUX实操:10分钟学会在Windows/Linux下设置ASP.Net Core开发环境并部署应用》要点:
本文介绍了LINUX实操:10分钟学会在Windows/Linux下设置ASP.Net Core开发环境并部署应用,希望对您有用。如果有疑问,可以联系我们。

创建和开发ASP.NET Core应用可以有二种方式:最简单的方式是通过Visual Studio 2017 来创建,其优点是简单方便,但必要安装最新版本Visual Studio 2017 preview 15.3 .另一种方式是使用Visual Studio Code来创建,Visual Studio Code 则是一款轻量级的编辑器,可在多种操作系统中运行,如果情况允许,笔者更建议使用Visual Studio Code来进行开发,可在多种平台开发,同时也更灵活,享受更多开发的乐趣.

  • 1.1. 先决条件
    • 1.1.1. 安装.NET Core 2.0
    • 1.1.2. 安装Visual Studio 2017
    • 1.1.3. 安装Visual Studio Code
  • 1.2. 通过Visual Studio 2017 创立应用
  • 1.3. 通过Visual Studio Code 创立应用
  • 1.4. 托管ASP.NET Core 应用
    • 1.4.1. Windows平台托管ASP.NET Core应用
    • 1.4.2. Linux平台下托管ASP.NET Core应用
  • 1.5. 总结

 

1.1. 先决前提

 

1.1.1. 安装.NET Core 2.0

开发ASP.NET Core 2.0的应用,前提是必要安装.NET Core 2.0 正式版.

下载地址https://www.microsoft.com/net/download/core

安装完成后,可在敕令行(cmd)中键入敕令查看安装信息:

dotnet --info

安装信息如下图,表现.NET Core 2.0 已经成功安装

10分钟学会在Windows/Linux下设置ASP.Net Core开发环境并部署应用

 

1.1.2. 安装Visual Studio 2017

如果必要使用Visual Studio 2017 来开发,必要安装 Visual Studio 2017 Preview version 15.3,个人开发者可选择社区版,社区版的功能对于日常的开发已经足够,并且是免费.

下载地址 https://www.visualstudio.com/vs/preview/?dotnetid=639356346.1501080398

下载完成后可选择相应的工作负载来安装,如果只是运行ASP.NET Core应用则可以只安装响应部门,如下图所示:

10分钟学会在Windows/Linux下设置ASP.Net Core开发环境并部署应用

 

1.1.3. 安装Visual Studio Code

Visual Studio Code 是一个轻量级的源代码编纂器,可以运行在Windows,MacOs,和Linux.通过安装扩展可用来开发诸如C++、C#、 Python、PHP、Go等语言.

下载地址(https://code.visualstudio.com/)[https://code.visualstudio.com/]

安装完成后,必要安装c#开发扩展如下图所示

10分钟学会在Windows/Linux下设置ASP.Net Core开发环境并部署应用

 

1.2. 通过Visual Studio 2017 创立应用

通过Visual Studio 2017 创立应用非常简单,在新建项目时选择 ASP.NET Core webapplication即可

10分钟学会在Windows/Linux下设置ASP.Net Core开发环境并部署应用

在确认选择后,还会弹出一个对话框,选择代码布局模板,此处任意选择Web Application(MVC),项目即可生成完毕.在Visual Studio 2017中点击运行,一个ASP.NET Core 网站即可运行.

10分钟学会在Windows/Linux下设置ASP.Net Core开发环境并部署应用

 

1.3. 通过Visual Studio Code 创建应用

首先可在当地新建文件夹,然后打开Visual Studio Code,选择打开刚才的文件

10分钟学会在Windows/Linux下设置ASP.Net Core开发环境并部署应用

在主菜单中依次选择“查看” > “集成终端”.在集成终端中输入 dotnet new mvc 敕令,文件夹中会生成 mvc 的模板

10分钟学会在Windows/Linux下设置ASP.Net Core开发环境并部署应用

模板树立好后,可在集成终端中输入dotnet run 命令,mvc 站点即可运行.

10分钟学会在Windows/Linux下设置ASP.Net Core开发环境并部署应用

要在Visual Studio Code 中调试程序,必要配置调试器,点击调试配置,选择.NET Core配置文件

10分钟学会在Windows/Linux下设置ASP.Net Core开发环境并部署应用

此时会天生launch.json文件,文件中有三种launch方式,以web节点为例

{
    "name": ".NET Core Launch (web)",
    "type": "coreclr",
    "request": "launch",
    "prelaunchTask": "build",
    "program": "${workspaceRoot}/bin/Debug/<insert-target-framework-here>/<insert-project-name-here>.dll",
    "args": [],
    "cwd": "${workspaceRoot}",
    "stopAtEntry": false,
    "launchbrowser": {
        "enabled": true,
        "args": "${auto-detect-url}",
        "windows": {
            "command": "cmd.exe",
            "args": "/C start ${auto-detect-url}"
        },
        "osx": {
            "command": "open"
        },
        "linux": {
            "command": "xdg-open"
        }
    }
}

将program节点中的路径改为本身程序集的路径即可,例如${workspaceRoot/bin/Debug/netcoreapp2.0/WebApplicationSample1.dll然后点击左侧调试图标,在左上角可选择启动调试,启动后会弹出,对话框提示找不到build命令,选择配置任务运行程序.

10分钟学会在Windows/Linux下设置ASP.Net Core开发环境并部署应用

设置装备摆设完成后会多一个task.json文件,此时再次开启调试,便可运行调试.

10分钟学会在Windows/Linux下设置ASP.Net Core开发环境并部署应用

10分钟学会在Windows/Linux下设置ASP.Net Core开发环境并部署应用

 

1.4. 托管ASP.NET Core 应用

托管 ASP.NET Core 应用有多种方式,即可在传统的windows平台,也可以部署在开源的Linux上,还可以通过docker容器来部署,本节将讲授多种方式部署 ASP.NET Core 应用

 

1.4.1. Windows平台托管ASP.NET Core应用

ASP.NET Core 应用需要一个Host,Host必须要实现IWebHost接口,接口包括Start方法.创建一个Host 需要使用WebHostBuilder,它会返回一个WebHost实例,用于处理哀求.

在上一节所创建的ASP.NET Core应用中,可以看到Program.cs文件中的 'void Main'办法,此办法是整个应用的入口,在入口中调用CreaDefaultbuilder来创建Host,代码如下:


public class Program
{
    public static void Main(string[] args)
    {
        BuildWebHost(args).Run();
    }
    public static IWebHost BuildWebHost(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseStartup<Startup>()
            .Build();
}

CreateDefaultBuilder创建了WebHostBuilder的实例来构建启动 server 的 host.host需要一个实现IServer接口的server.内建的Web server 包含 Kestrel 和 httpsys,认使用Kestrel.在命令行工具中执行dotnet run命令,此时即可启动整个应用.

10分钟学会在Windows/Linux下设置ASP.Net Core开发环境并部署应用

在ASP.NET Core中可以用两种HTTP server,它们哀求原理如图所示:

10分钟学会在Windows/Linux下设置ASP.Net Core开发环境并部署应用

Kestrel 是跨平台的HTTP server 基于libuv(一个跨平台的异步I/O library)

httpsys 是基于Windows内核驱动程序Http.Sys的HTTP server.Http.Sys是成熟的技术,可以防范多种攻击,并提供全功能Web服务器的鲁棒性,平安性和可扩展性.IIS本身作为HTTP侦听器运行在Http.Sys之上.

在windows平台上还可以使用Http.Sys作为Web Server

    WebHost.CreateDefaultBuilder(args)
                             .UseStartup<Startup>()
                             .Usehttpsys()
                             .Build();

 

更多详情见请继续阅读下一页的出色内容

_baidu_page_break_tag_

1.4.2. Linux平台下托管ASP.NET Core应用

由于ASP.NET Core的跨平台性,因此在Liunx环境下也可以使用,必要注意的是在Linux环境下是不能选择Http.Sys作为Web server,而只能选择Kestrel.本文选用 Ubuntu 16.04 系统,作为示例.

第一步:注册微软key为可托任

curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
sudo mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg

注:如果没有curl必要安装curl.命令 sudo apt-get install curl

第二步:将微软的安装地址设为可托任的列表


sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-ubuntu-trusty-prod trusty main" > /etc/apt/sources.list.d/dotnetdev.list'

第三步:更新apt-get版本


sudo apt-get update

第四步:更新完成后即可安装最新.NET Core 2.0


sudo apt-get install dotnet-sdk-2.0.0

安装完成后使用如下敕令查看.NET Core 版本信息


dotnet --info

10分钟学会在Windows/Linux下设置ASP.Net Core开发环境并部署应用

使用敕令生成项目模板


dotnet new mvc -o app

以上命令会在当目录下面创立一个app文档夹,首先我们要将根路径跳转到app文件夹下面


cd app

最后我们要将ASP.NET Core应用在Linux环境下托管起来,只必要运行下面一条命令


dotnet run

10分钟学会在Windows/Linux下设置ASP.Net Core开发环境并部署应用

如果选择Http.Sys作为Linux下的服务器则会抛出非常

10分钟学会在Windows/Linux下设置ASP.Net Core开发环境并部署应用

 

1.5. 总结

从本节可以看出,不管是在传统的Windows环境还是Linux环境,都能通过Visual Studio Code开发ASP.NET Core 应用法式,同样的在Windwos环境和Linux都可以使用ASP.NET Core自带的Web server来托管应用.

参考材料

【1】http://www.microsoft.com/net/core#linuxubuntu

本文永远更新链接地址

欢迎参与《LINUX实操:10分钟学会在Windows/Linux下设置ASP.Net Core开发环境并部署应用》讨论,分享您的想法,编程之家 jb51.cc为您提供专业教程。

原文地址:https://www.jb51.cc/netcore/566397.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐