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)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码 ...
随机推荐
- AccountManager教程
API阅读 此类提供所述用户接口到集中登记帐户. 用户只需输入一次帐号password后,您将能够访问internet资源. 不同的在线服务用不同的方式来管理用户,所以account manager ...
- 安卓的sqlite增删改
基于安卓的sqlite增删改,笔记学习: 1.使用LinearLayout 布局生成,增删改的页面如图 代码布局如下: <LinearLayout xmlns:android="htt ...
- 【原创】leetCodeOj --- Interleaving String 解题报告
题目地址: https://oj.leetcode.com/problems/interleaving-string/ 题目内容: Given s1, s2, s3, find whether s3 ...
- uva 1393 - Highways(容斥原理)
题目连接:uva 1393 - Highways 题目大意:给定一个m∗n的矩阵,将矩阵上的点两两相连,问有多少条直线至少经过两点. 解题思路:头一次做这样的题目,卡了一晚上. dp[i][j]即为i ...
- C++ Primer 学习笔记_45_STL实践与分析(19)--建筑常规算法
STL实践与分析 --泛型算法的结构 引言: 正如全部的容器都建立在一致的设计模式上一样,算法也具有共同的设计基础. 算法最主要的性质是须要使用的迭代器种类.全部算法都指定了它的每一个迭代器形參可使用 ...
- 对于COM对象使用ComPtr代替传统指针
对于COM对象来说使用传统指针比较麻烦,还要记得Release()防止内存泄漏,一不小心就会出现各种各样的问题.针对这种问题微软提供了对于COM对象的智能指针ComPtr,这里是官方文档https:/ ...
- Android Application Thread CPU GC Operatiing and OOM Question 0603-随手笔记
面前app当完成测试,没问题,以完成整个老龄化阶段包含数据收发器,关键在 adb shell top -m 5 我发现我的 app pid 占用 CPU是最多的,事实上我想说写一个app是不难,你 ...
- JDK5什么是新的线程锁技术(两)
一个. Lock线程同步实现互斥 Lock比传统线程模型中的synchronized方式更加面向对象,与生活中的锁类似,锁本身也是一个对象. 两个线程运行的代码片段要实现同步相互排斥的效果.他们必须用 ...
- hdu 4454 Stealing a Cake(三分之二)
pid=4454" target="_blank" style="">题目链接:hdu 4454 Stealing a Cake 题目大意:给定 ...
- windows-install-python-and-sphinx(*.rst file)
http://sphinx-doc.org/install.html#windows-install-python-and-sphinx