RSS 2.0 Feed
2008-04 Entries
摘要:【原文地址】April 28th Links: ASP.NET, ASP.NET AJAX, ASP.NET MVC, Silverlight 【原文发表日期】 Monday, April 28, 2008 10:35 PM 这是我的链接系列的最新篇。也请参阅我的ASP.NET 技巧,诀窍和教程网页和Silverlight教程网页里(中文版)我以前写的众多很受欢迎的文章的链接。 ASP.NET Displaying the Number of Active Users on an ASP.NET Site: Scott Mitchell继续他关于ASP.NET 成员,角色,和用户信息支持的精彩系列。在这篇文章里,他讨论了如何使用ASP.NET 成员功能来估算和显示目前正访问网站的在线用户的数目。 ASP.NET Dynamic Data Update: ASP.NET开发团队上个星期发布了新的ASP.NET动态数据功能的更新版。这个更新版加了若干新功能,包括 更干净的URL支持 (使用了ASP.NET MVC所用的同个URL路径选择功能),以及更棒的确认,外键以及模板支持。 ASP.NET Testing with Ivonna: Travis Illig在博客里讨论了一个叫Ivonna的新测试框架,它允许你对ASP.NET web forms进行单元测试。 ASP.NET AJAX ASP.NET AJAX UI Templates: ASP.NET开发团队的Nikhil Kothari有一篇很酷的贴子,展示了他目前正开发的一个原型(prototype),它促成了很干净的界面的客户端AJAX模板化。 ASP.NET AJAX Control Toolkit TabContainer Theme Gallery: Matt Berseth的又一篇精彩贴子,展示了你可以用来样式化ASP.NET AJAX控件工具包中的TabContainer控件的一堆很酷的主题。 Reducing Page Load Times with UpdatePanels and Timers: Paul Glavich贴出了一个很酷的技巧,你可以用于tab控件,来在后台异步装载内容,以改进感觉上的网页装载时间。 Why do ASP.NET AJAX page methods have to......[阅读全文]

posted @ | Feedback (2) | Filed Under [ ASP.NET Atlas Silverlight Link Listing MVC ]

摘要:【原文地址】Slides from my ASP.NET Connections Orlando Talks 【原文发表日期】 Sunday, April 27, 2008 9:51 PM 上星期,我在奥兰多举行的ASP.NET Connections 大会上做了演讲。星期一我做了一个主题演讲,那天稍后,我还做了2个分会场讲座。你可以在下面下载我的讲义和示范例程: 主题演讲 我主题演讲的讲义可以在这里下载。 在演讲中,我示范了如何调试 .NET 框架源码。你可以在这里了解如何在VS 2008中做配置。 我还示范了如何使用新的ASP.NET动态数据支持来建造网站,你可以在这里了解有关ASP.NET动态数据的详情。我还示范了如何使用新的ASP.NET MVC框架,你可以在这里了解有关ASP.NET MVC的详情。 我还展示了使用Silverlight 2建造的新Hard Rock Memorabilia网站。你自己可以在这里把玩一下Hard Rock应用,你可以在我这里的链接网页了解到Silverlight的详情(中文版)。 使用Silverlight建造.NET 应用 Silverlight分会场讲座的讲义和示范例程可以在这里下载。 你可以在我这里的链接网页(中文版)上了解到有关Silverlight的详情。特别地,我建议你阅读一下我这里 和这里的教程贴子。 ASP.NET MVC 我的ASP.NET MVC讲座的讲义和示范例程可以在这里下载。 你可以在这里了解到最新的 ASP.NET MVC源码更新版的详情。 Stephen Walther 刚在这里贴出了一套他在大会后做的ASP.NET MVC讲座的讲义和示范例程,非常之棒。 希望本文对你有所帮助, Scott 标签: ASP.NET, .NET, Talks, Silverlight, MVC...[阅读全文]

posted @ | Feedback (0) | Filed Under [ ASP.NET .NET Talks Silverlight MVC ]

