Nancy是.NET 平台的微框架。在受到Ruby社区的Sinatra框架启发下,NancyFx框架提供一个.NET平台下的低门槛、易上手的可用于Web开发工具包。

请注意我说的是可用于Web开发,这是有原因的。NancyFx不只是一个用于构建Web站点或API节点的Web框架。它是一个完整的框架,可提供基于Http的服务功能,可以构建简单控制台程序,也可以搭建大型的企业网站。

Nancy可以以传统的形式来托管,比如 IIS7下,它也可以自托管。自托管是特别有趣,因为它意味着通常的后台应用程序 (如 Windows 服务) 现在可以有

web 接口来进行管理。

Nancy还能通过Mono框架在 Linux 和 Unix 系统上构建、运行。这意味着你可以 (或至少应该能够) 在 Android 和 Mac OS 上运行您启用Nancy的代码。

你可能已经想问否应使用Nancy取代另一个框架,例如 MVC、 ASP、 Ember或 ServiceStack。你怎么知道哪一个是最好?事实是在你的职业生涯中没有"最好的框架"可用于所有的开发任务。你只是为手头的任务选择的最好的框架。

我只知道的是,Nancy提供了大量的功能 ,并且是非常容易上手使用的。

做个比较,当我第一次发现关于Nancy (早在 2011 年,关于 0.8 或 0.9 版本),在半天之内,我就学会了一切我需要知道的,开始编写代码运行程序。而当我使用了ASP.NET MVC多年以后,却仍然是一个持续的学习过程。

Nancy能做什么?这里是基本框架内置功能的简短列表︰

  • 基于 rest 路由
  • 内置的简单视图引擎,可置换
  • 提供静态文件服务
  • 多租户服务托管
  • Rest API 认证 (基本认证,表单认证和基于令牌的认证)
  • 灵活模型绑定
  • 多格式内容协商
  • 密码密钥和短语生成
  • SSL 证书处理
  • 异步任务处理
  • 依赖注入

此列表是只是冰山一角;这里提到的功能,出于工具包的模块化设计,所有的代码都可以被客户端代码重载。你可以轻松地插入您自己的依赖注入容器,或扩展你自己的身份验证方案。

配合第三方程序集,可用来添加一些功能到到Nancy中︰

  • 基于 OAuth 的身份验证
  • 连接第三方诊断和日志记录组件
  • 跨平台集成到诸如 NGINX,Apache 和其他非 Windows 应用程序堆栈
  • 编写适配器,也能接入其他的什么

最后一点还是要强调的,你可以轻松地覆盖任何你想要的(或需要)。Nancy中的每个接口都是公开的,最棒的是自动串联起来的,这意味着你通常需要做的是编写一个类,实现一个给定的接口,Nancy就能找到它,剩下的就交给它了。

还有一个大招是Nancy的托管方案,NancyWiki 上的基本列表如下:

  • ASP.NET
  • WCF(Windows communication foundation)
  • Microsoft Azure
  • OWIN
  • Self-hosting (standalone apps)
  • Umbraco
  • NGINX
  • 支持FastCGI的所有服务器

当然你可以实现接口,自己开发一个托管容器。

总结

在本章中,您学习了 NancyFX 框架是什么和它的功能是什么。在下一章中,你会了解多一点关于Nancy的创作背后的背故事以及一点点更多关于精神、理念和"super-duper-happy-path"(有人解释为简单粗暴行之有效)。

