RSS 2.0 Feed
WPF
摘要:【原文地址】May 20th Links: ASP.NET, ASP.NET AJAX, .NET, Visual Studio, Silverlight, WPF 【原文发表日期】 Tuesday, May 20, 2008 10:02 PM 很抱歉,过去的几个星期贴子稀少,最近这里工作和生活都很忙。为活跃一下气氛,下面是我链接系列的新贴子。也请参阅我的ASP.NET 技巧,诀窍和教程网页和Silverlight 教程网页 (中文版)里我以前写的众多很受欢迎的文章的链接。 ASP.NET Bulk Inserting Data with the ListView Control: Matt Berseth继续他的精妙贴子,这篇展示了如何使用.NET 3.5中的ASP.NET ListView控件来处理数据的批量编辑。 Master-Detail with the GridView, DetailsView, and ModalPopup Controls: Matt的另一篇精彩贴子,描述了如何干净地处理一个常见的数据输入场景。 Creating Great Thumbnail Images in ASP.NET: 另一个不同的Matt的一篇非常好的博客贴子,详细描述了一个生成高质量的缩略图的方法。 Warning the User when Caps-Lock is on: Scott Mitchell的一篇好文,描述了如何在登录页面中自动检测和警告用户键盘的大写按钮处于锁定状态。 ASP.NET Perf Issue: Large numbers of application-restarts due to virus scanners: Tess Ferrandez的一篇精彩贴子,详细描述了一个确定为什么ASP.NET应用经常重启(导致性能下降)的调试过程。 其问题是在于一个病毒扫描器导致了文件不停地更新。一定要看一下你可以加到应用中的记录日志的代码,以识别类似这样的重启原因。 ASP.NET AJAX ASP.NET AJAX Progress Bar Control: Matt Berseth的又一篇精彩文章,描述了他新的ASP.NET......[阅读全文]

posted @ | Feedback (1) | Filed Under [ ASP.NET .NET Visual Studio LINQ Atlas WPF Silverlight Link Listing ]

摘要:【原文地址】Visual Studio 2008 and .NET Framework 3.5 Service Pack 1 Beta 【原文发表日期】 Monday, May 12, 2008 9:51 AM 今天早些时候,我们发布了.NET 3.5 SP1 和 VS 2008 SP1的公开beta版,这些服务更新提供了自11月份我们发布这些产品之后所报告的问题的缺陷修补以及性能改进的累积结果,内中还包含了若干新功能和功能增强,势将进一步完善.NET应用的建造(其中的一些细节请见下文)。 我们计划在今夏,作为免费更新,同时发布.NET 3.5 SP1 和 VS 2008 SP1的最终版本,你可以在这里下载和安装这些beta版。 SP1 Beta安装重要注意事项 今天发布的SP1 beta版还处于beta状态,所以你在重要的机器上安装时千万要慎重,下面是几个你需要知道的非常重要的SP1 Beta安装注意事项: 1) 如果你目前正运行Windows Vista的话,你应该确定在尝试安装 .NET 3.5 SP1 Beta之前安装了Vista SP1。如果运行 Vista RTM版本的话,安装.NET 3.5 SP1会有一些问题,这些问题将会在.NET 3.5 SP1的最终版中得到解决。到那之前,请确定在安装.NET 3.5 SP1 beta之前安装Vista SP1。 2) 如果你在你的机器上安装了VS 2008 Tools for Silverlight 2 Beta1安装包,你必须在安装VS 2008 SP1 Beta之前先卸载它,同时还必须卸载VS 2008的KB949325更新否则你的安装会失败。你可以在这里找到可以遵循的确切步骤的更多细节(注:你必须分开卸载这两样东西)。 在你机器上同时拥有Silverlight 2 运行时和.NET 3.5 SP1是没问题的,需要卸载的组件是VS 2008 Tools for Silverlight 2安装包。我们将在几个星期后发布可在VS 2008 SP1 beta下工作的VS 2008 Tools for Silverlight更新包。 3) .NET 3.5 SP1 beta版的一个行为变化会给Expression Blend的正式版造成问题。这个行为变化将会在.NET 3.5 SP1的最终版中恢复过来,到那时,Blend的所有版本运行起来都不会有问题。在那之前,你需要下载这最近更新过的Blend 2.5版本绕过这个问题。 ......[阅读全文]

posted @ | Feedback (0) | Filed Under [ ASP.NET .NET Visual Studio Community News WPF ]

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

