设为首页 收藏本站
查看: 861|回复: 0

[经验分享] .Net Core 跨平台系列之环境部署

[复制链接]

尚未签到

发表于 2017-2-23 10:40:35 | 显示全部楼层 |阅读模式
前言

  • 作为一名.NET程序员,很多时候都会被什么拖控件、跨平台等字眼所鄙视过,但是在我的的内心还是没有把自己看低过。因为说到底,平台和语言只是我们吃饭的工具。很多时候公司的发展是取决于商业竞争的,微软也不例外。在大环境下,我们终于看到了微软给我们带来的跨平台的惊喜。尽管这只是刚刚开始,但我相信在不久的将来,我们能切实感受到NET Core给我们的诚意,我们也会一直伴随着它成长着。
  • 当我们想要迫切知道它在Linux平台下给我们带来的惊喜时,我开始搜索各种资料,却发现它的平台部署并不是那么容易(这主要取决于Linux系统的类型和版本,以及一些相关依赖文件的缺失)。下面我就对自己的部署环境做一个记录,以便帮助大家减少部署环境中带来的困惑。
系统环境

  • 本地机器:Windows7 x64 旗舰版
  • 虚拟机:Vmware Workstation 10.0.1 build-1379776
  • Linux: ubuntu-14.04.3-desktop-amd64.iso
  如对虚拟机和Ubuntu的安装不清楚的请自行百度。安装完成后,为了适应屏幕的变化以及主机和虚拟机之间文件的复制操作,我们可以安装VMware Tools,具体参照这篇文章
环境部署

  • 安装程序代码编辑器visual studio Code,到官网下载最新版本,地址:https://code.visualstudio.com/download 选择编译后的.zip的文件下载。
DSC0000.png

  下载后直接解压压缩包,双击code就可以打开文件编辑器,打开后就可以Lock Launcher,方便以后打开
DSC0001.png


  • 安装DNVM(NET Version Manager),利用它可以在Linux上管理安装不同版本的.NET 运行环境DNX(.NET Execution Environment),输入以下命令:
         sudo apt-get install unzip curl

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


  安装成功后,可以输入DNVM 命令查看到以下界面:
DSC0002.png


  • 安装.NET 运行环境DNX(.NET Execution Environment),可以理解为NET CORE 的CLR,输入以下命令:
       sudo apt-get install libunwind8 gettext libssl-dev libcurl4-openssl-dev zlib1g libicu-dev uuid-dev
       dnvm upgrade -r coreclr
  安装完成后,可以输入dnx查看以下界面:
DSC0003.png

  并且我们也可以输入dnvm list 查看到服务器上安装的net版本列表
DSC0004.png


  • 安装Web服务器Libuv,libuv是Kestrel所使用的一个多平台的异步IO库,它是一个跨平台的HTTP服务器,可以托管运行ASP.NET 5 Web应用程序。输入以下命令:
           sudo apt-get install make automake libtool curl
           curl -sSL https://github.com/libuv/libuv/archive/v1.8.0.tar.gz | sudo tar zxfv - -C /usr/local/src
           cd /usr/local/src/libuv-1.8.0
           sudo sh autogen.sh
           sudo ./configure
           sudo make
           sudo make install
           sudo rm -rf /usr/local/src/libuv-1.8.0 && cd ~/
           sudo ldconfig

  •   安装NodeJS,为什么要安装NodeJS呢?为后面安装的Net模板工具所需要。具体步骤可以参考这篇文章
  • 安装Yeoman,它是在 Node.js 之上生成的基架平台,使你能够为项目或代码文件生成基于模板的生成器。输入以下命令:
           npm install -g yo bower grunt-cli gulp
           npm install -g generator-aspnet
控制台程序
  在命令终端输入以下命令 sudo su
  以root用户操作,例如我们现在在桌面建立一个为Demo的文件夹,控制台程序文件放入此目录,首先转到Demo的根目录下,然后运行yo aspnet,你会看到以下界面:
DSC0005.png

  选择Console Application,回车创建我们的控制台应用程序,可以输入程序的名称
DSC0006.png

  此时程序已经创建成功,我们打开Visual studio Code 来查看此工程的源码,打开后选择此工程的文件名称ConsoleApplication(应为上图使用的是默认的名称)
DSC0007.png

DSC0008.png

  进入程序根目录,编译程序,然后执行程序可以看到运行结果为Hello World,在终端以普通用户输入以下命令:
DSC0009.png

DSC00010.png

DSC00011.png

Web程序
  例如我们的Web程序也创建在桌面的Demo文件下,按照上面的方法在root用户下转到Demo文件夹,运行yo aspnet  选择Web Application程序创建Web程序。
DSC00012.png

  在终端以普通用户转到Demo/WebApplication目录下运行dnu restore,加载web程序需要引用的依赖库文件。如下图:
DSC00013.png   

  输入dnx web命令启动web服务器
DSC00014.png

  在浏览器中输入http://localhost:5000/ 可以看到运行的web程序如下图显示:
DSC00015.png


  • 到此,我们终于完成了Linux下NET平台的建设,安装过程中可能会应为环境的不同而出现一些错误,这些错误可以按照错误的提示在网上搜索答案。安装的程序包建议都到官网进行下载,保持最新版本,避免版本不同带来错误。
参考资料
  Installing ASP.NET 5 On Linux
  理解ASP.NET 5运行时命令:DNVM, DNX, 和DNU
  Setting up Visual Studio Code
  ubuntu14.04安装nodejs基础环境

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-346109-1-1.html 上篇帖子: TypeScript Basic Types(基本类型) 下篇帖子: 扒一扒前端包管理器
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表