Visual Studio 2008 and .NET Framework 3.5 "SP1" Beta


VS2008 and .NET Framework 3.5 offer a ton of customer value from Linq to Ajax and much more.  The service pack we have been working on to round out this release adds even more new value in addition to fixing a 100s of customer reported bugs!  All of it is driven by customer asks and I am excited about how we have begun to embrace a model of providing great customer value on a very regular cadence. 


Omar Khan and I recently recorded a DotNetRocks episode where we talked about all these great things.  I thought it would be fun to list just a few of my personal favorite new features in this SP…


What is your favorite one? 


For Web Developers:


– ASP.NET Dynamic Data makes building data driven web applications amazingly easy!   Now only does this work great with LinqToSql and LinqToEntities, but we can now support any OR mapping technologies.  The great folks working on LLBLGen have done the work to wire it into dynamic data.  We are also working with all the third party control vendors and they have controls on the way to work with Dynamic data. 


image


Check out the videos, podcast and reference material.


DynamicData - Main Menu  DynamicData - Product Details DynamicData - Products


– Url Routing is now built into ASP.NET!  So you can now customize your URLs in any ASP.NET application!


http://products/details/123  instead of http://products/details.aspx?id=123 
See Phil’s blog for more information.


– Source code formatting for JavaScript – You can now format your javascript code in the same way you do with C# or VB.NET today.  No more spaghetti javascript!


clip_image002[9]


– Speaking of JavaScript, we significantly improved the javascript interpreter that runs behind scenes in VS and it now supports most other JavaScript frameworks giving you great intellisence. 


clip_image002


– Speaking of Ajax, we now support Ajax History server side via ScriptManager.AddHistoryPoint() as well as client side via the Microsoft Ajax Library.  This allows you to programmatically handle the “back button” and to add permalink and deeplinking support to your existing ASP.NET applications. 
Read more, watch the videos, etc.


– Also, on the subject of Ajax, we now, out of the box fully support script combining.  This support enables server side combining and therefore compression of multiple smaller JavaScript files.  This greatly reduces page load time because compression ratios are better on one larger file and one request is quicker than multiple smaller requests.  For example, take a reasonably complex Ajax application and look at how many calls are being made via FireBug


image


Now, turn on ScriptCombining in ScriptManager  and presto!


image


Read more here, see my blog from my mix talk


Also, we just released a very cool script profiling tool that can show you just what is loaded and, in exactly the format you need for ScriptManager…


<cc2:ScriptReferenceProfiler ID=”ScriptReferenceProfiler1″ runat=”server” />


 


Visual Web Developer Express (that is the free version of VS) now supports Web Application Projects (WAP) and Class Library Projects.  This enables both ASP.NET MVC as well as Silverlight 2 development from Express!  I am relieved that I can now go back to doing all my demos in Express! 


Classic ASP development is back!  This was a very painful cut from VS2008 and I am glad it is back as many of our customers have to support older web applications.


For Client Developers


.NET Framework Client Profile – Smaller .NET Framework Redist optimized for client scenarios


image



  1. Immediate Responsiveness – Bootstrapper is tiny (200K) to enable the fastest possible response to app setup URL.   No waiting around wondering if the click registered.  No “unpackaging” UI.  After the security prompts, the user immediately is presented with the EULA.

  2. 3 Clicks from 0 to 60 – We’ve got it down to the fewest possible number of clicks (1 for running exe, 1 for cert, 1 for eula) that are absolutely required for installing both the framework and the application.   For ClickOnce apps, the user clicks accept on the EULA and when setup completes the application and the framework is automatically launched. 

  3. Integrated, Custom/Branded UI – The framework and app as well as additional components can be packaged together so that there is a seamless install experience.  We now have a single progress bar indicates status overall.

  4. Reliable – We have poured through the error logs to debug and find root causes for setup failures… We think we are a LOT better now.  We are installing less stuff and doing it in a more solid way.

  5. Install Speed – We’re at 26.5 mb.  On a clean XP machine with a typical consumer broadband connection, the setup will take approximately 6 minutes.  On faster connections, setup will get even faster (4.5 minutes). 

  6. App first run – The app first run experience is quite nice.  Because we are ngening fully during the install, nothing is competing with the app at startup, no JITing, and bits are warm.   The user sees the setup window disappear and 3 seconds later, the app splash screen followed quickly by the app itself.  Nice.