摘要:【原文地址】First Look at Using Expression Blend with Silverlight 2【原文发表日期】 Thursday, February 28, 2008 9:36 PM 上个星期,我写了一个《Silverlight 2 初览》的贴子,讨论即将发布的Silverlight 2 Beta1 版。在该贴子里,我给出了一些我撰写的系列教程的链接,这些教程示范了Silverlight和WPF后面的一些根本性编程概念,以及演示如何使用它们来建造一个Silverlight版的“Digg搜索客户端”应用: 第一部分:使用Silverlight 2 和 VS 2008创建“Hello World”程序 第二部分:使用布局管理 (木野狐译) 第三部分:使用 Networking取回数据并填充DataGrid 第四部分:使用 Style 元素更好地封装观感 (木野狐译) 第五部分:用 ListBox 和 DataBinding 显示列表数据 (木野狐译) 第六部分:使用用户控件实现主从表场景 第七部分:使用控件模板定制控件的观感 第八部分:使用WPF创建一个Digg桌面应用 在这第一套Silverlight教程里,我没有使用可视化的设计工具来建造用户界面,而是注重于展示底层的XAML UI标识(我认为这有助于更好地解释核心编程概念)。既然我们完成了对基本概念的讨论,让我们来探究一下可为我们所用,变得更有效率的一些工具。 Expression Blend对Silverlight的支持 除了即将发布Silverlight 2的Beta1版本外,我们还将发布针对这个版本的Visual Studio 2008 和 Expression Studio 的工具支持。这些工具将为建造RIA应用提供强有力的支持,是设计来允许开发人员和设计师轻松地合作开发项目的。 在今天的贴子里,我将介绍即将发布的Expression Blend 2.5三月份预览版的一些功能。在演示关于Blend是如何工作的一些基础的东西之后,我们将用它来建造一个跨平台,跨浏览器的 Silverlight IM聊天客户端: 上面的屏幕截图展示了在MAC上运行时该应用的样子,下面是在Expression Blend中该应用设计时的屏幕截图: 我们将使用Expression Blend,用可视化方法构造该应用所有的用户界面,以及使用它来干净地将UI数据绑定到代表我们的聊天会话和消息的.NET类上。 我们用来建造聊天应用的所有控件都是Silverlight 2的Beta1版的一部分。 声明:我不是设计师(也不很酷) 让我预先声明,我是个开发人员,不是个设计师。我也不是很酷。虽然我理解创建用户界面的技术,但在组合界面时,我有时会挑选很差的颜色和字体(就在我弄完本贴的屏幕截图之后,有个同事十分有助地指出,实际上有个致力于取缔我使用的一些字体和颜色的专门网站,哎,很受打击)。 我想对你们中那些有艺术细胞的人说,请对我温柔点,将你的注意力集中在我在下面演示的功能和技术上,别针对我使用的字体和颜色选择, :-) 起步: 创建一个新Silverlight 2项目 Expression Blend 和 Visual Studio......[阅读全文]

posted @ | Feedback (6) | Filed Under [ .NET Visual Studio Community News WPF Silverlight ]

