RSS 2.0 Feed
2006-10 Entries
摘要:【原文地址】Tip/Trick: Handling Errors with the UpdatePanel control using ASP.NET AJAX 【原文发表日期】 Sunday, October 29, 2006 6:56 PM Luis Abreu是ASP.NET MVP,在 http://msmvps.com 博客站上拥有一个精彩的博客。今天早些时候,他贴了一篇精彩的教程帖子,描述如何使用ASP.NET AJAX Beta1版中的一些新特性,来给你的应用添加更健壮(robust)的出错处理。我强烈推荐你去阅读以及为将来之用而收藏它。 在AJAX世界里处理错误经常会相当棘手,特别当AJAX回调正在进行,应用中客户端和服务器端的编码混合着运行的时候。在最新的版本中,ASP.NET AJAX中的 <asp:updatepanel> 控件现在拥有更健壮的处理错误和报告错误的特性可以为你所用。具体来说, 1) 你现在可以在 <asp:scriptmanager> 控件上处理OnAsyncPostBackError事件,来捕捉和/或修改在服务器端处理AJAX postback回调时发生的错误消息。 2) 你现在可以在 <asp:scriptmanager> 控件上设置AllowCustomErrors属性,启动标准的 ASP.NET 自定义出错支持,在错误反生时,即使这个错误是在AJAX postback 中发生的,可以把用户自动重新定向到一个错误页面。 3) 你现在也可以在页面上选择处理客户端的JavaScript事件来拦截任何从服务器端发回的错误消息,从而来执行自定义的客户端行为。譬如,不是跳出一个消息对话框,而是把错误消息输出到一个格式好看的 <div> 区去。 去这里阅读Luis的精彩教程来了解一下如何利用上述这些新特性吧。 希望本文对你有所帮助, Scott 标签: ASP.NET, .NET, Atlas, Tips and Tricks...[阅读全文]

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

摘要:【原文地址】CSS Control Adapters Update (Beta3) 【原文发表日期】 Saturday, October 28, 2006 2:06 PM 我以前在博客里写过 Russ 和 Heidi 在开发的这些很棒的CSS控件适配器。这些适配器使用了一个ASP.NET 2.0中称为“control adapters”的内置扩展机制,允许你接入任何 ASP.NET 服务器端控件,覆盖(override),修改(modify),或细调(tweak )控件的显示输出逻辑。 Russ 和 Heidi 开发的这些控件适配器对所有的ASP.NET数据控件(GridView,DataList, DetailsView,FormView等),导航控件(Menu,TreeView),登录控件 (Login,CreateUserWizard, ChangePassword,PasswordRecovery,LoginStatus) 提供了一个基于纯CSS(而不是表格)的显示机制。 你可以从我以前的教程博客帖子这里进一步了解这些控件以及了解如何在你的项目里使用这些控件。 控件适配器Beta3的发布 这个星期早些时候,我们发布了CSS控件适配器的Beta3版本,在其中我们融入了更多的反馈和建议,还添加了许多新特性。下面对几个既新又酷的特性提供了快捷指引: 打开 Menu(菜单) 例子,增加你的浏览器的字体大小,在IE里使用查看->文字大小->更大。 打开 CreateUserWizard 例子,使用accesskey来导航。如果在Windows下,按 Alt + e 把焦点设置在Email地址文本框里。(在IE里,对密码文本框,你必须同时按下Shift键才能使用对应的accesskey)。 试用一下重新设计的 TreeView 例子。展开树的几个节点,选择一个节点造成页面提交。注意到没有,树保持了展开的节点的状态,对被选择的节点做了可见的标记,同时用它的值改动了页面中的内容。 玩一下级联复选框(cascading checkboxe)。 验证这些页面遵从XHTML 1.1严格标准。 你可以在 http://www.asp.net/cssadapters 这个网站上进一步了解以及下载免费的CSS控件适配器(内含VB和C#2个版本的源码)。 希望本文对你有所帮助, Scott 标签: ASP.NET, .NET...[阅读全文]

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

