Delivering ongoing value

It has been a little over a year since we shipped VS 2008 and .NET FX 3.5.  Since then the team has been heads-down focused on the next version of our product line with VS 2010, VSTS 2010 and .NET FX 4.0. 

In addition, we have been working on a number of interesting technologies that we have updated you with in various forms.  I have always been a big believer of continuous innovation and the work we have done in the last year to deliver ongoing value proves that.  Just last week, I talked about the announcements for a number of products including Silverlight 3 Beta, Expression Blend 3 Preview and the Web Platform Installer. 

I thought it would be a fun exercise to catalog many of the tools and technologies that we have made available to you since we shipped VS 2008 and .NET FX 3.5.  Here we go:

Libaries, Tools & Tooling 

Windows Azure Tools for Microsoft Visual Studio

o    Windows Azure Tools for Microsoft Visual Studio extends Visual Studio to enable the creation, building, debugging, running and packaging of scalable services on Windows Azure.


Visual Studio Team System Database Edition PowerTools (DataDude PT2008 v1)

o    A set of enhancements and tools that complement and improve the user experience of VSTS Database Edition 2008


Microsoft Visual Studio Tools for the Office System Power Tools

o    The VSTO Power Tools are a set of 9 freely-downloadable tools and code samples for use by developers building VSTO solutions.


Web Deployment Projects for Visual Studio 2008 & Visual Web Developer

o    Additional functionality to build and deploy Web sites and Web applications in Visual Studio 2008.


StyleCop (StyleCop 4.3.0.x)

o    StyleCop analyzes C# source code to enforce a set of style and consistency rules.


FXCop 1.36

o    The latest version of FXCop; FXCop analyzes managed code assemblies reporting information such as possible design, localization, performance, and security improvements.


Managed Extensibility Framework (MEF)

o    A new library that enables building extensible applications, frameworks, and application add-ins whether they be web based, smart client, or back-end services.


VB Powerpacks

o    Free add-Ins, controls, components, and tools for you to use with Visual Basic to make developing great applications even easier.


Captions Language Interface Pack (CLIP)

o    Captions Language Interface Pack for Visual Studio 2008 is a tool that uses a tooltip caption and/or a small  dialog to display translations for user interface items in Visual Studio 2008. The CLIP downloads are available in the following languages: Arabic, Czech, Hebrew, Hindi, Malayalam, Oriya, Polish, Tamil & Turkish.


MSF for Agile Software Development Process Template v4.2

o    An agile software engineering process that incorporates key ideas from the Agile software movement for teams through Visual Studio Team System.


Team Foundation Server Power Tools

o    Team Foundation Server Power Tools is a set of enhancements, tools and command-line utilities that improve the Team Foundation Server user experience.


Visual Studio Team System 2008 Team Foundation Server MSSCCI Provider

o    Enables integrated use of Team Foundation Version Control with products that do not support Team Explorer integration


Silverlight & WPF

Silverlight 2 Controls Source and Unit Test

o    Source code to the controls shipped with Silverlight 2 RTW.  Application developers are free to use this code, modify it, and then re-package it in their applications.


Deep Zoom Composer

o    Free power toy that allows you to import and compose high-resolution images for export to Silverlight Deep Zoom and Seadragon Ajax technologies.


Silverlight 2 Control Pack

o    This download contains the source code and unit tests for the managed Silverlight 2 controls included in System.Windows.dll, System.Windows.Controls.dll, and System.Windows.Controls.Data.dll.


Silverlight Toolkit

o    The Silverlight Toolkit is a collection of Silverlight controls, components and utilities made available outside the normal Silverlight release cycle.


WPF Toolkit

o    The WPF Toolkit contains three WPF controls including Datagrid, DateTime control and Ribbon.


WPF Ribbon

o    CTP of Office Ribbon control implemented in WPF for use by WPF developers.



o    A WPF starter kit for multimedia applications.




o    ASP.NET MVC enables you to build Model View Controller (MVC) applications by using the ASP.NET framework.


ASP.NET Lightweight Test Automation Framework

o    The Lightweight Test Automation Framework for ASP.NET was developed and is currently used by the ASP.NET QA Team to automate regression tests for the product.


ASP.NET AJAX 4.0 Preview

o    A number of ASP.NET AJAX updates built on ASP.NET AJAX 3.5 SP1.


ASP.NET Dynamic Data

o    ASP.NET Dynamic Data provides a framework that enables you to quickly build a functional data-driven application, based on a LINQ to SQL or Entity Framework data model.


ASP.NET Image Generation