摘要:【原文地址】ASP.NET MVC Source Refresh Preview【原文发表日期】 Wednesday, April 16, 2008 9:56 PM 最近我们开启了一个新的ASP.NET CodePlex 项目,我们将用它来提供将要发布的ASP.NET特性的预览(以及可编译的源代码)。 上个月,我们用它发布了ASP.NET MVC源码的第一个投放,这个投放包括了我们在MIX上发布的ASP.NET MVC第二个预览版的源码,以及允许你修补和编译的Visual Studio项目文件。 几小时前,我们在该网站上发布了ASP.NET MVC源码的一个更新版。这个源码更新版 不是正式的ASP.NET MVC新的预览版,而是一个过渡性的版本,旨在对源码树的当前状态提供一个样本。我们将在几个星期内完成一些工作后发布正式的“ASP.NET MVC第三个预览版”,这些工作包括新的特性以及对现有的特性的加工,更好的VS工具集成,VS Express版本的支持,以及文档等。如果你想要一个毫无麻烦的ASP.NET MVC安装版,带有文档以及完整的工具支持的话,你也许要等到这个正式的预览版出来后再说。如果你想要有机会看一下早期的“预览版的预览”,马上有机会开始使用一些特性,并且对它们提供反馈的话,那么今天的源码更新版值得一看。 这个ASP.NET MVC源码更新版中的一些改进 这个星期的更新版(你可以在这里下载)包括了对ASP.NET MVC的若干改进。这些改进包括: 除了发布ASP.NET MVC框架的源码外,我们还发布了我们用来测试该框架的单元测试的源码,这些测试是使用MSTest以及开源的Moq mocking 框架实现的。内含一个单元测试的VS 2008项目文件,方便你在本地的VS 2008 IDE中编译和运行。 对测试Controller类的的显著简化了的支持,你现在可以不用mock任何对象就可以单元测试常见的Controller场景(详情见下文)。 URL路径选择系统的几个新特性和可用性方面的改进(详情见下文)。 创建新的ASP.NET MVC项目 在下载MVC源码,在本地编译后,你可以建造你自己的ASP.NET MVC程序集,或者你也可以下载一个VS模板包,得到这些程序集的预制版本,其中包括一个 Visual Studio的项目模板,你可以用它来快速建造使用了最新代码的新ASP.NET MVC项目。 在安装ASP.NET MVC源码更新 .VSI 模板后,一个新的“ASP.NET MVC应用”项目模板会出现在你的“新项目”对话框的“我的模板”部分: 这个新的“我的模板”版本的MVC项目模板可以与先前的ASP.NET MVC第二个预览版并行存在,你可以在上面的对话框的主要项目模板部分看到。这允许你在同一个机器上安全地创建新项目,同时使用最新的源码版本和上个正式预览版。 在你使用这个更新的ASP.NET MVC项目模板创建一个新项目时,在默认情形下,你将得到一个如下图所示的项目: 这个项目方案在“\Controllers”目录下包含一个Controller(“HomeController”),在“\Views\Home”子目录下包含2个视图模板(“About”和“Index”)。 2个视图模板都基于网站的共同母版页(“Site.master”),这些文件的样式定义于“\Content”目录下的“Site.css”文件中。 在你运行应用时,内置的web服务器会自动启动,你将看到网站的首页内容: 点击“About us”条,就会显示“About”内容: 项目中的“HomeController”类负责处理上面2个URL,有下述2个action方法: 默认的“Site.master”模板会在ViewData集合中寻找一个“Title”值,用它来显示HTML页面的<title>元素,默认的“Index”视图模板会找一个“Message”,用它来显示首页的欢迎消息,很明显,你可以进去定制这些文件。 这个ASP.NET MVC投放版的Controller变动 如果你在认真阅读上面的代码的话,你也许注意到了用这个新的ASP.NET MVC源码更新版默认实现的Controller类中的几个变动。 在ASP.NET MVC第二个预览版中,上面的HomeController action方法是象这样实现的: MVC功能开发团队在这个星期的投放版中正在试验几个想法,还在尝试一些新的想法: Controller中的Action方法现在默认返回“ActionResult”对象(而不是void),这个ActionResult对象表示action方法的结果,如显示一个视图,重定向的URL,另一个要执行的action/路径,等等。 Controller基类中的RenderView(),RedirectToAction(),和 Redirect()......[阅读全文]