摘要:【原文地址】I'm presenting at the North Dallas .NET User Group on November 2nd 【原文发表日期】 Wednesday, October 25, 2006 10:15 PM 我非常高兴我有机会在11月2日(下星期四)给North Dallas .NET User Group 举办讲座。 我将在2个多小时里讨论多个有趣的主题。我目前的打算是,在第一个小时里,做个崭新的 ASP.NET 技巧和诀窍的讲座,然后在第二个小时里,深入讨论一下我们将在明年发布的LINQ新技术,该技术将极大地改进data productivity。 该活动是完全免费的,我希望在那里看到你们中的一些人! Scott 附注:下个星期,我将在拉斯维加斯举行的ASP.NET Connections大会上做2个主题演讲和2个分会场讲座。 标签: ASP.NET, .NET, Talks...[阅读全文]

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

摘要:【原文地址】Tip/Trick: Cool UI Templating Technique to use with ASP.NET AJAX for non-UpdatePanel scenarios 【原文发表日期】 Sunday, October 22, 2006 9:02 PM 这个周末我一直饶有兴趣地在玩ASP.NET AJAX Beta版。 通常情形下,当我把AJAX功能集成进我的编码时,我最后总是使用 ASP.NET AJAX 提供的内置服务器端控件(譬如UpdatePanel和UpdateProgress等)以及ASP.NET AJAX控件工具包里的那些酷控件。Scott Hanselman 两个星期前在他最近的一次 podcast 中采访我时开玩笑地声称,使用这些AJAX控件简直是“作弊(cheating)”, 因为在大多数常见的情形下,它们不需要你写任何的客户端JavaScript编码。 这个周末,我决定把我的编程集中在 ASP.NET AJAX 框架中根本不使用UpdatePanel的一些客户端JavaScript 库函数上,试验另外的方式用服务器来轻松地产生HTML UI,然后把这些HTML通过AJAX动态地注入页面内。在这个过程中,我建立了一个我认为是比较有用的库,这个库可以和ASP.NET AJAX 以及其他 AJAX 库一起使用,来提供一个很好的ASP.NET模板UI机制,它不使用也不需要象 postback 和 viewstate 这样的概念,但仍旧提供了控件封装和简易重用的好处。 首先,ASP.NET AJAX中JavaScript 网络层(Networking Stack)的一些简短的背景知识 在开始讨论我上面提到的模板方法之前,先提供一些ASP.NET AJAX中客户端JavaScript库方面的背景知识,让我们首先来创建一个简单的AJAX "hello world" 应用。这个应用允许用户输入一个名字,点击一个按钮,然后在客户端使用JavaScript向服务器做一个AJAX调用,进而输出一个消息: ASP.NET AJAX 包含了一个非常灵活的JavaScript 网络库 (network library stack),对.NET 数据类型有着丰富的序列化支持。你可以在服务器端定义可从客户端JavaScript 里调用的方法,要么是你的 ASP.NET 页面类里的静态方法,要么给你的ASP.NET应用添加一个web服务,这个服务须饰以 [Microsoft.Web.Script.Services.ScriptService] 元数据属性,而呈示的方法则须饰以标准的 [WebMethod] 属性。 例如,下面是个SimpleService.asmx web服务,内含一个GetMessage方法,该方法接受一个字符串参数: using System;using System.Web.Services;[Microsoft.Web.Script.Services.ScriptService]public class SimpleService : WebService {    [WebMethod]    public string GetMessage(string name) {        return "Hello <strong>" + name + "</strong>, the time here is: " + DateTime.Now.ToShortTimeString();    }} ASP.NET AJAX 然后可以自动创建一个JavaScript代理类,可在客户端用来调用这个方法,以及传递合适的参数。添加这个JavaScript代理类最容易的方法是在页面上添加一个 <asp:ScriptManager> 控件,然后指向web服务的端点。(这个控件同时也确保每个库在页面只被加载一次。) 然后我就可以调用这个方法,把文本框里的值传给它,用象下面这样的客户端 JavaScript 编码设置好一个回调事件处理器,定在服务器响应时触发。注:我可以把 JavaScript 编码写得更加花哨,去掉其中的几行代码,但我目前是故意要保持清晰和简单,以避免故弄玄虚: <html><head id="Head1" runat="server">    <title>Hello World Service</title>    <link href="StyleSheet.css" rel="stylesheet" type="text/css" />        <script language="javascript" type="text/javascript">                function callServer() {            SimpleService.GetMessage( $get("Name").value, displayMessageCallback );        }            function displayMessageCallback(result) {            $get("message").innerHTML = result;        }        </script>                </head><body>    <form id="form1" runat="server">                <asp:ScriptManager ID="ScriptManager1" runat="server" >            <Services>                <asp:ServiceReference Path="~/SimpleService.asmx" />            </Services>        </asp:ScriptManager>                <h1>Hello World Example</h1>                <div>            Enter Name: <input id="Name" type="text" />                        <a href="BLOCKED SCRIPTcallServer()">Call Server</a>            <div id="message"></div>        </div>            </form></body></html> 这样,当我运行这个页面,输入一个名字,Scott,页面就会使用AJAX 回调,动态更新页面上的HTML,而不需要任何postback或页面更新。 使用模板产生HTML的一个比较干净的的做法 你可以从上面的例子看出,我可以很轻松地从服务器端返回HTML,在客户端把它注入页面。但是,我的这个做法的一个缺点是,我把生成HTML的逻辑直接参杂到我的服务器web method里了。这个做法不好,因为,1)......[阅读全文]

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