o    For displaying images from a DB or generating an image dynamically.




o    Integration samples of DLR in MVC.


JQuery Intellisense Updates

o    Updates for rich JQuery Intellisense for Visual Studio 2008 and Visual Web Developer


Iron Python

o    IronPython is an implementation of the Python programming language running on .NET.  It is well integrated with the rest of the .NET Framework and makes all .NET libraries easily available to Python programmers, while maintaining full compatibility with the Python language.


Visual C++ 2008 Feature Pack

o    The Visual C++ 2008 Feature Pack extends the VC++ Libraries shipped with Visual Studio 2008 to include MFC extension support for Office Ribbon style interfaces, fully customizable, modern Visual Studio-style docking toolbars and panes, advanced GUI controls and more.  The Feature Pack also includes an implementation of TR1 including, but not limited to, regular expression parsing, new containers and polymorphic function wrappers.



New CLR Interopability Support

o    Open source tlbimp and A PInvoke Signature Generator that conveniently converts from C/C++ to managed P/Invoke signatures or verse visa and Tlbimp, a command line tool which creates a managed, Interop assembly from a COM type library.


New CLR Security Enhancements

o    A set of projects that extend the security APIs shipped with the .NET framework to provide additional functionality; these include CAS Helper library, New Crypto-algorithms and Automated security debugging library.


VS Helper and FxCop for CLR Addins

o    System.AddIn helper VS add-in and FxCop rule to validate versioning and isolation safety of contracts on object models



Composite Application Guidance for WPF and Silverlight – February 2009

o   This release helps you build modular and composite WPF and Silverlight applications, simplify the composition of your user interface, and reuse code between Silverlight and WPF. With it, you’ll build solutions that take advantage of the full power of Silverlight and WPF and that are highly maintainable and testable. It includes source code, sample applications, and guidance on building client architectures and implementing UI patterns.


Composite Application Guidance for WPF – June 2008

o   This release will help you build modular and composite WPF and simplify the composition of your user interface. With it, you’ll build solutions that take advantage of the full power of WPF and that are highly maintainable and testable. It includes source code, sample applications, and guidance on building client architectures and implementing UI patterns.


Smart Client Software Factory – April 2008

o    The Smart Client Software Factory provides an integrated set of guidance that assists architects and developers in creating composite Windows Forms applications. The software factory provides guidance that helps to automate designing and developing occasionally-connected modular Windows Forms client applications. The resulting application architecture is both extensible and customizable.


Web Client Software Factory – February 2008

o    The patterns & practices Web Client Software Factory is a comprehensive set of guidelines, assets, and automation that developers use to create architecturally sound, modular, Web applications. The factory provides guidance that helps you build highly maintainable and testable ASP.NET applications.


Microsoft Enterprise Library

o    A collection of reusable software components designed to assist software developers with logging, validation, data access, exception handling, and more.  Entlib is provided as source code, test cases, and documentation that can be used “as is” or extended and encapsulates the Microsoft recommended and proven practices for .NET application development. 



