Joycode@Ab110.com

May 2008 - Posts

开放性和可扩展性

[原文地址]:Open and Extensible

[原文发表时间]:Tuesday, May 20, 2008 2:42 PM

今年早期,Microsoft宣布了一系列范围广泛的改动。这些改动针对Microsoft的技术和业务实践,目的是提高其产品的开放性和互操作性,进而引发更多的商机以及更多的选择。

 

尽管很多人梦想着在一个简单的世界,所有的计算机都运行同样的系统。然而这个世界过去是,现在是,将来也一定是运行着各种不同的系统和服务的。为了在这样的世界更好地服务我们的客户,并为他们提供最大的价值,我意识到我们的产品核心需要引进更多的开放性和可扩展性。要知道,没有一家公司可以凭借一己之力解决互操作性这一难题,与客户、合作伙伴以及其他供应商之间的协作是至关重要的。

 

去年我们建立了一个客户顾问委员会。这个委员会主要是由大型企业首席信息官(CIO)和首席技术官(CTO),以及世界各地的政府部门所组成的。在这个委员会里,我们以双向对话的方式参与讨论,以解决我们如何能够更好地与不同系统交互的问题。

 

几星期前,我有机会与这个组织联系,分享了我对于Developer Division工具和平台方面交互性的一些看法。我谈到了DevDiv在本年度提出的一些支持互操作性的计划。比如Silverlight,其核心就是一个跨平台、跨浏览器、跨设备的运行时。要实现这个目标,方法之一是与社区和行业内的其他人协作:比如Moonlight用来将Silverlight移植到Linux平台,我们也与Nokia合作将Silverlight移植到Symbian和其他设备平台。我还提到了我们正在做的发布WPF XAML文档的工作(在Open Specification Promise之下)——这是授权这项技术最开放自由的方式。至今这份文档已经有超过2200次的下载,真的很棒!这意味着大家觉得这个文档有用,因此我很高兴我们在这方面做了有益的尝试。此外,我们为Visual Studio用户发布了.NET Framework源代码,以帮助他们调试他们的.NET应用程序。

 

我们将Visual Studio本身视做一个工具平台,我们很重视我们的VSIP合作伙伴,并关注他们想要在Visual Studio上做的工作。在核心层面上,Visual StudioVisual Studio Team System是开放的、可扩展的平台开发环境,开发人员可以针对任何平台进行开发,第三方可以上面构建应用以提供更大的价值。我和委员会提到,我们取消了Visual Studio的授权限制,现在开发人员可以针对任何平台来构建插件。今年我们还宣布对我们的Premier VSIP开放Visual Studio IDE源代码访问权限,同时Visual StudioECMA语言标准也有所贡献。

 

正如你所看到的,我们已经采取了很多举措。我们也深刻地体会到我们还需要做更多的工作,更加开放和可扩展,为我们的客户提供最大的价值。

 

Namaste !

Visual Studio 2008及.NET FX 3.5 SP1 Beta现已发布

今天我们发布了Visual Studio 2008.NET Framework 3.5 Service Pack 1Beta版本。

按照惯例,我们的服务包(Service Pack)解决了我们通过客户及合作伙伴反馈,以及在内部测试中发现的一系列问题。这次的服务包除了继续保持这一点,更针对 这些问题做了更新,它还在Visual Studio 2008.NET Framework 3.5已有的巨大价值之上加入了更多组件,涵盖了一系列客户强烈要求的功能,改进了开发人员的使用体验。比如,该服务包是为 SQL Server 2008ADO.NET Entity Framework提供全面支持的第一个Visual Studio 2008版本。

Visual Studio: 你将会发现WPF设计器在功能和性能方面的改进;更多Visual BasicVisual C++组件和工具,包括基于MFCOffice 2007  Ribbon和各种稳定性问题的修复;更丰富的JavaScript功能;改进的Web开发及站点部署;以及IDE的性能提升。更多关于Service Pack中性能提升的详情请参阅性能团队的博客

Visual Studio Team System: Visual Studio Team System中的改进包括更新过的“Add to Source Control”对话框,从Windows ExplorerSource Control Explorer的拖拽操作的支持,对未绑定文件的版本控制等等。在工作项跟踪方面,我们加入了对Office 2007 Ribbon的支持,因此,如下图所示,你现在可以用简洁的方式在Office应用程序中进行相关的TFS操作。想要更多地了解Team System中的新功能,请参看Brian Harry博客

http://somasegar.members.winisp.net/images/blog_images/2008_05_09_VS2008SP1/vstsofficeribbon.jpg

.NET Framework 3.5:对.NET Framework而言,SP1包含了更多的控件,精简的安装方式,改进的启动性能,为客户端开发和丰富的数据支架(scaffolding)提供了崭新而强大的图形处理功能,并提供了改进的AJAX支持。

我很激动地看到.NET Framework Client Profile的引入——为优化客户端的使用场景所提供的一个更小的.NET Framework Redist。其优点包括它可以通过200K大小的引导程序作出及时的响应,从而对应用程序的安装链接做出最快响应;一个整合的可定制的UI,使用户可以打包其应用程序和框架从而得到无缝的安装体验,以及难以置信的高达26.5兆的安装速度(这意味着使用普通的连接只要6分钟)。

http://somasegar.members.winisp.net/images/blog_images/2008_05_09_VS2008SP1/clientprofile.jpg

正如我先前所提到的,.NET Framework 3.5 SP1引入了ADO.NET Entity FrameworkADO.NET Data Services。它们为任何数据源中的数据提供了可扩展的概念模型,并使这种模型能精确反映业务需求,从而简化了应用程序中数据访问的代码。

动态数据ASP.NET中的新功能,可以通过LINQ SQLEntity Framework数据模型动态的构建出功能完整的网站。要产生类似下图所示的网站,开发人员所要做的全部工作就是创建数据模型,用动态数据注册数据模型(一行代码),然后运行项目。这是新的RAD数据功能的一部分。它使开发人员可以很快的上手,然后通过传统的ASP.NET编程细化应用程序。

