Scott Guthrie 博客中文版

Scott Guthrie's Blog on ASP.NET and .NET (英文原版地址:http://weblogs.asp.net/scottgu)

   博客堂 :: 首页 :: 联系 :: RSS 2.0 ::
随笔 - 252, 评论 - 1157, 引用 - 436

导航

标签

每月存档

最新留言

广告

新ASP.NET图表控件<asp:chart runat="server"/>

【原文地址】New ASP.NET Charting Control: <asp:chart runat="server"/>
【原文发表日期】 Monday, November 24, 2008 10:38 PM

微软最近发布了一个很酷的新ASP.NET服务器控件,<asp:chart />,可以免费用在ASP.NET 3.5中,促成基于浏览器的丰富图表场景:

安装完毕后, <asp:chart/> 控件会出现在工具箱的“数据”页上,可以作为标准的服务器控件轻易地声明在任何ASP.NET网页上:

<asp:chart /> 支持各种丰富的图表选项,包括pie(饼图), area(区域), range(范围), point(点), circular(圆形), accumulation(累积), data distribution(数据分布), ajax interactive(AJAX交互), doughnut(甜圈图)等等。你可以在控件的声明中静态地声明图表数据,或者也可以使用数据绑定动态地填充。在运行时,该服务器控件会生成一个图片(譬如一个.PNG文件),是使用<asp:chart/>控件输出的<img/>元素在页面的客户端HTML中引用的。该服务器控件支持缓存图表图片的功能,还支持保存到硬盘上以在持久性场景中使用的功能。它不要求安装其他的服务器软件,可以用于任何标准的ASP.NET网页上。

想体会一下如何使用 <asp:chart />控件的话,我建议下载微软图表控件样程项目。该项目包括了200多个可以在本地运行的ASP.NET样例网页。只要在VS 2008中打开web项目,点击“运行”就可以看到它们的实际显示,然后你可以打开每个例子的.aspx源码看是怎么实现的。

下面的例子(在Chart Types->Line Charts->3D Line and Curve Charts,图表类型->曲线图->3D曲线图下)示范了如何做Line, Spline和 StepLine图表:

下面的例子(在Chart Types->Pie and Doughnut Charts,图表类型->饼图和甜圈图下)示范了各种饼图和3D甜圈图选项:

下面的例子(在Chart Types->Advanced Financial Charts,图表类型->高级财务图表下)示范了一些曲线图表:

除了上面的例子外,你可以下载微软图表控件文档或在图表控件论坛上询问, 以了解更多详情。

这应该给你的标准ASP.NET功能工具箱又提供了一个非常有用(而且免费)的工具,允许你轻松地将更丰富的视觉效果和数据流程场景添加到你的ASP.NET应用中去。

希望本文对你有所帮助,

Scott

posted on 2008-11-26 08:05:48 by scottgu  评论(1) 阅读(21099)

VS 2008中的jQuery Intellisense

【原文地址】jQuery Intellisense in VS 2008
【原文发表日期】 Friday, November 21, 2008 2:07 AM

上个月,我在博客里宣布了微软将对jQuery提供支持。在过去的几个星期里,我们与jQuery开发团队合作,在Studio 2008 和 Visual Web Developer 2008 Express版本(免费的)中增加了很好的jQuery intellisense支持。现在这个支持可以下载使用了。

在VS 2008中启用jQuery Intellisense的步骤

要在VS中启用jQuery的intellisense完成,你要遵循三个步骤:

第一步: 安装VS 2008 SP1

VS 2008 SP1 在Visual Studio中加了更丰富的JavaScript intellisense支持,对很大部分的JavaScript库加了代码完成支持。

你可以在这里下载VS 2008 SP1 和 Visual Web Developer 2008 Express SP1。

第二步: 安装VS 2008 Patch KB958502以支持"-vsdoc.js"Intellisense文件