Comments (21)

  1. Baoci says:

    What does it mean value?

    From what I can see, JIT is still generating dead slowest code on the planet.

    WinForms fixes for page faults, GDI+ and more are simply left as is.

    WinForms DataGrid still uses the slowest text rendering on the planet.

    WPF and Silverlight are even heavier than WinForms ( no wonder they are unusable for any serious latency-sensitive app).


    Is the sole reason of MS to ignore and leave things unfixed, and deliberately slow?

    And then provide more value with new value that is even slower and more page-fault generating and RAM eating?

    Guys, people are seeing through this game for a long, long time now

  2. Publicación del inglés original : Miércoles, 25 de marzo de 2009 a las 1:02 PST por Somasegar Hace poco

  3. Matt Gibbs says:

    Hello Baoci,

    My team works on several of the areas you reference.  I’d like to get some more info about the WinForms rendering and JIT code-gen issues you are seeing. Please contact me at mattgi@ms and we can help investigate.  

  4. tg says:

    Where’s the Entity Framework???? Are you guys really committed to this or not? I’m getting the feeling that this will become ObjectSpaces 2.0, or WinFS, or L2S, or you get the point (I hope)…..

    We need a solid ORM solution for .Net!!!!!

  5. tg says:

    Where’s the Entity Framework???? Are you guys really committed to this or not? I’m getting the feeling that this will become ObjectSpaces 2.0, or WinFS, or L2S, or you get the point (I hope)…..

    We need a solid ORM solution for .Net!!!!!

  6. Nos EUA estão chamando de geração Y a primeira geração a viver o mundo conectado. Hoje eles/elas têm

  7. Jason Wilcox says:

    Hey tg,

    We are absolutely committed to the Entity Framework and shipped the first version as part of VS 2008 SP1 and .Net FX 35 SP1. This post highlights new capabilities above and beyond what we did in VS 2008 SP1 and .NET FX 3.5 SP1 (which is where we shipped the Entity Framework).  

    For the upcoming release, we’ve made some significant additions to the Entity Framework that we will ship as part of .NET FX 4.0:

    • POCO : Support for Plain Old CLR Objects. Developers will be able to write their own classes that work with the Entity Framework without need for implementing special interfaces or deriving from specific base classes.

    • Lazy Load : True lazy loading abilities

    • Foreign Keys : Working with our partners in ASP.NET we are implementing Foreign Key based associations that will improve the experience with ASP.NET and MVC

    • Model-First : Support to define a model and generate a database from it

    • Stored Procedures:  Increased capability for flexible stored procedure mappings and scenarios

    • Singularization / Pluralization: A default experience in our tools

    • N-Tier : Improved APIs helping developers to build n-tier apps directly on top of EF or with a framework like .NET RIA Services

    • Customizable Code-Generation: T4 templates for code-gen.  Our tooling experience uses WF to define the tooling steps. These two improvements give developers and ISV’s a wide range of opportunities for extending and customizing the platform.

    For more information on the road map you can visit the Entity Framework Design Blog.  You might also want to check out improvements we made to ADO.NET Data Services at ADO.NET Data Services team blog.


    (Data Programability)

  8. ricom says:

    Hi Baoci,

    I wanted to thank you for your frank comment and I’d like the opportunity to talk to you more specifically about where you think we could do more for performance.

    I encourage you to read my blog as well and to write me

    ricom (at)  

    [I broke that up to try to dodge some spam bots please replace the (at) with @ like usual. ]

    If that doesn’t work you can use my blog links to send me email too.

  9. Somasegar says:


    I realized that I had missed the Enterprise Library work from the list.  So, I added it to the "Guidance" section in this blog post.


  10. S. Somasegar, Senior Vice President Developer Division, has provided a catalog of developer tools that

  11. Mark Gordon says:

    Hi There Soma,

    You forgot to list the obvious short comings of each technology as that level of detail would also help us. To give you some ideas where to begin – how about lack of XMAL debugger and a carousel control in WPF – class browser in visual studio is useless – inability to subclass UI controls – no UI designers in MVC amongst other things – and the most obvious mental wizardary a missing data centric language.

    The funny part is even with all these tools Visual Studio is still ‘NOT’ able to generate an application as fast, efficently or less lines of code as Visual Studio 6.0. Keep up the good work, at this rate you will be spinning a bloated version of assembly as the next technology breakthrough.

    Here is a thought give us back Visual Studio 6.0 or at a minimum Visual FoxPro to appease those of us that just want to get our work done and realize there is more to life then debugging a million lines blend generated xmal with snoop. Then keep Visual Studio around for programmers that enjoy writting massive amounts of code, learning bloated frameworks, 6 different data access methods that all suck and being on a constant learning curve. This way everyone will be happy.

  12. Nestro says:

    I found your blog from Mark Gordon’s facebook. Visual Studio it isn’t a good product. With no rapid application development features or command and function based language it’s not productive to use and performs very poorly. Visual FoxPro was much better for developing database applications. Visual FoxPro should continue to be enhanced for programmers that don’t like using Visual Studio and .NET.

  13. Greg says:

    Please add:

    – Code refactoring for TSQL stored procedures

    – Code reformatting for TSQL stored procedures

    – C# refactoring – Push local variable to innermost scope it is used

    – C# compiler messages – List methods that could be made static

    – C# compiler messages – list unreferenced global variables, class level variables, local varaibles, methods, classes, assemblies

    – C# refactoring – remove unused references

    – C# refactoring – removed/comment out unused functions, variables, constants

    – C# compiler message – list methods that are public which could be made private

    – C# compiler – option strict to prevent dynamic variables/variant data types

    – C# tools – find duplicate code like the symian or java based tools have

    – C# refactoring – convert property to class level variable (i.e., reverse of the existing refactoring)

    – C# tools – show reference hiearchy in application and BCL (to let us see if a .NET framework class is being used in only one place. We want to minimize the number of BCL classes used in our applications to lower risk and reduce maintenance/support costs)

    – C# tools – A MS supported tool convert code from VB.Net to C# or C# to VB.

    – C# linker/project properties – option to compile and statically link an application so that it has 1 executable file and only needs the .NET framework to run.

    – VS setting – don’t auto checkout source code from VSS when it is modified (follow subversion/CVS/RCS model).

    – VS setting – make color scheme available for project window, settings winndow, etc like it is available for the source code editor (i.e., I want a high contrast lime green/light blue text on black background).

    – VS reports project – fix bug where the XML for the RDL gets out of synch with what you do in the designer/reports properties page.  Changing/removing parameters will sometimes not remove the ones you removoed in the GUI.  Same goes for changes made to the data source.

  14. David A. says:

    I also found your blog from Mark Gordon’s facebook.

    I have been working with VFP from the FoxBase + ages.

    This tools allowed me to work with OS: MS-DOS, SCO Xenix in multiuser, networking with Network Netware, and of course with Windows. All with the same compiled file.

    VFP is a tool very focused to work with databases, in my case, it is the kind of software I have been developing all my life.

    I can’t understand why MS leave VFP, and force us to use a tool with a lot of complexity, very poor accessibility to databases, forcing us to use SQL Server if we like something callable as "integrated". Of course, nothing to say about creating reports.

    Seriusly, VS GUI is about 3 or 4 times more slower in my machine than the VFP9 GUI, a lot pageframes, slow windows, etc.

    VS have not a command line with the power of VFP.It really need it. I must have a testing winform and compile it each time if I like to do some test.

    VS is not intuitive. The help file is not optimized, it made me lost a lot of time.

    In the 2009 year, I think I do not need to think how creating a variable can affect the system… It is the work of the language.

    The compiler and the GUI can’t do it better/rushmore?

    A thing who make my crazy, is telling the compiler the variable type definitions.

    Intellisense is not an excuse. Who think is "logical" define an object like:

    UseDefaultCredentialsService service = new UseDefaultCredentialsService();service.UseDefaultCredentials = true;

    Nobody hate write the same UseDefaultCredentialsService two times in the same line? Really it is mandatory? The compiler can’t be more intuitive with writing it only one time?

    I can run an application in VFP9, developed in FoxBase+ 20 years ago without touching  a line of code. Can you do it with an app developed for the first NET framework? Compatibility is very important with big projects, with a long life of the product developed.

    I think VSNET need to be more thin, simple, allowing applications to run in others OS (read Apple OSX, Linux, Android, SUN, etc). What is the reason to have a complex CLR if the app only works in Windows? And why you must compile different versions to run Windows 32 or 64 bits? The CLR should do this work.

    I would like to run my application in the cheapper machine, the oldest, and the newest, not only in the newest and fastest. My customer is not a geek, is a office worker, they do not change the PC until it fall, they don’t need a mainframe.

  15. Russell says:

    Mark is gaining a following, here are my two cents.

    The capabilities of new technology may have improved with Visual Studio – .NET but product quality has fallen off the map.

    1) missing key elements

    2) dismal performance

    3) countless stability problems

    4) buggy

    5) too much code

    Seems every 6 months there is a new framework released or .NET this or that. MS is running around like a chicken with it’s head cut off unaware how to address the problems. By throwing new technology at the situation is not improving matters. Linq-To-Sql is already dead while ADO EF IMHO isn’t far behind. It’s too complex, more importantly a data mapping based solution isn’t required for most applications. This will be another technology *failure*.

    To take a truly *GREAT* development tools like Visual FoxPro that has stood the test of time (an accomplishment not many MS products have done) and disown it is *foolish*. This product should continue to be developed!

  16. Mark Gordon says:

    Hi Soma and Jason,

    I just checked in to see if I was getting flamed and actually read through the prior comments this time.  I would be still laughing at your comment, Jason, about Microsoft’s commitment to Linq To Entities if it wasn’t so pathetic!

    It is unbelieveable that N-TIER design patterns has been around since the COM days and you just now are trying to figure how to patch Linq to accomplish this! What is the plan here Soma in 10 years reintroduce debugging and subclassing UI controls in WPF (if this technology lasts that long) perhaps a useable class browser. Are you hoping  everyone will have forgotten by then about Visual Studio 6.0 and Visual FoxPro 3.0 which has these capabilities so people will say man this cool stuff when you introduce them at Mix19! Curious just how many years is visual studio and .bloat planning on setting programming back? Based on my calculations given we are back to hand coding a UI with MVC, no meaningful debugging in WPF (before you argue think data binding) and lack of any real N-TIER support in Linq this is probably sitting around the late 80’s?

    If I recall correctly, I believe in May 2007, yes not even 2 years Scott Gu, was hyping and spinning LINQ-TO-SQL as the next greatest database access bloat (I meant framework) released by Microsoft and that didn’t even last two years! Now here you are hyping Linq to Entities as Microsoft greatest "FAD" database access technology. I haven’t even wasted the time to mess with it so I can’t say if it is good or not. I can say that given your number of data access failures history is not on your side.

    The only thing good about killing LINQ-TO-SQL is hopefully the VS communities are getting a feel for the complete disregard and arrogance Soma and Microsoft has already shown the Visual Basic and Visual FoxPro communities. Along with their pattern of killing technology that actually works, do I really need to mention that tools!

    Have a great weekend


  17. Sam says:

    Jason, Soma,

    EF has a learning curve. It still does not support many useful and required features. Further, promoting it along with several other ways of accessing data is confusing. Leaving developers to make decisions about which one to choose for a particular project is also not productive. While I’m not in favor of re-introducing FoxPro (and VB), it would be a serious mistake if you guys do not make up your mind and focus on getting out 1 technique that is easy to use and works for n-tier applications as well as simple non n-tier applications.

    Promote a "Data Access Foundation" that can be used with web, rich client, windows and any other type of application supporting several architectures with ease of use.

  18. David A. says:

    I can do more things, quickly, with VFP9 accessing databases and creating forms than with VS C#. C# is as teduious as strong.

    I can understand MS do not think VFP is a priority for them (never was), but to maintain  the amount of developers who do and DID applications with it, they could make a 64 bits compiled version. We do not need more tables size (it should be interesting), it is more important to have an OLEDB driver "compiled" with 64 bits, and VFP9 also compiled in 64 bits.

    Something as simple as it, could give us a reason to watch M$ with better eyes.

    For me, developing with C#, is like comming back to the Basic for CP/M. It make me feel like when those far years I needed to work with tables and their index files.

  19. Graham says:

    Agree with pretty much all the above.

    The ‘new’ IDE based on Frontpage has set usability back years. (my 2c)

    Try to get something working and working right before releasing so much dross that it just confuses the picture.

    The vast majority of developers don’t want to reinvent the wheel every day, which is what I feel I’m doing now.

    Years ago, it was said Cobol programmers would be out of a job, because the new 4D languages would put the development of simple apps and reports into the hands of the users.

    MS is trying its hardest to ensure THAT never happens; in fact some of it is getting beyond some journeyman developers.

    If I’d wanted to work in a low level language, I’d have learnt assembler.

    C# is tedious.

  20. Adrian says:

    Thank the lord for MS!

    C# is a vast improvement to the pain of programming in C++ which (at the time) was a language I enjoyed for it’s power, flexibility and low-levelness. Once I learnt C# however it seemed I was constantly writing code in C++ that already existed in C#.

    The Visual Studio IDE is an evolution not of FrontPage but of the original VC++ 6 IDE (I’m sure the core shell is still partially unmanaged C++ code) and the ability to write comprehensive add-ins to the IDE gives it both power and in certain cases instabilities – this is the price of an environment that is more functional than notepad and a huge step forward.

    C# is certainly a RAD language – I created a prototype Windows Service yesterday afternoon that is functionally complete (needs configurability and event logging) – it would have taken much, much longer to develop in C++ and even longer to test!

    I can’t comment on VFP – I’ve always used SQL Server and/or Oracle and as a rule I don’t touch anything VB if I can possibly help it…

    I don’t understand the issues of bloated software – it’s simply a matter of where you put the division. If the .NET Framework is part of the OS then programs are smaller. If you use the native code generator then they work just as quickly as a native C++ app plus I would argue they will always work faster than a VB app… In every case you could say the fact you have to install Windows before you can use an application is the biggest case of bloated code ever but here we are all in the same boat whether we are using Mac OS or Linux – there will always be a need for some kind of bootstrap.

    Finally we need access to different data-access technologies. Not to be confusing (although of course – it is) but because there is no universial solution that works for all cases – unless of course – you want bloated code! LINQ-to-Entities and LINQ-to-SQL are designed to fulfil different scenarios – it is your job as a developer to pick the right path for the job at hand. You wouldn’t use a DataSet for every data access problem and I don’t expect you would use EF for every problem either.

    In short – roll on VS2010 – I want to see the next generation of the parallel framework (hopefully unified with CCR) because writing parallel code is so hard – I can do it now but it was a truely painful experience! 🙂