http://somasegar.members.winisp.net/images/blog_images/2008_05_09_VS2008SP1/dynamicdata.png

VS2008 SP1 Beta.NET Framework 3.5 SP1 Bate可以从这里下载

Readme文件列出了已知的Visual Studio ProfessionalVisual Studio Team System中的兼容性问题。

Namaste!

初试Silverlight Streaming服务

早就知道了有这么一个服务,但一直没有机会尝试,今天趁有空,将一个Office Business Applications的Casestudy录像上传到了Silverlight Streaming服务,效果还不错。:)

让我彻底无语的一次演讲记忆

本周末作为嘉宾参加了阿里巴巴集团举办的第二届网络工程师侠客行大会,刚刚回到北京。

我比较喜欢这种第三方举办的会议,因为可以听到很多不同的声音,也可以了解合作伙伴以及竞争对手的新技术,让自己能够对业界的趋势更加了解。马云先生在主旨演讲当中也说过,技术分享才会让业界都进步。

当然,通过此次会议也可以扩展自己的人脉,认识到更多的人员。这次也见到了一位我原来非常敬佩的先生,他原来在微软研究院工作,后来去了加位一家全球知名的互联网搜索的公司,担任副院长工作。此次会议他也代表其现任公司进行了主旨演讲,介绍了其云计算策略以及相关的新产品。我对云计算一直比较感兴趣,也希望了解到业界的不同实现方式,所以很认真得在听,但说实话,这位先生的演讲让我很失望,可能并不适合这种大场面的演讲吧,也对这位先生彻底无语。

可能由于是现场演示,此先生介绍在讲完云计算的一些大家都知道的知识后,开始介绍其自家产品,进行实时演时,打开一个浏览器,输入网址: http://code.ZZZZZZ.com/gears, 我在下面一看就不对了,其真实的地址应该是http://code.ZZZZZZ.com/apis/gears, 在下面还小声提示了一下。果然不出我所料,系统返回了一个定制化的404界面。但这位老兄有些口不择言了,或者也想幽默一把,脱口说了一句:“IE出问题了”。然后突然又注意到,自己使用的并不是IE,而是Firefox。一时就楞在那儿,开始转变话题。

再后来,又一个Demo,这次就开始使用IE7了,准备下载一个文件,结果由于网络的临时问题,下载终止(那个界面大家可能都见过的),老兄又开始说“IE又出问题了”,呵呵,不知道哪儿来了一个“又”。我这次真服了。接下来在输入汉字“新浪”的时候,由于拼音不好,一直在说,他应该使用他们自己开发的那个某某拼音输入法(他自己的笔记本完全可以使用呀,而且还是他“开发”的产品)。

再接下来,他的演讲严重超时,但不甘心,于是开始演示他们新开发手机开发平台,结果启动了五分钟,那个模拟器始终没有打开,老兄开始说这可能是Windows的问题,或者是他的IBM笔记本的问题,牛,太会找理由了。再接下来,组委会实在看不下去了,而且马云先生在台下也等了太长时间了,所以上台中断了他的演讲。

实话来说,做现场演时的时候,可能会遇到各种各样的问题,所以很多人喜欢用截图或者视频来代替这种现场演示。如果在现场演示时出现问题,也需要认真对待,在不耽误大家时间的情况下,可以再重试一次,并且给出原因。最忌的就是随口给出一个原因,毕竟下面都是技术人员,这种404错误或者你使用的哪种浏览器还是可以看明白的。

尤其是,这位老兄刚刚跳槽,就开始在公开场合这样攻击老东家,不知道他的同事们怎么想,真的让我彻底无语。

在Windows Vista下安装Office SharePoint Server 2007

怎么做已经在这篇文章里面说得很清楚了。

9
7
10
11

注意事项:
1、在Windows Vista下安装和使用WSS、MOSS都是不被Microsoft支持的,也就是说,如果出了问题,得不到任何Microsoft官方的技术支持...
2、如果你不是非要使用Windows Vista,还是装Windows Server 2008 + SharePoint吧...
3、不要认为你的程序在Windows Vista + SharePoint下运行正常了,那么在Windows Server 2003/2008 + SharePoint的生产环境中就一定会运行正常,一定要测试!

5月20日链接篇: ASP.NET, ASP.NET AJAX, .NET, Visual Studio, Silverlight, 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

  • ASP.NET Perf Issue: Large numbers of application-restarts due to virus scanners: Tess Ferrandez的一篇精彩贴子,详细描述了一个确定为什么ASP.NET应用经常重启(导致性能下降)的调试过程。 其问题是在于一个病毒扫描器导致了文件不停地更新。一定要看一下你可以加到应用中的记录日志的代码,以识别类似这样的重启原因。

ASP.NET AJAX

.NET

  • 7 Ways to Simplify your code with LINQ: Igor Ostrovsky有一篇精彩的博客贴子,讨论了你可以用来改进你的代码的新代码技术,这些技术使用了.NET 3.5和其中的新的语言和LINQ特性。

  • Visual LINQ Query Builder for LINQ to SQL: Mitsu Furuta创建了一个很酷的Visual Studio设计器,允许你通过图形界面构造LINQ to SQL查询。也一定要去下载最新的LINQPad工具,它对学习和尝试LINQ查询绝对有用。

  • DataContracts without Attributes (POCO support): Aaron Skonnard有一篇很好的贴子,讨论了.NET 3.5 SP1中一个很好的可用性方面的变动,它允许你使用WCF的序列化器对POCO (plain old objects) 进行序列化。

  • Ukadc.Diagnostics: Josh Twist向我指出了一个他正开发的新CodePlex项目,该项目扩展了.NET中的System.Diagnostics功能,包括了更丰富的日志功能(SQL跟踪支持,email支持等)。

Visual Studio

Silverlight

  • Silverlight 2 Pie Chart: Peter McGrattan贴出了一个很好的控件和相应文章,示范如何使用他编写的一个新Silverlight图表控件。