2个星期前,我们发布了一个补丁,你可以将其运用到VS 2008 SP1 和 VWD 2008 Express SP1版本上,该补丁会导致Visual Studio在一个JavaScript库被引用时,查找是否存在一个可选的"-vsdoc.js"文件,如果存在的话,就用它来驱动JavaScript intellisense引擎。

这些加了注释的"-vsdoc.js"文件可以包含对JavaScript方法提供了帮助文档的XML注释,以及对无法自动推断出的动态JavaScript签名的另外的代码intellisense提示。你可以在这里了解该补丁的详情。你可以在这里免费下载该补丁。

第三步: 下载jQuery-vsdoc.js文件

我们与jQuery开发团队合作编写了一个jQuery-vsdoc.js文件,该文件对串连的jQuery selector方法的JavaScript intellisense提供了帮助注释和支持。你可以在jQuery.com网站的官方下载网页上下载jQuery和jQuery-vsdoc文件:

把jquery-vsdoc.js保存到你项目中jquery.js文件所在的同一个目录中(同时确认它的命名前缀与jquery文件名匹配):

然后你可以象这样,通过一个html <script/>元素来引用标准的jquery文件:

或者也可以使用<asp:scriptmanager/> 控件来引用它,或者在一个单独的.js文件的顶部加 /// <reference/> 注释来引用它:

在完成之后,VS就会在你引用的脚本文件所在的同一个目录中寻找一个-vsdoc.js文件,如果找到的话,就会用它来做帮助和intellisense。

例如,我们可以使用jQuery来做一个基于JSON的get请求,得到该方法的intellisense(挂在$.之后):

以及 $.getJSON()方法参数的帮助/intellisense:

 

如果你在方法调用中嵌套回调函数的话,intellisense依旧会工作。例如,我们也许想对从服务器返回的每个JSON对象进行迭代:

对每个项,我们可以执行另一个嵌套的回调函数:

我们可以使用each回调函数动态地往列表中附加一个新图片(图片的src属性将指向返回的JSON媒体图片的URL):

然后在每个动态生成的图片上,我们可以连接一个点击事件处理函数,在点击时,会通过动画效果来消失:

注意jQuery intellisense在我们代码的每一个层次都很干净地做了提示。

JavaScript Intellisense 技巧和诀窍

Web工具开发团队的Jeff King本星期早先时候撰写了一个很棒的贴子,对有关VS 2008中JavaScript intellisense工作原理的若干常见的问题做了回答,我高度推荐阅读该文。

他谈到的一个诀窍(我要在这里做示范)是在你想要在用户控件/部分(.ascx文件)中使用JavaScript intellisense时可以使用的一个技术。经常地,你不想要在这些文件中包括对JavaScript库的<script src=""/> 引用,这些引用往往是存在于使用了用户控件的母版页或内容网页之上的。当然,问题是,你这么做的话,在默认情形下VS是无法知道用户控件中用到了这个脚本,因此不会为你提供intellisense 。

启用intellisense的一个方法是,在你的用户控件中加<script src=""/>元素,但在其周围加一个服务器端的<% if %> 块,在运行时其值总是为false:

在运行时,ASP.NET不会显示这个脚本标识(因为是包含在一个总是为false的if块中的),但是,VS却会运算这个<script/>标识,在用户控件中为它提供intellisense。在象用户控件这样的场景下,这是个非常有用的技术。Jeff在他的FAQ贴子原先的jQuery intellisense贴子里还有更多细节。Rick Strahl在这里也有一篇很好的贴子,是关于使用jQuery intellisense的。

更多信息

想进一步了解jQuery的话,我建议观看Stephen Walther在PDC大会上做的《ASP.NET和jQuery》讲座。点击这里下载他的代码例程和 powerpoint讲义。

Rick Strahl也有一篇非常棒的《Introduction to jQuery》文章,讨论如何在 ASP.NET使用jQuery。Karl Seguin 在这里这里有2篇非常好的jQuery基础教程贴子,对如何使用jQuery的一些基本知识提供了比较简短的的概述。