摘要:【原文地址】ASP.NET AJAX Beta 1 Released 【原文发表日期】 Friday, October 20, 2006 6:46 AM 上个月,我宣布了Atlas的新官方名称以及讨论了这个完全支持的,基于ASP.NET 2.0 和 Visual Studio 2005 之上的1.0 版本的免费产品的发布计划。 今天,我非常高兴地宣布推出微软ASP.NET AJAX 1.0 版本的第一个Beta 。你现在可以在http://ajax.asp.net网站上下载这个版本。在该网站上,有以下三个下载选项: 1) The ASP.NET AJAX 1.0 版“核心”下载。这个下载包括了为微软产品支持(Microsoft Product Support)完全支持的所有特性,即拥有标准的10年微软支持许可(一天24小时,一周7天,一年365天)。该下载包括了核心AJAX类型系统,网络协议层(networking stack),组件模型,扩展件(extender)基类,以及与ASP.NET集成的服务器端功能(包括广受欢迎的ScriptManager,UpdatePanel,和 Timer控件)。 2) ASP.NET AJAX “增值”CTP下载。这个下载包括了以前各个Atlas CTP版本包含的,但并不在完全支持的“核心”1.0 版本内的额外的高级特性。在我们进一步完善这些特性,融合更多的反馈的同时,这些特性将继续得到社区支持。随着时间的推移,随着我们对这个增值包里的特性做进一步确认后,我们会陆续把特性移到“核心”下载版本里去。 3) ASP.NET AJAX 控件工具包。这个项目包含了基于ASP.NET AJAX 1.0 版“核心”下载版本的28个非常酷的免费AJAX控件。这个项目是协作性的共享源码,是由微软和非微软开发人员共同开发的,你今天就可以去CodePlex加入开发社区或下载代码。 Beta版本里做的一些变动 在这个Beta版本里,开发组做了不少变动。几个比较大的变动如下: 性能和下载文件大小的优化 以前的ASP.NET AJAX CTP版本依赖于浏览器下载一个包含所有特性的大JavaScript文件到浏览器上。对这个Beta版本,我们花了很多时间把特性抽取成多个文件,(这样,除非你要使用某些特性,否则你不需要下载它们),对整个库的下载大小做了优化。 ASP.NET AJAX “核心”下载现在只包括2个支持它的所有特性的JavaScript库: a) MicrosoftAjax.js.gz脚本文件,包含了核心的JavaScript类型系统(type system),组件/控件模型,JSON网络协议和持久层(networking/serialization stack),应用服务特性(用户信息+认证),目前其大小为14.8k。 b) MicrosoftAjaxWebForms.js.gz脚本文件,添加了对使用UpdatePanel情形和页面局部更新的支持,其大小为6.4k。 在访问一个网站时,这些文件只被浏览器下载一次,然后它们就会被缓存在客户端,在访问该站其他的页面以及以后返回来再访问该网站时,这些文件就会被重用。这些新的文件大小可以确保在你第一次访问一个网站时给你一个既爽又快的体验。 除了优化JavaScript脚本库的初始下载文件大小外,我们也花了时间优化客户端JavaScript回调到服务器的网络传输数据的大小(network traffic size)。在默认情形下,象UpdatePanel和UpdateProgress这样的控件,以及控件工具包里的控件不再 发送 xml-script ,而是发送1-2行的JavaScript脚本,有助于极大地减小线上网络传输数据的大小。 在核心类型系统里,我们也从使用基于JavaScript closure的类转而使用基于prototype定义的类,因为我们发现对大多数常见的应用情形来说,这会减小内存的使用。 Safari 浏览器支持 以前的ASP.NET AJAX CTP 版本对Safari的支持不太好,譬如,UpdatePanel根本不工作。在这个Beta版本里,我们把Safari加入了完全测试过,完全支持的浏览器行列中。我们正在努力添加对Opera的支持,虽然在这个版本里,我们还没有准备宣称对它的支持,请静候更新消息。 显著改进的调试支持 随便哪个花过大量时间调试的人都可以作证,调试JavaScript经常不太好玩。我们在这个Beta版里做了2个重大的变动,有望极大地改进调试微软AJAX库的体验: 1) 把我们的JavaScript类定义从基于closure的模型转到了基于prototype的模型,你现在可以使用现有的Visual Studio 2005......[阅读全文]

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