WPF

  • WPF week on Channel9: 观看Channel9频道上的6个精彩录像,每个录像包含对WPF开发团队成员的采访以及示范,讨论包含进WPF 3.5 SP1中的一些精妙工作(阅读我 这里的博客贴子中对其中一些工作的摘要)。

  • WPF 3.5 SP1 StringFormat: Lester有一篇好贴,描述了如何使用WPF 3.5 SP1中新的StringFormat功能,这可以极大地方便处理数据绑定值的格式化。

希望本文对你有所帮助,

Scott

微软Office将支持ODF文档格式

微软将在Office2007SP2中发布对ODFv1.1文档格式的支持。

官方文章:http://www.microsoft.com/Presspass/press/2008/may08/05-21ExpandedFormatsPR.mspx

image

ODF文档格式被许多政府组织采用,尤其在欧洲,其应用范围很广。ODFv1.0是ISO标准ISO/IEC 26300:2006

我们知道,微软的OpenXML文档格式也刚刚通过ISO的批准,那现在Office对ODF格式的支持(OpenOffice.org目前最流行的支持ODF格式的应用程序之一)是出于何种考虑呢?

1. 来自规范化的需要。许多第三方厂商都希望可以通过标准的方式与Office文档交换数据信息,微软也希望通过提供相应的技术手段,提高自身产品的交互性。

2. 对微软自身的商业价值提升。更多文档格式的支持不仅可以满足更多的客户需要,适应更多的场景,实现更为特别的解决方案,还可以让微软重新关注Office的产品能力而非对文档格式争辩。

Office2007SP2将包括对ODF和PDF、XPS格式的支持。

下一个版本的Office(内部名称Office 14)将支持IS29500,即OpenXML的ISO标准。

微软还将加入ODF技术委员会,参与ODF文档格式标准的改进。

详细信息请参考Gary Knowlton的精彩文章

管窥 Service Pack 1 (VSTO)

原作:Christin Boyd

  虽然 Visual Studio 2008 Service Pack 1 还没有完工,但是我们已经可以拿出一份 Beta 版的文档供大家阅读!从这个文档中您可以了解到今年晚些时候我们正式发布 SP1 的时候您可以看到哪些产品特性。

  我建议大家先读一下文档,其中描述了一个全新的特性:开发者可以在 Word 和 Excel 的应用程序插件(Add-in)运行时直接扩展文档或者工作簿的功能。文档的地址:

http://vs2008sp1docs.msdn.microsoft.com/en-us/ms334311.aspx

  有了这个新特性,您可以在插件运行时动态向文档/工作簿添加下列对象并响应它们的事件:

  • Host Controls
  • ListObjects
  • Smart Tags
  • Word Content Controls
  • 以及诸如“DocumentBeforeSave”之类的事件

  从 Visual Studio 2008 Service Pack 1 开始,您可以在 Windows 系统的日志浏览器里面察看任何安装、卸载 VSTO 解决方案过程中由 VSTO 运行时报出的错误日志。利用这些日志记录,您就可以更加有效地解决安装部署过程中发生的问题。

  这个 Service Pack 的测试版本目前只向大约一千个 Beta 测试者发布,他们都很善于提交明确的反馈意见和 Bug 报告。我希望这次管窥可以让您对今年炎夏将要发布的 SP1 先产生浓厚的兴趣。

——Christin Boyd,Program Manager

SQL Server 2008 Filestream Performance-Win32 API

最近可能要做一个项目,规模不小,但我负责的部分不大,就是开发一些管理工具,用于对Partition和FileGroup的管理。

用户的这个数据库就是用于管理文件的,但是数量相当的大,预估每天在60G左右, 在使用FileStream的时候就要考虑一下了。本身FileStream就是Varbinary的数据类型,我们可以使用T-SQL语句进行操作,也可以使用Win32 API(那天听说了一个新名词RBS-Remote Blob Storage),这样一来我们如何确定适用那种方式进行操作就成了问题。

如何选择主要要看数据的大小了,一般来说如果数据小于2M的使用使用T-SQL的方式会比较快一些,如果数据大小大于2M Win32 API会快一些,另外还要注意的就是Win32 API不支持部分更新,也就是说无法进更新varbinary中部分的数据,所以选择以何种方式使用Filestream的时候也要注意。

另外在还要注意的是我们在更新数据byte的的时候都会有一个缓存的数组,这个数组的大小对于性能也有很大的影响,这个大小最好能够与磁盘扇区的大小对齐,在之前我的代码中512和4096时的性能差异就很大了。

托管扩展性框架(Managed Extensibility Framework)
【原文地址】Managed Extensibility Framework
【原文发表日期】28 April 08 06:14

Krzysztof 最近在他的blog上宣布,我们已经开始致力于为.NET创建一个扩展性的框架了……

在接下来的几个月,我们会在blog上谈论MEF的更多细节,不过现在已经有一些初期的细节了(当然,很可能会作改动):MEF是一系列特性的集合,在学术界与工业上,这一集合即是一个命名与激活服务(返回一个“具名”的对象),依赖注入(DI)框架,以及一个结构化类型系统(动态类型)。将这些技术(以及其它技术如System.AddIn)组织在一起,我们将实现一个称之为“开放式与动态应用”的新天地。比方说,它会使得创建可扩展的应用与扩展更加简单方便了。

[……]

最后,这里有一段代码,展示了我们的框架所支持的基本的场景:

在应用中创建一个扩展点:

public class HelloWorld {

  [Import] // import declares what a component needs
  public OutputDevice Output;

  public void SayIt() {
        Output.WriteLine("Hello World");
  }
}

// Extension 
public abstract class OutputDevice {
  void WriteLine(string output){}
}

1. 创建一个扩展

[Export(typeof(OutputDevice))] // export declared what a component gives
public class CustomOutput : OutputDevice {
  public void WriteLine(string output) {
    Console.WriteLine(output);
  }
}

 

2. 将应用于扩展结合(依赖注入)起来的诀窍

