随笔- 313  评论- 12176  文章- 1 

开发ASP.NET Atlas服务器端Extender控件——基本概念以及预先需求

作者:Dflying Chen http://dflying.cnblogs.com/

Microsoft ASP.NET Atlas的出现几乎颠覆了整个传统的ASP.NET开发概念,理论上讲,最“纯粹”的Atlas应用程序将把一切表现层全部移到客户端进行,服务器端仅仅是提供客户端需要的服务。而目前为止这种客户端编程模型还没有很强大的IDE支持(想想编写,调试JavaScript的时候是多么的痛苦……),同时考虑到还存在着好多现有的ASP.NET程序,并且开发人员还需要一定的适应/学习时间。这样Atlas在提供纯粹的客户端面向编程模型的同时,也允许控件开发者以服务器端控件的形式开发Atlas组件,让传统的ASP.NET开发者在开发时不会觉得有什么不同之处,他们会同样得到Visual Studio的设计期支持,编译期检查等特性,平缓了程序开发者的学习曲线。

Atlas的服务器端控件大都可以以Extender的形式提供,所谓Extender,顾名思义,就是对现有的控件的功能,行为等进行扩充的组件。例如,为现有的TextBox控件加上自动完成(auto complete)功能,为现有的Button控件加上确认对话框等。其中Atlas官方发布的Control Toolkit就是若干个这样的Extender的集合,您可以到这里:"Atlas" Control Toolkit更新发布(Version 1.0.60504.0,以及Atlas Control ToolKit 发布得到更详细的信息。

对于这种非常常见的开发Extender的需求,Atlas为我们提供了一个Extender的基类以及相应的Visual Studio中的Project Template。在这个系列中,让我们一起学习如何通过使用AtlasExtender的基类以及相应的Visual Studio中的Project Template开发我们的自定义Extender

在整个系列中,我将通过一个控件的完整开发过程来讲解,这里我选择的Extender的功能是,在用户填写注册信息时,使用AJAX方式实时验证用户名是否被注册,关于这个功能的详细介绍以及客户端Atlas Behavior的实现,请参考:使用ASP.NET Atlas开发实时验证用户名是否被注册的自定义Behavior。我推荐对这个系列感兴趣的朋友把这篇文章看懂,其中的概念也弄明白,将会在未来的开发中节省好多时间。

在开发这个控件前,我们需要安装如下的组件/程序集:

  1. Atlas April CTP,请参考:ASP.NET Atlas April CTP发布,当然,您可以只使用其中的Atlas.dll,但我还是建议您安装Atlas Web SiteTemplate,这样可以在开发的过程中实时测试您的控件。
  2. Atlas Control Toolkit,请参考:"Atlas" Control Toolkit更新发布(Version 1.0.60504.0,以及Atlas Control ToolKit 发布,下载好运行自解压文件AtlasControlToolkit.exe,您将得到三个目录,其中在目录AtlasControlExtender下有一个AtlasControlExtender.vsi文件,如果您不想手动创建Control项目以及众多的相关文件/引用,那么最好还是运行安装一下这个Visual StudioProject Template(噢,当然,Visual Studio还是必要的)。

如果一切顺利的话,上述两个步骤以后您在新建Web Site的时候就可以看到Atlas Web SiteTemplate了;同样在新建项目的时候也能看到Atlas Control Project的选项。

顺便也说一下,AtlasControlToolkit.exe解压后的三个目录中的另外两个:

  1. AtlasControlToolkit目录中有这个Control Toolkit提供的若干个Extender,都带有源代码(不过没有注释)。这将是您在开发过程中不可缺少的示例程序!
  2. SampleWebSite目录中有上述Extender的使用文档以及演示程序。您可以在这里学到如何使用开发好的Extender

这个Control Toolkit中的所有Extender以及提供的Extender的基类都遵守Microsoft Permissive License协议,这是个非常宽松的协议,基本没有任何限制,请参见http://www.microsoft.com/resources/sharedsource/licensingbasics/permissivelicense.mspx

(今天就到这里吧,不好意思写了这么短的文章。实在是有点累了……这个系列大概还要两三篇左右。顺祝各位儿童节快乐)

posted on 2006-06-01 17:35  Dflying Chen  阅读(...)  评论(...编辑  收藏