在 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示例程序的更多相关文章

  1. .NET跨平台:在CentOS上编译dnx并运行ASP.NET 5示例程序

    在之前的博文中我们在 Ubuntu 上成功编译出了 dnx ,并且用它成功运行了 ASP.NET 5 示例程序.在这篇博文中我们将 Ubuntu 换成 CentOS. 目前 dnx 的编译需要用到 m ...

  2. 尝试在mac上用dotnet cli运行asp.net core示例程序

    自从知道微软用dotnet cli取代dnx之后,一直在等dotnet cli支持asp.net core... 昨天看到这篇新闻(ASP.NET Core 1.0 Hello World)后,才知道 ...

  3. 在Ubuntu上下载、编译和安装Android最新内核源代码(Linux Kernel)

    文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6564592 在前一篇文章提到,从源代码树下载下 ...

  4. 在Win2008上运行ASP.NET 1.1程序

    在之前的文章<将Web站点由IIS6迁移至IIS7>中已经提到了关于在Win2008下运行ASP.NET 1.1程序的问题,但还不够完整,因此在这里重新整理一下. 1.要安装.net fr ...

  5. ubuntu上安装mysql 编译安装

    为什么要折腾?首先说明的是ubuntu上安装mysql等软件是非常容易简单的,其简单的程度盖过windows上的安装,一句sudo apt-get install就可以搞定.如果想用最简便的方法安装m ...

  6. 【转】在Ubuntu上下载、编译和安装Android最新源代码

    原文网址:http://blog.csdn.net/luoshengyang/article/details/6559955 看完了前面说的几本书之后,对Linux Kernel和Android有一定 ...

  7. 在Ubuntu上下载、编译和安装Android最新源码

    看完了前面说的几本书之后,对Linux Kernel和Android有一定的认识了,是不是心里蠢蠢欲动,想小试牛刀自己编译一把Android源码了呢?一直习惯使用Windows系统,而Android源 ...

  8. 在Ubuntu上下载、编译和安装Android最新源代码

    文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6559955 看完了前面说的几本书之后,对Lin ...

  9. Ubuntu上用premake编译GDAL

    GDAL的编译脚本呈现出不同平台不同解决方案的百花齐放现状.我是从windows平台开始编译GDAL的,用的自然是nmake.那就是一种每个目录下都需要写makefile文件的构建方法,写的人麻烦,我 ...

随机推荐

  1. [翻译]开发文档:android Bitmap的高效使用

    内容概述 本文内容来自开发文档"Traning > Displaying Bitmaps Efficiently",包括大尺寸Bitmap的高效加载,图片的异步加载和数据缓存 ...

  2. MVVM模式解析和在WPF中的实现(三)命令绑定

    MVVM模式解析和在WPF中的实现(三) 命令绑定 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在WPF中 ...

  3. hibernate多对一双向关联

    关联是类(类的实例)之间的关系,表示有意义和值得关注的连接. 本系列将介绍Hibernate中主要的几种关联映射 Hibernate一对一主键单向关联Hibernate一对一主键双向关联Hiberna ...

  4. 移动先行之谁主沉浮? 带着你的Net飞奔吧!

    移动系源码:https://github.com/dunitian/Windows10 移动系文档:https://github.com/dunitian/LoTDotNet/tree/master/ ...

  5. OpenSceneGraph in ActiveX by ActiveQt

    OpenSceneGraph in ActiveX by ActiveQt eryar@163.com Abstract. Qt’s ActiveX and COM support allows Qt ...

  6. JQuery 选择器

    选择器是JQuery的根基,在JQuery中,对事件的处理,遍历DOM和AJAX操作都依赖于选择器.如果能够熟练地使用选择器,不仅能简化代码,而且还可以事半功倍. JQuery选择器的优势 1.简洁的 ...

  7. 【C#公共帮助类】 Utils 10年代码,最全的系统帮助类

    为大家分享一下个人的一个Utils系统帮助类,可能有些现在有新的技术替代,自行修改哈~ 这个帮助类主要包含:对象转换处理 .分割字符串.截取字符串.删除最后结尾的一个逗号. 删除最后结尾的指定字符后的 ...

  8. ios 类似微信红点显示功能

    设计思路:给UIView增加一个分类 所有的视图都可以根据需要来进行红点显示 #import <UIKit/UIKit.h> @interface UIView (CHRRedDot) @ ...

  9. linux常用查看硬件设备信息命令

    转载:http://blog.chinaunix.net/uid-26782198-id-3242120.html # uname -a               # 查看内核/操作系统/CPU信息 ...

  10. ASP.NET Aries 2.0 发布(原来的源码SVN已关闭,开源源码已迁移到GitHub)

    主要更新: 1:增加子目录部署支持. 2:增加Taurus.MVC支持. 3:优化及Bug修复. 1:增加子目录部署支持: 其实在重写Aries框架的时候,我是去掉了目录部署功能的,主要是为了加快Ar ...