ASP.NET 5 (vNext) Linux部署

工欲善其事,必先利其器. 首先,大家先明了下以下基本概念

引言

工欲善其事,必先利其器. 首先,大家先明了下以下基本概念

ASP.NET 5 (vNext) Linux部署。Linux相关

Ubuntu

Ubuntu是基于linux的免费开源桌面PC操作系统 十分契合英特尔的超极本定位 支持x86、64位和ppc架构 全面支持网页浏览器   WPS。Ubuntu基于Debian发行版和GNOME桌面环境,而从11.04版起,Ubuntu发行版放弃了Gnome桌面环境,改为Unity,与Debian的不同在于它每6个月会发布一个新版本。Ubuntu的目标在于为一般用户提供一个最新的、同时又相当稳定的主要由自由软件构建而成的操作系统。

sudo

sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如halt,reboot,su等等。这样不仅减少了root用户的登录 和管理时间,同样也提高了安全性。sudo不是对shell的一个代替,它是面向每个命令的。

apt

Advanced   Packaging Tool(apt)是Linux下的一款安装包管理工具。APT由几个名字以“apt-”打头的程序组成。apt-get、apt-cache 和apt-cdrom是处理软件包的命令行工具。

libuv

跨平台异步IO库,是Kestrel Server的必需组件,必须在最终运行前安装.

VirtualBox

VirtualBox   是一款开源虚拟机软件。VirtualBox 是由德国 Innotek 公司开发,由Sun Microsystems公司出品的软件,使用Qt编写,在 Sun 被 Oracle 收购后正式更名成 Oracle VM VirtualBox。Innotek 以 GNU General Public   License (GPL) 释出 VirtualBox,并提供二进制版本及 OSE 版本的代码。使用者可以在VirtualBox上安装并且执行Solaris、Windows、DOS、Linux、OS/2 Warp、BSD等系统作为客户端操作系统

curl

cURL   curl -O的输出结果 原作者 Daniel Stenberg 初始版本 1997 稳定版本 7.40.0(2015年1月8日,27天前) 开发状态 活跃
  编程语言 C 操作系统 跨平台 类型 FTP / HTTP 许可协议 自由软件:MIT/X derivate   license 网站 curl.haxx.se   cURL是一个利用URL语法在命令行下工作的文件传输工具,1997年首次发行。它支持文件上传和下载,所以是综合传输工具,但按传统,习惯称cURL为下载工具。它被广泛应用在Unix、多种Linux发行版中,并且有DOS和Win32、Win64下的移植版本

Linux相关知识非本文首要内容,其余音信请参见相关文书档案.

.NET相关

Mono

