ASP.NET MVC Boilerplate简介

ASP.NET MVC Boilerplate是专业的ASP.NET MVC模版用来创建安全、快速、强壮和适应性强的Web应用或站点。它在微软默认MVC模版之上提供了要求最少的代码实现。

使用此模版的主要好处:

  • 安全
  • 性能
  • 搜索引擎优化 (SEO)
  • 可访问性
  • 浏览器兼容
  • 弹性和错误处理
  • 简单调试和性能测试工具
  • 设计模式和最佳实践
  • 搜索

ASP.NET MVC Boilerplate 技术路线图

为什么需要ASP.NET MVC Boilerplate?

Visual Studio提供的默认MVC模版 没有充分发挥工具的作用。它非安全、缓慢并且仅有很基本的特性组成。ASP.NET MVC Boilerplate提供部分解决方案让你快速启动。它允许自由使用并提供检查列表帮助你明确需要做的任务让你的应用和站点更加完善。

此文余下部分将浏览针对MVC模版的提高。结束时提供如何使用它。同时,提供未来将做的改进,此处将浏览每个功能的细节。

默认安全

默认MVC模版并不安全。各种设置 (大部分在web.config文件中)并不是默认安全的。例如,它曝露了使用的IIS版本并默认允许外部脚本访问Cookie。

ASP.NET MVC Boilerplate 默认使用安全选项,并使用各种发送给浏览器的HTTP头严格要求请求和响应。

也使用了新的内容安全策略 (CSP) HTTP头,通过使用 NWebSec NuGet程序包。CSP 保证了Web安全,强烈建议阅读上面的链接。

设置 SSL/TLS让你的站点运行在HTTPS之上,你可以通过上面的链接和说明进行配置。

默认快速

默认MVC模版没有考虑性能问题。可能它们没有考虑使用何种Web服务器。几乎所有的ASP.NET MVC站点都使用IIS,其配置在web.config文件中system.webServer节中,对性能影响尤其重要。

ASP.NET MVC Boilerplate没有假设。它为静态文件和动态文件打开GZip压缩,让它们在被送到浏览器之前变得更小,能被更快下载。它也默认使用内容分发网络 (CDN) 让通用脚本如jQuery能被快速下载。

不仅如此! 还有其它很多调教和最佳实践的示例用来帮助提高ASP.NET MVC Boilerplate 性能达到96/100分,评测使用YSlow

搜索引擎优化 (SEO)

默认 ASP.NET MVC模版没有考虑搜索引擎优化。ASP.NET MVC Boilerplate添加动态生成的robots.txt文件告诉搜索引擎哪些页面可以被索引。同时添加动态生成的sitemap.xml文件帮助搜索引擎更进一步提供访问所有你的页面的途径。

ASP.NET MVC有很多有用的设置用来追加斜杠地址到URL并让所有URL小写。但不幸的事,所有这些默认被关闭了,这对SEO来说真的事糟糕极了。此项目打开了所有这些设置。

它同时包含一个MVC过滤器用来帮助重定向非标准URL到它们的标准地址。

可访问性

世界4%人口有视觉障碍,0.55%为盲人。更多的统计可从此处获得。ASP.NET MVC Boilerplate保证你站点的可访问性,通过增加aria特性到你的HTML标记和专门图标给使用屏幕阅读的人们。.

浏览器兼容

站点需要满足通过各种设备的多数人尽可能访问。ASP.NET MVC Boilerplate支持浏览器到IE8 (IE8仍占有4%的市场份额)。

ASP.NET MVC Boilerplate也支持桌面浏览器的其它设备。它包括默认图标并且可为Windows 8、安卓、苹果设备和少数其它特别设备进行显示。

弹性和错误处理

站点抛出异常并且你需要处理并且记录异常,让后让你便于理解并修复它。ASP.NET MVC Boilerplate 包含Elmah,最流行的日志插件已经被预置在模板中。

ASP.NET MVC Boilerplate使用来自谷歌和微软流行的内容发布网络 (CDN),如果不行不好用,ASP.NET MVC Boilerplate提供备份。