我也高度推荐《 jQuery in Action》一书。

希望本文对你有所帮助,

Scott

posted on 2008-11-22 02:18:59 by scottgu  评论(2) 阅读(14515)

Silverlight 2 快报 和 Silverlight 3 初窥

【原文地址】Update on Silverlight 2 - and a glimpse of Silverlight 3
【原文发表日期】 Sunday, November 16, 2008 11:01 PM

我们上个月发布了Silverlight 2。在过去的4个星期里,Silverlight 2的最终版被下载和安装到了超过1亿台用户机器之上。最近还通过微软SMS和微软更新程序发布到了企业管理员手中,允许他们在企业内做自动部署。Internet上超过四分之一的计算机现在安装了某个版本的Silverlight。

Silverlight 2是个重大的发布,给媒体和RIA体验提供了一套强有力的跨浏览器,跨平台的功能,看到新的网站用它来推出时真是让人开心。

媒体体验

Silverlight 2 促成了网上的最高质量的视频,而且是以任何媒体平台上最低的TCO(总体拥有成本)来提供的。

内置于Silverlight 2的一个功能是对“自适应流媒体传输(adaptive streaming)”的支持,该功能允许视频可以多个比特率(譬如400Kbits, 800Kbits, 1.5Mbits, 2Mbits)发送,由Silverlight根据网络带宽和客户端CPU性能动态地选择最优的比特率(还可以在之后条件改变的情形下无缝地自动转换比特率)。

Silverlight的“自适应流媒体传输”支持是可扩展的,Move Networks(曾帮助首创了“自适应流媒体传输”的概念)已经将他们的自适应流媒体传输解决方案与Silverlight相集成,Silverlight 2 和 Move 在今年夏天曾被用来在网上实况转播民主党全国大会

上个月,我们宣布了将作为我们的IIS7 web服务器的一个免费功能,增加对“自适应流媒体传输”的支持。IIS Smooth Streaming(IIS平滑流传输)将提供一个集成的方式来在网上发送HD质量的适应性视频。请访问Akamaiwww.smoothhd.com网站,看Silverlight 2 和 IIS 平滑流传输(自适应性流输出率可达2.5Mbits)实战使用中一些精彩无比的例子。

NBC奥林匹克网站今年夏天使用Silverlight 2服务了超过6千万个独特访问者,提供了多于3500小时的直播和按需奥林匹克赛况。该网站的访问者 平均观看了27分钟的录像,对在线视频来说,这是个高得出奇的数字。该网站使用了新的Silverlight自适应流媒体传输功能来支持1.5Mbit比特率,帮助提供了精彩无比的视频体验:

除了在美国驱动奥林匹克体验外,Silverlight还在法国(FranceTV),荷兰(NOS), 俄罗斯 (Sportbox.ru)和意大利(RAI)等地用来播放奥林匹克赛况。除了视频质量外,这些媒体决定使用Silverlight后面的一个很大的原因是Silverlight提供的TCO和流媒体传输费用的差异。在《Web Designer Magazine》(Web设计师杂志-荷兰的)的2008年8月版中, NOS的代表报告说,他们使用了Silverlight和40台 Windows Media服务器就能够服务10万个同时用户,而要是使用Flash Media服务器的话,这需要270台服务器才行。

在过去的一个月里,我们看到了媒体场景下好几个重大的新Silverlight部署。例如,CBS大学体育现在使用了Silverlight从它的170个伙伴学院和大学处转播NCAA比赛。Blockbuster正在他们的MovieLink应用中把Flash换成Silverlight。Netflix 2个星期前推出了使用了Silverlight的新Instant Watch(即时观看)服务。

RIA体验

Silverlight 2提供了.NET框架的一个跨浏览器,跨平台子集,允许开发人员建造富Internet应用(RIA)。

