The goal of this release was to reduce the complexity of building, managing, and deploying all types of applications and by such giving developers more time to focus on solving development challenges. By supporting several languages it will allow programmers of all backgrounds to rapidly create superior end-user experiences.
So what is new in Visual Studio 2008?
• .NET Framework 3.5 – builds on the .NET Framework 3.0 with enhancements to feature areas such as the base class library, Windows Workflow Foundation (WF), Windows Communications Foundation (WCF), Windows Presentation Foundation (WPF), and Windows Cardspace, as well as LINQ, ASP.NET AJAX, and other improvements.
• AJAX Support – now provides developers with all the tools that is required to create quality AJAX enabled web applications. ASP.NET AJAX improvements include content linking support, JavaScript Library enhancements, and browser history support. It also makes Silverlight easier to integrate into ASP.NET Projects. Adding AJAX functionality to a site reduces or eliminates the need for the page to be reloaded every time the users click on a button or select an item.
• LINQ Support – also known as Language Integrated Query will allow developers to query data sources like ADO.NET, SQL, and XML. Included are three LINQ implementations: LINQ to SQL which allows users to write queries to retrieve and manipulate data from a SQL Server, LINQ to XML which provides a new way to construct and write and read XML data in the .NET language of choice, and LINQ to Datasets which makes it easier and faster to query data cached in a dataset object. LINQ generally out performs SqlDataAdaptor and reasonably close to SqlDataReader. Considering the additional benefits of LINQ, this is great news.
• Targeted .NET Frameworks – now allows you to target the .NET Framework that you want. In Prior incarnations of Visual Studio, you could only target the released version. VS 2002 only worked with .NET 1.0, VS 2003 only worked with .NET 1.1 and VS 2005 only worked with .NET 2.0. Now you have a choice. You can select between 2.0, 3.0 and 3.5. This means when you update your existing application to work with VS 2008, you can stay with the .NET 2.0 Framework and so your clients won't have to upgrade their system. If at some point later you want to update to .NET 3.5 select it on the properties page. Unfortunately, because of significant CLR engine changes, you cannot go back to .NET 1.x.








Article comments
1 - Tyler Folsom
MSVC 2008 has a serious flaw: it produces non-portable binaries. I am used to writing a simple program and being able to copy it to a customer's computer and execute it. You can't do that anymore. Copying the EXE and DLLs to the target directory doesn't work anymore The problem has to do with DLLs. You get programs expecting different versions of DLLs, so Microsoft did something about it. All DLLs have been moved to the WindowsSxS directory and given names decorated with arbitrary strings. OK, I can live with figuring out how to build an install project, running it, and then installing the package on the target computer. Problem is, that's not enough. Once you do the installation and try to execute the program you get an obscure error message about initialization failing. It suggests that you reinstall the program, but of course that doesn't help.
There are three work-arounds:
1) Install the VC run-time on the target computer. The run-time is free, but it is a 92M download and takes a while to install. People who never program should not need a compiler on their computer.
2) Use static linking of the run-time libraries, which will blow up your program size.
3) Use MSVC 2005.
The third solution is the most elegant.
The 2008 version of Visual Studio has added some new goodies on the Tools and Test tabs, which I never use. It is set up to allow access to the web and databases. I don't use any of that either, since I write scientific programs for use in-house. Before installing VC 2008, make sure that the new features give you value that outweigh the non-portability of the produced executable code.