.NET跨平台:在Ubuntu上用自己编译的dnx运行ASP.NET 5示例程序
在 Linux Ubuntu 上成功编译 dnx 之后,会在 artifacts/build/ 文件夹中生成 dnx-coreclr-linux-x64/ 与 dnx-mono/ 这2个文件夹,前者是基于 coreclr 的 dnx ,后者是基于 mono 的 dnx 。
这篇博文中我们将使用基于 coreclr 的 dnx 运行 ASP.NET 5 示例程序,而 dnx 以及它所需的一切都在 dnx-coreclr-linux-x64/ 的 bin/ 文件夹中,所以只需通过下面的命令就可以运行一个 ASP.NET 5 应用程序。
/data/git/dnx/artifacts/build/dnx-coreclr-linux-x64/bin/dnx . kestrel
下面我们分别通过三种类型(Console/Web/MVC)的 ASP.NET 5 示例程序实际体验一下。示例程序来自 github.com/aspnet/Home/ 。
(一)
第一个示例程序是 ConsoleApp(ASP.NET 5 控制台应用程序)
using System; public class Program
{
public static void Main()
{
Console.WriteLine("Hello World");
}
}
用以下命令运行这个 ASP.NET 5 控制台应用程序(无需Web服务器):
cd /data/git/Home/samples/latest/ConsoleApp
dnu restore
/data/git/dnx/artifacts/build/dnx-coreclr-linux-x64/bin/dnx . run
运行成功!结果如下:
Hello World
(二)
第二个示例程序是 HelloWeb (未使用 MVC 的 ASP.NET 5 Web 应用程序)
using Microsoft.AspNet.Builder; namespace HelloWeb
{
public class Startup
{
public void Configure(IApplicationBuilder app)
{
app.UseStaticFiles();
app.UseWelcomePage();
}
}
}
用以下命令运行程序(需要Web服务器,用的是Kestrel)
cd /data/git/Home/samples/latest/HelloWeb
dnu restore
/data/git/dnx/artifacts/build/dnx-coreclr-linux-x64/bin/dnx . kestrel
运行失败!出现下面的错误:
System.InvalidOperationException: Unable to load libuv. Make sure libuv is installed and available as libuv.so.1
这是由于 Unbuntu 上没有安装 libuv,而 Kestrel 是基于 libuv 的。所以先要安装 libuv,安装的命令如下:
git clone https://github.com/libuv/libuv.git
sh autogen.sh
./configure
make
make install
sudo ln -s /usr/local/lib/libuv.so /usr/lib/libuv.so.1
继续用 dnx . kestrel 命令运行,这次运行成功!
# /data/git/dnx/artifacts/build/dnx-coreclr-linux-x64/bin/dnx . kestrel
Started
然后通过浏览器访问“主机名:端口号”,就会看到 HelloWeb 输出的默认页面:
(三)
第二个示例程序是 HelloMvc (基于 ASP.NET 5 的 MVC 示例程序)
using Microsoft.AspNet.Builder;
using Microsoft.Framework.DependencyInjection; namespace HelloMvc
{
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
} public void Configure(IApplicationBuilder app)
{
app.UseErrorPage(); app.UseMvcWithDefaultRoute(); app.UseWelcomePage();
}
}
}
用以下命令运行这个 ASP.NET 5 MVC 示例应用程序:
cd /data/git/Home/samples/latest/HelloMvc
dnu restore
/data/git/dnx/artifacts/build/dnx-coreclr-linux-x64/bin/dnx . kestrel
运行成功!
# /data/git/dnx/artifacts/build/dnx-coreclr-linux-x64/bin/dnx . kestrel
Started
然后用浏览器访问,就可以看到 MVC 输出的页面:
三个 ASP.NET 5 示例程序运行成功!
虽然这三个示例程序只是微不足道的小玩具,但将它们在最新的 .NET 跨平台的三驾马车 coreclr/corefx/dnx 上运行起来,可以实际体会一下 .NET 跨平台正在一步一步向前。而且基于 .NET 跨平台的这一微步,我们可以尝试在上面运行一些很简单的站点。
.NET跨平台:在Ubuntu上用自己编译的dnx运行ASP.NET 5示例程序的更多相关文章
- .NET跨平台:在CentOS上编译dnx并运行ASP.NET 5示例程序
在之前的博文中我们在 Ubuntu 上成功编译出了 dnx ,并且用它成功运行了 ASP.NET 5 示例程序.在这篇博文中我们将 Ubuntu 换成 CentOS. 目前 dnx 的编译需要用到 m ...
- 尝试在mac上用dotnet cli运行asp.net core示例程序
自从知道微软用dotnet cli取代dnx之后,一直在等dotnet cli支持asp.net core... 昨天看到这篇新闻(ASP.NET Core 1.0 Hello World)后,才知道 ...
- 在Ubuntu上下载、编译和安装Android最新内核源代码(Linux Kernel)
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6564592 在前一篇文章提到,从源代码树下载下 ...
- 在Win2008上运行ASP.NET 1.1程序
在之前的文章<将Web站点由IIS6迁移至IIS7>中已经提到了关于在Win2008下运行ASP.NET 1.1程序的问题,但还不够完整,因此在这里重新整理一下. 1.要安装.net fr ...
- ubuntu上安装mysql 编译安装
为什么要折腾?首先说明的是ubuntu上安装mysql等软件是非常容易简单的,其简单的程度盖过windows上的安装,一句sudo apt-get install就可以搞定.如果想用最简便的方法安装m ...
- 【转】在Ubuntu上下载、编译和安装Android最新源代码
原文网址:http://blog.csdn.net/luoshengyang/article/details/6559955 看完了前面说的几本书之后,对Linux Kernel和Android有一定 ...
- 在Ubuntu上下载、编译和安装Android最新源码
看完了前面说的几本书之后,对Linux Kernel和Android有一定的认识了,是不是心里蠢蠢欲动,想小试牛刀自己编译一把Android源码了呢?一直习惯使用Windows系统,而Android源 ...
- 在Ubuntu上下载、编译和安装Android最新源代码
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6559955 看完了前面说的几本书之后,对Lin ...
- Ubuntu上用premake编译GDAL
GDAL的编译脚本呈现出不同平台不同解决方案的百花齐放现状.我是从windows平台开始编译GDAL的,用的自然是nmake.那就是一种每个目录下都需要写makefile文件的构建方法,写的人麻烦,我 ...
随机推荐
- 背后的故事之 - 快乐的Lambda表达式(一)
快乐的Lambda表达式(二) 自从Lambda随.NET Framework3.5出现在.NET开发者眼前以来,它已经给我们带来了太多的欣喜.它优雅,对开发者更友好,能提高开发效率,天啊!它还有可能 ...
- 游戏服务器菜鸟之C#初探一游戏服务
本人80后程序猿一枚,原来搞过C++/Java/C#,因为工作原因最后选择一直从事C#开发,因为读书时候对游戏一直比较感兴趣,机缘巧合公司做一个手游的项目,我就开始游戏服务器的折腾之旅. 游戏的构架是 ...
- webpack+react+redux+es6开发模式
一.预备知识 node, npm, react, redux, es6, webpack 二.学习资源 ECMAScript 6入门 React和Redux的连接react-redux Redux 入 ...
- 博客使用BOS上传图片
1.博客平台的选定 从大学开始做个人主页算起,最开始是使用html,CSSS写简单的页面,后面大学毕业之后接触到了WordPress,就开始用WordPress搭建网站.现在还维护着一个农村网站.ht ...
- 算法与数据结构(十一) 平衡二叉树(AVL树)
今天的博客是在上一篇博客的基础上进行的延伸.上一篇博客我们主要聊了二叉排序树,详情请戳<二叉排序树的查找.插入与删除>.本篇博客我们就在二叉排序树的基础上来聊聊平衡二叉树,也叫AVL树,A ...
- 走进缓存的世界(三) - Memcache
系列文章 走进缓存的世界(一) - 开篇 走进缓存的世界(二) - 缓存设计 走进缓存的世界(三) - Memcache 简介 Memcache是一个高性能的分布式内存对象缓存系统,用于动态Web应用 ...
- 移动应用App测试与质量管理一
测试工程师 基于Html的WebApp测试, 现在一些移动App混Html5 HTML5性能测试 兼容性 整理后的脑图 测试招聘 弱化大量技术考察 看重看问题的高度 看重潜力 测试经验 质量管理 专项 ...
- MyBatis源码分析(二)语句处理器
StatementHandler 语句处理器,主要负责语句的创建.参数的设置.语句的执行.不负责结果集的处理. Statement prepare(Connection connection, Int ...
- Android 扫描条形码(Zxing插件)
使用Android Studio 一.在build.gradle(Module:app)添加代码 下载,调用插件 1 apply plugin: 'com.android.application' ...
- SVN版本冲突,导致出现Files 的值“ < < < < < < < .mine”无效
只要根据错误提示,找到相应文件夹下的\obj\Debug文件夹下的 相应名字.csproj.FileListAbsolute.txt, 打开并删除含有'<<<<<< ...