Team project collectionOne of the new features is the Team project collection is TFS, while this sounds great, I fail to see where this is a big step up from other source control systems like clear case, subversion, etc. that have been doing this from the beginning, is this Microsoft playing catch up? or am I missing something.
Project templatesWith so many more project types in VS2010 there are a lot more project templates, including Database projects, something to keep in mind is the DB projects only support SQL Server 2005+, sorry SQL Server 2000 people, an interesting side note, you can get a plug-in from Quest software for supporting Oracle.
Extension managerOne of the long awaited features for VS is the Extension Manager, as a user you can manage what extensions you have on your system and browse for new extensions in the online gallery. While I really like this feature, lets face it, Microsoft was really late to the party with this, seeing that most other IDEs (Eclipse, Sharp Develop, Mono Develop, etc ) have been doing this for years.
Multi framework targetingVS2010 now has multi framework support, now vs2008 did support .NET 2.0, 3.0, 3.5 but under the hood it's still the 2.0 CLR. In VS2010 you can run code on the 2.0 and 4.0 CLR, this was something the Microsoft reps where very proud of. Unfortunately this is another area where Microsoft was late to the party where a lot of the other IDEs have been supporting multiple frameworks for years and it get even more prevalent when you get outside the .NET stack.
IDE improvementsThe IDE improvements in VS is one area where Microsoft is a leader. Where VS2008 added refactoring tools VS2010 improved upon them, but you're still going to have to pull ReSharper out of my cold dead hand. A quick overview of the IDE improvements in VS2010
- improved refactoring tools
- improved debug tools
- new IDE profiles (environment templates)
- improved MVC support
- performance monitoring
- Local deployment build with end to end packaging for web application
- improved SharePoint development integration
.NET 4.0 CLR improvementsWith VS2010 comes the 4.0 CLR, not only did they improve the performance of the framework they also made strides to make better use of multi core systems. Lets face it multi threading in general is painful, to solve this .NET 4.0 has an improved threading pooling engine, they now fully support the functional language F# out of the box, and have full support plinq. Plinq lets you spread the work of a linq Query across multiple cores by figures out at runtime the most optimize query solution. To use plinq all you have to do is add AsParallel to your linq query and .NET takes care of the rest.
Code Contracts was added to .NET to provide a non language specific way to express coding assumptions. Basically you can specify preconditions, post conditions, and object invariants in order to improve testing via runtime checking and enable static contract verification, how this affects me, I’m not sure yet.
Improved Testing toolsAn area that has come a long way in VS2010 are the testing tools, unfortunately some of the more interesting tools are only available in VS2010 Ultimate, but Microsoft did add a stand alone testing product called Microsoft Test and Lab Manager, this lets you do most of your test management with out VS.
Testing features in VS2010:
- UI testing tools that allow you to code/record UI tests, this looks kind of like the Art of Test (Telerik has a re-branding) tool for Web testing but this supports all .NET UIs
- Test runner monitors what your testers are doing by allowing you to watch what's going on while testing in order to better track what the testers are doing, this includes customizable data collection to filter out irrelevant data, the ability to add video of how this bug was produced that can be added to the defect tracking system, and displays the step by step test steps to the testers .
- Virtual system manager (Hyper-V is supported but VMware and Virtual box support is expected post RTM) for setting up and managing testing environments.
- PEX- automated white box testing tool
- IntelliTrace is basically a trace and profile tool
- The test impact analysis tool specifies what test are going to be affected by code changes, for large code bases with lots of tests this allows more targeted testing for TDD.
- Test case management
- Create UI tests just like in VS2010
- Test runner for monitoring what your doing in the test just like in VS2010
- Can import test cases from Excel
- Can configure testing data including network connectivity (throttling connectivity )
Team Foundation Server
TFS has an updated admin tool http://www.codeplex.com/TFSAdmin that generally improves managing your server and users. To better fit in the enterprise level space TFS also added clustering with load balancing and build server pooling; for small shops this may not be that big of a deal but it's nice to know for if and when you're no longer a small shop.
One of the major complaints with TFS 2008 was the build system was painful to use and almost required a dedicated builder, this has been supposedly fixed with 2010 by moving to a work flow based build system, I'm waiting to see if this actually fixes the problem.
An interesting new addition Excel Services integration in TFS. This allows reporting, updating stories, tasks, test cases, etc. with out having to use the Test lab or VS2010. The basic idea is the business people can use a tool they are familiar with to interact with TFS. Also the excel service integration doesn't require any CALs to use.
To my disappointment there is not a migration tool to move from other source control systems (subversion) to TFS yet, but supposedly it's on the way, so if you're currently using subversion your going to have to wait.
Agile Software Development with TFS
Some of the improvements to TFS are in it's support of agile development, with project templates for agile out of the box and the ability to customize your tickets (they are just xml). All work items are queryable using Excel Services allowing your product owners and scrum master to know exactly what is going on at any time.
The build server now supports ATDD (Acceptance Test Driven Development) and tie in UI tests, Unit Tests, Integration Tests, etc.
An interesting addition is the ability to create a team portal and wiki in Share point automatically.
I'm excited to start using VS2010 all in all I'm impressed with what it dose and how it works.