RSS 2.0 Feed
Talks
摘要:【原文地址】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 ]

摘要:【原文地址】Visiting China, South Korea and Japan the Next Two Weeks 【原文发表日期】 Tuesday, January 08, 2008 9:35 PM 本星期五,我将出发,开始十天的亚洲之旅。出差旅行一般不会让我激动(去年我在飞机上的次数大概有70次之多),但我非常期待这次旅行,因为这是我的第一次亚洲之旅。 我将访问中国(北京,上海和深圳),南朝鲜(首尔)和日本(东京),我将做一些讲座,与客户见面,拜访基于中国的我部门的一个开发团队。我还希望有机会在这些国家做些观光,陶醉自己一下。 下面是我这次旅程间将做的讲座的一些细节,如果你有兴趣参加或想了解详情的话: 中国 (北京,1月13日) 中国 (上海,1月14日) <= 更新 南朝鲜 (Coex Conference Center 310,1月17日) 日本 (Izumi Garden Gallery in Roppongi, 1月21日) 去年,我非常幸运有些好人志愿将我的博客贴子翻译成其他语言(包括中文和日文),下面是这些博客的链接,如果英语不是你的母语的话: 中文版 日文版 西班牙文版 我希望这次能与思归(我的博客中文版的翻译者,该博客居于王洪超的博客站上)以及Chica(我的博客日文版的翻译者)见面,有机会亲自感谢他们, 谢谢, Scott 【译注】译者目前不在国内,参与Scott Guthrie博客翻译的还有Ring,蓝天,木野狐,韩现龙等。 标签: ASP.NET, .NET, Talks, Community News...[阅读全文]

posted @ | Feedback (18) | Filed Under [ ASP.NET .NET Talks Community News ]

