摘要:
此次讲座分为两部分:“ASP.NET AJAX Control Toolkit介绍和使用”以及“开发一个Extender控件”。本文将对于该讲座的第二部分进行讲述,并且对其第二个演示的剩余部分进行分析。 阅读全文
随笔分类 - 02. ASP.NET
讲座展示:TechEd Europe DEV344 - ASP.NET AJAX Control Toolkit(中)
2006-11-17 18:17 by Jeffrey Zhao, 2850 阅读, 收藏, 编辑
摘要:
此次讲座分为两部分:“ASP.NET AJAX Control Toolkit介绍和使用”以及“开发一个Extender控件”。本文将对于该讲座的第二部分进行讲述,并且对其第二个演示的第一个部分进行分析。 阅读全文
讲座展示:TechEd Europe DEV344 - ASP.NET AJAX Control Toolkit(上)
2006-11-15 18:23 by Jeffrey Zhao, 5595 阅读, 收藏, 编辑
摘要:
这次我选择的讲座内容是最近在TechEd 2006 Europe中Shawn Burke的讲座“ASP.NET AJAX Control Toolkit Unleashed: Creating Rich Client-Side Controls and Components”。Shawn Burke是微软.NET Developer Platform总监。
此次讲座的内容主要是对于ASP.NET AJAX Control Toolkit进行简单的介绍,展示了Extender控件是如何帮助ASP.NET开发人员简单地将丰富的用户体验集成到他们的Web应用程序中。在这次讲座里将看到应该如何在您的应用中使用ASP.NET AJAX Control Toolkit中的组件,并且了解开发人员是如何方便地开发一个APS.NET AJAX Extender的。
此次讲座分为两部分:“ASP.NET AJAX Control Toolkit介绍和使用”以及“开发一个Extender控件”。本文将对于该讲座的第一部分进行讲述,并且对其第一个演示进行分析。 阅读全文
深入Atlas系列:Web Sevices Access in Atlas示例(7) - 编写JavaScriptConverter处理含有循环引用的类型
2006-11-13 16:48 by Jeffrey Zhao, 3294 阅读, 收藏, 编辑
摘要:
有时候在Web Service中会需要使用到比较复杂的类型,它们的特征往往都是含用循环引用,这样的对象如果交给ASP.NET AJAX中默认的序列化方式来处理则会抛出异常,大家经常遇到的“DataTable”问题正是由此引起的。关于这一点,ASP.NET AJAX自然提供了解决方法,在这里“官方”的解决方案就是JavaScriptConverter,它可以让开发人员自定义特定类型的序列化能力。 阅读全文
深入Atlas系列:综合示例(1) - 调用服务器端方法时直接获得客户端具体类型
2006-11-11 23:04 by Jeffrey Zhao, 4291 阅读, 收藏, 编辑
摘要:
在使用ASP.NET AJAX时,大家对于返回服务器端的复杂类型的情况经常会遇到问题。Dflying兄写了一篇文章来说明在如何在客户端得到Sys.Preview.Data.DataTable对象的文章,但是这种方法需要在客户端进行Sys.Preview.Data.DataTable的构造,那么我们该如何直接获得这个对象呢?再进一步,我们该如何直接获得客户端某种特定格式的对象呢?本篇文章给出了一个解决方案,事实上,这个扩展的能力还不止如此…… 阅读全文
深入Atlas系列:Web Sevices Access in Atlas示例(6) - 在客户端隐藏服务器端类型信息
2006-11-11 01:37 by Jeffrey Zhao, 2349 阅读, 收藏, 编辑
摘要:
如果要在客户端指定服务器端Web Service方法所接收的参数类型,就必须在客户端通过“__type”来指定,但是这就暴露了服务器端的具体类型了,这可不太好。现在我们就来看一下应该如何解决这个问题。 阅读全文
深入Atlas系列:探究序列化与反序列化能力(下) - JavaScriptSerializer
2006-11-10 00:39 by Jeffrey Zhao, 7092 阅读, 收藏, 编辑
摘要:
在ASP.NET AJAX中,客户端的序列化与反序列能力由Sys.Serialization.JavaScriptSerializer类的serialize和deserialize两个静态方法提供。在服务器端,所有的序列化与反序列化能力,包括类型之间的转换,对于开发人员来说都是由JavaScriptSerializer类的几个方法实现的。从前一片文章里我们已经知道了两个辅助的类:JavaScriptTypeResolver和JavaScriptConverter,他们的作用分别是“映射类与类标识”,以及“提供特定类的序列化与反序列化能力”。在某些情况下,我们还是需要使用JavaScriptSerializer类的方法来操作一个类型,例如使用JavaScriptConverter来自定义特定类的序列化或者反序列化,就需要使用JavaScriptSerializer类的方法,因此我们这次就详细看一下这个类的能力。 阅读全文
深入Atlas系列 - 浅析ASP.NET Beta 2中令人疑惑的脚本引入方式
2006-11-08 02:36 by Jeffrey Zhao, 4893 阅读, 收藏, 编辑
摘要:
似乎已经有不少朋友在作了ASP.NET AJAX Beta 1到Beta 2的转移之后遇到了这样的问题:如果使用了ScriptManager引入了自定义的JavaScript脚本文件后会发生JavaScript错误。本文简单讨论了引发这个问题的原因,解决方案以及注意事项。 阅读全文
AJAX培训第一讲:AJAX基础
2006-11-07 20:45 by Jeffrey Zhao, 23986 阅读, 收藏, 编辑
摘要:
经过了5个小时的准备,10多个小时的录制和剪辑,我终于将第一次AJAX培训的内容做完了。录一次讲座真的是一件费神费时的事情,我也深切感受到了天轰穿兄录了数十次讲座有多么不容易。这是我第一次录制讲座,所以经验有些不足,而且对着屏幕一个人傻傻地说话总是不如对着观众说话,在语气上也略显单调。虽然我已经极力yy正在为数十人作讲座的情形,但是似乎效果不甚理想。另外不知道是什么原因,录下来的声音总是不像我的原声,听上去也有些沉闷,请大家多多包涵了。如果大家对于讲座的方式上有什么意见或者建议的话,请回复在这里,您的支持能够让我们的工作越做越好。如果大家对于讲座的内容有任何疑问,请在Q & A专用文章里进行提问,当然如果您有其它任何疑问的话,也能在那里提出,我会尽快为您解答。 阅读全文
深入Atlas系列:探究序列化与反序列化能力(上) - 客户端支持,JavaScriptTypeResolver与JavaScriptConverter
2006-11-06 23:41 by Jeffrey Zhao, 4571 阅读, 收藏, 编辑
摘要:
在ASP.NET AJAX中是使用了JSON作为客户端与服务器端传递对象信息的方式。因此,在ASP.NET AJAX的客户端与服务器端均提供了序列化与反序列化的能力。了解这些内容的使用方法,可以说是使用与扩展ASP.NET AJAX所必须的能力。在这两篇文章里,我们就来看一下ASP.NET AJAX中的序列化与反序列化的能力。 阅读全文
深入Atlas系列:探究Application Services(3) - 自定义客户端Profile Service支持
2006-11-05 21:32 by Jeffrey Zhao, 2838 阅读, 收藏, 编辑
摘要:
如果不能在客户端进行自定义的话,Profile Service的自定义能力还是远远不够的。虽然Profile Service没有提供一种“官方”的客户端自定义支持,不过事实上“自定义”能力“天然”地存在与客户端里。为什么?因为整个客户端是由JavaScript实现的,这种灵活的语言使得我们能够在一定程度上自由地修改客户端的行为。 阅读全文
深入Atlas系列:探究Application Services(2) - 自定义服务器端Profile Service支持
2006-11-04 04:09 by Jeffrey Zhao, 2202 阅读, 收藏, 编辑
摘要:
在上一篇文章中,我们讨论了使用ASP.NET AJAX默认的Profile Service。一般来说,它已经能够迎合大多数应用的需要了。不过除此之外,ASP.NET AJAX还提供了让我们自定义Profile Service的机制。 阅读全文
深入Atlas系列:探究Application Services(1) - Profile Service分析与使用
2006-11-02 23:43 by Jeffrey Zhao, 2632 阅读, 收藏, 编辑
摘要:
ASP.NET AJAX提供了Profile Service,允许开发人员异步地从服务器端访问Profile信息。从RTM开始,客户端的Profile Service还提供了对于Profile Group的支持,因此可以说已经相当成熟了。那么对于Profile Service的细节,是否大家都了解了呢?从ScriptManager的使用上来看,ProfileService是能够扩展的,那么应该如何扩展呢?细心的朋友们应该也发现了,在web.config中也增加了对于Profile Service的配置,那么这些配置应该如何使用呢? 阅读全文
深入Atlas系列:Web Sevices Access in Atlas(8) - RTM中可叹的Web Service Proxy
2006-11-01 17:39 by Jeffrey Zhao, 2188 阅读, 收藏, 编辑
摘要:
使用Web Service Proxy应该是使用ASP.NET AJAX访问Web Service最常用的方法了。服务器端会根据ScriptManager中添加的Service引用而对于Web Service类进行分析,并生成相应的客户端脚本。这样开发人员就能在客户端方便而且直观地访问Web Services方法了。这是ASP.NET中很重要的功能。从官方文档上看来,CTP和RTM似乎在脚本使用这方面没有很大的改变,只要在服务器端将一些CustomAttribute改变一下就可以了。的确没错,在使用方式上只有这点细微改变,但是事实上,从生成脚本本身来说,CTP和RTM的做法大相径庭。 阅读全文
深入Atlas系列:Web Sevices Access in Atlas(7) - RTM中的客户端支持
2006-10-30 16:46 by Jeffrey Zhao, 2899 阅读, 收藏, 编辑
摘要:
在RTM版本中,客户端访问Web Services的基础类库发生了一些改变,并直接影响到了它们的使用方式。对于自己写ASP.NET AJAX组件(例如ExtenderControl)的朋友们来说,了解这部分改变是非常重要的。 阅读全文
深入Atlas系列:客户端网络访问基础结构示例(1) - 编写并使用自定义的WebRequestExecutor
2006-10-30 03:05 by Jeffrey Zhao, 3203 阅读, 收藏, 编辑
摘要:
WebRequestExecutor是ASP.NET AJAX网络访问基础结构的唯一修改点。理论上,我们可以使用自定义的WebRequestExecutor来取代默认的XMLHttpExecutor。我们要做的,其实只是开发一个继承于Sys.Net.WebRequestExecutor类。不过事实上,在实际使用中,Sys.Net.XMLHttpExecutor已经足够用了,真的要自定义,也只需继承这个类即可。就像接下去的例子一样。 阅读全文
深入Atlas系列:客户端网络访问基础结构(下) - WebRequestExecutor和XMLHttpExecutor
2006-10-29 05:10 by Jeffrey Zhao, 2715 阅读, 收藏, 编辑
摘要:
正如前一篇文章所说的那样,WebRequestExecutor是客户端网络访问的基础结构的唯一扩展点,而XMLHttpExecutor是其默认实现。在ASP.NET AJAX中,开发人员能够将自定义的WebRequestExecutor子类设为默认的Executor,也可以为某一个WebRequest指定一个特定的Executor。虽然一般来说XMLHttpExecutor已经足够大多数应用,但是既然ASP.NET AJAX提供了这个功能,我们也根据默认的类进行一下这方面的学习。 阅读全文
AJAX讲座内容提纲(意见征询)
2006-10-29 00:05 by Jeffrey Zhao, 3486 阅读, 收藏, 编辑
摘要:
AJAX作为一个“新生事物”已经被几乎所有人接受了。大家对于AJAX应该也有了一定的学习,因此我总是感觉AJAX的东西容易让人听腻,想做好不容易。下面是我初步定下来的提纲,希望大家能多提一些意见和建议,我会随时更新和细化这些内容。 阅读全文
深入Atlas系列:客户端网络访问基础结构(上) - WebRequest的工作流程与生命周期
2006-10-27 00:50 by Jeffrey Zhao, 3985 阅读, 收藏, 编辑
摘要:
ASP.NET AJAX的许多功能会要求异步地访问服务器端,例如访问Web Services,Authentication/Profile Services(事实上和访问Web Services是相同的机制)和Partial Rendering。在ASP.NET AJAX中,所有的这些访问都是通过一个网络访问的基础结构来完成的,无一例外。 阅读全文
深入Atlas系列:客户端代码编写规则分析与指南
2006-10-25 18:29 by Jeffrey Zhao, 4233 阅读, 收藏, 编辑
摘要:
在RTM版本中,我们可以发现ASP.NET AJAX的客户端脚本引入了许多规则:有方法注释规则,有参数验证规则,而且对于Debug和Release模式下的脚本代码,甚至添加在程序集里的方式,也有相当严禁的规则。如果我们想要编写真正规范和严谨的代码或组件,了解这些规则是非常必要的。有了这些规则,用户在使用Debug模式进行开发和调试时可以得到更好的提示(比如Call Stack),下一版本的Visual Studio“Orcas”也会根据这些规则提供良好的IntelliSense功能。另外,了解这些规则也有利于帮助开发人员阅读和理解客户端代码,这不也是我写“深入Atlas系列”的目的吗?在这片文章里,我将使用ASP.NET AJAX的脚本代码为范例,对开发规则进行一番描述。在某些时候也会对客户端和服务器端的部分代码进行简单的分析。
阅读全文