var domain = new ComponentDomain();
var hello = new HelloWorld();
// of course this can be implicit
domain.AddComponent(hello); 
domain.AddComponent(new CustomOutput());
 
domain.Bind(); // bind matches the needs to gives
hello.SayIt();

我们乐于倾听您的意见……请加入到Kry的blog中一起讨论吧。

Visual Studio 2008 和 .NET Framework 3.5 Service Pack 1 Beta

【原文地址】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版本绕过这个问题。

Web开发之改进

.NET 3.5 SP1 和 VS 2008 SP1 内含一堆针对web应用开发的功能改进。

关于特定于VS方面的工作(包括具体的缺陷修补细节),VS Web Dev Tools开发团队在这里提供了细节。下面是web空间的一些工作的细节:

ASP.NET Data Scaffolding 支持 (ASP.NET 动态数据)

.NET 3.5 SP1添加了对一个丰富的ASP.NET 数据"scaffolding"框架的支持,该框架允许你很快地建造工作的数据驱动的web应用。使用ASP.NET 动态数据的功能,你可以自动地对各种数据对象模型(包括LINQ to SQL, LINQ to Entities, REST Services, 以及任何其他的ORM或者由动态数据提供器提供的对象模型)建造web UI(包含完整的CRUD,创建,读取,更新,删除的支持)。

SP1往ASP.NET中现有的 GridView, ListView, DetailsView 和 FormView控件中添加了这个新功能,提供了智慧的验证和灵活的数据模板选项,它还提供了智慧的新过滤性服务器控件,以及支持自动traverse主键/外键关系,显示友好的外键名称,所有这些都会给你省下成堆的代码。

你可以在Scott Hanselman这里的录像和教程中了解到关于该功能的有关细节。

ASP.NET 路径选择引擎(System.Web.Routing)

.NET 3.5 SP1包含了一个灵活的新URL路径选择引擎,它允许你把进来的URL映射到路径处理器上去。它包含了对从干净的URL(例如, /Products/Browse/Beverages)中分析出参数的支持,以及对从路径注册中动态计算和生成新的URL的支持。

这个新的路径选择引擎为ASP.NET动态数据,以及新的ASP.NET MVC框架所用,它将同时支持基于WebForms和MVC的请求。

ASP.NET AJAX 倒退/前进按钮历史支持

.NET 3.5 SP1 往 ASP.NET AJAX中加了新的API,允许你更好地控制浏览器的历史列表(允许你控制浏览器的倒退/前进按钮的行为)。

你可以在这里的文章,以及这里的screencast中了解有关这个功能的细节。

ASP.NET AJAX 脚本合成支持

.NET 3.5 SP1 在<asp:ScriptManager>服务器控件上引进了一个新的<CompositeScript>元素,它允许你用声明的方式在其中定义多个脚本引用。在CompositeScript元素中的所有脚本引用,会在服务器上合成起来,以单个脚本的行为提供给客户端,减少了对服务器的请求数目,改进了ASP.NET AJAX应用的页面装载时间。

这个脚本合成功能支持基于路径的脚本以及基于程序集资源的脚本,是使用ScriptResources.axd处理器动态地提供合成的脚本的。

Visual Studio 2008性能改进: HTML 设计器 和 HTML 源码编辑器

二月份时,我们发布了一个热补累积版,其中包含对VS 2008 Web设计器的若干性能改进和缺陷修补,VS 2008 SP1包括了所有这些修补,还提供了若干额外的性能改进。

Visual Studio 2008 JavaScript脚本格式化和代码设置

Visual Studio已经有好几个版本支持丰富的VB和C# 源代码格式化选项(间距,换行,大括号位置等等)。

VS 2008 SP1对 JavaScript(<script> 代码块和.js文件)也提供了丰富的源代码格式化支持,你现在可以使用工具->选择对话框来配置你的Javascript编程设置:

这些设置将会在你在源码编辑器中键入新的Javascript代码时自动采用,你也可以选择现有的代码,右击,选择“格式化选择部分”选项来对现有Javascript代码施用你的样式设置。你可以在 这里了解到有关这个新功能的细节。

Visual Studio 对多个 Javascript/AJAX 框架更好的Javascript Intellisense支持

VS 2008 在源码视图中包含了对Javascript Intellisense 的支持。 初始VS 2008版本的intellisense,很好地支持原生的JavaScript,以及使用ASP.NET AJAX JavaScript 类型模式编写的代码。 但JavaScript是门非常灵活的语言, 许多JavaScript库充分利用了这灵活性,来实现他们各自的功能,但有时候其实现方式妨碍了intellisense引擎提供代码完成的支持。

VS 2008 SP1对流行的JavaScript库添加了更棒的intellisense支持,特别地,我们花了功夫支持JQuery, Prototype, Scriptaculous, ExtJS, 以及其他流行的库。在你引用这些库时,你会得到默认的intellisense。 我们还在研究是否可以对一些比较流行的库维护另外的intellisense提示文件,你可以下载这些文件以得到更好的intellisense和文档支持。

下面是一个在VS 2008 SP1 JavaScript intellisense引擎中使用JQuery起始函数的例子:

注意下面VS 2008 SP1现在即使是在连串的JQuery选择器上也能提供方法参数完成:

Visual Studio对ASP.NET项目中WCF服务的重构支持

VS 2008 SP1对包含在ASP.NET Web Site 和 ASP.NET Web Application项目中的 WCF 服务添加了更好的重构支持。

假如你使用重构支持,对WCF服务重新命名类名,接口契约,或者命名空间,VS 2008 SP1现在将会自动地修正web.config和引用它的SVC文件。

Visual Studio对经典ASPIntellisense和调试的支持

Visual Studio的早期版本包括了对经典ASP(.asp)网页中intellisense和调试的支持,但VS没有创建经典的ASP网页/项目的文件和项目模板已经有几个版本了。在初始的VS 2008中,我们不正确地假设这意味着大家不在使用经典ASP的支持了,但我们在发布VS 2008之后听到了反馈说人们实际上还在使用。

