技术开发 频道

VS2010实战:发布一个自定义Web控件

  【Visual Studio 2010 Demo大赛专稿】Visual Studio 2010 SDK给Visual Studio增加了多个项目模板,通过这些模板我们可以创建并共享自定义控件,这些被称为扩展项目,除了可以编译控件外,将扩展项目包含进一个VSIX扩展用于发布,VSIX控件扩展可以通过发布到Visual Studio Gallery,或是直接发送给有兴趣的开发人员进行共享。

  目前在Visual Studio SDK中没有扩展Web控件项目模板,但你可以按照本文所述的方法自己DIY一个,我们将分为两篇文章进行介绍,通过本文的内容,你将学到:

  • 创建一个自定义Web控件;

  • 在Visual Studio 实验实例中测试这个Web控件;

  • 准备发布Web控件;

  • 将Web控件发布到Visual Studio Gallery;

  • 从Visual Studio Gallery安装Web控件;

  • 从Visual Studio Gallery移除Web控件。

  先决条件

  为了能跟随本文的方法进行操作,你需要掌握一些Web控件,创建新项目,设置项目属性,使用Visual Studio 实验实例相关的知识,另外你的计算机上必须安装了Visual Studio 2010和Visual Studio SDK。

  从零开始创建并发布你的Web控件

  当没有项目模板可用时,为了创建和发布你的Web控件,可以从现有的可扩展控件项目开始,在其基础上进行修改,创建一个可扩展的Web控件项目。

  1、打开Visual Studio,创建一个新的Visual C#/Extensibility/Windows Forms Toolbox Control项目,取名MyWebControls,点击“确定”前选中“为解决方案创建目录”复选框,如下图所示。

 先决条件

  图 1 新建MyWebControls项目

  2、给解决方案添加一个名叫Temp的Visual C#/ASP.NET Server Control新项目,如下图所示。

 先决条件

  图 2 为解决方案添加一个新的Visual C#/ASP.NET Server Control项目

  合并项目文件

  1、将Temp/ServerControl1.cs重命名为Temp/ColorTextControl.cs。

  2、删除MyWebControls/ToolboxControl.cs文件。

  3、将Temp/ ColorTextControl.cs文件复制到MyWebControls项目。

  4、从解决方案移除Temp项目。

 先决条件

  图 3 项目合并后的解决方案

  合并项目引用

  1、给项目添加以下引用:

  • Microsoft.CSharp

  • System.Data.DataSetExtensions

  • System.Web

  • System.Xml.Linq

  2、从项目移除以下引用:

  • System.Data

  • System.Windows.Forms

  • System.Xml

 合并项目引用

  图 4 合并引用后的解决方案

  创建Web控件

  1、在代码编辑器中打开ColorTextControl.cs文件。

  2、将命名空间改为MyWebControls。

  3、在ToolboxData属性上,用ColorTextControl替代ServerControl1。

  这些值指定了从工具箱拖动控件到Web页面上时,为控件生成标签,它们必须与控件类的名字匹配,也是显示在工具箱上控件的名字。

  4、给控件类增加一个ProvideToolBoxControl属性。

  这个属性的第一个参数是程序集的名字,它与命名空间的名字是一样的,彩色文本控件将会以这个名字显示在工具箱上。控件类源代码的开头部分如下:

