ASP.NET MVC Boilerplate简介
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满足标签的简单和正确性。
如何获得
选择如下选项获得:
- 下载Visual Studio 2013扩展 于此并且在 Visual Studio中选择 文件à 新建项目 à Web
- 克隆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简介的更多相关文章
- Orchard开源ASP.NET MVC CMS简介
项目简介: Orchard CMS 是一个免费的开放源代码内容管理系统,让用户可在 Microsoft ASP.NET MVC 平台上快速创建网站.它基于灵活的扩展性框架构建,使开发人员和定制人员可通 ...
- ASP.NET MVC 4 简介
介绍 使用Visual Studio 2010开发的话,首先需要安装MVC4,可以参考另一篇文章 进行安装. ASP.NET MVC 运行流程 (Clinet) Http Request 客户端发起 ...
- ASP.NET MVC5(一):ASP.NET MVC概览
ASP.NET MVC概览 ASP.NET MVC是一种构建Web应用程序的框架,它将一般的MVC(Model-View-Controller)模式应用于ASP.NET框架. 1.ASP.NET MV ...
- 简介 – ASP.NET MVC 4 系列
正所谓好记性不如烂笔头,尤其是技术类书籍在阅读后,时间久了一定会忘记.而重新翻阅整本书也较为低效,遂以博客记录阅读摘要以供日后查阅.本系列文章均摘要自 Wrox 红皮书[ASP.NET ...
- 笨鸟先飞之ASP.NET MVC系列之过滤器(01过滤器简介)
过滤器 什么是过滤器? 过滤器(Filter) 主要的作用大致可以理解为把我们的附加逻辑注入到MVC框架的请求处理. 在ASP.NET MVC的请求处理中一种有19个管道事件分别是 BeginRequ ...
- ASP.NET MVC教程一:ASP.NET MVC简介
一.MVC模式简介 MVC模式是一种流行的Web应用架构技术,它被命名为模型-视图-控制器(Model-View-Controller).在分离应用程序内部的关注点方面,MVC是一种强大而简洁的方式, ...
- 第1章 (ASP.NET MVC简介)
一.MVC概念 MVC由三部分组成:视图(View).模型(Model).控制器(Controller)组成 二.运用VS创建MVC 1.新建一个"解决方案" 2.在"解 ...
- ASP.NET MVC 简介
1. ASP.NET MVC 是什么? ASP.NET MVC是微软官方提供的以MVC模式为基础的ASP.NET Web应用程序(Web Application)框架,它由Castle的MonoRai ...
- ASP.NET MVC简介
MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码 ...
随机推荐
- [模式识别].(希腊)西奥多里蒂斯<第四版>笔记8它__模板匹配
在语音识别方面,同样的话都是同一个人,每次说的情况是不同的,难以识别.本章是定义如何适应不同的情况有不同的特性指标. 1,基于最优路径搜索的度量:①贝尔曼最优性原则和动态编程②编辑距离(The E ...
- 区间第K大
protected static int partitions(List<KDNode> data,int left,int right,int k,int pos){ int l = l ...
- [转载] 树莓派读取温湿度传感器DHT11
原文地址: http://blog.csdn.net/liang890319/article/details/8739683 硬件: 树莓派 2.0 DHT模块 接树莓派5V GND GPIO1 功 ...
- 左右xcode的重构选项的一些理解
Rename(重命名):对标示符进行重命名,以获得更好的代码可读性,这些标示符包含类,方法或者函数的名称. Extract(抽取):将你在XCode种选择的代码抽取到一个新的方法或函数中. Creat ...
- HttpClient文件上传下载
1 HTTP HTTP 协议可能是如今 Internet 上使用得最多.最重要的协议了,越来越多的 Java 应用程序须要直接通过 HTTP 协议来訪问网络资源. 尽管在 JDK 的 java.net ...
- 更改Activity的最底层的布局
public void attachToActivity(Activity activity) { mActivity = activity; TypedArray a = activity.getT ...
- MyEclipse每次修改js有另一种部署
今天在做时间格式显示这块内容的时候.我改动了这个js函数,同一时候凝视的掉了其它的一些替换的方法,可是在浏览器中执行发现效果一点也没有改变.于是debug js,发现浏览器中识别的还是之前未改动的js ...
- C# WinForm dataGridView 技巧小结
1.不显示第一个空白列RowHeaderVisible属性设置为false 2.点击cell选取整行SelectinModel属性FullRowSelectRowSelectinModel属性设置或用 ...
- VirtualBox创建虚拟电脑、执行Genymotion模拟器报错
当安装完Genynition关于Android应用的调试模拟器之后,在Genymotion执行的平台virtualBox:VirtualBox创建虚拟电脑.执行Genymotion模拟器报错: 错误卖 ...
- Dom7.js 源码阅读备份
在Framework7,其特色的HTML框架,可以创建精美的iOS应用; 她有自己的 DOM7- 一个集成了大部分常用DOM操作的高性能库.你不需要学习任何新的东西,因为她的用法和大名鼎鼎的jQue ...