RSS 2.0 Feed
2006-09 Entries
摘要:【原文地址】ComponentArt Releases Web.UI for ASP.NET AJAX 【原文发表日期】 Friday, September 29, 2006 11:26 AM ComponentArt今天宣布推出与ASP.NET AJAX扩展(即Atlas)相集成的Web.UI控件的商业版。  点击这里观看他们的一些在线演示,这些演示给人的印象非常深刻。  你也可以在他们的网站下载这些控件的beta版,以及浏览他们使用ASP.NET AJAX库为这些控件建立的客户端API参考网页。 我盼望看到的一件事是,在ASP.NET AJAX接近推出完全支持的1.0版本时,能看到使用ASP.NET AJAX建立的所有这些棒极了的控件,无论是商业版的还是开源版的。我很高兴看到象ComponentArt推出的这些非常酷的控件,这些控件将允许开发人员在很短的时间内开发出响应非常好的用户界面。 希望本文对你有所帮助, Scott 标签:ASP.NET, Atlas  (思归译) ...[阅读全文]

posted @ | Feedback (4) | Filed Under [ ASP.NET Atlas ]

摘要:【原文地址】Tip/Trick: Patterns and Practices Guidance Explorer for .NET and ASP.NET 【原文发表日期】 Wednesday, September 27, 2006 10:16 PM 六月份时,我曾写过帖子,介绍微软模式和实践组正在开发的酷极了的崭新的.NET和ASP.NET模式和实践向导管理器(Guidance Explorer)。 之后,这个产品组一直在苦干,最近把项目移到了微软的开源网站CodePlex上。你可以去这里访问甚至参加这个项目。向导管理器用户界面(Guidance Explorer UI )的所有源码,(当然是用.NET和Windows Forms开发的),现在也可以从CodePlex上的项目网站上免费下载到了。 向导管理器提供了一个关于ASP.NET,ADO.NET和.NET Framework方面的推荐的实践和最佳实践的数据库,你可以很轻松地筛选和查询。其中特别有用的是一些在部署前性能和安全方面的最佳实践的清单(checklist),你可以很轻松地按步照办。 你可以建立定制的视图,只包括你关注的那些推荐实践的内容。比较酷的是,你现在也可以很轻松地把这些定制的视图发布给你的朋友或你的开发组的其他成员: 你也能订阅本地共享或网上的向导feed: 最棒的是,你现在也可以建立自己的推荐实践,把它们加到数据库里去,与其他人分享。 今天就去CodePlex的项目网站下载该项目以及全部源码,开始使用起来吧! 希望本文对你有所帮助, Scott 标签:ASP.NET, .NET, Security, Tips and Tricks  (思归译) ...[阅读全文]

posted @ | Feedback (3) | Filed Under [ ASP.NET .NET Tips and Tricks Security ]