在VS 2008 SP1中,对经典ASP intellisense和调试的支持又回来了:

 

Visual Web Developer Express 版对类库和Web Application项目的支持

免费的Visual Web Developer 2008 Express 版也在SP1中作了更新,加了对类库和ASP.NET Web Application项目类型的支持。Visual Web Developer Express版的早期版本只支持ASP.NET web-site项目。

此外,对类库和web应用项目的支持还将允许你在免费的Visual Web Developer 2008版中建造ASP.NET MVC和Silverlight项目。上面所有的JavaScript,动态数据,经典ASP, 以及 AJAX改进都将在Visual Web Developer Express版中工作。

对客户端开发的改进

.NET 3.5 SP1 和 VS 2008 SP1包含了针对客户端应用开发的重大的性能,部署,和功能改进。

Tim Sneath在这里有一篇精彩的博客贴子,讨论了其中一些客户端开发方面的改进,下面是相关的细节:

应用启动和Working Set性能改进

.NET 3.5 SP1 包括了对CLR的非常重大的性能改进,将导致极其快速的应用启动,特别是在“冷启动”的场景下(指目前没有任何.NET应用在运行)。这些得益大部是通过改变CLR NGEN文件中的块布局,以及通过极大地优化IO访问模式来取得的。我们还将对我们的JIT代码生成器做一些很好的优化,以允许使用结构体的方法的更好的行内化。

今天,在安装SP1后,对大型的.NET客户端应用的测量,我们发现启动的速度之提高几达百分之四十,这些优化在某些情形下还有将ASP.NET 应用每秒请求的吞吐量提高了至百分之十的副作用。

新的New .NET 框架客户端Profile安装包

.NET 3.5 SP1还给建造.NET客户端应用的开发人员引进了一个被称为“.NET Framework Client Profile”的新安装包选项,它提供了一个新的安装程序,能在还没有安装.NET框架的机器上提供更小,更快,和更简单的.NET客户端应用的安装体验。

.NET Framework Client Profile安装只包括了.NET框架中常用于客户端应用场景的那些程序集和文件。例如,它包括了Windows Forms, WPF, 和 WCF,并不包括ASP.NET和那些主要用于服务器场景的那些库和组件。我们预期这个安装包的大小大概在26MB左右,比之完整的.NET框架安装包,下载和安装将快很多。

.NET Framework Client安装包中的程序集和APIs跟完整的.NET框架安装包中的那些程序集和APIs是百分之百一样的,这意味着应用可以定向于NET 3.5 SP1的Client Profile和完整的Profile,不需要做重新编译。在.NET Client Profile安装包下工作的所有的 .NET应用,在完整的.NET框架下也自动工作。

开发人员可以在VS 2008 SP1中调出客户端应用的项目属性页来指定他们建造的客户端应用同时支持.NET Framework Client Profile和完整的.NET框架。在项目属性页上,他们可以选择一个新的复选框,表示它只需要包含在.NET Framework Client Profile中的那些程序集:

VS 2008然后就会确认项目只引用了发布在Client Profile安装包中的那些程序集,如果你尝试使用一个不在Client Profile中的程序集中的一个类型的话,它就会产生一个编译错误。编译好的客户端应用然后就可以在安装了完整的.NET框架的机器,以及只安装了.NET Framework Client Profile的机器上运行。

如果你有一个机器,只安装了.NET Framework Client Profile,你在上面尝试运行一个没有标记支持.NET Framework Client Profile的.NET应用的话,CLR会拒绝运行这个应用,它会提示终端用户更新到完整的.NET框架安装包。这确保应用总是可以正确地运行,开发人员不用操心在运行时遭遇缺失程序集的错误,如果用户尝试在一个只安装了.NET Framework Client Profile的机器上运行一个需要完整的.NET框架的应用的话。

我们认为很大类的.NET客户端应用将能够使用这个新的.NET Client Profile安装来显著地加速它们的安装,促成友好得多的消费者体验。

针对客户端应用的新.NET Framework Setup Bootstrapper

.NET 3.5 SP1 引进了一个新的bootstrapper组件,你可以用在客户端应用中来帮助自动确认机器上安装有正确的.NET框架版本。

这个bootstrapper组件负责自动地从Internet上下载和安装.NET Framework Client Profile或完整的.NET框架安装包,假如你的机器没有安装这2者的话。这个bootstrapper还自动地负责升级安装了早期.NET框架版本的机器。例如,假如你的机器已经安装了.NET 3.0,而你的应用要求.NET 3.5,这个bootstrapper可以只下载将其升级到.NET 3.5的那些更新文件,从而避免下载完整的.NET框架安装包。

这个安装bootstrapper组件可以用于基于ClickOnce的安装包,也可以用于第三方的安装产品(象Installshield)。这个boostrapper可以促成完全定制的安装品牌体验(象闪屏,定制的安装向导步骤等等),应该极大地方便建造优化的客户端安装体验。

ClickOnce客户端应用部署的改进

.NET 3.5 SP1包括了针对Windows Forms和WPF应用的ClickOnce部署的若干改进。其中一些改进包括:

  • 对.NET Framework Client Profile的支持(支持所有的ClickOnce功能)
  • ClickOnce应用现在可以在显示一个定制的品牌安装界面的同时,以编程的手段通过一个Setup.exe来安装
  • ClickOnce对生成MSI + ClickOnce应用包的改进
  • ClickOnce错误对话框现在支持链接到Web上特定于应用的支持网站
  • ClickOnce现在对配置文件关联有了设计时支持
  • ClickOnce应用出版商现在可以根据场景需要决定是否取消对ClickOnce manifest的签名和哈希化
  • 企业现在可以选择是否只运行被“已知出版商”Authenticode签名过的Clickonce应用,而禁止其他应用的运行
  • FireFox浏览器扩展将支持通过FireFox浏览器安装Clickonce应用

Windows Forms控件

SP1 添加了若干新的Windows Forms控件,包括新的矢量形状,打印, 以及DataRepeater控件:

 

WPF 性能之改进