posted @ | Feedback (0) |

摘要:【原文地址】April 11th Links: ASP.NET, ASP.NET AJAX, ASP.NET MVC, Visual Studio, Silverlight 【原文发表日期】 Friday, April 11, 2008 12:04 AM 这是我的链接系列的最新篇。也请参阅我的ASP.NET 技巧,诀窍和教程网页和Silverlight教程网页里我以前写的众多很受欢迎的文章的链接。 ASP.NET More ASP.NET Security Tutorials: Scott Mitchell的精彩ASP.NET安全教程系列的最后三篇文章,讨论如何选择用户帐号,复原和改变密码,以及解锁和核准用户帐号。 Building a VS 2008 Styled Grid with the ListView and DataPager Controls: Matt Berseth的一篇精彩文章,讨论一些你可用于ASP.NET 3.5 中新ListView控件的技术,来创建样式非常好看的网格界面,同时还保持对所用的HTML和CSS的完全控制,也参阅他的这里的续篇,该文讨论了如何在GridView控件中实现同样的界面。 50 Useful CSS Tips and Tricks: 一个非常有用的网页,提供了一个你可在常见web场景中使用的各种CSS技巧,诀窍和工具的列表。 Using a DataPager with the GridView Control - Implementing IPageableItemContainer: Matt Berseth有一篇很酷的文章,示范了如何使用新的IPageableItemContainer接口来在新的ASP.NET 3.5 DataPager控件中实现分页支持。 ASP.NET AJAX Accessible UpdatePanel: ASP.NET开发团队的Bertrand Le Roy的一篇文章,描述了如何使得ASP.NET AJAX的UpdatePanel控件可为屏幕阅读器所用。 ASP.NET AJAX Meets Virtual Earth: Alessandro Gallo,优秀的《ASP.NET AJAX in Action》 一书的作者,撰写了一系列很棒的文章,讨论如何结合ASP.NET AJAX与Virtual Earth来在你自己网站上实现地图功能。 ......[阅读全文]

posted @ | Feedback (0) | Filed Under [ ASP.NET .NET Visual Studio Silverlight Link Listing MVC ]

摘要:【原文地址】ASP.NET Dynamic Data Preview Available【原文发表日期】Thursday, April 10, 2008 12:44 AM 几个月前,我们推出了ASP.NET 3.5 Extensions的预览版,该版本内含一堆今年稍后会发布的新特性(包括ASP.NET AJAX方面的改进,ASP.NET MVC,ASP.NET Silverlight支持,以及ASP.NET动态数据)。 该预览版中的ASP.NET动态数据(Dynamic Data)支持对一个很酷的新特性提供了初览,该特性允许你很快地建造使用LINQ to SQL或LINQ to Entities对象模型的数据驱动的网站。 ASP.NET动态数据允许你自动地根据你的ORM数据模型的元数据动态地生成功能完整的数据输入和报表网页。除了支持动态渲染模式外,它还允许你使用任何你想要的HTML或代码来覆盖和定制任何视图模板(给你完整的体验控制)。 ASP.NET动态数据预览 今天,我们发布了ASP.NET动态数据的更新版,你可以在这里了解相关详情和下载。 这个新的动态数据预览版现在可以与标准的内置ASP.NET数据控件(包括GridView,ListView,FormView,DetailsView等)协作了,动态数据支持允许这些控件自动地处理外键关系。例如,在一个GridView上,你现在将得到外键字段值的友好名称的自动显示,以及在编辑模式下这些值的自动下拉框选择支持: 新的动态数据支持还能根据你在数据模型类上设置的约束提供自动的UI验证支持(同时支持客户端和服务器端)。例如,如果数据库中的一个字段在大小上限于50个字符,并且被标记为不能为空,ASP.NET动态数据就会自动地将合适的UI控件校验器加到UI页上以强制这个约束。如果你在LINQ to SQL或LINQ to Entities数据模型类里改变了约束,UI就会自动地反应这些变动,并且在下一个web请求中强制新的约束。 除了标准的数据模型元数据外,你还可以声明自定义的元数据以进一步控制验证和对象界面的默认显示。 你既能在LINQ to SQL中,也能在LINQ to Entities中使用上面所有的特性。 Visual Studio动态数据项目向导(Project Wizard) 除了核心的ASP.NET动态数据运行时支持外,VS web工具开发团队今天还发布了新的动态数据项目向导的第一个预览版,该向导允许你很快地开始一个数据驱动的网站。该向导允许你选择数据库,然后选择你想用来建造 LINQ to SQL数据模型的数据表,视图和存储过程: 在创建数据模型之后,该向导允许你轻松地选择动态数据驱动的模板网页来建造界面: 然后你能选择每个网页上支持的数据插入、编辑、更新界面的类型: 在你点击“完成”之后,它会用你的数据模型类和数据界面网页配置生成一个项目。你可以在这里了解该向导的有关详情,以及观看一个实战示范的screencast。 如何入门 你可以在 这里了解这个新的动态数据预览版的详情以及下载它在本地运行。 你可以观看David Ebbo在MIX 08上做的动态数据讲座以了解其工作原理的细节。也看一下Scott Hunter这里的screencast,以及Brad Millington这里的screencast。 David这里还有一个贴子,讨论十二月份预览版与今天的预览版本之间的变动。 你可以在www.asp.net上这里的论坛上问问题或提交反馈。 希望本文对你有所帮助, Scott 标签: ASP.NET, .NET, LINQ, Data...[阅读全文]