摘要:【原文地址】Tip/Trick: Optimizing ASP.NET 2.0 Web Project Build Performance with VS 2005 【原文发表日期】Friday, September 22, 2006 11:47 AM 这个帖子讨论在Visual Studio 2005中开发web项目时,如何优化其Build性能。如果你正受缓慢Build的煎熬,或者想知道怎么提高Build速度,请继续读下去。 VS 2005 网站项目和VS 2005 Web应用项目简介  VS 2005 支持两种项目模型:VS 2005 网站项目(Web Site Projects) 和 VS 2005 Web应用项目(Web Application Projects)。 VS 2005 网站项目是VS 2005刚发行时内置的项目模型,它提供了一个基于无项目 (project-less)的模型来开发web应用,该模型使用了ASP.NET 2.0在运行时使用的同个动态编译系统。而VS 2005 Web应用项目则是今春早些时候发布的一个完全支持的可下载项目模型,它提供了一个使用了基于MSBuild的build系统的项目模型,可以把一个项目中的所有编码编译成单个程序集 (与VS 2003类似,但又少了VS 2003 web项目中涉及FrontPage服务器扩展,IIS依赖性,以及其他问题的种种限制)。想进一步了解VS 2005 Web应用项目的话,请参考我发表在 http://webproject.scottgu.com网站上的系列教程。注意,对VS 2005 Web应用项目的支持将包含在VS 2005 SP1中,这样以后就不用另外下载了。 VS 2005网站项目和VS 2005 Web应用项目两个模型在将来的Visual Studio版本中将会继续被完全支持。我们发现,有些人喜欢一个模型,憎恶另外一个模型,反之亦然。从特性(feature)的角度看,没有“最佳的模型选择”这一说,完全取决于你个人的爱好和你们的团队协作机制(team dynamics)来决定哪个模型最适于你。譬如,许多的企业开发人员喜欢VS 2005 Web应用项目模型,因为它提供了更多的build控制和团队集成支持,而许多的web开发人员则喜欢VS 2005网站项目模型,因为它的“即存即行(just hit save)”的动态模型和灵活性。 有2篇文章,你也许会发现在决定采用哪个模型时有用,这篇MSDN上的白皮书内含对这两个模型的比较, 而Rick Strahl的《Web应用项目和Web 部署项目发布了》一文对不同选项的利弊做了一个很好的讨论。 想从VS 2005 网站项目模型迁移到VS 2005 Web应用项目模型的话,请按这个C#或VB版的教程里示范的步骤做。 那么哪个项目模型Build起来快些呢? 在对项目做full build时,VS 2005 Web 应用项目模型编译起项目来会比VS 2005 网站项目模型快很多。full build是指对项目里的每一个类和网页要做编译或重新编译的情形,要么因为你在build菜单里选了Rebuild,要么因为你修改了一个依赖的类库项目或者/app_code子目录里的编码,然后点击了build或按了ctrl-shift-b来编译解决方案。 在这些“全部重新编译(full rebuild)”的情形下,VS 2005 Web 应用项目编译比VS 2005 网站项目快很多有几个原因。主要原因是,跟在VS 2003中一样,VS 2005 Web 应用项目只编译你的页面的后台编码(code-behind)以及你项目中的其他类文件。它既不分析也不编译你的.aspx 页面内的内容/控件/行内(inline)编码,这意味着,它不需要parse那些文件。坏处是,这也意味着,在编译过程中,它不会检查那些文件是否有错(而VS 2005 网站项目则会识别其中的任何错误)。好处是,这使得编译极其快。 那么,这是否意味着你总是应该在大型项目的情形下使用VS 2005 Web 应用项目模型来得到最快的build 时间呢?不,不一定。VS 2005 网站项目的一个很好的特性是对“按需编译(on demand compilation)”的支持。这在你对所依赖的文件做了变化(dependent changes)后,让你避免常规地重新编译整个项目,而是只需要对那些你正在编辑的页面做重新编译,而且这个编译是按需进行的。这会给你的解决方案带来build性能上的极大改进,而且也会在开发非常大的项目时给予你非常好的工作流程。如果你想要在保持网站模型灵活性的同时改进build性能,我强烈推荐使用这个模型。 下面几节提供了针对VS 2005......[阅读全文]

posted @ | Feedback (19) | Filed Under [ ASP.NET Visual Studio Tips and Tricks ]

摘要:【原文地址】Tip/Trick: UpdateProgress Control and AJAX Activity Image Animations 【原文发表日期】Thursday, September 21, 2006 1:06 PM ASP.NET AJAX扩展(即Atlas) 提供的很酷的新控件之一是UpdateProgress控件。这个控件允许你在AJAX回调的进行过程中,自动在页面上显示指定的UI。同时,如果AJAX回调耗时太长,你还可以在UI上提供一个选项让用户来取消AJAX回调。在页面上使用该控件,只须这样声明:     <atlas:UpdateProgress ID="progress1" runat="server">        <ProgressTemplate>                    <div class="progress">                <img src="indicator.gif" />                 Please Wait...            </div>                </ProgressTemplate>    </atlas:UpdateProgress> 在AJAX回调进行中,<ProgressTemplate>里的内容就会显示。你可以通过CSS将里面的内容显示在页面的任何位置,例如,你可能想直接在GridView或其他元素上方通过渐显效果把它显示出来。开发人员经常使用动画图像显示进度,现在也可以在<ProgressTemplate>里面实现这样的效果。 Alan Le最近发了一个很酷的链接,指向几个非常有用的网站,这些网站提供了许多动画进度的图标。你可以很容易地将它们与UpdateProgress控件结合使用,来显示回调操作的进度: http://www.napyfab.com/ajax-indicators/ http://www.ajaxload.info/ http://mentalized.net/activity-indicators/ 你可以从这几个网站上下载到可用的旋转齿轮和进度图标。下面是几个例子: 本周早些时候,我提到新发布的Atlas控件工具包现在包含了一个动画效果库,可以和ASP.NET AJAX扩展一起使用。与UpdateProgress控件配合使用的话,它们能给你的网站增添很好的视觉效果。 希望本文对你有所帮助, Scott   标签: ASP.NET, Atlas, Tips and Tricks  (Ring译) ...[阅读全文]