.NET 3.5 SP1包括了若干WPF的显著性能优化和改进,其中一些具体的图形方面的改进包括:

  • 更平滑的动画效果
  • Blur和DropShadow位图效果的硬件加速渲染
  • 文本渲染的速度改进,特别是VisualBrish和3D镜头
  • 2D图形改进,特别是z-index场景
  • 一个新的WriteableBitmap类,将允许实时和无撕裂效果的位图更新,这将促成定制的“绘制”风格的应用,数据视觉化,和那些避开默认的WPF 2D图形APIs的图表。
  • 分层的视窗性能改进

SP1还在WPF中加了更好的数据扩缩性。ListView, ListBox 和 TreeView 控件现在支持“个项容器回收(item container recycling)”和“虚拟化(virtualization)”,允许你在卷动的场景下轻松地得到百分之四十的性能改进。这些控件现在还支持“延缓卷动(deferred scrolling)”的功能,它允许你避免实时卷动,而是等到用户放开卷动按钮时才卷动(Outlook中的默认卷动模式),这在对非常大的数据集快速卷动时会非常有用。

WPF的数据改进

.NET 3.5 SP1包括了针对WPF的若干数据绑定和编辑改进,它们包括:

  • 在{{ Binding }} 表达式中的StringFormat支持,以促成绑定值的简易格式化
  • 对继承自ItemsControl的控件中的新的交替行支持,方便在行上设置交替属性(例如,交替的背景颜色)
  • 对可编辑的控件中的null值的更好的处理和转换支持
  • 可以将验证规则施用于整个绑定个项的个项层次的验证
  • MultiSelector支持,以处理多个选择(multi-selection)和大块编辑场景(bulk editing scenarios)
  • IEditableCollectionView支持将数据控件接连到数据源,允许以事务的方式进行编辑/添加/去除个项
  • 在绑定到IEnumerable数据源时的性能改进

WPF现在还提供了钩子,允许开发人员编写支持虚拟化卷动方式的定制面板。我们将把这个支持与上面的数据绑定改进一起使用来建造将在今年稍后发布的新WPF datagrid。

WPF可扩展的Shader效果

.NET 3.5 SP1在WPF中添加了对一个新的shader效果架构和APIs的支持,它允许你创建极有表现力的视觉效果并将其施加到WPF中的任何控件和元素上。这些shader效果支持多个输入组合的混合,使它们强而有力的是WPF是使用GPU来运行这些效果的(包括你自己建造的定制效果),给与你完全的硬件加速图形性能。几乎跟WPF中的每样东西一样,你还可以在效果的属性上使用WPF数据绑定和动画效果,将它们完全整合到一种体验之中。

将一个效果施用到一个控件上是极其容易的事,只要设置控件的Effect属性就可以了。例如,要将一个硬件加速的drop-shadow效果用到一个按钮上,你可以通过代码或XAML在按钮上使用内置的<DropShadowEffect>:

这将导致按钮象这样渲染:

因为效果是可扩展的,开发人员可以创建他们自己的自定义的Effect对象,然后使用它们。例如,可以创建一个自定义的DirectionalBlurEffect,将它加到ListBox控件上,在你快速卷动时,改变它的卷动外观,使用一个模糊效果:

留意Greg Schechter的博客,了解Effects架构的工作原理的细节,以及学习如何在你的应用中创建和施加新的效果(他的第一组贴子在这里)。

注: 除了引进新的Shader效果API外, SP1中的WPF还更新了现有的Blur和DropShadow Bitmap效果以支持硬件加速。

WPF与Direct3D的互操作性

.NET 3.5 SP1加了支持,把Direct3D有效地集成进WPF,这让你可以对硬件更直接的访问,可以在WPF应用中充分利用Direct3D API。你将能够把Direct3D内容当作应用中的图像一样处理,以及使用Direct3D内容作为WPF控件的纹理。

例如,下面是Direct3D SDK中的三个例子:

我们可以在一个WPF应用中把它们载入图像表面,或将它们映射成WPF控件的纹理。下面是将它们在一个WPF 3D应用中映射成立方体的纹理的例子:

注: Direct3D集成还不在今天的SP1版本中,但将在SP1的最终版中。

VS 2008对WPF的改进

VS 2008 SP1包括了对WPF项目和WPF设计器的若干显著的改进,这些包括:

  • 若干性能改进
  • 在属性浏览器中的事件页支持
  • 在属性浏览器中对属性按字母排序的能力
  • 显著加快表单布局的Margin snaplines
  • 对TabControl, Expander,和 Grid的更好的设计器支持
  • 在代码中开始的重构现在会更新你的XAML(包括XAML中的控件声明和事件声明)
  • “Go to Definition” 和 “Find All References”现在支持声明在XAML中的东西

SP1中的调试器也被更新了,XAML标识中的运行时错误(例如,应用的样式,数据源以及其他不存在的对象),现在将更容易在调试器中识别:

Data开发的改进

.NET 3.5 SP1 和 VS 2008 SP1 包括对数据开发的一堆改进,其中的一些包括:

SQL 2008 支持

VS 2008 和 .NET 3.5 被更新到包括对即将发布的SQL 2008的支持,Visual Studio 2008数据设计器,项目和向导现在完全支持连接和操作SQL 2008数据库。

ADO.NET 实体框架和LINQ to Entities:

.NET 3.5 SP1 包括了新的ADO.NET实体框架,该框架允许开发人员对他们的关系数据定义较高层次的视图数据对象,然后通过这个模型进行编程。象继承,复杂类型和关系(包括多对多支持)等概念可以用该框架来建模,VS 2008 SP1现在包括了内置的设计器支持来帮助这样的建模:

ADO.NET实体框架和VS 2008实体框架设计器现在同时支持可插拔的提供器模型,允许它们可以用于任何数据库(包括Oracle, DB2, MySql, PostgreSQL, SQLite, VistaDB, Informix, Sybase和其他数据库)。

然后,开发人员可以使用LINQ 和 LINQ to Entities 来查询,操作和更新这些实体对象。