开发人员可以使用VS 2008或免费的Visual Web Developer 2008 Express版打开和编辑Silverlight 2项目,得到一个强大的以代码为中心的 .NET 开发环境。设计师可以使用Expression Blend 2 SP1打开和编辑同个项目,用一个创造性的工具,精雕细琢,创造出丰富的用户体验。我最近在这里的博客中讨论了Silverlight促成的很好的开发人员/设计师工作流程。在2个星期前的PDC大会上,我们还发布了Silverlight Toolkit的第一个版本,该工具包是个开源项目,添加了可用于Silverlight 2开发的额外的运行时控件和组件(包括新的图表控件)。

许多客户已经推出了面向Internet的Silverlight 2 RIA解决方案(包括Renault, Hard RockToyota)。例如,上个月, AOL 推出了用了Silverlight 2的新AOL Mail RIA:

Silverlight 2现在还被用于种种企业方案之中。例如,K2 最近推出了用了Silverlight的微软SharePoint下的新的Blackpoint工作流管理方案

微软也在部署基于Silverlight的新的RIA体验。Windows Live团队的新相片应用(photos.live.com) 和视频通讯应用(videomessages.live.com)都是用Silverlight 2建造的,新的MSN工具条也是 (该工具条用了Silverlight来定制浏览器桢)。上个月在PDC大会上,我们还对用了Silverlight的一些新Office 14 Web Companion RIA应用做了初窥演示。

Silverlight 3

明年,我们将发布Silverlight的下一个重大版本 -- Silverlight 3。

Silverlight 3将包括重大的媒体增强 (包括 H.264 video视频支持),重大的图形改进(包括3D支持和GPU硬件加速),以及重大的应用开发方面的改进(包括更丰富的数据绑定支持和另外的控件)。注意,这些只是多方面改进的很小一部分而已,我们还有无数的很酷的功能我们还想多瞒一段时间, ;-)

明年,Visual Studio 和 Visual Web Developer Express版将支持完全可编辑的、可交互的Silverlight设计器,对数据绑定将加工具支持:

我们对Silverlight今天所在的境况,以及为明年制定好的产品路线图感到非常的兴奋。看着客户以很酷的方案上线,真的非常让人开心。随着越来越多的网站用Silverlight 2推出,以及Silverlight 3和以后版本所能促成的场景越来越大,明年将会是很开心的一年,:-)

希望本文对你有所帮助,

Scott

posted on 2008-11-18 11:43:37 by scottgu  评论(1) 阅读(10943)

使用 Expression Blend 2对一个Silverlight Twitter应用进行样式化

【原文地址】Styling a Silverlight Twitter Application with Expression Blend 2
【原文发表日期】 Friday, November 14, 2008 2:15 AM

Silverlight 2 为建造跨浏览器、跨平台RIA应用提供了一个丰富的平台。

使得Silverlight如此强大的一件事情是,开发人员和设计师在Silverlight项目上一起合作的容易性。开发人员可以使用Visual Studio打开和编辑Silverlight 2项目,得到一个强大的以代码为中心的 .NET 开发环境,而设计师则可以使用Expression Blend 2 SP1打开和编辑同个项目,使用一个创造性的工具,精雕细琢,创造出优化的用户体验设计。

Silverlight中发布的WPF UI框架通过支持象布局管理,控件,样式,模板和资源这样的概念,进一步促成了很好的设计师/开发人员工作流程,有助于避免设计师和开发人员在集成功能,行为和有表现性的设计时相互妨碍的场景。

Silverlight 2 Twitter 例程

上个月,我贴出了一个深入的博客教程,教你如何建造一个Silverlight 2 Digg应用,你可以在这里阅读。该教程主要针对开发人员,着重于介绍在建造Silverlight 2应用时涉及的基本编程概念。

今天,Celso Gomes 和 Peter Blois 发布了一个很酷的十分钟长的录像教程,展示如何使用Expression Blend来对一个Silverlight 2 Twitter Messenger应用进行样式化。你可以在 这里观看这个录像,你可以在这里下载完成后的Silverlight Twitter应用的源代码。