posted @ | Feedback (9) | Filed Under [ ASP.NET Tips and Tricks Atlas ]

摘要:【原文地址】September Atlas Control Toolkit Released (Now with Animation Support) 【原文发表日期】 Tuesday, September 19, 2006 8:28 AM Atlas控件工具包的最新版已于上个星期晚些时候推出。这个工具包基于核心ASP.NET AJAX 运行时,是个提供了很多有用的具备AJAX功能的ASP.NET控件库。你可以在这里下载和运行样本程序。 就象我在以前的帖子里提到的那样,这个工具包很酷的地方就在于,它包含了几个由非微软开发人员提供的控件。例如,在这个更新版本里,有一个非常酷的新Slider控件(点击这里观看它的实战演示),就是由非微软开发人员贡献的,它提供了非常平滑的,在客户端从数值范围选值的支持: 这个版本里还包括了对一些渐为时兴的客户端动画效果的支持。你可以直接在JavaScript里使用动画效果包,或者通过<atlasToolkit:AnimationExtender>控件来轻易地组合动画行为,以响应用户的动作。譬如,你可以让文字和图片渐现,扩大,爆炸,移动,或pop-up等等。 动画效果包很酷的地方在于,你可以通过<atlas:AnimationExtender>控件,用声明的方式来定义动画行为,这使得定义动画顺序起来既干净又不费力。 你可以在这里进一步研究这个新的动画效果包,同时也能在线运行相关演示。务必查阅一下动画效果包的参考页,以深入学习动画效果类框架,以前它支持的所有的方法,属性和事件。 除了响应用户点击或客户端行为触发动画效果以外,你也可以在用ASP.NET AJAX UpdatePanel控件刷新部分页面做的postback时,使用新的<AtlasToolkit:UpdatePanelAnimationExtender>控件来添加动画效果的支持。这可以使得突出显示变化了的界面的方式更干净,更加对用户友好,譬如,你可以逐渐显示那些变化,或者真想出奇的话,你可以旋转/加彩变化了的界面,让你的用户看了都会晕眩。看一下UpdatePanelAnimationExtender的这个在线演示,深入研究一下这个控件。Alan Le在这里贴了一个很棒的简单例子,给你演示怎么通过这个控件用声明的方式组合动画,你应该去看一下。 一如既往,你可以免费下载带有全部源码的Atlas控件工具包,也可以在线运行它。想进一步学习使用ASP.NET AJAX(即Atlas)以及控件工具包的话,读一下我几个星期前写的这篇博客帖子,内含一堆很棒的免费录像的链接。 希望本文对你有所帮助, Scott 标签:ASP.NET, Atlas  (思归译) ...[阅读全文]

posted @ | Feedback (12) | Filed Under [ ASP.NET Atlas ]

摘要:【原文地址】Tip/Trick: Using IIS7 on Vista with VS 2005 【原文发表日期】 Tuesday, September 19, 2006 7:41 AM 上个星期,几个人都询问我怎么在Windows Vista上使用VS 2005 建立IIS7上的网站。具体来说,他们都遇到了一个问题,在试图连接IIS7时,他们要么看到一个对话框要求他们安装FrontPage服务器扩展,要么得到一个“你必须是管理员组的成员”的出错消息,如下图所示: Bradley发表了 一个很好的帖子,描述了如何使得VS 2005连接到IIS 7.0的详细步骤。简短地说,你需要按下面二个步骤进行: 1) 你需要确认在IIS7里安装了可选的IIS 6 Management Compatibility(IIS 6管理兼容)这个选项。这将为新的配置系统安装一个与VS 2005使用的老的Metabase API相兼容的API。你可以在Vista 控制面板中的Turn Windows Features on or Off(打开/关闭Windows特性)对话框里选择该选项:   2) 你需要确定以高级权限来运行VS 2005,这样你才能有管理权限连接到IIS。如果要调试一个服务,或者创建网站或者改动影响整个机器的配置时,你需要拥有管理权限。具体做法是,在启动VS时,右击VS图标,然后选择“以管理员身份运行(Run as Administrator)”: 注意,假如你启动了UAC(用户访问控制)的话(注:UAC在Vista中默认是启动的),即使你的用户账号已经是管理员组成员,你还是需要这么做。如果你禁止了UAC(你可以通过控制面板来这么做),那么这第二步就不需要了。如果你使用VS 2005内置的Web服务器的话,那么你不需要以高级权限运行VS 2005,因为内置的Web服务器是以非高级权限运行的。而且这个步骤也只有在本地连接,运行/调试IIS时才需要。 我们将会更新Visual Studio 2005来提供更准确的错误消息,在将来,会以更自然的方式来向你指明以上的步骤。在目前,只要使用上面这些步骤,就可以搞定了。 希望本文对你有所帮助, Scott 标签:ASP.NET, Visual Studio, IIS7, Tips and Tricks  (思归译) ...[阅读全文]