ADO.NET 数据服务(原代号名为Astoria)

.NET 3.5 SP1包括了允许创建基于REST的数据服务的灵活框架。原代号为Astoria,ADO.NET 数据服务框架(Data Services framework)提供了这样的支持,可以通过标准的REST URI句法来发布数据,使用标准的HTTP动词来操作数据资源。开发人员可以轻松地呈现使用ADO.NET实体框架创建的数据模型,以及使用可插拔的提供器模型来呈现其他数据模型。

除了发布数据源外,该框架还加了可以操作远程REST服务的客户端API,包括在这客户端API中的是一个允许对REST服务进行远程查询的LINQ库。

WCF 开发之改进

.NET 3.5 SP1 和 VS 2008 SP1 包括了对WCF开发的若干增强,其中一些增强包括:

  • 在Web主机应用场景中的显著扩缩性改进(5到10倍)
  • 支持在WCF契约中使用ADO.NET实体框架
  • DataContract Serializer,UriTemplate 和 WCF web 编程模型的API可用性改进
  • VS 2008 SP1 中增强的TestClient 支持
  • VS 2008 SP1 中对WCF 服务项目的新Hosting向导
  • 在部分信任场景下的改进的调试支持

VB 和 C# 改进

VB 和 C# 开发团队在VS 2008 SP1也加了一些非常好的改进:

Visual Basic

你现在可以往Visual Basic项目中加入“XML to Schema”条目,在加了这些项目条目外,会打开一个向导,允许你根据各种XML源来创建XSD数据定义集。然后,这个数据定义集就会加到项目中,促成VB XML intellisense。这个支持以前可以通过一个web下载来获取,你可以在这里了解有关详情。

VS 2008 SP1中还包括了一个XSD浏览器, 允许你浏览XSD数据定义集。在SP1的最终版中,开发人员将能够右击VB代码编辑器中的XML元素名称(无论是在XML属性中还是XML明文中),选择“Go To XML Schema Definition”,这会打开XSD浏览器,显示VB项目的数据定义集(同时选择当前元素)。

C#

C#代码编辑器现在能够识别以前需要明确编译才能识别的许多语义代码问题,在它们下面显示红色曲线以示错误。例如,如果你在目前的C#代码编辑器中试着声明和使用一个未知的类型的话,在编译之前,你不会看到编译错误。但在SP1中,你会马上看到表示错误的红色的曲线(不需要明确的编译)。

VS 2008 SP1中的调试器还作了改进,对在调试时估算LINQ表达式和查看结果集提供了更多的调试支持:

启用LINQ的数据源在调试器查看窗口中将显示一个“结果视图(Results View)”节点,将这个节点展开,将对LINQ表达式进行运算,允许你查看它返回的实体对象:

Team Foundation Server 的改进

TFS 2008 SP1 包括了许多改进,请阅读Brian Harry的Team Foundation Server 2008 SP1 预览博客贴子以了解详情。

结语

.NET 3.5 SP1 和 VS 2008 SP1 提供了一堆缺陷修补,性能改进和额外的功能增加,将更完善对所有类型的.NET应用的开发,这将是一个完全兼容的服务包版本。

我们计划在今夏以免费更新的方式发布.NET 3.5 SP1和VS 2008 SP1的最终版本,你现在可以在这里下载和使用这个beta版本。

希望本文对你有所帮助,

Scott

抗震救灾,众志成城

当地震发生的时候,我正在使用Visual Studio 2008 + XNA Game Studio为我的Zune编写小游戏,刚刚在Zune上部署成功一个俄罗斯方块,正在兴奋的将这个好消息写成邮件发给部门同image事时,我突然感觉脑子一阵晕,当时还以为是兴奋过度了,于是闭上眼准备休息一下,这时候听到后面的同事说地震了才意识到是什么样的状况。后来大厦的广播响了起来,要求大家撤离大楼,我把手机,Zune, 以及其它的一些电子设备随身带着,跟着大家一起下了楼。

在楼下,同事们都在紧张不安的相互询问信息。我一直使用Zune来收听电台,以便知道后续的事情。最后终于了解到原来是四川发生了7.8级地震。这段时间,每晚都和太太会守在电视机前,观看中央电视台的实时报道,看到的内容让我们都会非常感动,甚至热泪盈框,都在想除了捐款,我们还可以为灾区的群众做些什么?

我们部门的老板Nigel Burton先生是位英国人,可能有很多博客堂的朋友在各种场合或者媒体上已经见过他。在他的提议下,我们昨天上午开发完成了一个内部赈灾拍卖的网站,并且在中午通过内部邮件向我们开发合作部(DPE)的同事通知了此网站。通过该网站,所有同事都可以把自己的一些物品放在上面进行竞拍,竞拍所得款项通过公司人事部门设置的捐赠网站捐赠出去,同时,公司还会按照1:1 match的方式再加倍捐给灾区。除了我们部门的同事热烈响应以外,上海、广州以及研发集团的同事都积极参与了进来。截止到昨天午夜十二点,总共有23件物品征集上来,包括相机、手机、电脑、显示器、路由器、游戏机、MP4等等,共有88个出价纪录,最终实际募集到资金RMB 23,063元。

当然,这只是微软同事们热情捐助当中的一部分,除了第一笔费用已经递交中国红十字会,我们员工的捐助还在进行当中,今天下午将会与公司1:1 match的部分一起递交给中国红十字会。公司也与相关部门进行了联系,积极参与其它活动。员工也在内部积极献策,讨论如何更好的参与到此次灾区救助当中。

抗震救灾,众志成城!!!

大逃亡,还没出来呢