Note: some of the above will be most noticeable in the RTM of SP1….


– Significant cold start performance wins… You will absolutely notice this with larger client applications.  


– Lots of WPF performance improvements with text, graphics, animations, etc


– WPF Effects API  which enables custom hardware accelerated effects on any control or shape in WPF.  Check out System.Windows.Effects.


– WPF Designer Event Tab Support


image


– Sort properties alphabetically


image


– Margin Snap Lines makes is way easy to do great form layout in the WPF designer


image


– Better XAML debugging.  You can now easily navigation to the offending line in your XAML file


image


– New WebBroswer Control in System.Windows.Controls 


image

<WebBrowser Source=”http://blogs.msdn.com/brada” > </WebBrowser>

– A new BindingGroup in System.Windows.Data (additional databinding support)


A ton of valuable ClickOnce update



  • ClickOnce application publishers can now decide to opt out of signing and hashing the ClickOnce manifests as they see appropriate for their scenarios.


image



  • ClickOnce error dialog boxes now support links to application specific support sites on the Web
    image

  • ClickOnce applications can now be programmatically installed through a ‘Setup.exe’ while displaying a customized, branded install UX

  • Better Support for generating MSI + ClickOnce application packages

  • FireFox browser extension to support Clickonce installations using FireFox browsers

  • Design time support for setting file associations


 image


– Windows Forms get Line and Shape controls for all languages.  A new set of controls in the toolbox enable some cool shape controls for WinForms developers. 


image


– Run off a network share with local permissions – You have voted and we have listened!  We have brought managed executables in line with native code executables in how they behave when run off a network share.  Yea! 


image


For VB Developers


You can now add “XML to Schema” items to Visual Basic projects.


 


and get the great VB XML intellisense against it



 


For C# Developers


VB developers have long loved the feature of being able to get information about any sort of potential compiler error as they type.  C# developers on the other hand often have to relay on the lack of a feature (intellisence) to figure out if they are going to have a problem.  Now C# developers get clean, unobtrusive information about potential issues as they type.  A couple of examples:


clip_image002[11]


If you hover over the i in the above example it will tell you i is used before it is set.


clip_image004


if you hover over the Foo in the above example it will tell you no such method exists. 


Notice, these errors show up in the error list and are cleared automatically as you fix your code. 


All real time, as you type!  The error analysis happens at the expression level. This means that not every possible errors are caught (for example many errors outside of the method body). 


For Data Developers


Most notably we have fully plumbed SQL Server 2008 support throughout VS 2008 and .NET Framework 3.5… all the new datatypes are supported, etc.  


ADO.NET Entity Framework


The ADO.NET Entity Framework is the next evolution of ADO.NET, raising the level of abstraction at which programmers work with data, and allowing the database structure or data source to evolve without significant impact to the application code.


Rather than coding against rows and columns, the ADO.NET Entity Framework allows the definition of a higher-level Entity Data Model over your relational data, and allows developers to then program in terms of this model. Developers get to deal with the data in the shapes that make sense for the application, and those shapes are expressed in a richer vocabulary that include concepts like inheritance, complex types, and explicit relationships.


image


Use LINQ to Entities with the Entity Framework for queries that help create easy to maintain code that retrieves and works with strongly typed data objects or business entities.


image


There is a new asp:EntityFrameworkDataSource control which can be easily configured..


image

See more information on ADO.NET Entity Framework on MSDN


ADO.NET Data Services:


The Microsoft ADO.NET Data Services framework provides a first-class infrastructure for developing the next wave of dynamic Internet applications by enabling data to be exposed as REST-based data services that can be consumed by client applications (Windows Forms, WPF, ASP.NET, AJAX, Silverlight, etc.) in corporate networks and across the Internet. Easily build applications using a comprehensive set of .NET libraries and client components, accessing data through uniform URI syntax and using standard HTTP verbs to operate on the resource.  Use the Data Services client support and LINQ to program to your service through strongly typed .NET classes.


