Nancyfx跨平台开发总结(二)Hello World

按照惯例,还是先建一个简单的Hello Word项目作为课程的开发

  • 用visual studio新建一个最基本的ASP.NET Web Application项目, 名称为WebSite。Mono目前兼容的.net 版本是4.5,所以这里使用.net framework 4.5

  • 用Nuget安装如下的开发包
    • Nancy
    • Nancy.Viewengines.Razor:使用Razor视图引擎
    • Microsoft.Owin.Host.SystemWeb:使用Katana作为Owin的Web宿主
    • Nancy.Owin
  • 模仿标准的Asp.net MVC项目建立目录,使它看起来更像一个.net mvc project.添加两个MVC View Page(Razor)文件,页面文件的代码也与Asp.net MVC项目里的类似。
    • _ViewStart.cshtml代码

      @{
              Layout = "Shared/_Layout.cshtml";
      }
    • _Layout.cshtml代码

      <!DOCTYPE html>

      <html>

      <head>

      <title>@ViewBag.Title</title>

      <meta charset="utf-8" />

      <meta name="viewport" content="width=device-width, initial-scale=1.0">

      </head>

      <body>

      <div class="container body-content">

      @RenderBody()

      </div>

      </body>

      </html>
  • 在根目录下新建一个OWIN Startup class,代码如下

    public class Startup
    {
            public void Configuration(IAppBuilder app)
            {
                app.UseNancy();
            }
    }
  • Models中添加类HomeViewModel

    public class HomeViewModel
    {
            public string Name { get; set; }
    }
  • Controller中添加类IndexController,继承自NancyModule,这个类就是控制器.与asp.net WebAPI不同的,Nancy在构造函数中定义Get,Post,Put,Delete路由路径及方法.

    using Nancy;
    using Nancy.Security;
    using WebSite.Models;
    public class IndexController:NancyModule
    {
           public IndexController()
           {
                Get["/"] = _ => Index();
                Get["/Index"] = _ => Index();
           }
    
           private dynamic Index()
           {
                this.ViewBag.Title = "Hello Word";
                var model = new HomeViewModel()
                {
                    Name = "Helle Word,Carl!"
                };
                return View["Home/Index", model];
           }
    }
  • 在Home下添加Index.cshtml视图文件,在页面显示model的Name属性值

    <div>
        @Model.Name
    </div>
  • 配置WebConfig,配置katana web宿主的支持

    <!—katana-Asp.net Owin Host支持-->
    <appSettings>
        <add key="owin:HandleAllRequests" value="true"/>
    </appSettings>
    

      

时间: 2024-10-20 11:44:26

Nancyfx跨平台开发总结(二)Hello World的相关文章

Nancyfx跨平台开发总结

微软把许多.net程序员给惯坏了. 当我向公司.net团队提出Linux服务器上的应用开发时,得到的回应竟然是.Net跨平台还不够成熟. 大多数.net程序员依然愿意用.net做着Windows开发,也不愿意尝试一些跨平台的开源框架做Linux开发,眼看着公司一位同事不停地升级着自己的visual studio和.net framework的版本,还是依旧在做着windows平台的开发,而与此同时,Java项目组的程序员们却在用着阿里的开源Web框架做着开发,拿着高薪,就因为他们的东西是开源的,

Nancyfx跨平台开发总结(一)简介

Nancyfx是一个开源的轻量级Web框架,同时兼容.Net Framework和Mono,用Nancyfx可以很容易的开发出跨平台的Web应用程序. 以下是在开发中所用到的工具和框架 Nancyfx: http://nancyfx.org/ Autofac:开源的IOC容器 Jexus:中国人写的.net web 服务器,简单易用,运行在Linux系统上,非常简单易用.还有一个Tinyfox,和jexus类似,但是可以同时运行在Windows和Linux服务器. Centos 7:Linux服

带你从零学ReactNative开发跨平台App开发(二)

