简介
开发WEB应用程序是一个非常动态的过程,而且它的效果随时可见的特性更导致了它的迭代开发过程,以及不断的发布版本的现状。
当开发编译出一个UAT(用户可接受性测试)版本的时候,如果能够展示一些信息,提示用户当前的编译是在DEBUG模式下是非常有意义。
比如:
1. 如果显示一个版本信息,它可以帮助用户提交反馈信息。
2. debug编译版本和release版本的性能往往差距不小,这样有一个标志显示出来会解释这一信息。
...
本文解释并给出完全的代码,提供基于HTTP渠道的插件,让网站中的任何一个ASPX页面在debug编译版本的时候,随时显示一个开发版本图片。
这个标签图片会显示在一个角上,以不影响页面的布局。
浮动的图像
标签图像通过一个透明度PNG图片显示,并使用一个DIV包括起来,防止到右上角。javascript用于在页面上产生用到的HTML脚本。
<div style="Position: absolute;Top: 0;Right: 0;
Background: transparent;Filter: Alpha(Opacity=60);-moz-opacity:.60;opacity:.60;">
<img src="{0}" alt=\"development build: version {1}\" />
</div>
得到版本信息,并生成显示:
Version version = page.GetType().BaseType.Assembly.GetName().Version;
string szHtml = string.Format(BuildConfigurationBannerResources.BannerHtml,
page.ClientScript.GetWebResourceUrl(GetType(),
"Common.Web.Resources.BannerImage.png"), version);
page.ClientScript.RegisterStartupScript(GetType(), "DevelopmentBanner",
string.Format("Event.observe(window, 'load', function()
{{new Insertion.Bottom($(document.body), '{0}');}});", szHtml), true);
是否显示
程序会自动读取assembly 中的DebuggableAttribute,来决定是否显示它:
private bool IsAssemblyDebugBuild(Page page)
{
foreach (Attribute att in
page.GetType().BaseType.Assembly.GetCustomAttributes(false))
if (att is System.Diagnostics.DebuggableAttribute)
return (att as System.Diagnostics.DebuggableAttribute).IsJITTrackingEnabled;
return false;
}
配置
配置web应用程序使用banner之前,确保banner程序集中你的web应用程序的bin目录下,然后把下面的XML语句放到WEB.CONFIG文件中。
<httpModules>
<add name="Banner" type="Common.Web.Modules.BuildConfigurationBannerModule,
Common.Web"/>
</httpModules>
你唯一要做的就是这个了,这样,只要你的网站在debug模式下编译,网站的每个页面都会显示一下这个图片标签
CIO之家 www.ciozj.com 公众号:imciow