不仅有标准的错误页如500 Internal Server Error、404 Not Found和很多其它错误页内建在末班中。ASP.NET MVC Boilerplate甚至包含了IIS配置来保护免受Denial-of-Service (DoS)攻击。

简单调试和性能测试工具

ASP.NET MVC Boilerplate 使用 Glimpse (鉴于Scott Hansleman的 宣传)。 它是不错的用来进行开发并查找性能问题和缺陷的工具。当然Glimpse是预置好的,不需要安装。

设计模式和最佳实践

做正确的事需要时间。使用控制反转(IOC) 作为默认模式。ASP.NET MVC Boilerplate使用Autofac作为IOC默认容器。很多其它容器都工作得很好,选择Autofac因为有很多ASP.NET MVC帮助类并且微软使用它为Azure Mobile Services工作。

ASP.NET MVC Boilerplate也使用流行的LESS文件让CSS变得简单。

ASP.NET 是复杂的怪兽,会遇到很多魔法字符串,要进行重命名简直可以说是异常噩梦。有很多处理此类问题的方法,不过性能都不佳。ASP.NET MVC Boilerplate广泛应用常量保持可维护性和性能之间的平衡。

Atom种子

Atom 1.0默认包含。选择Atom而非RSS因为它是更新更好的规范。PubSubHubbub 0.4 被内建支持,允许你推送种子更新给订阅者。

搜索

有很多实现搜索的方法。ASP.NET MVC Boilerplate包含搜索特性,但让你自由选择你的实现方式。它也实现了Open Search XML。请阅读Hanselman讨论此特性于此

社交

Open Graph 元标签和Twitter Card 元标签被默认包含。不止如此,ASP.NET MVC Boilerplate包括全文档化的HTML帮助类允许你轻松生成Open Graph对象或者Twitter Card满足标签的简单和正确性。

如何获得

选择如下选项获得:

  1. 下载Visual Studio 2013扩展 于此并且在 Visual      Studio中选择 文件à 新建项目 à Web
  2. 克隆git仓库:

git clone https://github.com/RehanSaeed/ASP.NET-MVC-Boilerplate

发布说明和待办列表

你可以在这里找到每个版本的发布说明,还有在这里找到新特性和即将到来的增强。

项目的未来

作者试图创建Visual Studio部署程序包 (VSIX) 并且在Visual Studio扩展中列出项目模版。为了使用模版,你只需要轻松选择ASP.NET MVC Boilerplate从 在线模版,在文件à新建项目à在线模版菜单。难以置信的,其实创建起来很复杂。作者找到了 Export Template Wizard Visual Studio扩展。

同时创建不同的Visual Studio模版包括ASP.NET Web API和OAuth认证。