posted @ | Feedback (9) | Filed Under [ ASP.NET IIS7 Visual Studio Tips and Tricks ]

摘要:【原文地址】Tip/Trick: Enabling Back/Forward-Button Support for ASP.NET AJAX UpdatePanel 【原文发表日期】Thursday, September 14, 2006 12:25 PM Nikhil最近写了一个好帖子,是关于一个叫做HistoryControl的支持AJAX的新ASP.NET 控件的。把它加到页面上后,允许开发人员用编程手段往浏览器的历史记录里添加逻辑视图(logical view)。这将使得支持AJAX的网站更加有用,而且遵循传统web应用所遵循的标准的前进/后退的导航惯例。 譬如,通过Nikhil的HistoryControl,开发人员可以编写类似下面这样的编码来响应一个列表的选择变动,并且把列表选择当作标识符添加到浏览器的历史记录中去: private void ContentList_SelectedIndexChanged(object sender, EventArgs e) {   history.AddEntry(contentList.SelectedIndex.ToString();} 你一旦往历史控件里添加新项后,浏览器中的后退/前进按钮就被激活了。Nikhil的历史控件提供了一个Navigate事件,当你在浏览器里按后退/前进按钮时,这个事件就会被触发,同时它在事件处理函数的参数里提供了早先在把逻辑视图添加进浏览器历史记录时所用的那个标识符。然后你就可以使用这个标识符来把页面回复到跟这个历史记录相对应的页面状态了: private void HistoryControl_Navigate(object sender, HistoryEventArgs e) {    int selectedIndex = 0;    if (String.IsNullOrEmpty(e.Identifier) == false) {        selectedIndex = Int32.Parse(e.Identifier);    }    // Update the content being displayed in the page    contentList.SelectedIndex = selectedIndex;    // Mark the update panels as needing an update    mainUpdatePanel.Update();} 这样你的用户在使用AJAX应用时也能使用前进/后退按钮来作导航了。你可以在这里下载Nikhil的历史控件的编码,开始用在你的项目里。 希望本文对你有所帮助, Scott 标签:ASP.NET, .NET, Atlas, Tips and Tricks (思归译)...[阅读全文]

posted @ | Feedback (7) | Filed Under [ ASP.NET .NET Tips and Tricks Atlas ]

摘要:【原文地址】"Atlas" 1.0 Naming and Roadmap 【原文发表日期】Monday, September 11, 2006 10:01 AM 在过去的一年内,我们一直在奋力开发Atlas。Atlas一直在发展,变化和成长,是因为我们得到了惊人数量的反馈和早期采纳。我们看到了围绕着这个产品的难以置信的兴趣和兴奋,光是今年,下载数目就超过25万次。 发布Atlas 1.0版 很多人要求我们在Visual Studio下个版本发布之前推出一个完全支持的Atlas 1.0版。完全支持(Fully supported)意味着,Microsoft提供每天24个小时,每周7天,一年365天的产品支持,以及任何客户可以得到热补丁(hotfix),假如他们遇到影响他们应用的bug的话。这也意味着,产品将有一个为期10年的产品生命周期的承诺─这样客户公司就能靠这个产品来开发关键业务(mission critical)的应用程序。 今天,我非常兴奋地宣布,我们将发布基于ASP.NET 2.0的完全支持的Atlas 1.0 版,而且将确保它与Visual Studio 2005的兼容。我们的目标是在年底左右发布Atlas 1.0 版。计划是,先有一个Beta,然后是RC(发布候选),然后会根据客户反馈来决定最后的发布日期。 Atlas功能(Feature)推出计划 为加速日程安排和能在今年推出完全支持的版本,我们将集中精力推出一套完全支持的核心(core)功能。这套核心功能包括,能允许开发人员建立客户端控件/组件所需的所有常用组件,以及提供与ASP.NET集成的服务器端功能(包括无比受欢迎的UpdatePanel以及其他的服务器控件)。 目前Atlas CTP版本支持的一些功能(feature)不会出现在完全支持的核心功能中。但这些功能会以单独下载的形式继续存在下去,而且会在支持的核心版本之上工作。我们并不是要撤销这些功能,而只是想试着把握好(optimize the timing)第一套完全支持的功能的发布时间,而且确保我们具有以更敏捷的方式继续发展和创新一些功能的灵活性,同时,我们想把核心层的功能“烧制好(bake down)”,以避免将来要对它们做影响巨大的变动。 很明显,我们将在未来对所有的功能继续支持Go-Live  license。那些只想使用受完全支持协议保障的产品的企业客户,可以选择只使用核心版中的那些功能。 随着时间的迁移,我们会把越来越多的功能转移到完全支持的范围中去。我们也将在未来的几个星期内发表一个详细的白皮书,列出支持的功能,发布计划,对CTP版做的产品变动等。 对Atlas的命名 作为发布Atlas的一部分,我们也将最后锁定我们以后将开始使用的产品的官方名称。以前笼统叫做Atlas的东西,从现在开始将有几个名字: 1) 客户端Atlas javascript库将被称作“微软AJAX库(Microsoft AJAX Library)”。这将能在任何浏览器中使用,也将支持任何后端web服务器 (阅读这些博客帖子以了解如何在PHP和ColdFusion里运行) 2) 与ASP.NET 集成极佳的服务器端Atlas功能,将被称作“ASP.NET 2.0 AJAX 扩展(ASP.NET 2.0 AJAX Extensions)”。作为改动的一部分,Atlas控件的标识前缀也将从<atlas:>变成<asp:>。这些控件将成为ASP.NET下个版本的一部分。 3) 今天的“Atlas控件工具包(Atlas Control Toolkit)是套免费的共享源码的控件和组件,使用它,你可以从ASP.NET 2.0 AJAX Extension中获取最大的价值。以后,这个项目的名称将变成 “ASP.NET AJAX 控件工具包(ASP.NET AJAX Control Toolkit)”。 结语 我们非常兴奋,我们将能推出完全支持的1.0 版。它将是100%的跨浏览器和跨平台。它将简化向ASP.NET应用添加丰富的AJAX功能,以及提供给用户改进的用户体验(UX)。把这个功能以最灵活的方式送到你的手中是我们的首要任务,我们相信,我在上面描述的计划将能达到这个目的。 等到明年的Visual Studio “Orcas”版,生活将变得更加美好,我们将添加丰富的JavaScript Intellisense,调试,和在Visual Studio中对ASP.NET AJAX Extensions的WYSIWYG设计器支持,以及还有许多其他非常棒的功能可利用。 谢谢, Scott 标签:ASP.NET, Visual Studio, .NET, Atlas   (思归译)...[阅读全文]