ADO.NET Data Services provides a framework to build data services for relational data sources, such as Microsoft SQL Server, MySQL, DB2, and Oracle, using the built-in support for the ADO.NET Entity Framework, or for non-relational data sources using the pluggable provider model. 


You can download the Ajax client library for Data Services here


image


image


ADO.NET 3.5 Provider Support


The list of provider writers is available on MSDN.  All up, there are 8 different companies writing 22 different providers against 14 different back end databases committed to have public availability within 3 months of RTM.    Here is a sampling:



IBM DB2 data server and Informix Dynamic Server (IDS) databases
MySQL databases
Oracle databases
PostgreSQL database versions 7.3+ and 8.x
SQLite databases
Sybase
VistaDB databases


For Service Developers:


Improvements in the areas of performance and scalability, such as:



  • Scalability increases of 5X – 10X for Web-hosted applications  in IIS7

  • Significant performance improvements in Work Flow Designer  for projects with a large number of activities.


Improvements in the area of user experience, such as:



  • Enhanced TestClient support to target a richer and broader set of WCF services, while providing the option to run the TestClient in a standalone fashion.

  • New Hosting Wizard for WCF Service projects

Improvements in the area of productivity, such as:



  • Improved Usability of DataContract Serializer, via the automatic serialization of types without the need to annotate the types with [DataContract] and [DataMember] attributes.

  • Improved Debugging in Partial Trust by adding support for accessing Event Logs when running Partial Trust

  • Improvements in REST capabilities of WCF by making it easier to use the UriTemplate feature, adding support to specify defaults and providing greater control over the UriTemplate.  The addition of the ServiceDocuments object model now allows easier publishing of APP metadata and easier consumption of service document for REST clients

Improvements in the area of data platform, such as:



  • Support Entity Fx entities in WCF contracts

Support for renaming Services in VS – if you invoke Rename on a WCF Service VS will rename all of the artifacts associated with that service (config, .svc file, etc.). 


image image image

         <service behaviorConfiguration=WebApplication7.Service1Behavior
name=WebApplication7.CoolNewService>

In Closing


I hope you are as excited as I am about SP1 and you go download the beta and let us know what you think!  The window is really tight for feedback, so anything you can get us soon would help.  I am particularly interested in compat issues… as this is an SP, we are working hard to ensure it works with all apps.     As this is an SP, it does update core parts of the tools and runtime stack, so I would NOT recommend installing on your production machine until the final RTM later this year.  Rather use a VPC our test machine (that is what I am doing now).   Related to this, there is a known issue that the Silverlight 2 tooling will not work with SP1 beta… we are fixing that for SP1 RTM of course, but it is a short term issues. 


Download links:



Update (5-14): Visual Studio 2008 SP1 Beta Resets Settings to Defaults


We recently found a bug with the VS2008 SP1 install… when installing Visual Studio 2008 SP1 Beta on top of Visual Studio 2008, VS user settings are reset to default VS settings.  This bug is caused by code originally put in place to reset settings when upgrading minor version of VS, for example from VS Beta1 to VS Beta2 so that VS would have the latest default profile settings.  VS does migrate settings from VS 2005 to VS 2008.  VS certainly should keep user settings when upgrading to a service pack, which will be fixed for SP1.


Please backup your VS settings before upgrading to VS 2008 SP1 Beta.


Before installing SP1 Beta1, use the “Export Settings” wizard (“Tools” menu, “Import and Export Settings…”) to save your current settings, then install SP1 Beta1, and then use the wizard to import your settings back into VS.


This issue will be resolved for the final release of Visual Studio 2008 SP1 where settings will be maintained when upgrading.


We sincerely apologize for the troubles this has caused


