Linux下ASP.NET5开发工具与部署环境搭建 (学习笔记)

1.说明

由于在“古董机”上进行实践,只能安装系统是ubuntu-15.04-desktop-i386 (x86 32位桌面系统,建议你装64位的)

本想在此介绍时进行一些截图或录制视频,但对Linux系统操作不是很熟,再加上系统特别“卡”,

连汉字输入都不方便(比如这篇文章敲得费劲呀),实在是杯具,只好放弃!

以下内容,有些啰嗦,抱歉!(其实也是我学习笔记,记详细点,时间长了,不怕忘。)

以下资料来源主要参考:https://docs.asp.net和https://github.com/aspnet/home

2.visualstudio code

“工欲善其事,必先利其器”,利用好的工具来提高工作效率,提高生产力。

visualstudio code,简称vscode。它到底好的哪里?这里不争论,才不想发表引起口水战的话题。

用记事本来写代码是可以,也显得很牛啦。

毕竟没有语法,单词,帮助等智能提示或测试运行环境搭建,需要记忆和掌握的东东更多啦。

vscode下载地址https://code.visualstudio.com/download

你可以通过浏览器下载,也可以打开终端(下面以“#:”开头的,都是终端下操作 )使用下载工具下载。

比如wget :

#: wget https://az764295.vo.msecnd.net/public/0.8.0/VSCode-linux-ia32.zip

下载下来后,该怎样安装?可以查看文档https://code.visualstudio.com/Docs/editor/setup

进入VSCode-linux-ia32.zip目录

解压到指定的目录#:unzip -n VSCode-linux-ia32.zip -d /指定的目录

再进入解压后的VSCode-linux-ia32目录

#:VSCode-linux-ia32/Code  就可以调出vscode运行了。

(你也可以桌面打开VSCode-linux-ia32目录的Code文件直接运行)

问题来了?这样终端下只能指定Code路径访问,才能打开。

怎么把它设置为全局,在哪个路径下都可以运行。

这类似windows下设置快捷方式或设置环境变量啦。Linux下,执行:

#:sudo ln -s /绝对路径(磁盘路径)/VSCode-linux-ia32/Code /usr/local/bin/code

(注:通常将软件的执行文件链接/usr/local/bin目录下)

这样设置后,就可以在终端任意路径下,执行#:code .  (.代表vscode打开时的,当前路径目录)

3.dnvm

查看Linux下安装帮助https://github.com/aspnet/Home/blob/dev/GettingStartedDeb.m

先安装curl下载工具#:sudo apt-get install curl

#:curl -sSL https://raw.githubusercontent.com/aspnet/Home/dev/dnvminstall.sh | DNX_BRANCH=dev sh && source ~/.dnx/dnvm/dnvm.sh

确认是否可用#:dnvm

查看帮助#:dnvm -h

查看clr安装情况#:dnvm list   (提示.net 环境没有哦)

升级方式安装#:dnvm upgrade(测试的机子是32位 ,默认安装mono版的clr,它需要安装mono的JIT编译环境的)

如果你的系统64位,它可能默认安装是 dnx-coreclr-linux-x64(它不需要mono环境)

你也可以使用dnvm install 来安装的。

多版本绝对可以共存,但在使用时,不是默认的激活,需要使用dnvm use来指定。

(提示: dnx-coreclr-linux-x86版本暂时没有,www.nuget.org查找到才行哦)

4.mono

在这里补充一下。目前运行ASP.NET5程序,大体上分为三种clr:

完整版的clr(也就是传统只运行在windows下),

核心coreclr(为了跨平台,轻量级。微软重写的,针对各种系统平台写的各种版本),

mono版的clr(也就是mono团队根据微软的.netframework语言制定的标准,写的跨平台clr,

这可不是基于微软clr那一套哦。所以在性能和完善上,是不是比微软自家出品的clr要好,请看别家的评论啦)。

其实跨平台也不用担心,选择哪家?

微软已经和mono合作,monoclr只会被coreclr吸取,mono也会通过微软开源得到大力支持,完善monoclr。

以后的两者路线有望合并啦(个人之言,不代表权威!勿喷!)

前面只能装monoclr,需要安装一下mono JIT编译环境,才能在asp.net5项目中使用monoclr.

安装参见http://www.mono-project.com/docs/getting-started/install/linux

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

#:echo "deb http://download.mono-project.com/repo/debian wheezy main" | sudo tee /etc/apt/sources.list.d/mono-xamarin.list

#:sudo apt-get update

#:sudo apt-get install mono-complete

安装完毕后,可以查看确定一下:

#:mono -V    (V大写)

5.demo

有了dnvm程序包管理器和monoclr运行环境,我们可以跑一下ASP.NET5程序来测试一下哦。

微软官方也提供了项目案例。我们克隆下来。

先安装git工具#:sudo apt-get install git

下载#:git clone https://github.com/aspnet/Home.git aspnet-home

(aspnet-home是下载下来的文件夹名称)

进入下载下来的项目根目录(project.json所在路径)

#:dnu restore    (如果不能完整下载,就重复执行哦)

然后用vscode打开项目#:code .

看一下project.json配置的commands的key.

运行#: dnx  commands(比如commands配置:“Run”:"ConsoleApp",那就执行dnx Run)

问题来了,以上步步骤,运行控制台项目可以了。但运行web项目,杯具来了 。

我们还有一个libuv没有安装。

因为目前asp.net5 web跨平台部署,只能selfhost自托管或微软云跑(VS Express IIS也可以啦)。

当然docker跑的方案已经也有了。

未来(现在还是beta阶段发布哦 )能传统IIS方式部署的,甚至nginx等web部署环境也可以的。

在selfhost跨平台跑web,需要KestrelHttpServer(安装libuv)。

6.libuv

查看帮助https://github.com/libuv/libuv

下载最新版http://dist.libuv.org/dist/v1.7.5/

进入解压后目录……

先安装#:sudo apt-get install automake libtool

#:sudo sh autogen.sh

#: sudo ./configure

#:sudo make

#:sudo make install

#:sudo ldconfig

这样安装完毕,就可以运行web项目了。(要dnx commands 中KestrelHttpServer 配置key)

7.npm

我们可以vscode编写代码,可是快速创建项目模板没有?

开源社区Omnisharp开发一款generator-aspnet工具。它需要nodejs环境,也要用npm来安装。

npm根据包含在nodejs安装中。所以我们安装nodejs就是了。  它有三种安装方式。

一是使用ubuntu软件仓储中包含的,用#:sudo apt-get install nodejs

它不是最新版本,不建议这样安装。

二是使用官方编译好的版本。

编译好的版本地址https://nodejs.org/dist/v4.1.2/node-v4.1.2-linux-x86.tar.gz

进入下载下来安装包的路径……

解压指定的目录#:tar -xf node-v4.1.2-linux-x86.tar.gz -C  /指定的目录

设置为全局命令

#:sudo ln -s /绝对路径(磁盘路径)/node-v4.1.2-linux-x86/bin/node  /usr/local/bin/node

#:sudo ln -s /绝对路径(磁盘路径)/node-v4.1.2-linux-x86/bin/npm  /usr/local/bin/npm

查看版本

#:node -v

#:npm -v

三是源码自己编译。

下载源码https://nodejs.org/dist/v4.1.2/node-v4.1.2.tar.gz

进入解压后的目录……

检查和配置编译环境#:./configure

编译#:make

安装#:sudo make install

8.generator-aspnet

查看帮助https://github.com/OmniSharp/generator-aspnet

安装yo#:npm install -g yo

使用yo#:yo

安装generator-aspnet#:npm install -g generator-aspnet

使用generator-aspnet#:yo aspnet

9.小结

用vscode编写代码,用generator-aspnet很方便地创建ASP.NET5项目模板。

编写的程序运行环境,这离不开clr。

有些程序托管还需要特定的编译或运行环境。

这里没有对vscode,generator-aspnet,npm,dnvm四大利器具体使用技巧进行演示,抱歉。

另外由于docker虚拟机部署应用很方便很火,有空单独介绍了。

时间: 2024-10-18 02:48:15

Linux下ASP.NET5开发工具与部署环境搭建 (学习笔记)的相关文章

前端开发工具即测试环境搭建

1.代码编辑器 sublime 2.断点调试工具 chrome的  angularjs Batarang 一般为firebug 3.版本管理工具 git 4.开发和调试工具 Nodejs 5.代码合并和混淆工具 grunt grunt-contrib-uglify 对代码进行混淆的 grunt-contrib-concat 合并文件 grunt-contrib-watch 监控文件变化 6.依赖管理工具 bower 7.http-server(基于nodejs) 将本地文件发送到网上 安装:np

Linux下Google Test (GTest)测试环境搭建步骤

1.下载GTEST 下载链接为:https://code.google.com/p/googletest/downloads/list 目前GTEST的最新版本为gtest-1.7.0.zip,因此我们在本文中将以这个版本作为例子讲解. 2.认识文件夹 下载并解压之后,就可以看到gooletest(gtest-1.7.0)文件夹了,里面的内容如下图所示: 这么多文件看起来很麻烦.其实,GTEST提供了对于多个不同平台的支持,例如msvc文件夹是用在微软Visual Studio中,xcode文件

Linux教程:如何在Linux下进行C++开发?

Linux是一类Unix计算机操作系统的统称,Linux操作系统的内核的名字也是“Linux”, 在Linux下进行C++开发,需要注意许多问题,比如:减少不必要的编辑动作,减少编辑的时间. Windows下,开发工具多以集成开发环境IDE的形式展现给最终用户.例如,VS2005集成了编辑器,宏汇编ml,C /C++编译器cl,资源编译器rc,调试器,文档生成工具, nmake.它们以集成方式提供给最终用户,对于初学者而言十分方便. 但是,这种商业模式,直接导致用户可定制性差,不利于自动化,集成

浅析 Linux 下的 arm 交叉编译工具

什么是交叉编译工具 http://elinux.org/Toolchains 要解释交叉编译工具,我们首先要理解三个基本概念: 编译平台:是指该编译器是在哪个平台编译出来的 编译主机:编译器运行在哪个平台 目标平台:编译器为哪个平台产生代码 比如我们在 Ubuntu(Linux) 下编译 arm 开发板的程序,那么: 编译平台就是 X86,该编译器在 x86上运行 编译主机就是这台运行 Ubuntu Linux 的电脑 目标平台就是 arm 开发板 所以通常所指的交叉编译,就是在该平台编译生成在

asp.net5开发中DNX SDK版本的影响

某次asp.net5开发中遇到了一个很奇怪的问题,引用部分的nuget包没有显示任何错误,如下图: 但是编译时出现了几百个错误: 错误基本都是形如“CS0246 The type or namespace name 'Key' could not be found (are you missing a using directive or an assembly reference?) ”这种错误, 给人的第一感觉就是nuget包引用出了问题,但是不管你怎么检查就是查不出来哪里错了. 更离奇的是

【调试】Linux下超强内存检测工具Valgrind

[调试]Linux下超强内存检测工具Valgrind 内容简介 Valgrind是什么? Valgrind的使用 Valgrind详细教程 1. Valgrind是什么? Valgrind是一套Linux下,开放源代码(GPLV2)的仿真调试工具的集合.Valgrind由内核(core)以及基于内核的其他调试工具组成. 内核类似于一个框架(framework),它模拟了一个CPU环境,并提供服务给其他工具:而其他工具则类似于插件 (plug-in),利用内核提供的服务完成各种特定的内存调试任务.

【one day one linux】linux下的软件包管理工具

Linux 下的软件包管理工具 linux下的软件安装可以通过两种方式,一种是直接使用自带的软件包管理工具安装,另外一种通过编译源码安装. 1.软件包的种类 Red Hat和Fedora:redhat最早发行的个人版本的Linux,自从Red Hat 9.0版本发布后,RedHat 公司就不再开发桌面版的 Linux发行套件,Red Hat Linux停止了开发,而将全部力量集中在服务器版的开发上,也就是 Red Hat Enterprise Linux 版.2004年4月30日,Red Hat

Linux下使用Eclipse开发Hadoop应用程序

在前面一篇文章中介绍了如果在完全分布式的环境下搭建Hadoop0.20.2,现在就再利用这个环境完成开发. 首先用hadoop这个用户登录linux系统(hadoop用户在前面一篇文章中创建的),然后下载eclipse的tar.gz包到/home/hadoop/这个目录下,直接解压缩,于是就会存在/home/hadoop/eclipse这个目录.在开发之前需要将hadoop0.20.2目录下面的一个jar复制到eclipse下面去.(注:在上一篇文章中我将hadoop0.20.2文件夹修改成了h

ueditor1.4.3在.net环境下的vs开发工具中集成经验

Ueditor是个很不错的在线富文本编辑器,几个项目一直使用它.最近想更新版本,发现新版1.4.3与旧版的部署方式完全不一样了,官网文档介绍的是直接放在iis下的部署说明,没有提到在vs开发工具中如何集成,自己新建了一个测试项目琢磨了一会,测试没啥问题,记录下给大家分享. 项目结构如下图: 因为我创建的是web项目类型,所以把controller.ashx以项目形式的一般处理程序迁移过去,并重命名成ueditor.ashx(记得在ueditor.config.js修改服务器统一请求接口路径).另