摘要:【原文地址】.NET 3.5 Client Product Roadmap 【原文发表日期】 Tuesday, February 19, 2008 11:57 AM 几个月前,我写过一个 .NET Web 产品路线图的博客贴子,在其中,我概括描绘了我们准备在刚发布的Visual Studio 2008 和 .NET 3.5中的web开发特性的基础之上开发的一些产品计划。 在下几个月内,我们还将发布若干个特定于客户端开发的增强功能。我们花了很大的力气来解决客户反馈中一些最大的要求,同时还尝试着把开发人员在开发Windows应用时能够拥有的能力推向极限。所有这些改进都是建立在VS 2008 和 .NET 3.5之上的,势将使得今后的.NET 客户端开发更上一层楼。下面是我们计划在下几个月内推出的一些改进的路线图: 改进客户端应用所需的.NET 框架的安装 过去的几年从建造客户端应用的客户和ISVs反馈来的一个最大的要求是,使得.NET 框架的安装和配置更加容易,速度更快。 这个夏天,我们将发布一个.NET的新安装框架(setup framework),方便建造优化的客户端应用的安装包。这个安装框架可以与现有的安装框架集成(譬如,象InstallShield这样的产品),促成更小,更快的终端用户.NET框架的安装体验。 Windows Forms和WPF客户端应用将能够使用这个安装框架干净地把.NET框架bootstrap安装到机器上去。这个bootstrap安装工具将支持自动下载机器上运行.NET 3.5 客户端应用所需的最小.NET 框架包部分。例如,一个用户已经在机器上安装了 .NET 2.0,这个安装程序就会很聪明地自动下载那些把 .NET 2.0更新到3.5 所需的升级补丁(而不用重新下载已经由.NET 2.0提供的组件)。这可以显著地缩小客户端安装程序的payload大小,加速安装体验。 我们还将对基于MSI和ClickOnce的解决方案提供改进以促成集成的应用安装体验,支持容易建造的对消费者更为友好的用户体验。 改进.NET客户端应用的内存需求和启动性能 我们收到的另外一个常见的要求是,允许.NET客户端应用在“冷启动”场景下更快地启动。“冷启动”场景是指没有其他.NET客户端应用目前正在或刚在机器上运行过,需要OS从硬盘上装载很多页的东西(代码,静态数据,注册表等)。如果你在装载一个很大的.NET客户端程序或库,或者使用比较慢的硬盘,那么这些冷启动场景会需要很多秒钟才能启动你的应用。 这个夏天,我们将发布一个CLR的服务包, 将在数据结构优化方面做一些显著的内部优化,以在装载和运行应用时减少硬盘IO以及改进内存布局。此外,这项工作将显著改进 .NET 2.0, 3.0和3.5应用的内存需求和冷启动性能,将极大地改进终端用户使用基于.NET客户端应用的体验。 取决于应用的大小,我们预期.NET应用将实现25-40%间冷启动性能的改进。为利用这些改进,应用不需要改动任何代码,也不需要重新编译,好处是自动的。 WPF性能之改进 这个夏天,我们还计划发布一个WPF的服务包,内含一堆性能优化,将改进文本,图像,媒体和数据等方面的性能。这些改进包括: - 把DropShadow和Blur位图效果从目前的软件显示转到硬件加速(使效果快上好几倍)。这些效果的API跟现在的一样(这意味着你不用改动任何代码或重新编译你的应用就可利用这些改进)。 - 文本场景,特别在用在Visual 和 DrawingBrush 场景时,将会显著地块。这些场景的API跟现在一样(这意味着你不用改动任何代码或重新编译就可利用这些性能改进)。 - 媒体和视频性能场景也将快得多(也意味着不用改动任何代码或重新编译就可利用这些改进)。 - 我们将包括一个新的WriteableBitmap API,允许软件表面的实时位图更新。我们还将添加对一个强大的新效果API的支持,该API允许你构建更丰富的图像场景。 - 我们还将包括可在数据编辑场景中利用的新数据扩缩性方面的改进。这些包括容器回收和数据虚拟化支持,将方便构建丰富的数据视觉化控件。 WPF控件之改进 今年稍后,我们还计划发布若干新的WPF控件。我们正在开发的包括DataGrid, Ribbon 和 Calendar/DatePicker 控件。 VS 2008 WPF设计器之改进 我们还计划发布一个VS 2008服务包,内含WPF设计器的若干附加功能。这些功能包括属性网格内控件事件的事件页的支持,在源码模式下的工具箱支持,以及各种各样的其他常见要求和改进。 结语 上述的改进应该方便你建造美好的桌面应用。因为这些改进是建立在VS 2008 和 .NET 3.5之上的,它们应该很容易利用(在大多数场景下,不需做任何代码改动就可以利用)。请在以后的几周内静候我讨论上述每个改进细节的博客贴子。 希望本文对你有所帮助, Scott 标签: Visual Studio, .NET, Community News, WPF ...[阅读全文]

posted @ | Feedback (4) | Filed Under [ .NET Visual Studio Community News WPF ]