摘要:【原文地址】ASP.NET MVC Framework 【原文发表日期】 Sunday, October 14, 2007 10:41 PM 过去的几年里,很多人要求ASP.NET的一件事情就是对使用基于model-view-controller(模型-视图-控制器,简称MVC)架构来开发web应用的内置支持。 上个周末在Austin举行的Alt.NET大会上,我首次对我的团队正在开发的新ASP.NET MVC 框架作了一个公开的演示。你可以在Scott Hanselman这里的博客上观看我的讲座的录像。 我们将在今年稍后发布该框架的一个公开预览版,然后在明年的上半年将它作为完全支持的ASP.NET特性推出。 模型-视图-控制器(MVC)框架是什么东西? MVC是个将一个应用的实现分成三个组件角色的框架技术:模型,视图和控制器。 在基于MVC的应用里,Model(模型)是负责保持状态的应用组件。这个状态通常都持久于数据库之中(譬如,我们也许会有一个Product(产品)类用来代表SQL中的Products数据表中的订单数据)。 在基于MVC的应用里,View(视图)是负责显示用户界面的组件。这个UI通常是使用模型数据来创建的(譬如,我们也许会生成一个Product"编辑"视图,根据当前Product对象的状态,显示文本框,下拉框和复选框等)。 在基于MVC的应用里,Controller(控制器)是处理用户交互,操作模型和最终选择用哪个视图来显示UI的组件。在MVC应用中,视图只是用来显示信息而已,是控制器来处理和回应用户的输入和交互的。 使用MVC方法的一个好处是,它有助于促进应用中模型,视图,控制器间的关注的清晰分离。保持关注的清晰分离使得对应用的测试极其容易,因为不同应用组件间的契约的定义和表达是更明确的。 MVC模式也有利于促进红/绿式测试驱动的开发 (TDD),通过它,你可以在你实际编写应用代码本身之前首先实现自动化的单元测试,这些单元测试定义和核实了新代码的需求。 ASP.NET MVC 框架的一些简要细节 在几个星期后,相关代码可以下载之后,我将写一些关于这个新的ASP.NET MVC 框架的深入性的教程贴子(与此同时,想进一步了解它的最佳方式是观看我的Alt.net讲座的录像): 这里是关于ASP.NET MVC 框架的一些简要细节: 它将促进清晰的关注分离,可测试性,和TDD。MVC框架中的所以核心契约都是基于接口的,可以轻易地通过mock来模拟(包括基于接口的IHttpRequest/IHttpResponse这些基本的东西)。你可以不用在ASP.NET进程中运行控制器(这使得单元测试很快),就单元测试你的应用。你可以使用你想使用的任何单元测试框架来做单元测试,包括NUnit, MBUnit, MS Test等等。 这个框架具有高度的可扩展性和可插拔性。MVC框架中所有的东西都是这样设计的,它们可以被轻易地替换掉或者定制(譬如,你可以插入你自己的视图引擎,路径转向策略(routing policy),参数序列化等等)。它还支持使用现有的依赖注入(dependency injection)和控制反转(IOC)容器模型(Windsor, Spring.Net, NHibernate等等)。 它包括一个非常强大的URL映射组件,允许你使用非常干净的URL来建造应用。URL不需要拥有文件扩展,是设计来轻松支持SEO和REST友好的命名模式的。譬如,在我上面的项目中,我可以轻松地把/products/edit/4映射到ProductsController类的Edit方法上,或者把 /Blogs/scottgu/10-10-2007/SomeTopic/ 映射到BlogEngineController类的DisplayPost方法上。 MVC框架支持将现有的ASP.NET .ASPX, .ASCX,和 .Master 标识文件当作视图模板(view template)之用(这意味着你可以轻松地使用很多现有的ASP.NET特性,象嵌套的母版页,<%= %>块 ,声明式服务控件,模板,数据绑定,本地化等等)。但是,它不使用现有的将交互返回服务器的postback模型,取而代之的是,你将把用户的所有交互转给控制器类来调度,这有助于关注的清晰分离和提高可测试性(这也意味着,在基于MVC的视图内没有viewstate或page的生命周期之说)。 ASP.NET MVC框架将完全支持象forms/windows认证,URL授权,成员/角色,输出和数据缓存,session/profile状态管理,健康监测,配置系统,以及provider架构等等现有的ASP.NET特性。 结语 如果你正在想使用MVC方式建造你的web应用的话,我认为你会发现这个新的 ASP.NET MVC 框架选项非常干净,而且容易使用。它将允许你在你的应用中很轻易地保持关注分离,而且有助于进行干净的测试和TDD。 几个星期之后,我将撰文说明新的MVC特性的工作原理,以及如何利用它们。 希望本文对你有所帮助, Scott 标签: ASP.NET, .NET, Talks, MVC   【附】 Scott Guthrie对一些评语的答复:   1. 【问】你可以在现有的ASPX,ASCX等。。。里使用声明式服务控件,假如服务控件需要ViewState和Page的生命周期才能工作的话,那么在基于MVC的视图里使用服务器控件的后果是?   【答】视图本身是标准的.aspx, .ascx, .master文件,所以还是有对应的后台(code-behind)类,你可以在其中处理控件的render事件,以把视图的markup与视图的显示逻辑干净地分开。   至于声明式控件,控件模型对建造控件而言还是一样的,区别是,你不能使用postback特性。从逻辑上说,这就象今天创建一个没有<form runat="server">的aspx网页类似。所以象<asp:repeater>以及其他的控件依旧还会工作,你要使用标准的表单提交或<a href=""> url来做post操作。   我们也会提供一些对MVC有意识的服务器控件,可以用于没有postback的视图页面里,它们将与基于控制器的逻辑很干净地集成。   2. 【问】MVC框架是否会包括在VS 2008 RTM里? 【答】 MVC框架可以在VS 2008 RTM下工作,我们将在发布VS 2008 RTM的同时,发布第一个预览版。MVC框架本身先会居于一个单独的程序集中,然后会变成.NET 3.5 SP1的一部分。   3. 【问】假如我们使用MVC框架,我们是不是又回到原地了?还是会提供给我们这些认为生命是短暂的人一些适当的好处?用个比喻,我可不想每次冲淋浴,就要重建水龙头(taps)。   【答】注意,MVC框架并不替代现有的web form模型,很明显,我们将继续完全支持并增强web form模型的功能。所有,假如你喜欢控件postback式交互的话,我大概会建议你还是继续目前的做法,使用基于MVP的模型来做测试。   而MVC模型的确在显示HTML方面给你更多的控制。但就象你注意到的,这既有好处也有坏处,好处是你有更多的控制,坏处是,控制越多,你需要照顾的东西也越多。我们将提供很好的方式来处理错误和保持表单状态,这样你就不用写些丑陋的编码来处理这些东西了。对你的界面来说,服务器控件模型还是很好地提供了非常干净的方式来封装视图辅助(view-helper)功能,而且我们将提供一套丰富的控件来辅助你。   4. 【问】Brail视图引擎有一样好处是,视图是独立于主要应用被编译的,所以假如你对视图做了改动,它可以立刻被重新编译。我假定基于DLR的视图没有被编译,但在aspx视图的情形下,改动视图是否需要重新装载应用而导致长时间的延缓呢?假如不需要的话就太好了。   【答】当.aspx网页被改动后, ASP.NET监测到其变化后,会自动为它生成一个新的程序集。那样,我们就不需要重新启动应用了。在基于DLR的.aspx网页的情形下,实际上我们根本不创建程序集,而可以在内存里对它们做编译,基于IronPython的.aspx 网页就是这样工作的。   注意,因为ASP.NET MVC框架是可以插拔的,你可以选用MonoRail Brail视图引擎来显示你的视图。所以如果你喜欢Brail模型的话,还是可以继续和新的MVC框架协同工作的。 5.【问】对MVC有意识的服务器控件能否可以从模型验证来推出自动的客户端验证(譬如通过CSS属性)?   【答】我们会研究,在可能的情况下,从模型的验证,来允许处理错误的客户端样式和客户端JavaScript错误验证。但这个不会出现在几个星期后的第一个预览版里,但这是我们近期看过的,以后会再研究。   6.【问】你是可以讨论一下MVC中DLR,动态语言,LINQ和Asp.Net futures的支持? 【答】LINQ肯定会在MVC框架内完全支持,我们也会增加DLR支持,允许你使用包括IronPython和IronRuby在内的动态语言建造视图和控制器。   7.【问】象UpdatePanel和其他依赖于postback模型的跟AJAX有关的特性将会得到什么样的支持? 【答】UpdatePanel确实使用postback,所以你无法直接在基于MVC的视图里使用那个控件。但我们将提供一个跟该控件类似功能的控件以及相关的辅助方法。它会调用控制器的一个方法,允许你非常容易地做局部更新。它将允许你非常轻松地使用ASP.NET AJAX库。在几个星期之后我会写博客讨论更多细节。   8.【问】你的讲座录像里的视图代码看上去非常危险地象是老的asp(没有.net)。monorail nvelocity也是如此。我希望你能综合两者的好处哦。   【答】有些人喜欢<%= %>模型,在alt.net大会上我演示MVC模型讲座的参与者都要我使用这种方法(所以我写了那样的代码),我也可以使用<asp:repeater>来做列表,通过code-behind来做数据绑定,这允许你更清晰地构造你的视图显示代码。   9.【问】我只是好奇,你需要对内层代码做多少改动才能使得声明式服务器控件在不使用postback模型的情形下工作?ASP.NET MVC会在没有<form runat="server">的页面上支持现有的服务器控件么?我们是否能够在同一个页面上使用多个HTML表单?   【答】我们实际上不用改动内层代码来支持MVC框架,ASP.NET 实际上已经包含大部分所需的hook了。 ASP.NET MVC框架将允许你在同一个页面里使用多个HTML表单。象<asp:repeater>和其他支持只读模式的控件完全没问题,但倚重于Postback的控件是无法支持postback操作的。   10.【问】我注意到你在ALT.NET的演示里,你从控制器里往视图里以 new {"value", "value2"}的形式传递匿名类型。我的印象是,匿名类型是无法传到一个方法的范围之外的。你能解释一下么?   【答】匿名类型是可以传到他们所在范围之外的,但类型名称是未知的(譬如,你可以以Object类型的形式传递或返回这些对象)。   我使用的辅助方法接受一个object作为可选的参数类型,然后使用IDictionary或反射获取其中的名称/数组对。所以我可以写 <%= Html.Link("Push Me", new......[阅读全文]

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

摘要:【原文地址】Slides from my ASP.NET Connections talks: WPF/E, LINQ and ASP.NET Tips/Tricks【原文发表日期】 Friday, March 30, 2007 11:28 PM 这个星期早些时候,我在奥兰多举行的ASP.NET Connections大会上做了三场讲座。下面是我做的三场讲座的讲义/演示代码: WPF/E简介 这个讲座对WPF/E提供了一个很好的介绍,WPF/E是一个新颖小巧的,跨平台的浏览器运行时的代号,它允许开发人员和设计师开发提供更丰富的,交互性更强的web体验。我最早在这里的博客贴子里介绍过WPF/E。 你可以在这里下载我的WPF/E讲座的讲义和演示代码(内含一个录像样本,使整个下载大小达到10M左右)。这个讲座对今天的WPF/E CTP版本中的核心功能做了概述,同时也示范了你要使用的核心XAML和JavaScript编程模型。 想得到更多WPF/E样例的话,请去这里访问Channel9上的在线WPF/E样例馆。你也可以去这里的MSDN上的官方WPF/E网站上下载文档和例程。我团队的Mike Harsh在这里撰有一个精彩绝伦的讨论WPF/E的博客,我强烈推荐你订阅他的博客。 使用LINQ建造数据驱动的Web应用 这个讲座对LINQ(将作为我们的Orcas的一部分发布)提供了深入的讨论,并对它给ASP.NET带来的开发效率的显著提高做了一些示范。点击这里下载这个讲座的讲义。 如果你还没看过的话,我强烈建议你在这里观看一下我在Visual Studio Orcas中使用LINQ的20分钟的示范录像。你可以通过阅读我以前写的一些关于LINQ的博客贴子来进一步了解LINQ以及如何在ASP.NET中使用LINQ等。这里是特别值得一读的几篇贴子: Building and using a LINQ for SQL Class Library with ASP.NET 2.0 Building a Photo Tagging Application using ASP.NET 2.0, LINQ, and Atlas 在ASP.NET中使用LINQ (蓝天译) Using DLINQ with ASP.NET DLINQ with Stored Procedures Understanding LINQ to SQL Query Translations 最后,想了解随Orcas一起发布的一些新C#和VB语言特性(LINQ大量使用了这些特性)的话,请在这里看一下我的语言系列的前2篇贴子: Orcas中C#语言的新特性:自动属性,对象初始化器,和集合初始化器 新Orcas语言特性:扩展方法 我会在接下来的几天内试着发表我的语言系列的下一篇(将讨论Lambda表达式),请静侯。 ASP.NET 2.0 技巧和诀窍: 这个讲座讨论了ASP.NET UI,AJAX, 缓存和部署技巧和诀窍以及Visual Studio 2005 技巧/诀窍。样例包括在 ASP.NET......[阅读全文]

posted @ | Feedback (3) | Filed Under [ ASP.NET .NET Talks WPF/E ]

摘要:【原文地址】Me Presenting at the Space Coast .NET User Group in Florida this Tuesday【原文发表日期】 Sunday, March 25, 2007 8:02 PM 接下来的几天,我将在奥兰多举行的春季ASP.NET Connections / DevConnections大会上做演讲。大概有1500位将参加这个星期的会议,对一个春季的会展来说,这是个非常不错的出席人数 (每年的秋季大会都是11月份在拉斯维加斯举行,去年的与会人达5000之多)。 星期二,我将给太空海岸(Space Coast).NET用户组织举办关于ASP.NET 和Visual Studio Orcas的讲座。该讲座将于晚上6点半开始,入场是免费的。你可以在这里在线注册参与该讲座(你也可以在这里找到该活动的地址,以及开车路线等)。 希望在那里见到你们中的一些人! Scott 附注:接着,我将与Ray Ozzie于4月30日在拉斯维加斯举行的MIX大会上做主题演讲。然后会在6月4日那个星期在奥兰多的TechEd上做演讲,接着于6月13日在阿姆斯特丹的荷兰DevDays大会上做讲座。之后,6月份我还有几个其他的会议活动目前还在确定中,包括可能在英国,瑞士,匈牙利和凤凰城举办讲座等。 标签: ASP.NET, Talks,社区新闻 (Community News)...[阅读全文]

posted @ | Feedback (1) | Filed Under [ ASP.NET Talks Community News ]

摘要:【原文地址】Free ASP.NET MVP Live Online Chat Tonight 【原文发表日期】 Friday, February 16, 2007 10:00 AM Ryan Olshan 和 StrongCoders 将组织一场于今晚举行的精彩的ASP.NET在线聊天活动。参与回答问题的将包括可称是全明星阵容的一群MVP专家,我也将参加回答问题。 你可以在美国东部时间晚上8-9点(美国西部时间下午5-6点,【译注】北京时间17日(星期六)上午9-10点)参加该活动。详情请见Ryan这里的帖子,以及MSDN的聊天中心日程表。 希望在那里见到你们, Scott 附注:我对这个星期我博客上的150多个没答复的评语表示歉意。过去的几天,我因得了流感没有上班,也一直没有上线。这个周末,我会对评语进行答复。 标签: ASP.NET, Talks, 社区新闻 (Community News)...[阅读全文]

posted @ | Feedback (3) | Filed Under [ ASP.NET Talks Community News ]

摘要:【原文地址】 ASP.NET 2.0 Tips and Tricks and ASP.NET, IIS7 and ASP.NET AJAX End to End Talks 【原文发表日期】 Monday, February 05, 2007 4:49 PM 我结束了我旋风般的欧洲讲座之旅(在不到一个星期内横跨比利时,英国和荷兰),非常幸运有机会沿途给几百位朋友做讲座。在此特向跑来参与我讲座的各位表示衷心的感谢! 这里是我给的讲座的前2个讲义和样例代码: ASP.NET 技巧和诀窍:  这个讲座讨论了ASP.NET UI,AJAX, 缓存和部署技巧和诀窍以及Visual Studio 2005 技巧/诀窍。样例包括在 ASP.NET AJAX 1.0下工作的更新过的ASP.NET AJAX版本的例子。你可以在这里下载相关讲义和样例代码。 你可以读一下我以前写的这篇关于改进Visual Studio build性能的帖子以进一步了解关于性能优化的建议,你也可以在我的技巧和诀窍汇总网页上找到我写的ASP.NET和Visual Studio方面的数十个技巧/诀窍。 使用ASP.NET 2.0,ASP.NET AJAX,IIS7 和 Visual Studio从零开始建造End-to-end的Web应用: 这个讲座演示了如何使用 ASP.NET 2.0,ASP.NET AJAX 1.0,IIS7 和 Visual Studio(所有这些技术都是正式发布的产品了)从零开始建造丰富的数据驱动的应用。你可以在这里下载相关讲义和完整的样例代码。 这个讲座示范了下述特性: IIS7 分布式配置,母板页,使用DataSet建造数据访问层,建造数据驱动的编辑网页,建造分类目录浏览网页,网站导航,Url重写,CSS控件适配器, ASP.NET AJAX,ASP.NET AJAX控件工具包,成员/角色, IIS7 管理界面,SQL缓存清除,以及WebPart的门户支持。 希望本文对你有所帮助, Scott 附注:几天内我会贴出我的其他讲座的讲义和样例代码,包括我的Orcas和WPF/E讲座。 标签: ASP.NET, Visual Studio, Talks, Tips and Tricks, 社区新闻 (Community News)...[阅读全文]

posted @ | Feedback (6) | Filed Under [ ASP.NET Visual Studio Tips and Tricks Talks Community News ]

摘要:【原文地址】 Video: Using LINQ with ASP.NET in VS "Orcas" (Part 1) 【原文发表日期】 Sunday, January 28, 2007 11:28 PM 我今年的一个目标是在博客中多用录像。我的看法是这样,很多时候,用来示范某样东西是怎么工作的,较之于比文字,录像是更好的媒介,也可以帮你避免由阅读我的一些非常长的博客帖子而带来的沉闷,单调,乏味。。。 在下几个月里,我会尝试着每隔一个星期就各种主题创制一个新录像。很多这些录像会涉及对随Visual Studio Orcas而来的一些新的特性的初览,Visual Studio Orcas是将于今年晚些时候发行的新版本。至于今天的录像,我决定着重介绍 LINQ,我认为LINQ是随Orcas而来的最激动人心的特性之一。 在高的层面上看,LINQ使得查询的概念成为.NET中一等(first class)的编程概念。通过使用LINQ,你可以轻松地查询关系数据库,XML文件,以及任何普通的.NET对象。你也可以轻松地在LINQ中使用你自己的数据源抽象来为各种数据提供器提供丰富的域模型(domain models)。想看一个精彩的例子的话,参考Fabrice的LINQ到Amazon的实现,这个例子支持了对通过 web-service 呈示的Amazon数据的LINQ查询。 作为 Orcas 发布的一部分,VB 和 C# 两者都提供了与LINQ丰富的语言级的集成,包括完全的 Inte