[2014-08-18]初尝 AspNet vNext On Mac
网上关于AspNet vNext的介绍已经非常多,本文不再赘述,仅记录下Mac环境的几点注意事项。
环境
- OSX 10.9.4
- Mono 3.6.1
- Kvm 1.0.0-alpha4-10285
mono官网提供了mac使用的安装包,安装比较顺利,不详细说了。
这里比较麻烦的就是kvm,kvm的安装文件获取需要访问亚马逊的服务,网速不给力。
用HomeBrew安装的时候,为了下载这个包,命令重试了二十多次。
不过文件支持断点续传,所以需要多一些耐心。
尝试Console程序
这里直接获取github上Aspnet/Home 版本库以尝试运行。
git clone git://github.com/aspnet/Home.git
然后直接进入Home下的samples/ConsoleApp,运行kpm获取依赖的库:
kpm restore
完成后,用k run运行,命令行会输出:
[wbc@mbp:ConsoleApp]$k run
Hello World
[wbc@mbp:ConsoleApp]$
到此为止,你已经成功在mac系统上以vnext的方式成功运行了.net程序。
程序文件名并不强制要求为Program.cs只要代码中有main方法就行。
但ConsoleApp目录下并没有依赖的库,那么库在哪?
找找看
[wbc@mbp:ConsoleApp]$cd
[wbc@mbp:~]$ls -al
发现~目录下出现了.kvm/ 和.kpm/两个目录
[wbc@mbp:~]$cd .k //按两下Tab
.kpm/ .kre/
[wbc@mbp:~]$cd .kpm/
[wbc@mbp:.kpm]$ls
packages
[wbc@mbp:.kpm]$ls -p packages/
System.Console/ //Hello World依赖的库
.kpm下有所有restore下载的库,而.kvm目录下其实是多个KVM环境,不多说了。
尝试运行HelloWeb
可能看多了各种AspNet vNext的尝试文章,会看花了眼,老想着用k web命令运行web程序。其实目前在mac系统下,还不支持self-host。所以我们要使用一个server。
先回到samples目录下,进入HelloWeb,kpm restore后:
[wbc@mbp:HelloWeb]$k kestrel
Started
这时就可以访问localhost:5004了,出现一个welcome页面。
k 后面跟随的参数应该是和project.json中配置的commands节一致。
然后如何停止kestrel?使用常用的CTRL+C并不能中止kestrel,也尝试了CTRL+D,也不行。最后发现CTRL+Z可以,但也不完全,再次运行k kestrel的时候会提示地址已占用。所以,最终还是要去用ps命令找到进程号,用kill -9 [pid] 解决。
尝试HelloMvc
restore有点问题,尝试失败。可能是示例程序依赖的库,在mac下还没有准备好,不仔细排查了,等正式版。
总结
虽然目前正式版还没出来,各项目还有不完善的地方,但前途还是光明的。
如果vNext正式版发布后,能出现一个类似ROR中的rails脚手架等功能,那肯定能在非windows社区中获得更大的人气。
将.Net从VS中解放出来,会更有生命力。
参考:
- ASP.NET vNext 概述
- 在Linux上运行ASP.NET vNext
- 开发 ASP.NET vNext 初步总结(使用Visual Studio 2014 CTP1)
- #107:An exception was thrown by the type initializer for HttpApi
[2014-08-18]初尝 AspNet vNext On Mac的更多相关文章
- 在MyEclipse配置自己安装的Tomcat(2014.08.18)
今天因为要在tomcat下运行一个java项目,第一次嘛,遇到了不少问题,总结分享一下: 第一次,我直接将 MyEclipse 生成的项目放到 tomcat 安装目录的 webapps 目录下,运行出 ...
- Sysinternals Suite 2014.08.18
Windows Sysinternals Suite 是一套由微软官方免费提供的系统工具集,其中包含了大量超级实的优秀绿色小软件,譬如 Desktops (虚拟桌面).Process Explorer ...
- 初尝Windows 下批处理编程
本文叫“ 初尝Windows 下批处理编程”是为了延续上一篇“初尝 Perl”,其实对于博主而言批处理以及批处理编程早就接触过了. 本文包括以下内容 1.什么是批处理 2.常用批处理命令 3.简介批处 ...
- 初尝 Perl
本文将阐述以下几方面内容: 1.什么是Perl 2.Perl有什么用 3.Windows 下的Perl环境搭建 4.Perl 版Hello World 5.Perl 语法梗概 6.一些参考资料 什么是 ...
- seajs初尝 加载jquery返回null解决学习日志含示例下载
原文地址:http://www.tuicool.com/articles/bmuaEb 如需demo示例,请点击下方链接下载: http://yunpan.cn/cVEybKs8nV7CF 提取码 ...
- .NET领域驱动设计—初尝(三:穿过迷雾走向光明)
开篇介绍 在开始这篇富有某种奇妙感觉的文章之旅时我们先短暂的讨论一下关于软件开发方法论的简要: 纵观软件开发方法论,从瀑布模型.螺旋模型.RUP(统一软件开发过程).XP(极限编程).Agile(敏捷 ...
- 学生党如何拿到阿里技术offer:《阿里面试经历-2014.4.18研发实习生面试经历(失败)》
我们分享的上一篇文章是一位学长在大三的时候面试阿里实习生成功的经历的分享,其实就像学长在上一篇文章最后说的那样“面试并没有想的那么难,运气也会占一部分.”,其实我个人觉得,对于我们而言,自己越努力就会 ...
- 初尝微信小程序2-Swiper组件、导航栏标题配置
swiper 滑块视图容器. 很多网页的首页都会有一个滚动的图片模块,比如天猫超市首页,滚动着很多优惠活动的图片,用来介绍优惠内容,以及供用户点击快速跳转到相应页面. Swiper不仅可以滚动图片,也 ...
- js 时间 Fri Dec 12 2014 08:00:00 GMT+0800
第一种var d = new Date('Fri Dec 12 2014 08:00:00 GMT+0800'); ) + '-' + d.getDate() + ' ' + d.getHours() ...
随机推荐
- 单元测试报connection is allready closed导致dailybuild中断的解决方案——类加载机制的应用
现象; 前段时间在dailybuild过程中,经常遇到connection is allready closed错误,特别是在dailybuild高峰期. 分析定位: 这个错误是的起因比较多,这里的情 ...
- JVM常用启动参数
本文参考 jvm参数设置大全:http://www.cnblogs.com/marcotan/p/4256885.html 堆内存分配及gc:http://www.cnblogs.com/weiguo ...
- Android源码博文集锦4
Android精选源码 一款常见的自定义加载动画 android开源记账项目CoCoin Android自定义view:拖拽选择按钮 Android指纹识别 一个折线图,它提供了几个非常实用的功能 一 ...
- 如何修改script.bin/script.fex
你是否经常看见其他帖子里或者其他人提到要修改script.bin或script.fex ,但你又不知道怎么改. 其实 script.bin就是script.fex通过 fex2bin生成的,scrip ...
- [BZOJ 4325][NOIP 2015] 斗地主
一道防AK好题 4325: NOIP2015 斗地主 Time Limit: 30 Sec Memory Limit: 1024 MBSubmit: 820 Solved: 560[Submit] ...
- 使用CHCA搭建静态博客
[toc] chca是一个使用golang开发的静态博客生成器,简单.方便.快捷,抛弃每次都需要使用命令编译文件,采用文件监听方式编译,作者只需把markdown文件放到配置中的markdown文件夹 ...
- 用vector实现dijkstra
#include <stdio.h> #include <string.h> #include <string> #include <vector> # ...
- strcpy.strcmp.strlen.strcat函数的实现
#include <stdio.h> #include <string.h> char *copy(char *a,char *b);//声明一个复制函数 char *ca ...
- 尝试在CentOS7.2上编译安装Swift
苹果提供 Ubuntu上构建Swift 的教程,通过这个教程我尝试使用CentOS7.2上玩儿一把.目前已经成功在CentOS7.2上班成功安装 swift 4.0 https://github.co ...
- div模拟textarea文本域轻松实现高度自适应
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...