5.12地震,我正在成都出差,正当讲课的时候,地震了。稳住情绪后和学员一起逃生。经历的这场恐怖的地震后,发现地震并不可怕,真正可怕的来自于自己内心的恐惧和孤独,另外还要不出一些专业知识。我总结了一些经验给大家共享一下:

  1. 不要恋财,逃命要紧,只要拿上必需的钱和手机即可,其他的以后再说
  2. 手机上设置好紧急拨号的功能,1键拨出去。
  3. 有机会要买些水和士力架,我就忘了士力架了,本来包里有的,出来时候让我拿出去了,但是水一定要有,没水人坚
  4. 不了多久,士力架主要是糖和巧克力对于补充体力来说很有效,毕竟你不能背着葡萄糖的瓶子到处跑
  5. 找空旷的地方,酒店不要太高,也不要太低。高层的基本逃不出来,低的一般设计上不结实
  6. 注意使用电梯的时机,并且每到一个地方先看好紧急出口在那里,有条件的先走一遍,这样逃得时候才能最快的找到出路。
  7. 不要到人员聚集的地方,人多地地方不一定安全,人多的地方经常遇到情况的时候会很混乱,可能没被震死,会被踩死
  8. 远离加油站、电线杆、隧道、山坡、水渠、化工厂,那里可能会有其他的危险
  9. 保持通讯,有机会就找地方给手机充电,虽然手机不一定都好用,但是也许能用于求救
  10. 通过各种渠道及量多地从外面获取消息,本地的消息你很难及时得到,这里机场和航空公司的电话根本打不进去
  11. 有机会就去提款机拿点现金,很多地方不能刷卡的,现金更管用
  12. 保持冷静,如果恐惧就给别人打电话,这样冷静下来能让你更灵敏,头脑清醒非常重要
  13. 保持体力,不要瞎跑,能休息时尽量找安全地方休息,也许下一秒需要你来一个冲刺才能逃出去,另外安全的时候找机会睡一下,因为更多地时候都是出于神经紧张的状态
  14. 抽烟的人,多准备点烟,这个东西可以让你放松一下,可以自己安抚一下恐惧的心情,不抽烟的就准备口香糖。或者找点其他的事干,当然干工作都没心情了,但是要想办法击退自己内心的心魔
  15. 最后一点最重要了,保持冷静,自己不要乱了方寸,能战胜自己就是胜利,心魔是你自己,战胜它不难,但要有意志力。遇事切勿慌张,要有自己的想法,切勿不自己思考跟着别人走,那样你的命运就不再你手上了

还有主要的恐惧不是来源于那次主震,而是接连不断的余震,震动的不是大楼,而是震得是你的心,不断地折磨你,摧毁你的意志,说不怕都瞎扯。所以要不断地给自己信号,冷静没什么事了。

目前本人还没有出来呢,但情况还好,可以接受了。就是睡觉不踏实,经常感觉有震动,由于神经高度紧张,有点像地动仪了。原来准备继续写的文章也都推迟了,等我从成都回去再说了。

God save me.

微软急聘base在上海的MOSS高手!

 

Premier Field Engineer - SharePoint/MOSS

 

The purpose of the Premier Field Engineer (PFE) position is to provide Microsoft customers with reliable technical solutions to the complex integration problems associated with business solutions built using Windows SharePoint Services, SharePoint Portal Server and Microsoft Office SharePoint Server. Typical tasks performed in this role include specific problem isolation and correction, conducting application design and technical reviews, performance tuning, application stability consulting/troubleshooting, code reviews, porting/migration assistance, configuration/administration management, pre-rollout testing and general development consulting. The prospective PFE candidate should draw upon all resources at Microsoft, to advise and consult on the use of Microsoft SharePoint Technologies to avoid such problems in the future.

Requirements:

• Candidates must have exceptional customer service, problem solving, communication skills, and the ability to work in a team environment.
• Must have sufficient technical depth to communicate with development and other internal organizations at a peer level.
• Must possess the ability to work with minimal supervision and operate as a self contained business unit within the PFE team.
• Must demonstrate the aptitude for providing exceptional customer service in politically charged environments.
• Show the ability to enhance the technical expertise of peers via training development and delivery, mentoring of new hires, and team content development.
• Demonstrate strategic thinking with value-add contributions.
• Strong business background in Fortune 500 and/or experience with systems technology consulting firm desired.

Technical Requirements:
• Strong knowledge & technical proficiency with Microsoft SharePoint Technologies including Windows SharePoint Services, SharePoint Portal Server, & Microsoft Office SharePoint Server.
• Solid understanding of the Microsoft Windows platform and standard client/server, networking, and Internet fundamentals.
• Superior problem solving and troubleshooting skills at the System Engineer level.
• From this foundation, the PFE position is exposed to many technologies, including but not limited to: IIS, SQL Server, development with .NET languages, XML and Scripting technologies, and data access technologies.
• Practical user mode debugging is a preferred skill, but not required.

Travel requirements vary regionally. Engineers must be available for travel dispatch 24x7x365.

 
Education:
College degree, preferably in Computer Science, is required. MCTS in SharePoint Technologies or other applicable advanced certification is strongly preferred, but not required at hire; however, must be obtained within 12 months of hire. We will consider related field (or equivalent) experience.

Microsoft is an equal opportunity employer (EOE) and strongly supports diversity in the workforce.

 有意向的请和我联系:juqiang@live.com

VSeWSS更新文档

虽然我一直认为WSP Builder比VSeWSS好用很多,但似乎使用VSeWSS的人还是比WSP Builder多很多,所以...

最新的VSeWSS文档下载,包括了多篇不错的指导文档,以及各种典型VSeWSS项目的Walkthrough。

另1:能够支持VS 2008的VSeWSS版本计划在6月份发布。
另2:STSDev 1.3发布了,这是STSDev 2.0之前的最后一个版本,基本上是一个bug fix version。STSDev开发团队对2.0有一个很大的计划,除了功能上的改进,还打算也弄成一个VS Add-in的模式。我曾发邮件给他们抱怨说,现在VS Add-in已经够多了(WSPBuilder、VSeWSS、AC's VS SharePoint Project Utility Tool Window),Developer通常不喜欢为了同一个目的在自己的VS里面装太多插件。他们的回信很简单:“我们的目标就是把上述功能重复的Add-in都干掉”...

More Posts Next page »