在web.config中添加MIME类型

今天在开发asp.net mvc程序中,通过调试工具,发现字体(xxx.woff)文件不能正常加载,原来是IIS中是没有类型为.woff的MIME类型的,我们可以在IIS的MIME类型管理中添加.woff类型。但是为了网站配置的通用性,我们也可以把MIME类型添加在项目的web.config中,这样的话,当我们把项目部署到不同的服务器上时,就不用总是需要在IIS中添加MIME类型了。

MIME配置在system.webServer节点的staticContent节点中,设置mimeMap节点中的fileExtension文件扩展名属性和mimeType这个MIME类型属性。

1
2
3
4
5
6
<system.webServer>
<staticContent>
<remove fileExtension=".woff" />
<mimeMap fileExtension=".woff" mimeType="font/x-font-woff" />
</staticContent>
</system.webServer>

JQuery load方法加载页面内容问题

问题描述

有两个页面,分别为layout.html和welcome.html,在layout.html中引用了jquery.js,在welcome.html页面中也引用了jquery.js,通过$(“#divId”).load(welcome.html)方法加载welcome页面,当执行load方法时,使用fiddler进行抓包时,发现welcome.html中的jquery在页面加载时后面被加上了随机数。按照我的想法,jquery.js既然加载了一次,welcome.html中应该从浏览器的缓存中加载,不应该重新从服务器请求。

原因

JQuery在使用load方法加载页面时,会在目标页面的资源(包括js,css)后面加上一个随机数,来重新加载目标页面中的资源,以确保所有请求的资源是最新的,并且能够单独使用。

使用graphviz进行绘图

基本介绍

graphviz是一个图形可视化软件,这是贝尔实验室开发的一个开源的工具包,软件地址在这里,它使用dot作为脚本语言,然后使用布局引擎来解析此脚本,并完成自动布局。graphviz提供丰富的导出格式,如常用的图片格式,SVG,PDF格式等。

graphviz的布局器包含:

- dot布局,主要用于有向图,是默认的布局。
- 基于spring-model(又称force-based)算法的neato。
- 径向布局twopi。
- 圆环布局circo。
- 无向图fdp。

graphviz包含3个元素,图(graphs),节点(nodes)和边(edges)。每个元素都可以具有各自的属性,用来定义字体,样式,颜色,形状等。graphviz画图步骤如下:

1. 定义图的名称。
2. 添加节点和边,并指定样式。
3. 使用布局器进行绘制。

个人常用软件收藏

我们都有过这样的经历,重装过电脑后,都要安装自己平时经常使用的工具,在这里,对常用的一些软件工具进行汇总,并定期更新。

架构漫谈(九):理清技术、业务和架构的关系

原文链接

作者:王概凯 发布于 2016年4月12日

架构漫谈是由资深架构师王概凯Kevin执笔的系列专栏,专栏将会以Kevin的架构经验为基础,逐步讨论什么是架构、怎样做好架构、软件架构如何落地、如何写好程序等问题。

本文是漫谈架构专栏的第九篇,作者Kevin以钻木取火为切入点,深入介绍了技术、业务和架构之间的关系。正如作者所说,技术总是在人类解决对业务的要求不断提高的情况下产生,目的也是为了获取更大更好的利益。

某天和朋友吃饭正好聊到这个话题。作为架构师或者做技术的人,在开发软件时,我们基本上就是在扮演上帝的角色:我们不但要创建出一个个的程序,还要让这些程序能够脱离我们在硬件上独立运行,以便为这个程序所服务的群体提供服务。当这个程序出现问题甚至bug的时候,我们还得扮演牧师的角色去修复这些问题。这不正是一个程序的社会吗? 和人类社会的演变何其相似!那么我们自然也能够拿人类演变的历史来指导软件开发工作,以避免再经历一次像人类演变发展那么痛苦的过程了。由此我们也可以看出,架构师和程序员们都在扮演着多么重要的角色,如果还在解决自己的问题,怎么扮演好上帝这个角色?

架构漫谈(八):从架构的角度看如何写好代码

原文链接

作者:王概凯 发布于 2016年4月5日

架构漫谈是由资深架构师王概凯Kevin执笔的系列专栏,专栏将会以Kevin的架构经验为基础,逐步讨论什么是架构、怎样做好架构、软件架构如何落地、如何写好程序等问题。

本文是漫谈架构专栏的第八篇,作者Kevin举例介绍了如何写好代码。当我们有了好的架构,那就需要考虑如何将架构落地,而这个时候,代码就显得无比重要了!千万不要让代码成为架构扩展的瓶颈。文中作者提到了代码架构,细细品味吧。

在第六篇文章中,我们得出一个结论,软件架构实际上包括了:代码架构,以及承载代码运行的硬件部署架构。实际上,硬件部署架构最终还是由代码的架构来决定。因为代码架构不合理,是无法把一个运行单元分拆出多个来的,那么硬件架构能分拆的就非常的有限,整个系统最终很难长的更大。

架构漫谈(七):不要空设架构师这个职位,给他实权

原文链接

作者:王概凯 发布于 2016年3月30日

架构漫谈是由资深架构师王概凯Kevin执笔的系列专栏,专栏将会以Kevin的架构经验为基础,逐步讨论什么是架构、怎样做好架构、软件架构如何落地、如何写好程序等问题。

本文是漫谈架构专栏的第七篇,作者Kevin探讨了什么是架构师、成为架构师的前提条件、如何发现“是谁的问题”、架构师的权利和义务等话题。正如作者所说,架构师必须是一个组织的领导人,有权利调动这个组织的架构,才能够更好的发挥架构师的作用,更好的把利益的调整落到实处。

架构漫谈(六):软件架构到底是要解决什么问题?

原文链接

作者:王概凯 发布于 2016年3月23日

架构漫谈是由资深架构师王概凯Kevin执笔的系列专栏,专栏将会以Kevin的架构经验为基础,逐步讨论什么是架构、怎样做好架构、软件架构如何落地、如何写好程序等问题。

本文是漫谈架构专栏的第六篇,作者Kevin继续沿着前几篇文章的思路,探讨了软件架构为什么要有软件架构,进而再去解释什么是软件架构。这和最近网上疯传的黄金圆环(Why-How-What)思路非常贴合。

前一篇文章简述了什么是软件。那么什么是软件架构呢?按照惯例,我们来看看是什么问题,是谁的问题。

架构漫谈(五):什么是软件

原文链接

作者:王概凯 发布于 2016年3月16日

架构漫谈是由资深架构师王概凯Kevin执笔的系列专栏,专栏将会以Kevin的架构经验为基础,逐步讨论什么是架构、怎样做好架构、软件架构如何落地、如何写好程序等问题。

本文是漫谈架构专栏的第五篇,作者将会从自己的认知角度再次反思什么是软件,文中作者探讨了软件发展火热的根本原因以及软件扮演的角色等问题。如前几天一位架构师所说,我们并不缺架构实践,而是缺少对于架构的反思,希望这系列文章能帮你重新理解架构,重新认识软件。

前面通过四篇文章,把什么是架构,如何做好架构等必要的概念澄清了一下。这些概念对于在各种不同的领域都应该也是有用的,需要读者自行思考,并应用到自己所在的领域中。在这篇文章开始,我们用同样的思考,来看看软件是怎么回事,以及如何运用架构思维,更好的设计和实现软件。

架构漫谈(四):如何做好架构之架构切分

原文链接

作者:王概凯 发布于 2016年3月9日

架构漫谈是由资深架构师王概凯Kevin执笔的系列专栏,专栏将会以Kevin的架构经验为基础,逐步讨论什么是架构、怎样做好架构、软件架构如何落地、如何写好程序等问题。

本文是漫谈架构专栏的第四篇,作者将会介绍架构的切分,并直戳切分的本质其实就是利益的调整。文中作者将会讨论为什么需要切分、切分的原则、切分与建模、切分的输出和组织架构等问题。欢迎阅读和反馈。

前一篇已经讲了如何识别问题。在识别出是谁的问题之后,会发现,在大部分情况下,问题都迎刃而解,不需要做额外的动作。很多时候问题的产生都是因为沟通的误解,或者主观上有很多不必要的利益诉求导致的。但是总还有一部分确实是有问题的,需要做调整,那么就必须要有所动作,做相应的调整。这个调整就是架构的切分。