摘要:【原文地址】Great IIS7 Blog 【原文发表日期】 Thursday, October 19, 2006 8:02 AM IIS 7.0产品组的 Mike Volodarsky 最近新开了一个博客,在上面发了一堆跟IIS 7.0相关的精彩帖子。Mike负责 IIS7 中 “集成管道(integrated pipeline)” 和 “服务器核心扩展性(server core extensibility)” 2个方面的东西。此外,IIS7现在允许你编写 ASP.NET/.NET HttpModules模板来参与任何web请求。 譬如,你可以为ASP,PHP,Java请求实现表单认证和基于角色的安全。 跟目前的 ISAPI扩展器/过滤器相比,这赋予你更大的能力。 最棒的是,你可以使用任何一门 .NET 语言来编写这些模块。我绝对推荐你订阅他的博客。 如果你还没去过 www.iis.net 的话,那么我建议你腾出几分钟,浏览一下上面的精彩内容。http://blogs.iis.net 聚合了IIS7 产品组成员的博客。 这里是RSS feed的订阅地址。 希望本文对你有所帮助, Scott 标签: ASP.NET, .NET, IIS7...[阅读全文]

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

摘要:【原文地址】Visual Studio for Database Professionals and other Cool Data Management Tools for .NET 【原文发表日期】 Wednesday, October 18, 2006 7:40 AM 今天早先时候,我们发布了Visual Studio Team版的数据库专业人员版的第六个社区技术预览版(CTP)供免费下载。  Visual Studio 数据库专业人员版获得的好评如潮,其功能包括对数据库重构,数据库定义和数据的比较,数据库单元测试,以及自动的数据生成的支持。你可以在它的MSDN开发人员中心及其社区网页上了解更多的相关信息。你也可以在这里观看一个 Channel9 采访该产品开发组的录像。 我最近在 http://weblogs.asp.net 上看到了另外2个数据管理工具,看上去非常酷,值得花时间看一下: MassDataHandler  ──  一个免费的CodePlex项目,提供了一个可以为单元测试自动生成数据的工具库,可以和任何单元测试框架一起使用。 Data Dictionary Creator  ──  一个免费的工具,可以帮助你管理SQL服务器数据库的文档,帮你把文档与数据定义的变动保持同步。 希望本文对你有所帮助, Scott 标签: ASP.NET, Visual Studio, .NET, SQL Server...[阅读全文]

posted @ | Feedback (3) | Filed Under [ ASP.NET .NET Visual Studio SQL Server ]

