Soma的博客中文版

Somasegar's WebLog - 原文地址http://blogs.msdn.com/somasegar
随笔 - 126, 评论 - 145, 引用 - 3

导航

关于

Soma是微软全球副总裁,负责微软公司Developer Division的工作。 微软DevDiv上海团队将Soma的网络日志翻译为中文,在这里与大家分享.

每月存档

最新留言

广告

【第1页/共9页,126条】
首页
前页
1
2010年03月15日

[原文发表地址] Beta of VS Team Explorer with Cross Platform Support

[原文发表时间] Thursday, March 04, 2010 9:35 PM

去年11月,我发表过关于我们收购Teamprise 公司资产的文章,Teamprise是我们的一个合作伙伴,为客户提供从Eclipse 和非Windows平台访问Team Foundation Server的功能。

Teamprise 的产品在TFS的客户中非常受欢迎,那些客户的应用程序跨越了微软与非微软的平台。为了节约成本和提供更高的透明性,客户经常想要将一个单独的企业级的解决方案标准化以使用应用程序生命周期管理。Teamprise technology 对于允许跨平台访问TFS是非常关键的。

自从Teamprise technology和其开发团队加入微软之后,我们一直努力为TFS2010引入一些关键的功能,并努力完成高质量的产品发布。

今天我们宣布了Microsoft Visual Studio Team Explorer 2010的Beta版本发布,这个版本包含了Team Foundation Server的Eclipse插件和跨平台的命令行客户端。其支持Windows、Mac、Linux 和UNIX的多个版本,并提供了源码控制、工作项跟踪、自动化构建和报表等多种功能,使用户能与Visual Studio的客户一样从中获益。

下面,你可以看到在Eclipse中一个用户场景的工作项,这个场景的实现被描述成一系列子任务的集合并被连接到这个场景中。它也展示了在“等待变更(Pending Changes)”视图中有两个已签出(checked out)的源文件,并在Team Explorer视图中显示了按文件夹组织的工作项查询的集合,以及Eclipse的导入向导连接TFS将Java 源代码导入Package Explorer。

image

 

你可以从这里下载Microsoft Visual Studio Team Explorer 2010的beta版本,并且,你可以一如既往地通过Microsoft Connect site提供反馈信息。

Namaste!

View article...

posted on 2010-03-15 13:21:42 by Soma  评论(0) 阅读(1273)

 
2010年03月04日

[原文发表地址] Key Software Development Trends

[原文发表时间] Tuesday, February 23, 2010 12:03 PM

今天的软件开发商,比以往任何时候更多,考虑和使用多种技术,帮助他们顺利地构建解决方案,并迅速交付给客户。开发人员拥有了越来越多编程风格的选择。我们的目标是使我们的工具对所有编程风格予以良好的支持,帮助我们的客户创建伟大的软件。
软件开发领域正出现几个趋势。以下是我最近思考的一些核心的趋势。这个清单并没有罗列所有软件的趋势,但每一个代表着一个微软目前正在或将要投资,最终惠及客户的方向。

云计算
云计算让公司专注于他们今天所需要的计算资源的,扩大处理高峰负荷的能力,避免了管理硬件的开销。云计算使得小企业能利用现有环境以合理的和可预见的成本对大的成规模的公司展开竞争。Windows Server、Windows Azure、SQL Azure、 和例如Windows Live、 Office、Xbox Live等服务现在已经是驻扎在云端的应用。微软一直致力于为Windows共生环境提供最好的云计算平台和服务。云计算只是虚拟计算平台的一个例子,下一代开发工具必须能使开发人员构建能在云和其他虚拟环境里部署和执行良好的软件。

以Web为平台
浏览器提供了丰富的运行环境和对应用无摩擦的访问。开发人员越来越多地选择Web作为他们软件和软件开发的平台。越来越多的开发人员和设计人员使用提供丰富的开发、调试和分析这样专门为web设计的工具。 JavaScript库让Web开发人员可以使用JavaScript完成比以往任何时候更多的工作来实现达到广泛的观众并且使人身临其境的互联网应用。 例如,Silverlight允许开发者摆脱HTML的限制,并利用一系列资源和功能优势,同时保证跨平台的兼容性。

并行计算
摩尔定律预测的CPU的性能将每18个月翻一番。现在性能提升主要通过加入更多的处理器核心,而不是通过提升单个核心的性能。 这种方式给低端机器提供了多核处理能力。利用低价且广泛存在的台式电脑图形处理器执行某些任务已成为的新趋势。在高端市场,超级计算中心正在利用集群来执行复杂的计算任务。今天,只有少数程序员有编写在多核心环境下运行的代码的技能。在未来,并行库,调试,分析和诊断工具,将使更多的开发人员利用并行计算的资源优势。

装置的扩散
随着越来越多可以连接到互联网的低价的设备出现,我们都希望能够以适合于我们的设备的方式来访问我们的数据并与之交互。我们希望能够在所有设备上便捷安全地访问我们的在线身份和数据。今天,微软提供了通过Windows Live和Xbox Live访问用户的数据。装置的扩散将导致用户界面模式扩散,产生更多与这些设备之间的自然,直观交互。触控式的、基于语音、以及相机的解决方案变得可用和成本合理。微软利用这些功能来建立直观的用户界面不断发展软件。Windows 7支持触摸式的平台应用。 Silverlight和WPF已经支持基于摄像头的交互方案和多点触摸,就像MFC的。我期望的用户界面模式继续发展,并变得更加直观和强大。

敏捷开发过程
敏捷开发过程,包括Scrum的,测试驱动开发和持续集成常在企业开发和小规范开发商中广泛使用。这些方法通常与其他开发实践相结合。在微软内部,很多团队都集成了敏捷开发的实践要素于他们的开发过程中。Visual Studio 2010对敏捷方法敞开大门,提供了对诸如单元测试和迭代规划等一些敏捷过程的支持。在将来,我们将继续支持更多更灵活的敏捷方法。