posted @ | Feedback (2) | Filed Under [ ASP.NET .NET LINQ Data ]

摘要:【原文地址】Tip/Trick: Creating and Using Silverlight and WPF User Controls 【原文发表日期】Friday, April 04, 2008 1:37 AM Silverlight和WPF一个根本性的设计目标是允许开发人员能轻松地将UI功能封装进可重用的控件。 你可以从一个现有的Control类(Control基类或者象TextBox和Button这样的控件)继承而来,实现新的自定义控件。或者你也可以创建可重用的用户控件,可以方便地使用XAML标识文件组成一个控件的UI(因此建造起来容易之极)。 在我的Digg教程系列贴子的第六部分中,我示范了如何使用VS 2008的“添加新项”对话框创建一个新的用户控件,然后在其中定义UI。这个方法在你预先知道你想要在用户控件里封装UI时,非常有效。你还可以在Expression Blend中使用同样的技术。 将现有的UI封装成用户控件 有的时候,只有在你已经开始在父页或父控件上定义一些UI之后,你才知道你要将某些UI功能封装成可重用的用户控件。 例如,我们也许正设计一个表单,要允许用户输入运输和结帐信息。我们也许会先创建一些UI,来封装地址信息。要达成目的,我们可以往页面上加一个<border>控件,在其中内嵌一个网格布局面板(2列4行),然后往其中放置标签和文本框控件: 在仔细地布局完之后,我们也许会想到,“嗨,对结帐地址我们也要用完全一样的UI,也许我们应该创建一个可重用的地址用户控件,这样我们可以避免重复自己”。 我们可以使用“添加新项”项目模板的方式来创建一个空白的新用户控件,然后将上面的UI内容拷贝进去。 但一个可在Blend中使用的更快的诀窍是,在设计器中,选中我们要封装成用户控件的控件们,然后右击,选择“做成控件”菜单选项: 当我们选择“做成控件”菜单项时,Blend会提示我们输入要创建的新用户控件的名称: 我们将其命名为“AddressUserControl”,然后点击OK。这会导致Blend创建一个新用户控件,内含我们选中的内容: 在重新编译项目,回到原先的页面后,我们将看到跟以前一样的UI,除了地址UI现在被封装进AddressUserControl外: 我们可以将第一个AddressUserControl命名为“ShippingAddress”,然后在页面上添加该用户控件的第二个实例来记录结帐信息(我们将这第二个控件实例命名为“BillingAddress”): 现在假如我们要改变地址的外观的话,我们可以只在一个地方做改动,然后就可以将该改动同时施用到运输和结帐信息上去。 将地址对象数据绑定到AddressUserControl 至此,我们有了一些用户控件封装了了地址UI,让我们来创建一个Address数据模型类,我们可以用来数据绑定到用户控件上。我们将定义象下面这样的类(利用了新的自动属性的语言特性): 然后在我们的Page.xaml文件的后台代码文件中,我们可以生成我们的Address类的2个实例,一个为运输地址,另一个为结帐地址(为这个例程的目的,我们将在地址对象中填充伪数据)。然后我们将通过编程手段将地址对象绑定到页面上的AddressUserControl控件上去,我们这样做,把每个用户控件的“DataContext”属性设成合适的运输或结帐数据模板实例: 最后一步是用声明的方式在 AddressUserControl.xaml 文件中加一个{Binding}语句,用来配置用户控件中的TextBox控件的Text属性和绑定到用户控件上的Address数据模型对象的属性间的双向数据绑定关系。 当我们点击F5运行应用时,我们将得到Address数据模型对象与AddressUserControl的自动数据绑定: 因为我们将{Binding}声明设置成了“Mode=TwoWay”,用户在文本框中做的改动会自动地推送到Address数据模型对象中去(不用写任何代码就可实现)。 例如,我们可以将浏览器中原先的运输地址改成送到迪斯尼: 假如我们在Save按钮的Click事件处理函数中加一个断点,然后点击按钮的话,我们可以看到上面的文本框的变动是如何自动反映到我们的“_shippingAddress”数据模型对象的: 然后我们可以实现 SaveBtn_Click 事件处理函数,将运输和结帐Address数据模型对象按我们的方式持久化,而不用手工获取或对页面上的UI控件做什么操作。 WPF和Silverlight支持的这个干净的视图/模型分离使得后期改动地址用户控件极其容易,且不必更新页面中的任何代码,它还使得轻松地对功能进行单元测试成为可能(请阅读我最新的贴子了解Silverlight单元测试的详情)。 结语 WPF和Silverlight方便你将UI功能封装进控件,它们支持的用户控件机制就提供了一个非常容易的方式。用户控件与数据绑定的结合促成了一些很好的视图/模型分离场景,允许你在操作数据时编写非常干净的代码。 如果你想在自己的机器上运行的话,你可以在这里下载上面例程的完整版本。 想进一步了解Silverlight和WPF的话,请参阅我的Silverlight教程和链接网页。 我还高度推荐Karen Corby在MIX08上做的精彩讲座(讨论了用户控件,自定义控件,样式化,控件模板等),你可以在这里免费在线观看该讲座。 希望本文对你有所帮助, Scott 标签: Visual Studio, .NET, Tips......[阅读全文]