posted @ | Feedback (6) | Filed Under [ ASP.NET .NET Visual Studio Atlas ]

摘要:【原文地址】CSS Control Adapter Toolkit Update 【原文发表日期】Friday, September 08, 2006 6:53 PM 今天,我们发布了ASP.NET 2.0的CSS控件适配器的更新版本,内中包含了bug fixes,用户建议的的功能,以及对新控件的支持。你可以免费下载,马上开始使用它们,来给予下列ASP.NET控件用纯粹的CSS优化过的标识(markup):: Menu TreeView GridView (新) DetailsView FormsView DataList Login (新) ChangePassword (新) CreateUser (新) PasswordRecovery (新) LoginStatus (新) 在CSS控件适配器第一次发行时,我曾写帖子说明过,这些控件适配器使用了ASP.NET 2.0中一个新的内置的扩展机制,叫做“控件适配器(control adapters)”。控件适配器允许你将其接入(plug-in)任何ASP.NET 服务器控件,然后它就会覆盖,修改或细调( tweak)那个控件的显示输出逻辑。 控件适配器很酷的地方是,它们不要求页面开发人员对一个新的控件编程,或修改控件编程模型的semantics,即,跟以前一样,你仍旧使用同样的控件属性,方法,事件和模板。建造页面的开发人员可以完全忘却使用了控件适配器,控件适配器模型使得注册和封装这样的支持非常干净。 快速入门示范 在免费的Visual Web Developer或Visual Studio 2005中使用CSS控件适配器工具包,按下列步骤做: 第一步:安装CSS控件适配器工具包:   下载和安装CSS 控件适配器工具包到你的机器上。点击这里下载一个Visual Studio的.VSI 模板项目,它会生成一个配置了CSS控件适配器的可以运行的项目模板。这是个安全的下载,它不会修改VS或ASP.NET中的任何文件或设置,所以你不要担心它是否会对现有编码造成问题。 第二步:创建一个注册了CSS控件适配器的新网站: 在Visual Web Developer或VS 2005中,在菜单里选择文件->新网站。这会打开“新网站”对话框。选择你的编程语言,然后选择新安装的“CSS友好网站(CSS Friendly Web Site)”项目模板: 这会为你创建一个新的网站项目,它的app_code目录里已经包含了CSS控件适配器的源码。它也包含了一些默认的CSS样式文件,其中有为你预先定义好了的样式类的名称(class name),你可以用它们来定制你需要的任何CSS标识(CSS markup): 第三步:试一些CSS样式控件例子:  要看控件适配器是如何改变服务器控件的标识的话,研究一下默认添加到新项目中的walkthrough子目录 例如,在下图中,SimpleMenu.aspx网页静态地定义了一个菜单控件,该控件连到了一个OnClick事件处理方法(或者,你也可以使用导航直接转到一个特定的网页去): <asp:Menu ID="EntertainmentMenu" runat="server" Orientation="Horizontal" onmenuitemclick="Menu_OnClick" CssSelectorClass="SimpleEntertainmentMenu">    <Items>        <asp:MenuItem Text="Music">            <asp:MenuItem Text="Classical" />            <asp:MenuItem Text="Rock">                <asp:MenuItem Text="Electric" />                <asp:MenuItem Text="Acoustical" />            </asp:MenuItem>            <asp:MenuItem Text="Jazz" />        </asp:MenuItem>        <asp:MenuItem Text="Movies" Selectable="false">            <asp:MenuItem Text="Action" />            <asp:MenuItem Text="Drama" />            <asp:MenuItem Text="Musical" />        </asp:MenuItem>    </Items></asp:Menu> 在code-behind里,Menu_OnClick事件的编码是象这样的:     Public Sub Menu_OnClick(ByVal sender As Object, ByVal e As MenuEventArgs)        MessageLabel.Text = "You selected " & e.Item.Text & "."        e.Item.Selected = True    End Sub 在运行时,CSS控件适配器会导致菜单输出使用了<li>和<ul>元素的CSS样式化了的的标识,而不是表格,当我们应用一个CSS样式表到页面时,我们将得到一个好看的分层的下拉式菜单: 在看这些样本例子时,你也许要看一下CheckBoxTreeView 这个例子。它示范了如何用CSS来样式化<asp:treeview>控件以使用行内( inline)的复选框:   那么CSS控件适配器是如何工作的呢? 控件适配器是些继承了System.Web.UI.Adapters.ControlAdapter基类的类,实现了绘制/渲染(rendering)方法,这些方法允许控件适配器完全定制一个单独的控件显示的标识。当你使用CSS友好网站项目模板创建一个新的网站项目时,11个预建的与CSS友好的控件适配器的源码就被自动地加到你的app_code目录中了: 你可以原本不动地使用这些控件适配器类,不需要改变编码,就能得到与CSS友好的输出,或者你可以对它们进行细调,假如你需要对显示输出做任意定制的话。 控件适配器是通过在当前项目的应用程序根目录的直接子目录,/App_Browsers里,添加一个.browser文件,来与 ASP.NET注册的。.browser 文件里包含了如下所示的简单的标识,允许你指定哪个控件适配器应该用在哪个控件上: <browsers>  <browser refID="Default">    <controlAdapters>      <adapter controlType="System.Web.UI.WebControls.Menu" adapterType="CSSFriendly.MenuAdapter" />      <adapter controlType="System.Web.UI.WebControls.TreeView" adapterType="CSSFriendly.TreeViewAdapter" />      <adapter controlType="System.Web.UI.WebControls.DetailsView" adapterType="CSSFriendly.DetailsViewAdapter" />      <adapter controlType="System.Web.UI.WebControls.FormView" adapterType="CSSFriendly.FormViewAdapter" />      <adapter controlType="System.Web.UI.WebControls.DataList" adapterType="CSSFriendly.DataListAdapter" />      <adapter controlType="System.Web.UI.WebControls.GridView" adapterType="CSSFriendly.GridViewAdapter" />      <adapter controlType="System.Web.UI.WebControls.ChangePassword" adapterType="CSSFriendly.ChangePasswordAdapter" />      <adapter controlType="System.Web.UI.WebControls.Login" adapterType="CSSFriendly.LoginAdapter" />      <adapter controlType="System.Web.UI.WebControls.LoginStatus" adapterType="CSSFriendly.LoginStatusAdapter" />      <