ASP.NET MVC Boilerplate简介的更多相关文章

  1. Orchard开源ASP.NET MVC CMS简介

    项目简介: Orchard CMS 是一个免费的开放源代码内容管理系统,让用户可在 Microsoft ASP.NET MVC 平台上快速创建网站.它基于灵活的扩展性框架构建,使开发人员和定制人员可通 ...

  2. ASP.NET MVC 4 简介

    介绍 使用Visual Studio 2010开发的话,首先需要安装MVC4,可以参考另一篇文章 进行安装. ASP.NET MVC 运行流程 (Clinet) Http Request 客户端发起 ...

  3. ASP.NET MVC5(一):ASP.NET MVC概览

    ASP.NET MVC概览 ASP.NET MVC是一种构建Web应用程序的框架,它将一般的MVC(Model-View-Controller)模式应用于ASP.NET框架. 1.ASP.NET MV ...

  4. 简介 – ASP.NET MVC 4 系列

           正所谓好记性不如烂笔头,尤其是技术类书籍在阅读后,时间久了一定会忘记.而重新翻阅整本书也较为低效,遂以博客记录阅读摘要以供日后查阅.本系列文章均摘要自 Wrox 红皮书[ASP.NET ...

  5. 笨鸟先飞之ASP.NET MVC系列之过滤器(01过滤器简介)

    过滤器 什么是过滤器? 过滤器(Filter) 主要的作用大致可以理解为把我们的附加逻辑注入到MVC框架的请求处理. 在ASP.NET MVC的请求处理中一种有19个管道事件分别是 BeginRequ ...

  6. ASP.NET MVC教程一:ASP.NET MVC简介

    一.MVC模式简介 MVC模式是一种流行的Web应用架构技术,它被命名为模型-视图-控制器(Model-View-Controller).在分离应用程序内部的关注点方面,MVC是一种强大而简洁的方式, ...

  7. 第1章 (ASP.NET MVC简介)

    一.MVC概念 MVC由三部分组成:视图(View).模型(Model).控制器(Controller)组成 二.运用VS创建MVC 1.新建一个"解决方案" 2.在"解 ...

  8. ASP.NET MVC 简介

    1. ASP.NET MVC 是什么? ASP.NET MVC是微软官方提供的以MVC模式为基础的ASP.NET Web应用程序(Web Application)框架,它由Castle的MonoRai ...

  9. ASP.NET MVC简介

    MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码 ...

随机推荐

  1. 举例说,在命令模式(Command Pattern)

    在前面加上 谈到命令,大部分的人脑海中会想到以下这幅画面   这在现实生活中是一副讽刺漫画,做决定的人不清楚运行决定的人有何特点,瞎指挥.外行领导内行说的就是这样的.只是在软件设计领域,我们显然要为这 ...

  2. WPF中的三维空间(1)

    原文:WPF中的三维空间(1) WPF中可以创建三维几何图形,支持3D对象的应用,支持从3D Max等软件将3D文件obj导入设计中,但是目前还不支持将材质同时导入,这样需要在WPF中对3D对象重新设 ...

  3. MIPS台OpenWrt在系统内的路由器Rust应用程序开发

    笔者:Liigo(庄小莉) 迄今:2014年9一个月17日本 (9一个月29日更新,11一个月19日本再次更新.在最后可用更新) 原文链接:http://blog.csdn.net/liigo/art ...

  4. SqlBulkCopy批量插入数据时,不执行触发器和约束的解决方法

    原文:SqlBulkCopy批量插入数据时,不执行触发器和约束的解决方法 在new SqlBulkCopy对象的时候,设置一下SqlBulkCopyOptions选项即可,按位或运算 SqlBulkC ...

  5. HDU 4508 沼泽湿地系列故事——记住减肥I (2013腾讯编程马拉松预赛第一)

    pid=4508">http://acm.hdu.edu.cn/showproblem.php?pid=4508 题目大意: 给定一些数据. 每组数据以一个整数n開始,表示每天的食物清 ...

  6. Java基金会——JUnit

    JUnit 測试的重要性毋庸质疑.但怎样使測试更加准确和全面.而且独立于项目之外而且避免硬编码,JUnit给了我们一个非常好的解决方式. 能够说JUnit是为单元測试而生的,一个Java语言的单元測试 ...

  7. OpenCV:Mat元素访问方法、演出、代码的复杂性和安全性分析

    欢迎转载.尊重原创,因此,请注明出处: http://blog.csdn.net/bendanban/article/details/30527785 本文讲述了OpenCV中几种訪问矩阵元素的方法, ...

  8. hdu 5030 Rabbit's String(后缀数组&二分法)

    Rabbit's String Time Limit: 40000/20000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others ...

  9. JAVA运行程序代码段

    我记得那时候刚毕业.学习JAVA恐惧是这里,它是关于JAVA称号.我总是不正确.如今,这最后审查.看了好半天.得赶紧把刚才学习到的那点东西记下来. 一.关于static的代码段运行顺序 运行结果例如以 ...

  10. android4.4组件分析--service组件-bindService源代码分析

    6.1.1.    bindService 由于有前面分析startService的代码实现过程,则对于bindService的代码分析就不用那么具体介绍,在介绍流程的同一时候更关注一些细节上的部分. ...