ReactNative跨平台开发系列教程: 带你从零学ReactNative开发跨平台App开发(一) 上一篇教程我们一步步配置了开发RN的必备环境,这篇文章我们依然配置环境,昨天配置的是CRNA模式开发的环境,我们今天配置原生混合开发环境. 第一次写系列教程,写的不好,多多担待,有错误欢迎评判指正. 说一下这个系列教程的目标吧,实战一个CRNA模式开发的跨平台App打包并发布,并将这个App用原生混合开模式实现并打包发布. 废话不多说开始撸码,你准备好了吗? 环境配置 配置原生混合模式开发的环

QT开发(二十七)——QT常用类(一)

QT开发(二十七)--QT常用类(一) 一.QString 1.QString简介 QString提供了Unicode编码的字符串,使用隐式共享技术来节省内存和不必要的数据拷贝,不必考虑跨平台的兼容性. QString类成员函数中除了 ascii().latin1().utf8().local8Bit()函数,其他所有的函数都是可重入的. 2.QString成员函数 QString::QString ( const QChar * unicode, int size ) QString::QSt

APICloud视频教程_“H5移动跨平台开发”APICloud课程

"H5移动跨平台开发"APICloud课程 课程观看地址:http://www.xuetuwuyou.com/course/169 课程出自学途无忧网:http://www.xuetuwuyou.com 一.课程使用到的软件 APICloud Studuio(或Sublime.WebStorm加上APICloud插件) Google Chrome浏览器 海马玩手机模拟器(或真机) 二.课程目的:     随着IOS.Android等原生APP的开发成本大.维护成本大,"跨平台

10分钟,AppCan帮你搞定跨平台开发APP问题!

跨平台开发APP时,开发者总会遇到一些问题,如打包失败等等,尤其对于iOS来说,由于它的限制性会导致一些状况发生(如证书上传问题等),小编总结了几个AppCan在线IOS打包失败常见的情况及排查技巧,有所困扰的同学可以作为参考,对问题进行排查. 打包失败分为以下几种情况: 1.插件重复勾选:请检查"公共插件"与"我的插件"(自己上传的插件)是否有重复插件. 2.证书问题:请参照开发指导→iOS证书申请流程的指引文档,在苹果官网正确申请证书.证书上传后检验通过不代表证

移动端跨平台开发干货分享

(此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 第一次推荐国内技术专家的文章,涉及的是移动端跨平台开发的话题. 之前NativeScript 1.0发布的时候,就打算谈谈移动端跨平台开发这个话题.正好,今天国内技术专家"吴多益"发表了一篇文章<聊聊移动端跨平台开发的各种技术>就这个话题,给大家分享了很多干货. 为什么大家对移动端跨平台开发总是孜孜不倦的追求,各种框架也是层出不穷呢?究其原因,还是由于纯HTML在手机

跨平台开发实战系列篇-开篇

本系列文章将带着你从React Native入门到精通React Native开发,包括大型电商项目实战.大型新闻项目实战(一套代码运行在iOS平台和Android平台).持续更新中...... 一.前言 React Native于F8大会开源,在短短不到一年的时间里,它成为手机端必不可少的开发模式之一. 它充分利用了Facebook现有的业务轮子, 其核心设计理念:既拥有Native的用户体验.又保留React的开发效率, 也就是"learn once,write everywhere&quo

何必苦等VS2015?来看看VS2013下实现移动端的跨平台开发

原文:何必苦等VS2015?来看看VS2013下实现移动端的跨平台开发 前一天准备下载VS2015预览版,到VisualStudio官网一看,发现微软发布了VisualStudio2013的插件——Visual Studio Tools for Apache Cordova,实现跨平台的开发.官网下载地址:http://www.microsoft.com/en-us/download/details.aspx?id=42675,下面是截图: 点击下载扩展插件,双击开始安装,第一次打开出现如下错误