关闭

Linux下ASP.NET5开发工具与部署环境搭建

发表于:2015-10-16 10:09

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:GiveCase    来源:51Testing软件测试网采编

  1.说明
  由于在“古董机”上进行实践,只能安装系统是ubuntu-15.04-desktop-i386 (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
  进入压缩包目录……
  解压到指定的目录#: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#:sudo npm install -g yo
  使用yo#:yo
  安装generator-aspnet#:sudo npm install -g generator-aspnet
  使用generator-aspnet#:yo aspnet
  9.小结
  用vscode编写代码,用generator-aspnet很方便地创建ASP.NET5项目或代码块模板。
  编写的程序运行环境,这离不开clr。有些程序托管还需要特定的编译或运行环境。
  这里没有对vscode,generator-aspnet,npm,dnvm四大利器具体使用技巧进行演示,很遗憾啦。
  另外docker虚拟机部署应用很方便很火,有空单独介绍了。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号