Visual Studio and Team Foundation Server at Build 2015
It’s conference season – //Build/ is this week and Ignite is next week. As you might expect, we have a TON of stuff to share so I’ll get right to it.
Visual Studio & Team Foundation Server 2015 Release Candidate
This week released the release candidates for both VS 2015 and TFS 2015. Both are “go-live” releases and are reliable enough to be used in production environments. At the same time, neither are finished so we know there are some remaining issues that we plan to fix between now and the final release.
- Download Visual Studio and Team Foundation Server 2015 RC
- VM of Visual Studio 2015 RC in Azure
- Visual Studio 2015 RC Release notes
- TFS 2015 RC Release notes
- Visual Studio 2015 RC KB Article
- TFS 2015 RC KB Article
Visual Studio & Team Foundation Server 2013 Update 5 Release Candidate
At the same time, we are providing a release candidate for VS and TFS 2013 Update 5. For the most part these releases have bug fixes but they also have some features/changes that help with the migration to 2015. The best example are some changes that make VS 2013 work better when a Team Project on TFS 2015 is renamed.
- Download Visual Studio 2013 Update 5 RC
- Download Team Foundation Server 2013 Update 5 RC
- Visual Studio and Team Foundation Server 2013 Update 5 RC Release Notes
- Visual Studio and Team Foundation Server 2013 Update 5 RC KB Article
We also plan to produce a new VS 2012 Update closer to the VS 2015 RTM. Stay tuned for more on that later.
The rest of this post is mostly going to talk about new features in Team Foundation Server and Visual Studio Online. For more on Visual Studio, you can also check out Soma’s blog post.
Visual Studio Code
Perhaps the most surprising announcement we made at //Build this week is the new Visual Studio Code cross platform editor/development tool. It runs on Windows, Mac and Linux and supports many languages. The most impressive thing about it is the integrated debugger experience in a lightweight cross platform editor. Check it out.
Team Project Rename
6,156 votes and 178 comments later, it’s here (both on VSO and in the TFS 2015 RC). I know it’s been a long time coming and I appreciate everyone who has been both patient and persistent.
Read my blog post on Team Project rename for more details.
Our next version of the build system is available in the RC and is in private preview on VSO. It’s been in private preview on VSO for a couple of months now and Chris wrote a blog post highlighting some of the key features: Easy customization, Cross platform, Real-time build status, Build definition diffing and auditing, Build.vnext is still in private preview but will be entering public preview shortly. If you want access before then, you can send me mail at bharry at Microsoft dot com.
We’ve continued to work on it and have some cool new things to share.
We’ve added support for:
- Auto updating build agents – There’s no need to run around and update all your build agents any more. The server/service will automatically distribute agent updates. This won’t change any of the tools (compilers, etc) just the build automation agent.
- Seamless integration with XAML builds – Build.vnext definitions and the earlier XAML build definitions now share the same Build tab and can coexist happily.
- Build Java projects – Ant, Maven, Gradle.
- Run unit tests and publish results – We now have a task to run unit tests using just about any framework you like – NUnit, MSTest, JUnit, etc. and publish the test results back to VSO/TFS and include them in the build report.
- Support for Xamarin – We’ve added support for building Xamarin apps for both iOS and Android. And we’ve added support for running tests on Xamarin’s Test Cloud as part of the build. Shortly, we will also enable publishing the Test Cloud test results back to VSO/TFS.
We’ve been working to more loosely couple our deployment automation capabilities with our Release Management feature. In this change we’ve combined our build automation pipeline and deployment pipeline, using the same extensibility model for both. That means the same deployment tasks can be seamlessly used as part of a simple build/deploy workflow or as part of a larger release management workflow with multiple deployments, validations, approvals, etc. This greatly simplifies our story and improves flexibility.
Work we’ve done in deployment includes:
- Deploy to cloud or on premises – You can deploy applications both to cloud and on premises environments.
- Auto-provision cloud environments – Using Azure, you can automatically provision the hardware as part of the deployment process. Ultimately we’ll enable this on prem as well by bringing it together with our existing lab management capabilities on top of SCVMM.
- Support for deployments to any platform – You can use our deployment tasks to orchestrate cross platform deployments with either Chef or Powershell DSC on Linux.
- Docker support – We have support for doing deployments using Docker.
If you need a deployment solution that goes beyond just simply auto deploying as part of a build, our release management capabilities will give it to you. With release management, you can orchestrate deployments across multiple environments, perform validations and approvals at each stage, track what versions of your app are deployed in each environment, manage configuration differences between the various environments, and more.
Today, we have a release management solution that is available with both VS Online and TFS 2013. We’re continuing to support that solution but, at the same time, working on some significant improvements that improve openness, cross platform support, ease of use and deliver on the next set of capabilities customers have been asking us for.
I’m going to describe the work a bit here because it’s an important part of our DevOps solution but unlike what I’ve talked about above, it’s not quite available yet. It will be available on VS Online in private preview this summer and in on-premises TFS in the TFS 2015 Update 1 timeframe. Until then, our current version of Release Management will continue to work both on-prem and in the cloud.
- Browser based release management experience – We’re introducing a “Release” hub in our web experience that allows you to manage releases from anywhere without any client software installed.
- Orchestrate across multiple environments – A release definition can describe a set of environments, a deployment sequence and a set of validations (like automated tests) and approvals that are executed at each stage. This allows you to manage the flow of updates from check in through to production deployment in a controlled fashion.
- Simple and easy to compose automation pipeline – As I mentioned above, release management uses the same simple, extensible pipeline and task mechanism that Build.vnext does but wraps it in an experience for release pipelines.
- Auditing/Traceability – All release and deployment operations are traced and audited – providing a clear picture of what succeeded and failed, who approved deployments and who made changes to the release definition and what changes were made. We also provide and easy way to see the state of each environment and what software is deployed on it.
- Open architecture – Our release management features don’t rely on you using all the rest of VSO/TFS. You can use just release management even if you are using SVN, Jenkins, etc.
Testing plays a critical role in any modern DevOps release pipeline. Above, as part of build, I’ve talked about running automated unit tests and reporting results but a proper validation needs to run tests against the deployed application as well. We’re doing a bunch of work both in TFS 2015 and on VS Online to enable these scenarios easily.
- Functional testing service – We have a new service that works in concert with release management to automatically deploy test agents and tests. It will then execute those tests, possibly in parallel and report the results back to TFS/VSO. These functional tests can be VS Coded UI tests, Selenium tests, Appium tests and more… The results of these tests can be used in the release pipeline to automatically validate deployments.
- Load tests – We now support running load tests as part of the release management pipeline so that you can validate performance, scale and reliability as part of your automated release sign-off process. We’ve recently upgraded the VSO cloud load test service to support runs of up to 200 cores, enabling very large scale load tests.
- Test analysis – We’ve provided a new test analysis experience in the test hub that allows you to review/investigate test results, file bugs, etc. This is linked directly from the test results you find in both the build and release reports.
Application Insights is an analytics solution for any app that brings together Application Performance Management and Usage Analytics. It provides development teams with a comprehensive 360° view across their application’s performance, availability and usage. Originally designed to provide the best analytics experience for ASP.NET and Windows app developers, Application Insights comes with built-in support for a wide set of platforms. It includes J2EE for server apps, supporting cloud and on premise deployments, as well as iOS and Android for device apps, leveraging the HockeyApp acquisition. Application Insights provides intuitive views and powerful tools to allow fast troubleshooting and diagnostics, helps analyze user activity and adoption, and prioritizes future investments accordingly.
The big news is that Application Insights is now in Public Preview. What does that mean? It’s been around for a while now. It’s an indication that we’ve reached a level of completeness and readiness that we’re ready for everyone to start trying it out. We also have announced the business model and will begin introducing it in the next few weeks (stay tuned for more on that).
Of course, along with this comes a ton of improvements worth mentioning.
- Interactive Data Correlation with Filters & Segmentation
- Support for Java Web Apps & Services
- Support for iOS & Android Mobile Apps
- Support for Windows 8.1, Windows Phone 8.1 and Windows 10 Universal Apps
- Support for OSS apps in Node.JS, PHP, Python, Ruby, etc.
- 8 more global locations for Availability Monitoring (now 16 in total)
- Crash Diagnostics for Mobile Apps (HockeyApp Integration)
- Continuous Data Export to Azure Blob Storage for any custom analysis you want to do
- AI enablement for Eclipse, IntelliJ, Android Studio & XCode IDEs
- Integrated support for Azure Web Apps & Azure VMs
- Out of box integration with Windows 10 Dev Portal
As I mentioned, we’ve announced the planned business model for Application Insights so you know what using it is going to cost you. There’s a couple of key points to the model that are worth mentioning.
- We have a nearly feature complete free plan that allows you to try out the full range to telemetry and analysis offered by Application Insights. It’s completely free up to 5 million telemetry data points per month. There is no time limit. You can upgrade to paid plans to get more telemetry data points, longer retention access to the data export feature, etc.
- We tried to create a simple pricing model. We think it’s the simplest in the industry. It really just comes down to how much telemetry you want to collect per application. The more telemetry you send, the more it costs. We don’t differentiate between different kinds of telemetry.
Note this table shows the full retail price along with the half price discount during the private preview. You can get more details here.
Go to our Application Insights page to get started.
I’ve seen a real surge in the last couple of years in people looking for ways to understand their technical debt and to ultimately address it. This effort relies on static analysis, code clone detection, code complexity analysis development process metrics and more. The open source community has flocked to SonarQube as the epicenter of an effort to build a great solution for technical debt analysis.
At the //Build/ conference, we announced that we are working with SonarSource – the primary team behind SonarQube to bring a great technical debt solution to our customers. This effort consists of 3 parts:
- Great .NET support – SonarQube has great C++ and Java (and a few others) support but pretty weak support for C#/.NET. We have joined forces with SonarSource to make SonarQube a great solution for .NET – leveraging our infrastructure like Roslyn, FXCop, Code coverage, etc.
- Seamless ALM integration with VS Online and TFS – We are integrating SonarQube into the Team Foundation Server and Visual Studio Online workflows (like build automation) so that the analysis is easily and automatically at your finger tips.
- Ease of acquisition – We’re working with SonarSource to make SonarQube even easier to install and manage. I’d like to see it be zero additional overhead for TFS and VSO users. We’re not there but it’s my aspiration.
Check out Stuart Kent’s blog post for more on how to get started.
From the beginning, one of the strengths of Team Foundation Server was a data warehouse that allowed you to mine your development information to gain insights. When we moved TFS into the cloud (VS Online), we didn’t bring the warehouse along with it because the architecture wasn’t particularly cloud friendly.
Since then, we introduced light weight charting for work items and test cases to give you a data visualization experience that easy and embedded in TFS/VSO. However, for rich analysis, that’s not enough. You want the full power of professional BI tools to unlock insights on your data.
At //Build/ we showed our next step on this journey with a new PowerBI connector for VS Online. You can try it by visiting the PowerBI portal and using the new Visual Studio Online data connector. In this first increment, we’ve provided an experience over code information (checkins, pull requests, etc). It works for both Git and Team Foundation Version Control. Next (and soon), we’ll add support for work items and then more beyond that.
I encourage you to check it out. Of course, you’ll need a VS Online account with some interesting data in it 🙂
Agile project management
I don’t have any big Agile project management announcement. But, if you haven’t been watching the VSO release notes over the past few months, you’re unaware of a TON of improvements we’ve made. We’ve been moving fast and we continue to move very fast. We’ve been working on backlog management, the kanban board, the task board, card customization and more.
Here’s a list of some of the release notes worth checking out. All these Agile project management features will be included in TFS 2015 (though many, but not all, made it into the release candidate).
- Add fields to cards, board filtering
- Card configuration options
- @CurrentIteration, Kanban reordering and DoD and bugs on the task board
- Kanban split columns, inline adding and editing
- VS Online Basic license expanded
We’ve got a lot more coming in Update 1 and on the service in the coming weeks. Hang on tight if you use the Agile tooling.
VS Online Extensions
A year ago I announced an effort to embrace REST, OAuth and Service hooks to open up TFS and VS Online. At the time we demoed some cool integrations like User Voice and Trello based on these new web standard extensibility points. Over the past year, we’ve worked to enable more extensions. You can find a bunch of VS Online extensions on our website. These REST, OAuth and Service hooks extensions have only been available on VS Online and now they are available in TFS 2015 as well.
This integration was primarily focused on service to service integration and one of the things we knew we were going to need to make it truly great was a way to do UI integration as well. At //Build/ this week we demoed a new extensibility mechanism for our web experience on VS Online that allows 3rd parties to plug in hubs, controls, actions, etc. We also demonstrated some sample extensions we’ve built like a cool team calendar – built 100% with the extensibility model (and we’re making the code available as a sample and you can find other samples as well).
For now, there’s no call to action for the broader VSO community. This new extensibility mechanism is in “private preview”. We are looking for “a few good men(or women :))” who want to start building extensions. These early adopters will both help us hammer out the extensibility model and help us populate a good catalog of extensions for when we do make the feature more broadly available. Ultimately, we plan to have a gallery/marketplace that will make it easy to acquire and install extensions. You can learn more in the VSO integrate documentation.
For now this new UI extensibility capability is only available on VS Online. Once we get it baked, we will bring it to on-prem TFS too,
I have to stop. My fingers are tired. I’ve been writing this for a few hours now and I’m not done with all the cool new stuff. I’m going to have to write another post in the next week or two to cover some of the stuff I left out. Hopefully you like what you see and, as always, feedback welcome.