posted @ | Feedback (0) | Filed Under [ .NET Visual Studio Tips and Tricks WPF Silverlight ]

摘要:【原文地址】Silverlight Tips, Tricks, Tutorials and Links Page 我将使用本页链接到有关Silverlight 2的文章和贴子(包括我写的和别人写的),请经常回来查看新的内容,因为我才开始。 入门教程 Silverlight 2 初览: 我建议先读这个贴子,如果你正考虑开始Silverlight 2开发的话。该文不仅对Silverlight 2提供的功能做了高层次的描述,还链接到了一个八个贴子的系列教程,该教程对如何建造一个Digg客户端例程做了示范。这些教程贴子对Silverlight 2和WPF开发的概念提供了很好的介绍。 使用Expression Blend开发Silverlight 2应用 -- 初览: 我建议下载Expression Blend 2.5 三月份预览版,按本教程贴子的步骤进行。我认为它很好地展示了Expression Blend的一些常见功能,用它建造了一个IM聊天客户端例程。 Unit Testing with Silverlight 2: Silverlight开发团队的Jeff Wilcox有一篇精彩贴子,讨论如何使用Silverlight SDK中的单元测试框架单元测试Silverlight 2应用。 入门讲座 Building Rich Internet Applications with Silverlight (Part 1 and 2): Joe Stegman和Mike Harsh在MIX 08上做了这分成2个部分的讲座, 讨论如何使用Silverlight建造应用。你可以使用上面的链接观看他们讲座的录像和下载相关讲义和示范例程。 Creating Rich, Dynamic User Interfaces with Silverlight 2 Controls: Karen Corby在MIX 08上有个极棒的讲座,很好地解释了样式,控件模板,用户控件等等。你可以在这里运行和下载她完整的FlickR应用。 我的Silverlight入门讲座: 你可以下载我最近在亚利桑那做的“Silverlight 2入门”讲座的讲义和示范例程,请随意在你自己的讲座中重用这些讲义。 文档链接 Silverlight 2 QuickStart Tutorials: 这些示范教程在上手Silverlight时会非常有用。 Silverlight 2 Developer Poster: 下载和打印Silverlight 2开发者海报。 Silverlight......[阅读全文]