这个录像很好地示范了设计师如何不用改动后台代码,就可以对一个Silverlight应用重新样式化。在样式化过程中,该录像还展示了Expression Blend 2提供来建造极其丰富的用户体验的一些强大的功能。Celso 从该应用的开发人员版本开始,然后对UI进行定制和精雕细琢,使其拥有一个好玩的twitter(鸟鸣)角色的主题:

应用模型

该Silverlight Twitter客户端是宿主于一个ASP.NET服务器应用之中的,该应用呈示了一个web服务,允许Silverlight Twitter应用与Twitter服务进行通讯(因为Twitter不允许来自客户端应用的直接访问)。而Silverlight客户端与ASP.NET web服务器之间的通讯是通过Windows Communication Foundation (WCF)实现的。

该客户端应用使用了“Model-View-Presenter (MVP)”模式(也称为“Model-View-ViewModel”模式),这是在大型WPF应用中常用的模式。虽然这是个很简单的应用,他们还是想要利用MVP带来的灵活性,以及为将来发展留下空间。

保持视觉表现和应用逻辑的分离,还允许设计师不用影响基本的应用流程,而做出比较复杂的视觉上的改动,这个录像提供了一些该架构促成的样式化灵活性的例子。

样式化过程

在录像中,Celso着重强调了Resources(资源)可以怎样帮助设计师很快地改变颜色。例如,一个常见的画刷资源(Brush Resource),可以被用来改变应用中所有文本元素的颜色:

Celso展示了使用Expression Blend 2 SP1从图形来创建新的用户控件是多么地容易(只要在设计器上选择多个元素,右击鼠标,选择“Make Control”菜单项即可):

还展示了如何在这个新的用户控件中创建新的状态(用了视觉状态管理器的功能,现在WPF也提供了该功能),创建鸟的动画效果(飞翔,眨眼等等)

Celso还展示了如何创建每个状态的动画效果,改变象Key Spline曲线和Repeat Behavior这样的高级属性:

他还展示了如何从图画创建出定制的按钮(这些图画可以来自于XAML或象Photoshop或Illustrator这样的任何其他设计工具),一个Button控件的所有状态都有现成提供。

Expression Blend还允许你轻松的改变象List Boxes这样的复杂控件,设计师可以访问所有的样式,模板和状态,不用编写任何代码就可以完全地定制List Box的所有部分:

想把玩上面的Twitter应用的话,你可以观看该录像,以及下载相关代码

想了解Expression Blend详情的话,我还推荐观看2个星期前PDC大会上的《Expression Blend之技巧和诀窍》讲座。

更新: 还请观看Shawn Wildermuth的《Deep Control Skinning with Styles》 webcast。

希望本文对你有所帮助,

Scott

posted on 2008-11-18 10:34:48 by scottgu  评论(1) 阅读(9463)

11月6日链接篇: ASP.NET, ASP.NET AJAX, jQuery, ASP.NET MVC, Silverlight 和 WPF

【原文地址】Nov 6th Links: ASP.NET, ASP.NET AJAX, jQuery, ASP.NET MVC, Silverlight and WPF
【原文发表日期】 Thursday, November 06, 2008 12:34 AM

上个星期是我们重要的PDC大会,这个星期我正忙着赶拉下的工作。我希望不久就会发表一堆新的贴子(包括一些针对在PDC上所做的宣布的贴子)。在那之前,这里是我的链接系列的最新篇。也请参阅我的ASP.NET 技巧,诀窍和教程网页Silverlight教程网页里我以前写的众多很受欢迎的文章的链接。

ASP.NET

ASP.NET AJAX 和 jQuery

ASP.NET MVC

Silverlight 和 WPF

希望本文对你有所帮助,

Scott

posted on 2008-11-07 07:19:02 by scottgu  评论(2) 阅读(10093)