Getting Started with Microsoft Test Manager
Microsoft Test Manager is the part of the TFS ecosystem that helps you test your application. Test Cases are organised in to Test Suites which are all contained in a Test Plan. There's a wealth of automated capability for taking some of the drudgery out of manual testing and all manner of features for analysing and managing test results. That's only about 5% of what it does so be sure to check out these resources to learn about the full breadth of what MTM can do:
One thing to be aware of is that Team Web Access (the browser component of TFS) has a growing number of test features available directly in the browser. In some sitations that may be all you need See here for just one article that has more details.
Cheers -- Graham
Getting Started with Release Management for Visual Studio
Release Management for Visual Studio (also known as Visual Studio Release Management) is the TFS ecosystem component that manages the deployment of code to each stage of the delivery pipeline. It was bought by Microsoft in 2013 from InCycle and started life as InCycle's InRelease product (which was specifically built to work with TFS). Microsoft are gradually making it their own and adding new features and capabilities. Although there is a good selection of tools for managing code deployments in the marketplace the fact that it is included with most versions of MSDN makes it an obvious choice for anyone developing applications and building continuous delivery pipelines with TFS via the MSDN route. Originally one had to purchase extra licences for each server one was planning to deploy to however that requirement is being completely scrapped from the beginning of January 2015, so if you are covered by one of the MSDN versions there are no extra costs.
Because Release Management is fairly new on the scene there isn't the wealth of learning resources that are available for other parts of TFS. The list is growing though -- here's my pick for anyone looking to get started:
If you are looking for a quick and relatively straightforward way to get some hands-on experience of Release Management then the Brian Keller VM could be a good option. You can download it for running under Hyper-V or alternatively run it as an Azure VM. If you choose the latter option then this post could help you, although bear in mind that it was written in mid-2013 and some aspects of Azure may have changed. Unless you have a very fast Internet connection you will more than likely want to use an Azure VM to perform the downloading rather than round-trip the VM via Earth.
Cheers -- Graham
Getting Started with SQL Server Database Projects
By now hopefully all developers understand the importance of keeping their source code under version control and are actually practising this for any non-throwaway code. That's all fine and dandy for your application, but what about your database? In my experience it's pretty rare for databases to be under version control, probably because in the past the tooling has been inadequate or simply off developer radars. There are a number of tools that can help with database version control but one of most readily accessible for Visual Studio developers is the SQL Server Database Project that can be added to a Visual Studio solution. SQL Server Database Projects are part of the Microsoft SQL Server Data Tools ( SSDT) package, which is obviously aimed at developing against SQL Server. You can start with a blank database but most likely you will already have an existing database in which case the database project has the ability to reverse engineer the schema. The result of this process is a series of files containing CREATE statements for the objects that comprise your database (tables, stored procedures and so on), with the files themselves (usually one per object) organised in a folder structure. Since these are essentially text files just like any other code file you can check them in to version control and have any changes recorded just like you would with, for example, a C# file.
In addition to facilitating version control database projects offer a wealth of extra functionality. A declarative approach is used with database projects, ie you state how you want your database to be via CREATE statements and then another process is responsible for making the schema of one or more target databases the same as the schema of your database project. You can also publish your schema to a new database -- ideal if you need to create a LocalDB version on a new development workstation for example. This is really only the tip of the iceberg and I encourage you to use the resources below as a starting point for learning about database projects and SSDT:
Since SSDT is built-in to Visual Studio 2013 the barrier to getting started is very low. Be sure to check for any updates from within Visual Studio (Tools > Extensions and Updates) before you begin. Finally, anyone who has spotted that the SQL Server installation wizard has an option to install SQL Server Data Tools has every right to be confused, since at one point in time this was also the new name for what was once BIDS (Business Intelligence Developer Studio). If you want to know more then this post and also this one will help clarify. Maybe.
Cheers -- Graham
Getting started with Team Foundation Server and ALM
Team Foundation Server is Microsoft's ecosystem (my term) that allows organisations to implement software application lifecycle management and continuous delivery. TFS consists of the core application on top of which run various clients that perform specialised roles. There are many articles that explain the capabilities of TFS and why you would want to use it in preference to other tools (or not as the case may be), and the purpose of this post isn't to go over that well-trodden ground. Rather, I'm assuming that TFS is your way forward any you are looking for ways to get started with it. I'll cover a couple of scenarios for the core product as follows:
You haven't yet implemented TFS and are looking for guidance on installing and configuring it:
TFS is installed and you want to learn how to use it to best effect:
Whilst some of the training courses I link to above are free from the Microsoft Virtual Academy I make no apology for linking to Pluralsight courses for which one needs a subscription. For Microsoft.NET -- and increasingly other -- developers a Pluralsight subscription is in my view an indispensable tool and excellent value for money.
Enjoy getting to grips with TFS -- it's a great piece of kit. Watch out for future Getting Started posts on the other applications that form part of the ecosystem.
Cheers -- Graham
Getting Started with Microsoft Azure
Back in the olden days when I wanted to use my MSDN subscription to learn a new technology such as SQL Server I pressed an old PC in to service to act as the host. Several years on and virtualisation had become commonplace and this allowed me to run several hosts using Hyper-V on an always-on beefier box located
in my home datacentre under the stairs. With the arrival of Microsoft Azure all that tin is now a thing of the past and anyone using Azure has an extraordinary wealth of computing power and flexibility at their disposal. (There are other cloud providers of course but I find it’s enough of a job keeping up with the latest offerings from Azure, never mind what Google or Amazon might be churning out.)
For anyone new to Azure, where to start? If you already have an MSDN subscription then the great news is that you already have free monthly credits, and this page has more details. If you don’t have MSDN then other options include taking advantage of the Azure one-month free trial or maybe even paying for Azure yourself. This isn’t as crazy as it sounds since you only pay for what you use and services such as virtual machines can be shut down when they are not being used so you won’t get charged.
So you have your subscription set up, now what about learning Azure? There are numerous free resources you can take advantage of (including lots of videos if that’s your thing) and below I’ve listed what I consider to be the most useful at the time of writing this post. In particular, this video from Scott Guthrie is a great way to get a broad overview of what Azure offers.
Microsoft Azure is evolving so rapidly that once you have learned the basics you need a strategy for keeping abreast of what’s new. For me this is a combination of The Azure Podcast as listed above and a variety of blogs. Scott Guthrie’s blog is particularly noteworthy, but if you are a .NET developer you are hopefully already following it.
Cheers – Graham