摘要:【原文地址】Tip/Trick: Source/Documentation for Simple ASP.NET 2.0 SQL Providers Published 【原文发表日期】 Friday, October 13, 2006 9:36 PM ASP.NET 2.0中一个最受欢迎的特性是在内置的ASP.NET应用服务API中引进了“提供器模型(provider model)”。提供器模型确保象成员(Membership),角色(Roles),用户信息(Profiles),Health Monitoring,会话状态(Session State),和站点导航(Site Navigation)这样的服务的存储和实现是可以扩展的,允许开发人员很轻松地接入另外的实现,如果他们需要的话。 今年早些时候,我在博客里宣布,我们在MSDN上发布了内置的ASP.NET 2.0提供器的源码,同时还发布了超过130页的内容翔实的文档,这些文档对这些提供器的实现和行为做了介绍。如果你想改编现有的提供器(虽然这些提供器之特性涵盖广泛而且深入)为你所用,那么你会发现这些白皮书和源码是值得一看的好资源。但直接研读内置的富有特性并且优化过的提供器的源码的一个缺点是,这些源码也许比你想要的更大,更复杂,而且使用的数据库定义与你要的数据库结构之间也不相对应。 Michal Valasek今天早些时候给我发了一个邮件,告诉我他在CodePlex发起了一个非常酷的项目,该项目提供了针对ASP.NET成员,角色和用户信息API的一套简化的SQL提供器的实现。该实现使用了非常直接了当的数据库定义,可以很容易地将其改编为你的应用所用或与你现有的数据表集成。你可以在这里下载它们的源码。我绝对建议你去看一下,并且将这个项目的网址收藏,因为它们为编写定制的提供器提供了一个非常好的开端。 想进一步了解ASP.NET提供器模型的话,我也建议你看一下Paul Wilson做的一个非常棒的编码营( Code-Camp)讲座,他提供了一个用他的ORMapper实现的提供器,你可以在这里下载与该讲座相关的资源。你也可以在我的ASP.NET安全资源网页上找到其他非SQL服务器的提供器实现,包括针对MySql,SqlLite,Access的提供器等等。 希望本文对你有所帮助, Scott 标签:ASP.NET, Security, Tips and Tricks...[阅读全文]

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

摘要:【原文地址】Upcoming free "Live from Redmond" webcast talks 【原文发表日期】 Thursday, October 12, 2006 12:42 PM Simon Muzio最近贴出了一个关于即将举行的免费.NET网络广播(webcast)讲座的连接。这些讲座是免费的,在网上谁都可以参加。你可以在http://www.asp.net/learn网站上这个地方找到以前的网络广播活动的档案版本。 下面是即将在下2个月内举行的网络广播的一览表: Web 讲座 日期 题目 主讲人 注册网址 10月19日 介绍Microsoft ASP.NET 2.0 AJAX 扩展 Joe Stagner link 10月26日 深入探讨UpdatePanel Kashif Alam link 11月2日 使用ASP.NET 2.0 AJAX扩展丰富现有ASP.NET 应用 Richard Ersek link 11月9日 介绍Microsoft AJAX 控件工具包 Joe Stagner link 11月16日 创建你自己的Microsoft ASP.NET AJAX控件扩展件(extender) Joe Stagner link 11月21日 在其他服务器技术中使用Microsoft AJAX库 Joe Stagner link 11月30日 用Microsoft AJAX实现Predictive Fetch(预取)模式 Joe Stagner link 12月8日 深入探讨ListView控件 Kashif Alam link 12月12日 web应用之团队开发 Jim Bresler link Smart Client 讲座 日期 题目 主讲人 注册网址 11月7日 ClickOnce技巧和诀窍以及Orcas中的新特性 Saurabh Pant link 11月14日 Smart Client的离线数据同步和缓存 Steve Lasker link 11月28日 Orcas中的客户应用服务 Saurabh Pant link 12月4日 在Visual Studio中使用SQL Server Everywhere开发本地和移动数据方案 Steve Lasker link 12月6日 使用IronPython开发敏捷Rich Client应用 Mahesh Prakriya link 希望本文对你有所帮助, Scott 标签: ASP.NET, .NET, Atlas, Talks...[阅读全文]

posted @ | Feedback (2) | Filed Under [