在ASP.NET页面添加一个编译版本标志图片
drummery http://www.msproject.cn/

简介

开发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>

 

得到版本信息,并生成显示:

// obtain the version number of the executing assembly, 
// so that it may be used in the banners alternate text
Version version = page.GetType().BaseType.Assembly.GetName().Version;

// retrieve the banner HTML from the localized resources,
// inserting a dynamic URL for the image, and the alternate text
string szHtml = string.Format(BuildConfigurationBannerResources.BannerHtml,
page.ClientScript.GetWebResourceUrl(GetType(),
"Common.Web.Resources.BannerImage.png"), version);

// register a javascript that will insert the HTML into the DOM
// after the page has loaded.
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
关联的文档
也许您喜欢