分布式开发
分布式开发,使团队成员跨越地理分隔紧密合作,汇集了全球人才来无缝地实现共同的项目目标。一个跨时区和跨边界工作小组的开发体验应该和单个开发人员一样好,而且还包括支持基于云计算的开发活动,如分发代码审阅,远程结队编程,开发/测试人员协作和资源共享。优秀的分布式的团队开发工具将利用全球的人才库建立下一代软件。

最后...
这些并不是影响今后发展趋势的完整列表,只是我们觉得这些将是软件开发领域今后发展的一些方向。我欢迎你的观点:哪些趋势您觉得会在将来最重要的?这些趋势是否在这份名单?欢迎留下您的观点发表评论。

posted on 2010-03-04 18:41:18 by soma  评论(2) 阅读(2325)

 
2010年03月03日

[原文发表地址] New Offers for Visual Studio 2010

[原文发表时间] Monday, March 01, 2010 8:56 PM

去年10月,我们宣布了一项新的Visual Studio 2010套装和授权选项,为客户提供了简化的购买和获得Visual Studio授权的方法。新系列包括三个主要的Visual Studio版本(都带有适当的MSDN订阅):旗舰版(Ultimate)、高级版(Premium)和专业版(Professional)。

你们中许多人问:那么对于想要升级的标准版(Standard)用户来说,又会如何呢?

现在,我宣布我们的一项“标准版优惠政策(Standard Offer)”,以确保现有的标准版用户可以方便且实惠的升级到Visual Studio 2010。该项优惠政策使得购买Visual Studio 2005或2008标准版的用户只需要$299(即此前Visual Studio 2008标准版零售价)就可以升级到Visual Studio 2010。在2010年4月12日到10月12日期间,标准版用户都可以享受该优惠政策。

Visual Studio 2010提供了强大的新功能,比如为了优化您的开发环境,我们提供了多显示器支持,以及在同一个工具中使用多个版本的.NET Framework。对于标准版用户而言,此功能是在工具方面的一项实质性的进步。

今天,我们还为从零售商处购买Visual Studio专业的客户推出了一项优惠政策。为了帮助这些开发人员充分认识到MSDN订阅的用途和好处,我在此宣布:每一个Visual Studio专业零售版中都将包含MSDN Essential(有效期一年的MSDN试用订阅)。

订阅MSDN Essentials的用户将获得3个最新的Microsoft平台:Windows 7旗舰版、Windows Server 2008 R2企业版以及SQL Server 2008 Datacenter R2,以供其开发和测试使用,另外还有20小时的Windows Azure使用时间。订阅用户还将获得MSDN的在线接待处(MSDN's Online Concierge)的权限、在MSDN论坛的优先支持(Priority Support),并将可以从我们的合作伙伴那里获得特殊的优惠。

这是有史以来第一次,我们为开发人员提供预购Visual Studio 2010的机会。从3月9日起,直到产品正式发布,微软商店(Microsoft Store)和指定在线分销商将预售带MSDN Essentials的Visual Studio 2010专业版。

Namaste!

posted on 2010-03-03 15:20:49 by Soma  评论(1) 阅读(1958)

 
2010年02月11日

[原文发表地址] Visual Studio 2010 and .NET Framework 4 Release Candidate now available

[原文发表时间] Monday, February 08, 2010 4:30 PM

 

今天,我们向所有MSDN订户提供Visual Studio 2010和.NET Framework 4的Release Candidate(RC)版本。该RC版本将于周三(2月10日)向全世界提供。该RC版本还包括一个go-live许可证供需要部署产品环境的用户使用。


感谢所有您过去给与我们的所有反馈。这个RC的目标是得到您更多的反馈并确保我们解决了产品性能问题。我们在产品性能上做了很大的改进,特别在装载解决方案、打字输入、构建和调试方面。


我鼓励您下载RC,并告诉我们您的想法。如需更多有关RC的信息请查阅Jason Zander's blog

 

Namaste!

posted on 2010-02-11 16:34:37 by soma  评论(1) 阅读(2454)

 
2010年01月14日

[原文发表地址]:Entity Framework in .NET 4
[原文发表时间]:Monday, January 11, 2010 9:26 PM

自从Entity FrameworkEF)第一版本的发布以来,我们陆续从用户那里得到了许多高质量的反馈。根据这些反馈,在.NET 4中,我们为Entity Framework添加了许多新的功能和改进,下面我们就来一窥Entity Framework 4中的新特性。