Mono是一个由Novell公司(由Ximian发起,并由Miguel de lcaza领导的,一个致力于开创.NET在Linux上使用的开源工程。它包含了一个C#语言的编译器,一个CLR的运行时,和一组类库,并实现了 ADO NET和ASP NET。能够使得开发人员在Linux用C#开发程序。)

DNVM

(.NET Version   Manager):由于要实现跨平台的目的,微软提供了DNVM功能,DNVM是ASP.NET最底层的内容,他是一组Powershell脚本,用于启动指定版本的ASP.NET运行环境,并且可以在同一台机器的同一时间点上通过使用Nuget工具来管理各种版本的ASP.NET运行环境(DNX),以及进行相应的升级操作。

DNX

(.NET Execution   Environment):DNX是ASP.NET程序的运行环境,用于启动并运行ASP.NET程序。该运行环境包括了编译系统、SDK工具集、Native CLR宿主环境。可以使用DNVM管理各种版本的DNX,如dnvm list命令可以列出所有可用的DNX环境,而dnvm install   0.1-alpha-build-0446则可以将指定版本的DNX安装到.dnx文件夹,你可以在%USERPROFILE%\.dnx\runtimes   目录下找到已安装所有版本的DNX。不同的操作系统有不同的DNX版本。

dnu命令

(DNX Utility):是一个命令行的包管理器,包含在DNX内,所以只要安装了DNX,就可以使用dnu命令, 其可以用于恢复程序包、安装程序包、部署程序包等等,比如把project.json里自定义的程序集自动下载下来进行使用。

dnx命令

dnx.exe是用于启动自宿主环境(Self-Hosting)的命令行工具,在使用命令行代码进行自宿主环境启动程序时,dnx负责查找并调用CLR Native Host,dnx命令是整个运行环境的入口点,你可以使用dnx run来启动程序。

Kestrel

ASP.NET   5 一个基于 libuv 组件的Web Server实现.

NuGet

Nuget是一个.NET平台下的开源的项目,它是Visual Studio的扩展。在使用Visual Studio开发基于.NET Framework的应用时,Nuget能把在项目中添加、移除和更新引用的工作变得更加快捷方便

 

有关ASP.NET核心才能,请进一层参考汤姆大爷的博文:

解读ASP.NET 5 &
MVC6应有尽有(4卡塔尔:核心手艺与情况安插

Linux相关

安装Ubuntu

我们以当下可比盛行的Ubuntu为例,作者的配备遭逢是:

l  主机: Win8.1 和 VS2015 RC

l  虚拟机: VirtualBox-4.3.28-100309-Win

l  Linux: ubuntu-15.04-desktop-amd64

这几个软件的安装进度都相比较人性化了,这里不加累述.

设置到位并跻身系统以往,稍稍清理下左边的快捷方式,拖出常用的终端命令,大家到如下分界面,筹划步向下一步的安装.

    图片 1                    

Ubuntu

Ubuntu是基于Linux的免费开源桌面PC操作系统 十分契合英特尔的超极本定位 支持x86、64位和ppc架构 全面支持网页浏览器   WPS。Ubuntu基于Debian发行版和GNOME桌面环境,而从11.04版起,Ubuntu发行版放弃了Gnome桌面环境,改为Unity,与Debian的不同在于它每6个月会发布一个新版本。Ubuntu的目标在于为一般用户提供一个最新的、同时又相当稳定的主要由自由软件构建而成的操作系统。

sudo

sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如halt,reboot,su等等。这样不仅减少了root用户的登录 和管理时间,同样也提高了安全性。sudo不是对shell的一个代替,它是面向每个命令的。

apt

Advanced   Packaging Tool(apt)是Linux下的一款安装包管理工具。APT由几个名字以“apt-”打头的程序组成。apt-get、apt-cache 和apt-cdrom是处理软件包的命令行工具。

libuv

跨平台异步IO库,是Kestrel Server的必需组件,必须在最终运行前安装.

VirtualBox

VirtualBox   是一款开源虚拟机软件。VirtualBox 是由德国 Innotek 公司开发,由Sun Microsystems公司出品的软件,使用Qt编写,在 Sun 被 Oracle 收购后正式更名成 Oracle VM VirtualBox。Innotek 以 GNU General Public   License (GPL) 释出 VirtualBox,并提供二进制版本及 OSE 版本的代码。使用者可以在VirtualBox上安装并且执行Solaris、Windows、DOS、Linux、OS/2 Warp、BSD等系统作为客户端操作系统

curl

cURL   curl -O的输出结果 原作者 Daniel Stenberg 初始版本 1997 稳定版本 7.40.0(2015年1月8日,27天前) 开发状态 活跃
  编程语言 C 操作系统 跨平台 类型 FTP / HTTP 许可协议 自由软件:MIT/X derivate   license 网站 curl.haxx.se   cURL是一个利用URL语法在命令行下工作的文件传输工具,1997年首次发行。它支持文件上传和下载,所以是综合传输工具,但按传统,习惯称cURL为下载工具。它被广泛应用在Unix、多种Linux发行版中,并且有DOS和Win32、Win64下的移植版本

安装MONO

经过下列命令行,安装MONO – 下载时间可能十分长.

sudo apt-key adv –keyserver keyserver.ubuntu.com –recv-keys
3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF

echo “deb wheezy main” |
sudo tee /etc/apt/sources.list.d/mono-xamarin.list

echo “deb
wheezy-apache24-compat main” | sudo tee -a
/etc/apt/sources.list.d/mono-xamarin.list

sudo apt-get update

sudo apt-get install mono-devel

 

提出逐项运维假如有标题再一次运维卓殊的命令.看见如下结果表示Mono安装到位:

 图片 2

假定设置未有顺遂实现,请参见MONO Project网址找出最新的装置方法.

 

Linux相关知识非本文首要内容,别的音信请参见相关文书档案.

安装DNVM

先是要求安装curl程序

sudo apt-get install curl

接下来利用curl安装DNVM

curl -sSL
|
DNX_BRANCH=dev sh && source ~/.dnx/dnvm/dnvm.sh

安装完成之后,利用dnvm晋级命令获取最国民党的新生活运动行境遇

dnvm upgrade

 假若赶过更新战败,能够参加-f参数强行覆盖更新.

最后运营上面包车型大巴授命,确认当前设置的周转条件

dnvm list

 图片 3

鉴于近年来VS二〇一六RC的dnx版本是1.0.0-beta4,所以这里请保管当前活蹦活跳版本正是1.0.0-beta4.
(笔者这里装的相比较杂,其实远非11855那2个也是可以的)

其余能够窥见dnx和dnu
2个指令(能够在支配台运转这2个指令,见到扶植新闻)都早已布署完结,到此dnvm安装结束.

.NET相关

配置ASP.NET代码

在Window主机中, 利用VS 二〇一六独立自主一个vNext版本的WebApi程序.

 图片 4

这里把那几个类型命名称叫 WebApi二〇一五.
确立完成后,把程序目录打包传送到Ubuntu设想机.

在设想机放肆目录解压.

别的我们再非Windows情状得以利用Visual Studio
Code实行代码的编辑撰写,那么些工具特别轻易安装,具体安装形式能够仿效官方网址:

就算如此那些工具还不比VS方便,但比起文本编辑器依然高等了繁多:

上面大家对项目文件做些调度:

 图片 5

l  插手Kestrel组件的援引,这几个是Linux遭遇下必选的Web Server.

l  出席Kestrel的命令行,把运行U库罗德L设为,
那么些手续是必得的,不然继续的dnx命令将不可能试行.

l  把Project_Readme.html移入wwwroot作为二个得以显得的静态页面.

自然那么些调动也得以再Windows里面先调度好,再拷贝过来.

Mono

Mono是一个由Novell公司(由Ximian发起,并由Miguel de lcaza领导的,一个致力于开创.NET在Linux上使用的开源工程。它包含了一个C#语言的编译器,一个CLR的运行时,和一组类库,并实现了 ADO NET和ASP NET。能够使得开发人员在Linux用C#开发程序。)

DNVM

(.NET Version   Manager):由于要实现跨平台的目的,微软提供了DNVM功能,DNVM是ASP.NET最底层的内容,他是一组Powershell脚本,用于启动指定版本的ASP.NET运行环境,并且可以在同一台机器的同一时间点上通过使用Nuget工具来管理各种版本的ASP.NET运行环境(DNX),以及进行相应的升级操作。

DNX

(.NET Execution   Environment):DNX是ASP.NET程序的运行环境,用于启动并运行ASP.NET程序。该运行环境包括了编译系统、SDK工具集、Native CLR宿主环境。可以使用DNVM管理各种版本的DNX,如dnvm list命令可以列出所有可用的DNX环境,而dnvm install   0.1-alpha-build-0446则可以将指定版本的DNX安装到.dnx文件夹,你可以在%USERPROFILE%\.dnx\runtimes   目录下找到已安装所有版本的DNX。不同的操作系统有不同的DNX版本。

dnu命令

(DNX Utility):是一个命令行的包管理器,包含在DNX内,所以只要安装了DNX,就可以使用dnu命令, 其可以用于恢复程序包、安装程序包、部署程序包等等,比如把project.json里自定义的程序集自动下载下来进行使用。

dnx命令

dnx.exe是用于启动自宿主环境(Self-Hosting)的命令行工具,在使用命令行代码进行自宿主环境启动程序时,dnx负责查找并调用CLR Native Host,dnx命令是整个运行环境的入口点,你可以使用dnx run来启动程序。

Kestrel

ASP.NET   5 一个基于 libuv 组件的Web Server实现.

NuGet

Nuget是一个.NET平台下的开源的项目,它是Visual Studio的扩展。在使用Visual Studio开发基于.NET Framework的应用时,Nuget能把在项目中添加、移除和更新引用的工作变得更加快捷方便

配置和周转

开垦七个终端,把当下路径设置到我们项目中的src/WebApi2014中,也正是project.json所在目录.

先是使用dnu命令实行富有有关组件的还原操作:

dnu restore

 注意这里平常因为互连网问题而中止,一再执行那些命令皆可.(不要轻巧强行中断那么些命令,会诱致坏包),直到现身大批量的installing新闻并做到project.lock.json文件,苏醒进度才算顺遂结束,如下图:

 图片 6

下一场运维上边自以为是试行此ASP.NET 5程序.

dnx . kestrel

 可是那时候恐怕照旧会报错,是因为常常新安装的系统还没有曾libuv组件.最后,大家还亟需接受下边包车型大巴一声令下来安装libuv组件.

sudo apt-get install automake libtool

curl -sSL | sudo
tar zxfv – -C /usr/local/src

cd /usr/local/src/libuv-1.4.2

sudo sh autogen.sh

sudo ./configure

sudo make

sudo make install

sudo rm -rf /usr/local/src/libuv-1.4.2 && cd ~/

sudo ldconfig

 

设置完成之后,再运维 dnx . kestrel , 运维通过

 图片 7

采用浏览器访问    或者
  可以看见页面和默许WebApi重回内容.
倘诺兴趣,还足以在wwwroot参与别的页面也许在Controller里面出席别的WebApi来展开尝试
– 以至可以进入Controller , View 和 Model文件来体现MVC的内容.

 

结束语

本来,近日我们运维的次第还仅仅是三个很简单的本子,还并未有满含EF,
Signal途观,
Identity等复杂组件,但从一切安插进度中,大家能够以为到实际差异已经超级小.
首先运维和配置情状DNVM和dnu, dnx命令和VS
二〇一四的条件是大器晚成致的,并且组件包都以从Nuget上获得,那和正式的Windows开辟景况并未太大分别,
所以能够预感,就算是更目迷五色的ASP.NET
5应用程序,依旧能够完整的布局到Linux意况上来,
加上今后EF手艺对MSSQL等跨平台数据库的越来越好的援助,.NET开拓人士完全能够在后天出产自身的
Linux – Kestrel/ Jexus – MySQL – ASP.NET 的跨平台方案.

相关文章