namespace MyWebControls

  {

  [DefaultProperty(
"Text")]

  [ToolboxData(
"<{0}:ColorTextControl runat=server>")]

  [ProvideToolboxControl(
"MyWebControls", false)]

  
public class ColorTextControl : WebControl

  {

 

  5、用下面的Get方法替换默认的“Text”属性:

get

  {

  
String s = (String)ViewState["Text"];

  return
"' + s + "";

  }

  它将在文字周围显示一个绿色标签。

  6、在代码编辑器中打开Properties/AssemblyInfo.cs文件。

  7、用“*”替换AssemblyVersion版本修订编号,如:

  [assembly: AssemblyVersion("1.0.0.*")]

  自定义工具箱控件是缓存起来的,只有程序集前面变化时才会刷新,每次构建时,通过增加程序集版本修订编号,缓存就会一直刷新。

  测试你的Web控件

  发布Web控件之前,最好先在Visual Studio实验实例上进行测试。

  1、按F5启动Visual Studio的实验实例。

  2、从“工具”菜单中选择“扩展管理器”,显示MyWebControls扩展已经启用,如下图所示。

 合并项目引用

  图 5 已经生效的扩展

  3、关闭“扩展管理器”。

  4、创建新的ASP.NET Web应用程序项目。

  5、在源模式下打开default.aspx。

  6、打开工具箱,你应该在MyWebControls分类下看到ColorTextControl,如下图所示。

 合并项目引用

  图 6 MyWebControls下的ColorTextControl

  7、拖动一个ColorTextControl到Web页面。

  8、给ColorTextControl标签增加Text属性,给其赋值Think Green!,代码如下:

  

  9、按F5启动ASP.NET开发服务器。

  ColorTextControl在网页中渲染后的效果如下:

 合并项目引用

  图 7 ColorTextControl最终显示效果

  10、关闭ASP.NET开发服务器。

  11、关闭Visual Studio实验实例。

  准备发布Web控件

  将Web控件发布到Visual Studio Gallery之前,需要准备一个图标和屏幕截图,这个图标将用在扩展管理器中显示。

  1、如果你有一个图标文件,将它添加到你的项目中,否则就只有在你的项目中添加一个空白的图标文件,然后再编辑它,这里我们将直接使用一个现有文件Color.bmp,它在黄色背景上显示一个彩色的大写字母A,如下图所示。

 准备发布Web控件

  图 8 图标文件

  2、想办法生成一个屏幕截图文件,将其添加到项目中,我们使用了一个ScreenShot.bmp文件,如下图所示。

 准备发布Web控件

  图 9 屏幕截图

  3、打开source.extension.vsix文件。

  4、将描述(Description)改为“彩色文本Web控件”,如下图所示。

 准备发布Web控件

  图 10 修改描述信息

  5、将图标(Icon)设为Color.bmp,预览图像(Preview Image)设为ScreenShot.bmp。

  6、修改作者,版本等信息。

  7、保存并关闭source.extension.vsix文件,以发行(Release)构建方式重新构建项目。

  发布你的Web控件

  现在已经准备好将Web控件发布到Visual Studio Gallery了,发布过程如下:

  1、在浏览器中打开http://visualstudiogallery.msdn.microsoft.com。

  2、点击右上角的“登陆”链接。

  3、用你的Windows Live ID登录。

  4、点击右上角的“上传”按钮。

  5、在“第1步:扩展类型”中,选择“控件”,然后点击“下一步”。

  6、在“第2步:上传”中,选择“我想上传我的控件”,出现“选择你的控件”文本框。

  7、点击“浏览”按钮,选择位于项目bin/Release文件夹下的MyWebControls.vsix文件,点击“下一步”。

  8、在“第3步:基本信息”中,你能看到你之前填写的信息,你输入的描述信息显示在“概述”区域中。

  9、分类选择ASP.NET,标签选择工具箱,Web控件,在这里你还可以输入更多的描述信息。

  10、阅读并同意捐献协议。

  11、点击“创建”。

  12、点击“发布”。

  13、在Visual Studio Gallery中搜索MyWebControls,可以看到已经发布成功。

 准备发布Web控件

  图 11 搜索结果显示MyWebControls发布成功

  安装你发布的Web控件

  控件发布后,可以直接通过Visual Studio安装和测试。

  1、回到Visual Studio。

  2、从“工具”菜单中选择“扩展管理器”。

  3、点击“在线Gallery”,然后搜索MyWebControls。

  4、点击“下载”按钮,下载好扩展后,点击“安装”按钮,你的Web控件就安装到Visual Studio中了。

  5、创建一个新的ASP.NET Web应用程序项目。

  6、在源模式下打开default.aspx。

  7、打开工具箱,你应该在MyWebControls分类下看到ColorTextControl了。

  从Visual Studio Gallery移除你的Web控件

  从Visual Studio Gallery移除Web控件的过程如下:

  1、返回浏览器。

  2、点击左上角“我的贡献”链接,页面显示MyWebControls。

  3、点击“删除”按钮。

  4、返回到Visual Studio。

  5、供“工具”菜单中选择“扩展管理器”。

  6、选择MyWebControls,点击“卸载”。

  7、重启Visual Studio完成卸载过程。

  下一篇文章将会为大家介绍如何在Web控件项目基础上,创建和发布一个可扩展的Web控件项目模板,敬请期待!

0
相关文章