外键支持(Foreign Keys

Entity Framework添加了对外键的支持。利用外键关联,您现在可以将外键属性包含在实体里,这样做可以简化诸如数据绑定、n-tier开发等关键方案的开发。您可以直接使用外键属性设置实体之间的关系:

    using (BlogEntities ctx = new BlogEntities()) {

        Post myPost = new Post {

            PostID = 102,

            PostName = "Post Title",

            CreatedDate = DateTime.Now,

            PostContent = "Post Content",

            BlogID = 11

        };

        ctx.Posts.AddObject(myPost);

        ctx.SaveChanges();

    }

在这个例子里,即使BlogID == 11的这个Blog对象从未被装载,我们也可以直接把新建的myPost对象与这个Blog对象之间的关系通过外键关联起来。

延迟加载支持(Lazy Loading

现在Entity Framework支持延迟加载。一个新的模型在VS2010中被创建的同时,提供延迟加载功能的实体也被生成出来。默认情况下这个功能是开启的,一个查询操作返回的实体对象并不会被马上加载,而是会在实际被使用的时候加载。举例来说,延迟加载意味着下面这个代码段里,每个Post对象会在实际被调用来打印PostName属性的时候被加载。

 

    using (var ctx = new BlogEntities()) { 
        foreach (var b in ctx.Blogs) { 
            Console.WriteLine(b.BlogName); 
            //请注意我们并未主动装载当前blogposts 
            //EF会为我们延迟加载 
            foreach (var p in b.Posts) 
                Console.WriteLine(p.PostName); 
       
    }

简单传统CLR对象(Plain Old CLR Object)支持

EF4为实体提供了简单传统CLR对象(Plain Old CLR Object / POCO)支持。您的实体对象可以独立于EF存在,由此EF更好地支持了测试驱动开发(test-driven development)和领域驱动设计(domain-driven design)。同时,EF仍旧可以帮助跟踪POCO实体的变化,允许延迟加载,也会自动修正对导航属性(navigation properties)和外键的改动。您可以在ADO.NET的博客找到更多关于POCO支持的信息。

文本模板转换工具集(Text Template Transformation Toolkit)代码生成

Entity Framework的初始版本中,您无法随心所欲地配置EF的代码生成,而且代码生成的配置也没有集成到Visual Studio中。新版本的Entity Framework利用文本模板转换工具集(Text Template Transformation Toolkit / T4)不但简化了代码生成的个性化配置,也使得用户对代码生成有更加灵活和强大的控制。Visual Studio集成了这一功能,您可以在Entity Framework设计器的空白处右击,选择“Add Code Generation Item…”。随后您可以获得内置的代码生成模板。

image

当然,您并不局限于这个随着VS2010一起发布的默认代码生成策略,您现在可以编写自己的 T4 模板或者修改默认模板,使之生成您想要的代码。

更好的N层设计(N-Tier支持

我们经常需要分离数据层、业务逻辑层、交互层,来确保数据的完整性并提高每层的可维护性。这时候我们要用到N-Tier设计。Entity Framework小组收到了一些改进N-Tier支持的要求,他们采纳了这一建议,增强了API以支持N-Tier设计。除此之外,EF小组实现了一个代码生成模板,能够生成内置N-Tier特性(如更改追踪)的对象。这个模板生成的实体,本质上是一系列的CLR类,它们带有Windows Communication FoundationWCF)序列化属性,因此它们可以与WCF服务一同使用。

改进SQL语句的生成

我们持续不断地努力改进生成的SQL语句的可读性和性能。在EF4中,针对使用Entity Framework进行的查询,在生成SQL语句的部分我们作出了大量的简化和改进。其中之一是我们去掉了一些多余的join语句。另一个改进是对于WHERE语句的字符串参数使用数据库的通配符。例如下面的LINQ查询语句会被翻译成一个使用WHERE子句和LIKE语句,并使用‘%’通配符在所有的Blogs里搜索BlogName属性‘Visual Studio’开头的Blog

    var query = from b in ctx.Blogs 
                where b.BlogName.StartsWith("Visual Studio"
                select b;   

这些改动看起来好像很小,但改进的SQL生成能够使得查询执行得更快,减轻SQL Servers和网络的负载。

增强对存储过程(Stored Procedure)的支持

许多数据库都利用存储过程来执行自定义的SQL过程。Entity Framework允许您在实体模型中创建一个函数,从中调用一个存储过程。您只需要通过函数导入(Function Import)功能就可以将存储过程导入为一个函数。在新版本中,函数导入功能可以检测到存储过程返回的数据列,并为这些列创建一个复杂类型。当然,当存储过程定义改变后,已有的复杂类型也可以被更新。下面这个截屏显示的是Entity Framework设计器的存储过程向导,引导您一步步将存储过程导入为函数:

image

Entity Framework 4提供的这些新特性,目的是提高程序员的工作效率。您可以在项目论坛上与团队分享您的想法和意见,在Entity Framework团队博客设计博客上与他们联系,也请关注Channel 9上的视频和screencasts

Namaste

posted on 2010-01-14 15:25:13 by Soma  评论(1) 阅读(3459)

 
2009年12月23日

[原文发表地址]:Reactive Extensions for .NET (Rx)
[原文发表时间]:Wednesday, November 18, 2009 8:05 AM

我非常高兴的宣布 .NET 的 Reactive Extensions (Rx) 预览版在MSDN DevLabs发布了。

使用Rx, 程序员能够基于我们所熟知的.NET风格和模式编写的简明的声明式代码,来设计和协调异步的和事件驱动的程序。Rx 具有坚定的理论基础,使用传统迭代(Iterator)和观察者(Observer)设计模式之间的二元性来简化异步控制。通过把LINQ的表达方式与范畴论的优雅相结合,Rx 允许程序员不用理会那些使人痛苦和不自然的行为就可以编写异步的代码。

顾名思义,反应式的程序对所在运行环境中的变化做出反应,传统上,程序员使用锁和事件句柄来协调这些变化。Rx 像push-based,或observable、集合一样为异步计算和事件建模,因此它扩大了标准LINQ 顺序运算符和扩展方法的范围,并超越了我们熟悉的基于拉的(pull-based)、或枚举、集合,进入了反应式编程领域。

实际实践

.NET的Reactive Extensions包含一系列扩展方法和为.NET 4及Silverlight 4中新加入的 IObservable<out T> 和 IObserver<in T>接口实现的LINQ标准顺序运算符。加入到.NET中的Observable接口为基于推(push-based)的通知提供了一个公共接口,并能够基于此创建.NET的一些其他功能和类库。Rx致力于事件驱动和异步计算的协调和策划,并且采用新的任务并行库作为它内部的并发机制。

Reactive Extensions可以在任何.NET语言中使用,在F#里面,最有价值的就是.NET事件。它实现了IObservable<out T>接口。除此之外,F#还提供了一些基本的函数来构造observable集合,并且F#开发人员可以使用Rx获取更加丰富的运算符来构造事件和其他observable集合。

Silverlight工具箱利用Rx为其工具箱的拖放框架提供支持,它使用一套WPF API的子集来初始化拖操作和负责与它交互。拖放框架为一些核心的控件比如Treeview, DataGrid, ListBox增加了拖放操作的支持.允许拖放操作以声明方式来描述。这在很大程度上减少了开发时间。 Silverlight异步的创造可视元素,因此我们通常需要编写异步测试代码来确保一个组件已经被正确的创建。Silverlight 单元测试框架提供的Rx功能允许开发人员编写可靠的事件处理代码而不用牺牲代码的可读性。

示例代码

下面的例子展示了一个简单的AJAX风格的反应式程序,它使用Bing的翻译服务来翻译英文并显示结果。

Rx[1]

上图页面中的输入框设计为一个可观察的字符串集合,当用户暂停输入半秒钟左右,可以从中取得相应的字符串值。GetKeyUpEvents 扩展方法将.NET 的KeyUp事件暴露成一个可观察的集合。

    IObservable<string> words = (from keyup in Input.GetKeyUpEvents() select Input.Value).Throttle(TimeSpan.FromSeconds(.5))

要访问Bing的翻译服务,我们只使用了一个简单的WCF服务引用。这个服务在一个函数中使用了标准的.NET BeginInvoke/EndInvoke 或事件驱动模式。而该函数通过Rx提供一个标准辅助函数返回一个Singleton的Observable集合。

    IObservable<TranslationResponse> Translate(this string text, string sourceLanguage, string destinationLanguage){…}

不同计算之间的协调工作使用了LINQ查询语句,通过发送请求到Bing的翻译服务将每一个词翻译成荷兰语、法语和西班牙语,然后使用一个连接(Join)模式等待其中最先完成的2项结果返回。

    var translations = from word in words

    let dutch = Bing.Translate(word, "en", "nl")

    let french = Bing.Translate(word, "en", "fr")

    let spanish = Bing.Translate(word, "en", "es")

    from results in Observable.Join

                 ( dutch.And(spanish).Then((d, s) =>  
                     new { Dutch = d, French = Bing.NoResult, Spanish = s })

                 , dutch.And(french).Then((d, f) =>
                     new { Dutch = d, French = f, Spanish = Bing.NoResult })

                 , french.And(spanish).Then((f, s) => 
                     new { Dutch = Bing.NoResult, French = f, Spanish = s })

                 ).Until(words)

    select results;

最后,我们订阅这个翻译结果并且一旦收到变化通知我们就更新用户界面。

    translations.Subscribe(result =>

    {

        Dutch.InnerText = result.Dutch.GetTranslatedTerm();

        French.InnerText = result.French.GetTranslatedTerm();

        Spanish.InnerText = result.Spanish.GetTranslatedTerm();

    });

开发人员不必担心要在正确的线程里执行订阅服务,Rx运行时会负责照管这些。

更多有用的东西

除了为Observable集合提供扩展方法,Rx也包含了一系列的试验性的类型和名称空间给开发人员试验,它们为基于枚举的Observable集合实现了一些新的扩展方法,并为.NET 3.5提供了一个试验性的PLINQ。

现在就用吧

你可以从Dev Lab 下载Rx 。别忘了在项目论坛告诉我们你的想法哦,还可以去Channel 9看相关视频

Namaste!

View article...

posted on 2009-12-23 09:13:23 by Soma  评论(0) 阅读(2316)

 
2009年12月22日

[原文发表地址]:Building Applications for Windows Azure
[原文发表时间]:Tuesday, November 17, 2009 11:30 AM

将您的应用或服务构建在云端服务上, 可以让程序员专注开发有用的软件, 使用已经熟练掌握的技术, 而将体系架构、硬件和服务管理等细节交给其它专业人士管理操作。

Windows Azure是微软为了基于云的应用而提供的平台,在去年我们发布了它的CTP(社区技术预览版),而Visual Studio也从第一个CTP版本就支持了Windows Azure应用的开发——您只需要安装Windows Azure Tools的插件即可。您可以通过Web Platform Installer获得在VS 2008上安装的插件。Visual Studio 2010 Beta 2同样支持所有的开发开发,调试,和部署功能,您可以利用它构建您的云端服务。

Windows Azure允许您构建可靠、高质量、并且可以部署和维护的应用程序,随着2009年11月发布的Visual Studio插件, 您可以更加有效地利用Windows Azure平台。

快速入门

开发Windows Azure应用非常类似于开发ASP.NET应用并部署到IIS和Windows Server。尽管有一些区别,Visual Studio还是使得您可以很容易地快速入门。

使用Visual Studio做云端开发,您会注意到的第一件事,恐怕就是Start Page上面,Get Started这个标签页里面对Cloud的介绍了。这个页面提供了丰富的、覆盖面极广的资源,比如Windows Azure社区的链接,定期更新的关于新功能和服务的链接等等。通过这个页面,您不但可以了解到如何创建您的第一个云端应用,也可以在随后的开发过程中获得帮助。

clip_image001

Cloud Service这个项目模板是Visual Studio 2010(和Visual Web Developer 2010 Express)安装的一部分。您可以利用这个模板创建自己的云端服务。点击File | New | Project...菜单,打开Visual Basic或Visual C#选项,选择Cloud Service节点。随后您会看到名为"Enable Windows Azure Tools"的项目模板。

clip_image002

这个模板是Beta 2里面的新功能。通过它,您可以轻松获得最新的工具来开发Windows Azure服务。在创建了项目之后,模板会将您引导到Windows Azure Tools的下载页面。这个步骤能够保证您获得支持最新版本Windows Azure的工具。

clip_image003

在工具安装完成之后, New Project对话框里就会显示Windows Azure Cloud Service的选项。从这时起,Visual Studio就开始支持创建、编辑、构造、调试和部署这些服务。

要创建一个新的工程,选择File | New | Project...菜单来打开New Project对话框,选择Visual Basic或Visual C#节点下面的"Windows Azure Cloud Service"。随后开启的对话框帮助您在您的云端服务中添加Windows Azure Role项目。

clip_image002[1]

Windows Azure的特性之一就是可以跨任意数量的实例,独立地进行规模的放缩。Windows Azure把“components”分割成Roles,Role而一个Role就是一个独立的可放缩在云端运行的部件。每个Role的实例对应一个虚拟机实例。Role分为两种:

· Web Role – 这种Role指的是一个在IIS上运行的网络应用,可以通过HTTP及/或HTTPS端点访问。

· Worker Role – 这种Role指一个后台运行应用程序,运行任意的.NET代码。它可以暴露外部或内部的端点。

无论您想添加哪种Role,我们都提供多个模板选项。比如说,对于Web Role,您可以选择ASP.NET Web Applications模板,ASP.NET MVC 2模板,或者WCF Service Application模板。您可以添加一个或多个Role到您的云计算服务中,然后点击OK,完成创建工程和项目。

clip_image004

创建好服务后,您的工程中会有几个项目。其中之一是Cloud Service项目,它包含了Windows Azure需要的所有的配置信息。有了这些信息,Windows Azure才能运行您的服务,并在项目生成后允许您添加或删除Role。

在Roles目录下右键点击role关联,选择Properties…会弹出配置页面,通过这个页面可以设定Role的属性。

clip_image005

正确运行

使用Visual Studio 2010来开发Windows Azure Cloud Services关键的好处之一是,开发工具能帮助您模拟测试和调试的环境,完全在本地运行您的服务。您甚至不需要使用Windows Azure的账号。这个模拟包括了会在本地模拟运行您的云计算服务的开发网格,, 也包括了会在您的本机上运行Windows Azure存储的开发存储,。有了开发网格和存储,您就可以在离线状态下开发、测试和优化您的云计算服务了。

在运行开发网格的时候,您可以利用Visual Studio强大的调试功能,包括无缝跨跃不同role和role实例的调试体验。下图所示的是一个调试过程,您可以一步步调试一个web role的执行过程。

clip_image006

部署到云

一旦您准备将应用部署到云端,Visual Studio提供了一系列的发布步骤,会将您的云计算服务打包成可部署的Windows Azure格式,随后您可以使用Windows Azure Developer Portal部署您的云端服务。

要了解更多,请访问Cloudy in SeattleCloud Tools这两个博客。

Namaste!

posted on 2009-12-22 12:53:02 by Soma  评论(2) 阅读(2318)

 

[原文发表地址]Creating extensions for VS 2010

[原文发表时间]Wednesday, December 09, 2009 3:42 PM

虽然 Visual Studio 有丰富的内置功能,但任何现代平台的一个关键是功能的可扩展性。

Visual Studio 2010的重点工作之一是不仅对API进行改进,而且对整个扩展开发的生态系统进行提升。目标很简单 — — 我们要使从创建到发布到使用的整个过程都更容易。

开始之前…

您将首先注意到的一件事是简化了的 Visual Studio 2010 SDK。

现在的SDK只有10MB,而在以前它的大小是 100 MB。我们通过将文档示例发布到网上的形式达到了精简的效果,而且这也使我们能够不断及时提供更新内容。现在SDK的安装时间从以前的二十分钟降低到只需一分多钟。

构建

为Visual Studio 2010构建扩展从没有这么容易过。

SDK提供了一组项目模板,可帮助您构建从编辑器视觉效果到菜单命令和工具窗口等各种不同的扩展。

WPF现在是我们扩展模板中的一等公民。现在你立刻就可以启动并运行一个WPF工具窗口。 同样,使用XAML来设计并将一个自定义的用户界面添加到Visual Studio编辑器也很容易。扩展编辑器明显变得更简单、 更可靠。以前,尝试做一些简单操作如获取一个符号的位置,也要花费几行难看的互操作代码。使用新的编辑器API你只需一行代码,而无须任何互操作。

扩展的可能性是无止境的。您想将团队的社交网络工具集成到编辑器中,以便直接在Visual Studio中共享代码吗?构建一个扩展吧。想要将架构图或TFS历史记录也嵌入代码编辑器吗?您可以做到。不喜欢关键字着色的默认样式吗?几行代码就可以改变它。使用扩展,您可以将Visual Studio定制成您喜欢的强大的编程工具。

分享

部署您的扩展插件不再是“火箭科学”(译者注:指复杂的事)。您无须构建MSI来分享您的扩展。所有的扩展项目模板都会生成VSIX文件。VSIX是我们新的部署单元,它利用开放包装公约(Open Packaging Convention)zip格式并利用的xcopy部署功能来部署您的扩展库。

使用新扩展管理器(Extension Manager),用户可以直接在IDE中找到并下载扩展。这种体验要感谢新增的及改进的Visual Studio 库(Visual Studio Gallery),它使您只需上传您的VSIX文件就能与世界共享您的创作。

现在轮到您了

Visual Studio团队博客提供了一个综合的建立您自己的扩展的演练。我建议您访问该博客,然后开始构建您自己的Visual Studio扩展。一旦您构建了一个扩展,您可以上传到Visual Studio 库来与其他人分享。 您可以为您的扩展选择免费共享或收取一定费用,然后使用丰富的HTML来自定义您的扩展页。当您的页面发布以后,您的扩展就能在Visual Studio中的工具菜单下的扩展管理器中找到了。

请参阅 VS 扩展性开发中心扩展示例SDK 文档以了解有关构建扩展的更多信息。我期待在 Visual Studio 库中看到您的扩展。

Namaste!

posted on 2009-12-22 12:51:26 by soma  评论(0) 阅读(2114)

 
2009年12月21日

[原文地址]:Visual Studio 2010 and .NET Framework 4 Beta period extended
[原文发表时间]:Thursday, December 17, 2009 4:14 PM

在今年10月,我们发布了Visual Studio 2010和 .NET Framework 4的Beta2版。此后,我们陆续收到了很多有益的反馈。感谢你们提供的颇具建设性的意见和建议。

我们听到了许多对于Visual Studio 2010和 .NET Framework 4里新特性的肯定。对于这一版本带来的全面的价值提升,很多人也表示满意。

与此同时,我们也收到了很多有关性能方面的反馈,特别是针对一些关键场景下的虚拟内存使用情况。正如你看到的,从Beta1到Beta2,Visual Studio 2010和 .NET Framework 4的性能已经有了大幅提高。接下来,我们会在这方面做更多的工作。在Beta2发布后的几个月里,我们的开发团队埋头苦干,致力于进一步提高产品性能。而且,我们已经看到了一些可喜的成果。

为了验证我们在产品性能方面所做改进的针对性和有效性,同时确保产品的高质量,我们计划适当延长Beta测试阶段。具体来说,我们将在明年二月公开发布一个附带“go live”授权的中间版本,也就是RC版(Release Candidate)。

我们预计将会收到不少基于该RC版的反馈。为了能有足够的时间来处理这些反馈,我们打算把Visual Studio 2010和 .NET Framework 4的最终发布时间往后顺延几个星期。

我邀请您继续把您对产品的反馈意见发送给我们。您的意见和建议将极大地帮助我们提高产品质量。

Namaste!

posted on 2009-12-21 20:34:23 by Soma  评论(0) 阅读(4515)

 
2009年12月18日

[原文地址]:Building setup and deployment packages in VS 2010
[原文发表时间]:Monday, December 14, 2009 9:14 PM

编写和优化代码是构建应用程序的重要工作之一。一个应用程序一旦构建完成,你需要对其进行部署。然后,你的客户才可以开始使用该应用程序并从中受益。对于很多应用程序而言,最可靠的部署方式是创建一个安装项目,对你的应用程序的部件进行集中打包,组合成一个易于安装的软件包。该软件包一般来说拥有熟悉的界面,方便你的客户使用。

今天,你已可以借助Visual Studio的安装程序项目模板来创建一个安装项目。然而,从我们的客户那里我们了解到,他们需要更多软件安装/部署方面的特性和功能。例如,借助Team Foundation Server构建一个更简单、更现代的开发者体验。最重要的是,提供一条路,可以引领我们的客户获得更先进的部署能力,以适应他们应用程序日益扩大的规模。

为了响应这样的需求,我们和InstallShield的开发公司Flexera合作,专为Visual Studio 2010的客户开发了InstallShield Limited Edition 2010。这个版本是Visual Studio的一个扩展。现在,你就可以下载并使用它来创建基于Windows Installer的软件安装包,并在Windows平台上部署你的应用程序。除了提供Visual Studio安装程序项目的类似功能以外,InstallShield Limited Edition 2010还有易于使用的,现代化的图形开发界面并可以让你使用Team Foundation Server来构建你的软件部署项目。当你的应用程序的规模扩大超过InstallShield Limited Edition 2010的限制,你还可以把基于InstallShield Limited Edition 2010的软件安装项目导入到更高级版本的InstallShield。这将有助于保护你的既有投资。

如何获得它?

要下载使用InstallShield Limited Edition,你可以在Visual Studio 2010里,点击File | New | Project…菜单,在左侧的树形浏览区域里,找到Other Project Types | Setup and Deployment节点,然后选择InstallShield 2010。它包含一个名为“Enable InstallShield Limited Edition”的项目模板。

image

在项目被创建之后,该模板将带领你到InstallShield注册页面。注册成功后,你就可以进入我们合作伙伴的下载页面,下载并使用InstallShield Limited Edition 2010。

image

如何使用它?

安装完该产品后,通过New Project对话框里的一个选项,你可以创建一个基于InstallShield Limited Edition的项目。通过File | New | Project…菜单,打开New Project对话框并在Other Project Types | Setup and Deployment | InstallShield 2010节点下选择“InstallShield Limited Edition Project” 模板。

image

Visual Studio 2010 with InstallShield Limited Edition 2010向我们客户提供了另外一个选择,帮助他们构建更简便的软件部署解决方案。它使部署工作成为自动化构建的一部分,并且提供了一条升级路径,允许你在应用程序日益增长的情况下,迁移到更大更好的软件安装部署解决方案上去。

Namaste!

posted on 2009-12-18 15:08:36 by Soma  评论(1) 阅读(2454)

 
2009年11月13日

[原文发表地址]:Teamprise: Enabling TFS collaboration across heterogeneous platforms
[原文发表时间]:Monday, November 09, 2009 5:05 AM

开发团队往往使用许多不同的平台和开发环境。不同环境之间的互操作性是合作中的一项重大挑战。

Teamprise的客户端套件解决了互操作性的问题。它使得基于多种操作系统,包括Windows、Unix、Linux、和Mac OS X,使用Eclipse和基于Eclipse IDE的开发人员也能使用微软的Visual Studio Team Foundation Server来构建应用程序。

我很高兴地宣布:微软已收购Teamprise技术。

微软将致力于这项技术的未来发展,Teamprise工具将被整合到Visual Studio 2010中,作为Visual Studio 2010的一部分进行发布。

收购Teamprise技术是我们继续致力于互操作性、无论客户目前使用何种开发环境都致力于帮助客户实现更大的商业价值的重要一步。

您在Microsoft PressPass网站可以找到更多此次收购的详情。

Namaste!

posted on 2009-11-13 10:59:01 by Soma  评论(2) 阅读(3537)

 
2009年11月11日

[原文发表地址]:Developing for the web using VS 2010 and .NET 4
[原文发表时间]:Tuesday, November 03, 2009 10:50 PM

Visual Studio 2010和.NET 4包含了许多帮助提高开发人员工作效率的新功能和增强功能。这些或大或小的改进共同使工作效率得以巨大的提升。

Web应用拥有易于获取和无摩擦等特性,因此越来越多的开发人员开始转向web来开发和发布他们的应用程序。 Visual Studio 2010 和 ASP.NET 4提供了一些新功能来帮助您。在这里我将对其进行着重介绍。

HTMLASP.NETJavaScript snippets (代码段)

C# 和 VB 用户使用snippets来提高开发效率已有很多年了。 现在 web 开发人员在HTML, ASP.NET标记和JavaScript上可以得到同样的支持。数百个新的snippets能够帮助您自动完成常用ASP.NET和HTML标记,包括必要属性(如runat="server")和标记的公共属性(如ID,DataSourceID,ControlToValidate和文本)。

JavaScript 动态IntelliSense支持

开发人员使用JavaScript之类动态语言开发时面临的最大挑战之一是类型是动态添加和更改的。这几乎使得IntelliSense不能使用。在Visual Studio 2010中JavaScript IntelliSense引擎针对动态类型进行了重新设计。例如您能够得到registerNamespace生成类型的IntelliSense信息。该引擎还增加了对常见JavaScript库的支持。下面是一个IntelliSense对于新注册类型与新函数支持的例子。

JavaScript IntelliSense

简化的 Web 部署

Web 部署总是令web 开发人员非常头疼的问题。应用程序逻辑、数据库、IIS设置、数据和配置转换所有这些都可能需要在部署之前安排好。

现在,MSDeploy,一个新的部署工具,能够把与一个web应用程序关联的所有设置、文件和数据打包,然后部署到远程站点或存档以便将来检索。现在IIS7管理控制台包含了一个用于导入由 MSDeploy 创建的程序包的向导。

Visual Studio 2010将MSDeploy无缝整合到web开发工作流程中,同时添加了许多用户需要的功能。这些功能包括通过web.config转换来修改常见设置(如web服务的end point和连接字符串),以及从开发人员的计算机转移到暂存或产品服务器之前的数据库部署的自动化。下面是新的简化的发布对话框:

image

新的应用程序模板

对于新的 web 开发人员来说web开发的入门是令人生畏的。Visual Studio 2010包含了一些针对ASP.NET 4初学者的web应用程序模板。这些模板包括了入门所需要的一切东西:一个确保页面一致性的主版/内容模式,帮助构建JavaScript-rich应用的菜单、登录和CSS 样式表和jQuery。 这些模板提供了一个可以工作的起步web应用,您可以马上开始添加自己的功能。

CSS 改进

现在ASP.NET控件提供了一个ClientIDMode属性使您能够控制ASP.NET生成ClientID的方式。在使用CSS设计样式或编写JavaScript访问HTML DOM时了解该ClientID是特别重要的。

Visual Studio 2010 HTML设计器增强了对CSS 2.1的支持,它提供了一个更准确,更接近浏览器运行时的设计时呈现。

更大屏幕实际使用面积

开发环境的最大卖点之一是屏幕的使用面积。Visual Studio 2010提供了很多选项来帮助开发人员自定义并优化其屏幕使用面积和开发体验。代码优化的web开发配置会优化这些设置来尽可能地扩大屏幕实用面积并把最常用的源码开发命令放在您的手边。您可以在第一次启动Visual Studio时选择代码优化的web开发配置,也可以使用工具|导入导出设置菜单项更改配置。

image

干净的Web.Config

有时,简单就是美。在ASP.NET首次引入时web.config文件甚至不是必须的。即使需要时, 通常也只包含几个条目。后来随着ASP.NET功能的增强, web.config的大小和复杂度都相应增加,致使文件变得难以阅读和维护。现在ASP.NET 4又一次带来了最小的配置文件。

URL 路由与 ASP.NET WebForms

URL 路由是MVC 项目的一种常用于功能。ASP.NET 4支持webforms的URL路由。现在,您可以定义对应用程序有意义,易于用户理解的URL了。这些简化的URL也能得到搜索引擎优化 (SEO)。

了解更多信息

这些仅仅是Visual Studio 2010 web 开发改进的一部分。您可以在此处看到web开发的新功能的完整列表。

还有...

如果您已经开始使用Visual Studio 2010 Beta 2,我们希望听到您的意见。请参与这个调查来告诉我们您的体验。

image

Namaste!

posted on 2009-11-11 14:12:21 by soma  评论(0) 阅读(2995)

 

[原文发表地址] Spec Explorer: A Model-Based Testing tool

[原文发表时间] Monday, October 26, 2009 9:15 PM

一个完整的、一致的并可扩展的测试系统仍然是如何构建和维护软件系统的一大挑战。

今天在DevLabs上发布的 Spec Explorer 工具通过使用基于模型的测试技术来应对这一问题。

clip_image001

它是什么?

Spec Explorer 是一个用来为软件行为建模,并根据这些模型产生测试套件的工具。

模型可以图形表达方式查看,帮助理解分析软件系统预期行为,或与其他人沟通。模型的大小可以通过正则表达式来界定,而产生的测试套件不仅能够在单独的Visual Studio测试框架中运行,也能够在其他单元测试框架中运行。

为何使用它?

微软的多个不同规模的项目都已将Spec Explorer 纳入为开发流程的一部分。使用Spec Explorer 帮助这些团队更快速创建测试用例、确保需求覆盖的可预见性并提供项目生命周期管理及软件更新的支持。

Spec Explorer 的独有功能使得它比其他基于模型的测试工具更易上手。不具备模型开发背景的工程师也能创建系统和功能的模型,并在很短时间内从模型生成测试用例。研究表明,在一个有超过300个测试套件的大型项目中,与手动创建测试套件相比,此功能提升了42%的平均生产率。

在根据微软内部团队的反馈意见来完善Spec Explorer 的同时,我们也需要聆听你们的反馈意见,以确保Spec Explorer 能满足用户在不同类型及规模的项目中使用的需求。

现在就下载Spec Explorer 吧,您可以在这个论坛提问或提交反馈意见,也可以通过团队博客来了解最新信息。

Namaste!

posted on 2009-11-11 11:38:09 by soma  评论(0) 阅读(2954)

 
2009年11月10日

[原文发表地址]:Announcing Visual Studio 2010 and .NET FX 4 Beta 2
[原文发表时间]:Monday, October 19, 2009 9:10 AM

clip_image001

请允许我在此非常高兴地宣布Visual Studio 2010和.NET Framework 4 Beta 2的发布。MSDN的订阅用户可以在今天下载Beta 2。周三的时候Beta 2的下载会向全世界发布。

在Beta 1的基础上,Visual Studio 2010无论是在性能方面还是整体稳定性方面,都有了显著的改进。虽然距离我们正式发布Visual Studio 2010还有很多工作要做,但希望您喜欢当前的试用版。

Beta 2集成了对SharePoint的工具支持,包括项目模板和调试器支持。对于开发Windows 7应用程序也有相应的运行时(runtime)和工具支持。

相对Beta 1而言,我们添加了Windows Azure Tools模板,帮助您开始开发Windows Azure应用;增强了对Silverlight 3数据绑定的支持,使得您可以集中精力关注自己的业务代码,而不是那些重复的数据绑定代码。

Team Foundation Server现在被包括在所有含MSDN的Visual Studio 2010版本中。对于规模较小的团队,如果仅仅需要它的核心功能(例如源代码管理、bug追踪、build自动化等等),可以使用TFS Basic。TFS Basic的安装相对简单,并且可以在服务器或者客户端计算机上运行。测试元素(Test Elements)的用户将会注意到一个更加直观,反应更加迅速的用户界面。

在这个版本里,.NET Framework也有所增强。令人鼓舞的是,相对之前的.NET Framework,尽管.NET Framework 4 Beta 2的功能有所增加,但其下载包的尺寸显著变小了。我们大大改善了WPF的文本生成堆栈,使得Visual Studio 2010编辑器里的文本字体看上去更加锐利。

我们也在今天宣布简化的产品线和定价策略,以及面向 MSDN 订阅者的新优惠措施。MSDN Premium 的订阅用户可以参与“Ultimate Offer”,即可以在2010年3月22日,也就是Visual Studio 2010发布的那一天升级到高一级版本的Visual Studio。请到这里了解关于新的产品线和“Ultimate Offer”的更多信息。

今天,Visual Studio 2010 Beta 2面向MSDN订阅用户发布,10月21日则对公众发布。请关注Visual Studio 2010产品页面或者注册以获得Visual Studio发布的通知。我本人和我们的团队期待着听到您的反馈。

Namaste!

posted on 2009-11-10 15:39:20 by Soma  评论(0) 阅读(3208)

 
2009年10月26日

[原文地址] F# in VS2010

[发表时间] Friday, October 09, 2009 10:21 PM

通过Visual Studio,我们努力给你的公司提供工具来解决范围广泛的软件问题,并通过基于.NET框架向您提供所需要并期盼的互通性和效率。

作为其中的一部分,Visual Studio 2010从第一个发布开始就支持函数式程序设计的F#编程语言。

F#结合了函数式程序设计和面向对象编程,是一种高效的.NET编程语言。而且F#还是进行平行计算、算法研究以及技术开发和拓展的理想工具。F#是微软研究院和Visual Studio开发团队密切合作的成果。自从宣布了Visual Studio 2010中包含F#,我们已经看到了很多人对此的兴趣并开始使用。我们同时还与F#社区和主要的使用者密切合作来保证F#满足职业软件开发人员在这些领域的需求。

F#Visual Studio 2010中加入了许多的新功能,包含了从元组和函数的“小型编程”到简单无错的异步编程,以及强类型的浮点编程。以下是这个Visual Studio语言编程家族新成员的一些亮点。

简单、简洁的语法

F#是一种强类型语言,就和C#一样,但是它具有像动态语言一样的轻量级语法。以下的这段代码可以让你感受到F#编程的轻量级,就像数学计算一样。

let data = (1,2,3)

 

let rotations (x, y, z) =

    [ (x, y, z);

      (z, x, y);

      (y, z, x) ]

 

let derivative f x =

    let p1 = f (x - 0.05)

    let p2 = f (x + 0.05)

    (p2 - p1) / 0.1

 

let f x = 2.0*x*x - 6.0*x + 3.0

 

let df = derivative f

 

System.Console.WriteLine("The derivative of f at x=4 is {0}", df 4.0)

运行的时候,这段程序会打印出:“The derivative of f at x=4 is 10”。

平行和异步编程

.NET Framework 4Visual Studio 2010包含了强大的类库和工具,能够简化平行应用的开发。F#语言的功能补充了这点,让平行异步编程更贴近人类的思考方式。这其中包含了基本的语言功能,比如不可变的第一类函数,以及强大的编程模型。又比如可以让你在同一个线性样式中编写异步代码的异步工作流,就像编写你所习惯的同步代码一样。

let http url =

    async { let req =  WebRequest.Create(Uri url)

            let! resp = req.AsyncGetResponse()

            let stream = resp.GetResponseStream()

            let reader = new StreamReader(stream)

            let! contents = reader.AsyncReadToEnd()

            return contents }

 

let sites = ["http://bing.com"; "http://microsoft.com";

             "http://msdn.com"; "http://msnbc.com"]

 

let htmlOfSites =

    Async.Parallel [for site in sites -> http(site)]

    |> Async.RunSynchronously

Visual Studio 2010.NET 4集成

集成在Visual Studio 2010里的F#包含了项目模板,IDE支持,智能感应,以及和F#交互式工具窗口的集成。F#能够用来开发基于.NET 2.0.NET 4以及Silverlight的应用程序和组件。作为.NET语言的一员,F#可以和C#Visual Basic.NET一起很好的协作。此外,在.NET 4中,F#用的核心类型(比如元组,Lazy类型,BitInteger等)现在成为了.NET框架的一部分,并能用于所有的.NET语言。

F#交互式工具窗口在Visual Studio中提供了探索性开发的方式。下面你会看到在Visual Studio编辑器中打开的F#脚本的源代码,以及交互执行代码的F#交互式工具窗口。右上方是脚本所创建的Form和图形。

image

 

测量单位

F#中的一个创新的功能是测量单位。它可以让你用米或秒等单位来注解你的浮点代码。这做起来很简单,当在开发过程中,代码绑定到了一个错误的单位将会报告错误。这提供了编译时检查浮点代码的正确性,而不会牺牲性能。

clip_image002

这只是F#中令人激动的所有功能的惊鸿一瞥。预知更多详情,请访问MSDN上的F#开发中心

Namaste!

posted on 2009-10-26 21:20:10 by Soma  评论(0) 阅读(4428)

 
【第1页/共9页,126条】
首页
前页
1

Powered by: Joycode.MVC引擎 0.5.2.0