ALM with SharePoint 2010 and Visual Studio 2010 Paul Yuknewicz Lead Program Manager, Visual Studio paulyuk@microsoft.com Session Objectives and Takeaways • Session Objective(s): – Discuss why ALM is important – Review ALM themes in Visual Studio 2010 – Show how ALM can be used with SharePoint solutions • Key Takeaway – SharePoint developers & testers can use the ALM features in VS2010 Why ALM? Idea is here Solution is here Proactive Project Management − Optimized for Iterative Development − Ensure productivity and react to potential risks before they happen − Understand Project Health − Detailed reports let you understand what is “Really” going on with the project − Manage Projects Your Way − Use Microsoft Project or Excel based agile planning documents to keep control of your projects Write Better Code - Dependency Diagrams - Understand code dependencies visually and understand where to make changes − Gated Check-In − Stop build breaks before they happen − Code Analysis and Code Metrics − Help you find and fix potential problems before you make them Testing Done Right − Test and Lab Manager − Manual Testing for the 21st century − Plan, Manage and Execute tests from one place − Virtual Test Environments − Reduce the overhead of maintaining physical test environments − Share Virtual environments between team members − Web and Load Testing − Know your code is ready for the big time − Measure performance under real time load conditions and ensure that your applications are ready for release Spend Less Time Debugging − IntelliTrace™ − Make “No-Repro” History with Actionable Bugs − Test Impact Analysis and Code Coverage − Run the Right Tests and only the Right Tests − And know you have really tested you code − Coded UI Tests − Automated regression tests let you find bugs earlier Application Lifecycle Fix Bugs (repeat as necessary) Developer Machine Team Foundation Server Development F5 Deploy Check In Nightly Build -ORContinuous Integration Testing Staging TFS Build Server Open/Close Bugs SharePoint Projects Warm-blooded user testing Build WSP Automated testing Deploy using PowerShell SP2010 DLL’s Run Tests ? Application Lifecycle Team Foundation Server Developer Machine F5 Deploy Check In Development Nightly Build -ORContinuous Integration Testing Staging TFS Build Server SharePoint Projects Build WSP SP2010 DLL’s Deploy using PowerShell Run Tests ? Application Lifecycle Team Foundation Server Staging Open Bugs Warm-blooded user testing WSP Application Lifecycle Fix Bugs (repeat as necessary) Team Foundation Server F5 Deploy Developer Machine Development Nightly Build -ORContinuous Integration Testing Staging TFS Build Server SharePoint Projects Build WSP SP2010 DLL’s Deploy using PowerShell Run Tests ? Application Lifecycle Team Foundation Server Staging Close Bugs Warm-blooded user testing WSP Application Lifecycle Fix Bugs (repeat as necessary) Developer Machine Team Foundation Server F5 Deploy Check In Development Nightly Build -ORContinuous Integration Testing Staging TFS Build Server Open/Close Bugs SharePoint Projects Warm-blooded user testing Build WSP Automated testing SP2010 DLL’s Deploy using PowerShell Run Tests ? SharePoint ALM Specifics • Team Build – Using TFS TeamBuild for SharePoint projects http://msdn.microsoft.com/en-us/ff622991.aspx • Unit Testing – Pex/Moles – Microsoft Research project http://research.microsoft.com/en-us/projects/pex/ http://channel9.msdn.com/posts/matthijs/Pex-Unit-Testing-ofSharePoint-Services-that-Rocks/ http://research.microsoft.com/enus/projects/pex/pexsharepointbehaviors.pdf – TypeMock – Commercial product SharePoint ALM Specifics • Integration Testing – Currently MSTest is .NET 4.0 only – Nunit or Xunit can be used – Coded-UI test work well also • IntelliTrace – Not supported for 64-bit during F5 – FIXED in SP1! – Capture IntelliTrace log in MS Test Manager – Replay captured .iTrace logs in VS SharePoint Platform Improvements • BindingRedirect in manifest.xml – Redirect existing code to new assemblies • Support for versioned feature upgrades – Declarative & Programmatic actions on upgrade • Feature Upgrade Query Object Model – Determine what features are installed and their versions Resources Dev center: http://msdn.com/sharepoint Team Build How-To: http://msdn.microsoft.com/enus/library/ff622991.aspx