NancyFX 第一章 NancyFX 简介的更多相关文章

  1. 第一章 C++简介

    第一章  C++简介 1.1  C++特点 C++融合了3种不同的编程方式:C语言代表的过程性语言,C++在C语言基础上添加的类代表的面向对象语言,C++模板支持的泛型编程. 1.2  C语言及其编程 ...

  2. python 教程 第一章、 简介

    第一章. 简介 官方介绍: Python是一种简单易学,功能强大的编程语言,它有高效率的高层数据结构,简单而有效地实现面向对象编程.Python简洁的语法和对动态输入的支持,再加上解释性语言的本质,使 ...

  3. 学习笔记-[Maven实战]-第一章:Maven简介

    Maven简介: Maven 可翻译为:知识的积累,也可以翻译为"专家"或"内行". Maven 是一个跨平台的项目管理工具,是Apache组织中一个很成功的开 ...

  4. 《跟我学Shiro》学习笔记 第一章:Shiro简介

    前言 现在在学习Shiro,参照着张开涛老师的博客进行学习,然后自己写博客记录一下学习中的知识点,一来可以加深理解,二来以后遗忘了可以查阅.没有学习过Shiro的小伙伴,也可以和我一起学习,大家共同进 ...

  5. 《JavaScript高级程序设计》——第一章JavaScript简介

    第一章主要讲了JavaScript的诞生和发展.刚刚接触JavaScript的我,似乎对这些内容并不感兴趣,快速看了一遍就开始去看第二章了. 看完第一章,收获也就是了解到JavaScript由ECMA ...

  6. 第一章 Shiro简介——《跟我学Shiro》(转)

    目录贴:跟我学Shiro目录贴 1.1  简介 Apache Shiro是Java的一个安全框架.目前,使用Apache Shiro的人越来越多,因为它相当简单,对比Spring Security,可 ...

  7. 第一章 Mysql 简介及安装和配置

    Mysql是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一. ...

  8. python第一章:简介与安装--小白博客

    Python简介 Python是一种计算机程序设计语言.是一种动态的.面向对象的脚本语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的.大型项 ...

  9. 用 WEKA 进行数据挖掘 ——第一章:简介

    1.简介数据挖掘.机器学习这些字眼,在一些人看来,是门槛很高的东西.诚然,如果做算法实现甚至算法优化,确实需要很多背景知识.但事实是,绝大多数数据挖掘工程师,不需要去做算法层面的东西.他们的精力,集中 ...

随机推荐

  1. eclipse spring4 ehache2.10 整合

    http://blog.csdn.net/tonytfjing/article/details/39251507 http://my.oschina.net/duoduo3369/blog/17392 ...

  2. Drupal 主题的表现形式

    1.template.php /**  * Implements hook_theme().  */ function yourtheme_theme($existing, $type, $theme ...

  3. ASP.NET动态网站制作(7)-- JS(2)

    前言:这节课是JS的第二节课,主要是JS中的控制语句. 内容: 1.条件语句:  (1)比较操作符:==,!=,>,>=,<,<=.字符串大小写转换:toUpperCase() ...

  4. java jdbc 同时操作查询删除操作

    Connection conn = null;        try {            // 创建连接实例            conn = JdbcUtility.GetFactory() ...

  5. 微信小程序TabBar的使用

    一.TabBar使用步骤 1.创建所需要的界面和所需要的图片: 2.配置文件: 我们找到项目根目录中的配置文件 app.json 加入如下配置信息 "tabBar": { &quo ...

  6. jQuery 插件开发(1)

    JavaScript 是一门混乱的语言,好的特性和坏的特性混杂在一起.而不同浏览器对标准的解析不一致,使得这门语言更加混乱,在这种情况下遵循最佳实践有诸多好处,至少不会掉入坑里.所以就有了<Ja ...

  7. 九度OJ 1075:斐波那契数列 (数字特性)

    时间限制:5 秒 内存限制:32 兆 特殊判题:否 提交:3121 解决:1806 题目描述: 编写一个求斐波那契数列的递归函数,输入n值,使用该递归函数,输出如样例输出的斐波那契数列. 输入: 一个 ...

  8. Java for LeetCode 131 Palindrome Partitioning

    Given a string s, partition s such that every substring of the partition is a palindrome. Return all ...

  9. [2018-10-17]宁波dotnet社区(NBDNC)第一次问卷关于dotnet技术栈的小调查

    最近(2018年10月7日至10月17日),为配合确定下一次社区线下活动主题,做了一次宁波dotnet社区(NBDNC)的本地dotnet技术栈调研,设计了一份问卷,在此做一次记录. 导出的问卷统计结 ...

  10. Machine Learning No.7: Support Vector Machines

    1. SVM hypothsis 2. large margin classification 3. kernals and similarity if  f1 = 1; if x if far fr ...