摘要:【原文地址】Feb 6th Links: ASP.NET, ASP.NET AJAX, Visual Studio, .NET, WPF 【原文发表日期】 Wednesday, February 06, 2008 12:41 AM 这是我的链接系列的最新篇。也请参阅我的ASP.NET 技巧,诀窍和教程网页里我以前写的众多很受欢迎的文章的链接。 ASP.NET ASP.NET Security Tutorial Series: Scott Mitchell(去年为我们撰写了精彩的《数据访问教程系列》【中文版地址】),最近开始撰写一个新的免费教程系列,着重于ASP.NET安全。今天我们在www.asp.net网站上发表了该系列的前三篇文章:ASP.NET Security Basics(ASP.NET安全之基础),Overview of Forms Authentication(表单认证概览),和Forms Authentication Configuration and Advanced Topics(表单认证配置和高级的内容)。想了解更多的ASP.NET安全信息的话,请参阅我在ASP.NET 技巧,诀窍和教程网页上提到的我自己写的安全教程。 10 ASP.NET Performance and Scalability Secrets: Omar Al Zabir,www.pageflakes.com (用ASP.NET开发的Web 2.0门户网站) 的共同创办人和CTO,为他的ASP.NET 和ASP.NET AJAX精彩系列又写了一文。这篇文章讨论了如何最大化 ASP.NET 性能和扩缩性的技巧和诀窍。想了解更多关于如何使用ASP.NET和ASP.NET AJAX建造优秀网站的话,一定要读一下Omar的优秀新图书《Building a Web 2.0 Portal with ASP.NET 3.5》。 .NET Debugging Demos Lab: Tess Ferrandez,微软产品支持的ASP.NET escalation工程师,发表过很多关于调试生产性ASP.NET应用之艺术方面的精彩文章,开始撰写一个新的教程系列,提供了一个有缺陷的样例应用以及一系列你可以完成的问题,以学习如何在生产性环境中调试有问题的应用。 4 Alternative View Engines for ASP.NET MVC: MvcContrib开源项目在ASP.NET MVC框架之上添加了许多很酷的好东西。Jeffrey Palermo在项目中发布了4个可选的视图显示引擎,如果你不想使用默认的基于.aspx的视图引擎的话,你可以使用它们。另外,在下个星期我将发一个关于 ASP.NET MVC的新贴子,讨论将在下一个更新版中发布的一些既新又酷的特性。 ASP.NET AJAX Boost ASP.NET Performance with Deferred Content Loading: Dave Ward继续撰写更多ASP.NET AJAX方面的精彩文章。这篇文章讨论在网页在客户端装载时,如何使用AJAX 回调来获取HTML内容以改进感觉上的(perceived)的网页装载时间。这个方法与我这里的技巧/诀窍贴子的方法类似。 Build Yahoo UI Style Glowing Buttons with the ASP.NET AJAX......[阅读全文]

posted @ | Feedback (4) | Filed Under [ ASP.NET .NET Visual Studio Atlas WPF Link Listing ]

摘要:【原文地址】MIX08【原文发表日期】 Thursday, January 31, 2008 9:38 PM MIX是我们每年在拉斯维加斯举办的微软web开发大会。 MIX是个很好玩的大会,不光是因为它会涉及尖端的内容(我们用MIX07宣布了Silverlight计划),而且因为它往往会吸引各种各样的与会者(包括目前使用微软技术的人员,但也有很大百分比的与会者不使用微软技术)。大会的结构包括适当比例的讲座和研讨会,其布局和组织也是设计来促进精诚对话的。 今年的MIX将于3月5日至7日在拉斯维加斯举行。Ray Ozzie和我将在第一天的活动中做主题演讲,Steve Ballmer和Guy Kawasaki将在第二天的活动中做主题演讲。 本次大会(特别是我的主题演讲)将涉及很多新的web技术。与会者能参加的讲座内容将涉及: IE 8 IIS 7.0 ASP.NET (包括ASP.NET 3.5, ASP.NET AJAX, ASP.NET MVC, 和ASP.NET Dynamic Data)  VS 2008 和 Expression Studio WPF Silverlight 2 更多的其他技术.... Channel 9 最近对我做了采访,在其中我讨论了一些新技术。在第一部分中,我讨论了IIS7,在第二部分中,我讨论了ASP.NET, WPF 和 Silverlight 2。 赶紧登记,否则你会失去机会 跟我们一些大的活动,象TechEd和PDC相比,MIX是在一个比较小的场地举行的。这给与大会一种更亲密的感觉(所以好玩),但也意味着,它每年的席位都销售一空,一旦售完,就真的没位子了。 去年,我大概收到了50个电邮,都是在满席之后求入场券的,还有许多人飞到了地方,希望能在门口设法进入会场(但很不幸地被告知他们无法入场)。不幸的是,因为场地所限(火警规定的限制),在席位销售完之后,真的无法再卖更多的入场券。甚至我自己团队的成员,如果没有及时登记的话,也会被打发走的。 今年的登记席位比以往的任何一次MIX大会卖得都要快。如果你想参加的话,我建议你赶紧登