Comments (66)

  1. CoqBlog says:

    Ceux qui ont lu mon post concernant l’execution d’application .NET depuis un partage réseau et l’appel

  2. E’ stata rilasciata la beta 1 della SP1 di .NET 3.5. Oltre alla normale correzione di&#160; bug, questa

  3. Jun Meng says:

    When will VS 2008 support BI solution for SQL Server 2005? Or never?

    With supporting projects, will VS Express be much similar to VS 2008 for development purpose?

  4. Gold Coast says:

    If you keep up with multiple Microsoft technology bloggers, today is one of those days where you’ll see

  5. If you keep up with multiple Microsoft technology bloggers, today is one of those days where you’ll see

  6. Chris Koenig says:

    For those of you looking for it, ScottGu published a blog post earlier today announcing the BETA release

  7. LA.NET [EN] says:

    You can get them from here (VS) and here (.NET). I&#39;m reading what&#39;s new on Brad Abrams post and

  8. ASPInsiders says:

    You can get them from here (VS) and here (.NET). I&#39;m reading what&#39;s new on Brad Abrams post and

  9. In case you haven&#39;t heard, Microsoft has formally announced plans to provide a service pack (SP1

  10. Alun Jones says:

    I got excited when you said "For Service Developers" – sadly, it’s for WEB service developers, not developers of native services. Is there anything new for C++ / Win32 developers?

  11. ChrisKoenig says:

    For those of you looking for it, ScottGu published a blog post earlier today announcing the BETA release

  12. Brad,

    Any news on the fabled DatePicker for WPF? I remember seeing that on ScottGu’s roadmap and thought it might be part of SP1.

    Matt

  13. Sam Gentile says:

    ScottGu makes it official today. There is a whole lot of stuff here, and I think its safe to say that

  14. beqiraj.net says:

    Visual Studio 2008 Express Edition Service Pack 1 Beta is now available!

  15. The beta of WPF 3.5 SP1 is now live. This is way more than a service release, even if it’s named as such.

  16. From ScottGu’s Blog: "Earlier today we shipped a public beta of our upcoming .NET 3.5 SP1 and VS 2008

  17. Brad Abrams announced today the release of SP1 Beta for VS2008 and .NET 3.5. He has an excellent write

  18. A partir de hoy (Lunes 12 de Mayo) está disponible para la descarga la versión beta de lo que será el

  19. BradA says:

    >> I got excited when you said "For Service Developers" – sadly, it’s for WEB service developers, not developers of native services. Is there anything new for C++ / Win32 developers?

    Alun, thanks for you comment… we have done some good stuff for Win32C++ developers.. check out the blog here:

    http://blogs.msdn.com/vcblog/archive/2008/05/12/visual-studio-2008-service-pack-beta-now-available.aspx

  20. BradA says:

    >>When will VS 2008 support BI solution for SQL Server 2005? Or never?

    With supporting projects, will VS Express be much similar to VS 2008 for development purpose?

    Jun – I don’t know about BI projects… i will have to look into it.. Send me an email (see the "email" link above).    

    Yes, VS Express is getting more powerful, but the full VS SKU continues to be best for team development scenarios… so there is still value there!

  21. BradA says:

    >>Any news on the fabled DatePicker for WPF? I remember seeing that on ScottGu’s roadmap and thought it might be part of SP1.

    Yes, Matt — it is in the works.  It is not likely to make SP1 RTM… but you will see it sometime thereafter.  

  22. Visual Studio 2008 and .NET Framework 3.5 Service Pack 1 (정보) Visual Studio 2008 and .NET Framework 3.5

  23. The best all-up run-down of all the features (WPF, ASP.NET, WinForms, VS etc.) can as ever be found on

  24. Matt Casto says:

    I’m concerned about the changes to the DataContract Serializer.  Will my existing classes now have public members serialized that I intentionally did not decorate with [DataMember]?  If so, that sounds like a breaking change.

    Otherwise, I’m excited about a lot of these features.  It’s nice to see Click Once getting improvements.

  25. From all that I have seen Brad Abrams as the best wrap up of what is in SP1 at hi blog post Visual Studio

  26. As I mentioned in An old Visual Studio problem rears its ugly head back in February, I’ve been looking forward to SP1 for Visual Studio 2008 and NET Framework 3.5. Why? These are supposed to fix most of the problems I’ve been having with Visual Studio,

  27. As ever, Scott Guthrie has the most comprehensive announcement blog about Visual Studio 2008 and .NET

  28. Mabsterama says:

    So if you’re a software developer and haven’t been living under a rock all this week, by now you’ve probably

  29. BradA says:

    >> I’m concerned about the changes to the DataContract Serializer.  Will my existing classes now have public members serialized that I intentionally did not decorate with [DataMember]?  If so, that sounds like a breaking change.

    Matt  – I talked with the WCF folks and this does seem to be the case.   the class will be serialized by default, unless:

    – The Type is not public OR

    – Does not have a parameter-less constructor OR

    – Declares other serialization behavior, e.g. has [Serializable], implements ISerializable etc.

  30. SpenceN says:

    Brad, and chance of some more details regarding the "additional data-binding support" offered by BindingGroup?

  31. Danny Palmaerts says:

    Great job done, this shoud be dotnet framework 3.6 instead of 3.5 SP1.

    One question the content of the client framework  profile has this been defined?

    As an example WinForms.Integration assembly is not included … will this also be like this in the RTM bits?

  32. BradA says:

    >> Great job done, this shoud be dotnet framework 3.6 instead of 3.5 SP1.

    One question the content of the client framework  profile has this been defined?

    As an example WinForms.Integration assembly is not included … will this also be like this in the RTM bits?

    Danny – thanks for your comments…

    Yes, the list is defined, I will see if we can get it posted if it is not already…

    And, yes WinForms.Integration will be included in RTM…

  33. As I mentioned a few days ago , with .NET Framework 3.5 SP1 Beta we are taking some MAJOR steps toward

  34. Narayana says:

    Great Developments.. More and more convenience for Developers and users.. Thanks for listening to the feed backs and making modifications at lightining speed.

  35. Welcome to the forty-fourth Community Convergence . I want to remind every one that the C#, VB and dynamic

  36. Justin Van Patten from the BCL Team has put out an official list of what assemblies will be included

  37. Justin Van Patten from the BCL Team has put out an official list of what assemblies will be included

  38. Recently, beta versions of Visual Studio 2008 SP1 and the .NET Framework 3.5 SP1 were released (see announcement

  39. Koka says:

    As far as I’m concerned – WCF services configured by default  in 3.5 were faulty and poor in terms of performance and scalability – I wonder if sp1 solve these problems ??

  40. BradA says:

    >> As far as I’m concerned – WCF services configured by default  in 3.5 were faulty and poor in terms of performance and scalability – I wonder if sp1 solve these problems ??

    Koka – I’d love to learn more about the issues you are seeing with the current WCF service configurations..  The default binding that’s created for WCF projects is wsHttpBinding, chosen for its default interoperability, reliability, and security.  There are more performant bindings (e.g. netTcpBinding, netPipes) which one could use, especially if you begin to strip out security, but this would be appropriate for a narrower set of scenarios which we wouldn’t want the template to create by default.  

    Could you drop me a line (brada-at-microsoft-dot-com) with the details?  I’d love to have the feedback!

  41. Koka says:

    Brad, thanks a lot for your post. Maybe I’m exaggerated a bit, but default settings of WCF bindings are inappropriate for real enterprise apps.

    Here are some links with description

    http://jeffbarnes.net/portal/blogs/jeff_barnes/archive/2007/09/27/wcf-don-t-rely-on-default-configuration-values.aspx

    http://davidpallmann.spaces.live.com/blog/cns!E95EF9DC3FDB978E!260.entry

    So, maybe sp1 would provide some new default settings, allowing to use bindings out-of-the-box )

    Later, I’ll provide some more info about WCF problems.

  42. Koka says:

    Well, Brad – some more info about WCF "bad" default settings. Here – http://yet-another-wannabe.blogspot.com/2008/02/default-good-wcf-vs-aspnet-web-services.html

    Russian tech-experts reported test results, where service, based on WCF over HTTP (with default binding config), was completely destroyed by default ASP.NET web service.

    As far as report is in Russian, I’ll try to summarize it for you:

    1. In terms of pure speed – ASP.NET web service was approx. 16 times faster (!!!!)

    2. In terms of stability – ASP.NET web service was stable and therefore predictable, on the opposite – WCF service showed almost chaotic behavior

    3. During testing of WCF service there were some memory leaking (!!!) – from 1.5 mb at the beginning up to 105 mb. (ASP.NET service memory consumption was stable – about 10mb)

    So, U see – too much questions to default configuration. I guess that all of these troubles can be solved via some tweaking of WCF config, on the other hand – it’s obvious that default config can lay down any enterprise server (and therefore it looks dangerous)

  43. Programming says:

    As I mentioned a few days ago , with .NET Framework 3.5 SP1 Beta we are taking some MAJOR steps toward

  44. Somebody says:

    Hey, Brad – thanks for sharing… BTW – is there any redistributable package of VS sp beta1? – I’ve tried to get it, but no luck….

    I don’t wanna mess around and wait till it downloads each time I start installing it 😉

  45. BradA says:

    >>>Hey, Brad – thanks for sharing… BTW – is there any redistributable package of VS sp beta1? – I’ve tried to get it, but no luck….

    Somebody — do you mean a redist for the framework?  Does the one here work for you?

    http://www.microsoft.com/downloads/details.aspx?familyid=8C36ACA4-E947-4760-9B05-93CAC04C6F87&displaylang=en

  46. Somebody says:

    Brad, no – I mean full msi for studio sp 1 itself! Not this little nonsense, that starts downloading itself from the web! Any cure for it??

  47. Gabriel says:

    It to like the background compiling a lot, displaying current errors. But in the web projects it displays errors which aren’t errors really. This is mostly happening with code related to User Controls (ascx).

    If you double click such an error, it load the .cs file from the .aspx file, shows redlines under the errors for a brief second and then concludes that these aren’t errors and removes them from the error list.

    This is quite unhandy since you get a full list of errors while in fact you might only have 1 or 2, or none 😉

    Anyone else having this?

    Gab

  48. The best all-up run-down of all the features (WPF, ASP.NET, WinForms, VS etc.) can be found on Scott

  49. Коллеги озадачили меня вопросом – как в Visual Studio Code Analysis поменять пороговые значения для метрик

  50. BradA says:

    Koka – On the WCF default template issue… I spoke to the WCF team on this and here is there response..

    1) Performance

    By default, WsHttpBinding enables Message security, which is expensive.  However, it is very important for this to be the default value so that enterprise customers don’t unknowingly expose security holes in default deployments.

    A more accurate comparison between ASMX and WCF (i.e. similar settings) can be found in this whitepaper, which uses BasicHttpBinding:

    http://msdn.microsoft.com/en-us/library/bb310550.aspx

    2)Stability

    It is unclear what data upon which this observation was made.  Some of the “chaotic behavior” can likely be attributed to failing to call proxy.Close() after each invocation (see below, also).

    3)Memory Consumption

    Based on our analysis of the code posted on the blog, we believe this could be attributed to not calling proxy.Close().  It is certainly not a memory leak (the GC will collect the proxy objects)…

    We hpoe this helps, if not, please do send me an email (brada-at-microsoft-dot-com)

  51. I had a bit more time on my travels , so I cooked up this brief introduction to Dynamic Data .&#160;

  52. Todd Kohl says:

    If you guys are looking to host .NET3.5 site with LINQ technology, you may consider http://www.asphostcentral.com

    I have my .NET3.5 site hosted there.

  53. Justin Van Patten from the BCL Team has put out an official list of what assemblies will be included in the RTM of the .NET Framework Client Profile. The usual suspects are there, and as expected, server-side technologies like ASP.NET are not. Note that

  54. Eli Cohen says:

    When will WPF 3.5 SP1 RTM be available?

  55. BradA says:

    I am not sure we have annonced a date, but it is within the next couple of months.

  56. ASPInsiders says:

    NOTE: If you haven’t read the first post in this series, I would encourage you do to that first , or

  57. NOTE: If you haven&#39;t read the first post in this series, I would encourage you do to that first

  58. Da poco &#232; stata rilasciata la Service Pack 1 del framework .NET 3.5 .&#160; Sebbene sia presentato

  59. ScottGu makes it official today. There is a whole lot of stuff here, and I think its safe to say that this is &quot;stretching&quot; the concept of a Service Pack. Scott’s post has a lot of detail. The big ticket items are the Entity Framework and Astoria

  60. BabySmash says:

    NOTE: If you haven&#39;t read the first post in this series, I would encourage you do to that first

  61. A couple of years ago we heard clear feedback from folks that they wanted to enable a very clean experience

  62. What changed in Dot Net 3.5 SP1?