posted @ | Feedback (0) |

摘要:【原文地址】Unit Testing with Silverlight 【原文发表日期】 Wednesday, April 02, 2008 2:01 AM 我们在Silverlight 2 Beta1 版本中发布的一个重要的功能是允许你进行API层次和界面层次单元测试的单元测试用具(unit test harness)。这个测试用具是跨浏览器和跨平台的,可以用来快速运行和核实自动化的单元测试: 除了发布Silverlight的这个单元测试用具外,我们还发布了用它建造的,对在Permissive License许可下发布的Silverlight控件源代码提供了自动化测试涵盖的2千个左右单元测试的源码。这个许可允许你将控件的源码进行修改,运行单元测试核实其行为,并且以任何形式重新发布这些控件。 学习如何单元测试Silverlight Jeff Wilcox,Silverlight单元测试框架和用具的开发者,在这里发表了一篇精彩的博客贴子,讨论如何在解决方案中加一个Silverlight Unit Test项目。你可以从我上个月撰写的这篇Expression Blend教程贴子上下载他用来示范测试的聊天应用。你也可以观看Jeff录制的这个很酷的录像贴子,在其中他对该单元测试框架和我们发布的测试案例做了示范。 就象Jeff在他的贴子里展示的那样,你现在可以往你的Visual Studio解决方案中加一个“Silverlight测试项目”,该项目封装针对你正开发的应用的单元测试: 然后你可以往测试项目中添加单元测试类,来测试API或模拟Silverlight控件中的界面动作(例如模拟按钮点击等)。 然后你可以运行测试项目,执行其中的测试,来核实和汇报它们的状态。 Jeff的测试框架自动地提供基于浏览器的测试用具和报告系统(意味着你可以在任何能运行Silverlight的浏览器或OS组合上运行它): Jeff的测试框架支持在每个测试后快速重置控件(以及避免对每个测试案例重启新的浏览器实例,这使得测试非常快)。 你可以在几秒钟内很快地突过成百上千个自动化的测试: 绿的结果意味着测试都通过了。红的结果表示某个测试案例失败了,同时记录断言失败(assertion failure)以及出现的运行时异常。 结语 如果你曾有困难采取策略对AJAX应用进行自动化的单元测试或TDD的话,我认为你会发现Silverlight提供了一些极棒的测试选项。使用Visual Studio,你还可以将测试分离到你的解决方案的另外的项目中去,你不需要在你的Silverlight应用嵌入测试就可以运行它们。 除了支持上述的单元测试用具和框架外,我们还将在Silverlight 2的最终版中支持UI自动化APIs。这些API将促成accessibility的场景(允许屏幕阅读器可以用于Silverlight,以及促成Silverlight应用对Section 508的相容性)。这些UI自动化API还将促成这样的UI测试场景,你可以建造end to end的浏览器界面自动化,来模拟真正的鼠标和键盘交互,促成自动化的end to end体验的测试。这些组合应该允许你建造极其坚固和可维护的RIA方案。 希望本文对你有所帮助, Scott 附注: 想找到有关Silverlight 2更多的教程贴子和链接的话,请参阅我的新《Silverlight 技巧,诀窍,教程和链接》 网页。 标签: .NET, Community News, Silverlight...[阅读全文]

posted @ | Feedback (0) | Filed Under [ .NET Community News Silverlight ]