Professional Application Lifecycle Management with Visual Studio 2013

  

  PROFESSIONAL APPLICATION LIFECYCLE MANAGEMENT

  ®

WITH VISUAL STUDIO 2013

  INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxix

CHAPTER 1 Introduction to Application Lifecycle Management

  with Visual Studio 2013 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 ▸

  PART I TEAM FOUNDATION SERVER CHAPTER 2 Introduction to Team Foundation Server . . . . . . . . . . . . . . . . . . . . . 11 CHAPTER 3 Using Centralized Team Foundation Version Control . . . . . . . . . . . 37 CHAPTER 4 Distributed Version Control with Git and Team Foundation Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 CHAPTER 5 Team Foundation Build . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 CHAPTER 6 Release Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 CHAPTER 7 Common Team Foundation Server Customizations . . . . . . . . . . . . 153 ▸

  PART II BUILDING THE RIGHT SOFTWARE CHAPTER 8 Introduction to Building the Right Software . . . . . . . . . . . . . . . . . . 167 CHAPTER 9 Storyboarding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 CHAPTER 10 Capturing Stakeholder Feedback . . . . . . . . . . . . . . . . . . . . . . . . . . 193 ▸

  PART III PROJECT MANAGEMENT CHAPTER 11 Introduction to Project Management . . . . . . . . . . . . . . . . . . . . . . . 203 CHAPTER 12 Agile Planning and Tracking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 CHAPTER 13 Using Reports, Portals, and Dashboards . . . . . . . . . . . . . . . . . . . . 257 Continues

  ▸

  PART IV ARCHITECTURE CHAPTER 14 Introduction to Software Architecture . . . . . . . . . . . . . . . . . . . . . . 277 CHAPTER 15 Top-Down Design with Use Case, Activity, Sequence, Component, and Class Diagrams . . . . . . . . . . . . . . . . . . . . . . . . . . 289 CHAPTER 16 Analyzing Applications Using Architecture Explorer, Dependency Graphs, and Code Maps . . . . . . . . . . . . . . . . . . . . . . 317 CHAPTER 17 Using Layer Diagrams to Model and Enforce Application Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . 343 ▸

  PART V SOFTWARE DEVELOPMENT CHAPTER 18 Introduction to Software Development . . . . . . . . . . . . . . . . . . . . . 357 CHAPTER 19 Unit Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369 CHAPTER 20 Code Analysis, Code Metrics, Code Clone Analysis, and CodeLens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397

CHAPTER 21 Profi ling and Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425 CHAPTER 22 Debugging with IntelliTrace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465

  ▸

  PART VI TESTING CHAPTER 23 Introduction to Software Testing . . . . . . . . . . . . . . . . . . . . . . . . . . 489 CHAPTER 24 Manual Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505 CHAPTER 25 Coded User Interface Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537 CHAPTER 26 Web Performance and Load Testing . . . . . . . . . . . . . . . . . . . . . . . . 563 CHAPTER 27 Lab Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 609 INDEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 633

  

PROFESSIONAL

Application Lifecycle Management

with Visual Studio

  ® 2013

  

PROFESSIONAL

Application Lifecycle Management

with Visual Studio

  ® 2013

  

Mickey Gousset

Martin Hinshelwood

Brian A. Randell

Brian Keller

  

Martin Woodward

  ® Professional Application Lifecycle Management with Visual Studio 2013 Published by John Wiley & Sons, Inc.

  10475 Crosspoint Boulevard Indianapolis, IN 46256 Copyright © 2014 by John Wiley & Sons, Inc., Indianapolis, Indiana Published simultaneously in Canada

ISBN: 978-1-118-83658-3

  ISBN: 978-1-118-83636-1 (ebk)

  ISBN: 978-1-118-83659-0 (ebk) Manufactured in the United States of America 10 9 8 7 6 5 4 3 2 1

No part of this publication may be reproduced, stored in a retrieval system or transmitted in any form or by any means,

electronic, mechanical, photocopying, recording, scanning or otherwise, except as permitted under Sections 107 or 108

of the 1976 United States Copyright Act, without either the prior written permission of the Publisher, or authorization through payment of the appropriate per-copy fee to the Copyright Clearance Center, 222 Rosewood Drive, Danvers, MA 01923, (978) 750-8400, fax (978) 646-8600. Requests to the Publisher for permission should be addressed to the Permissions Department, John Wiley & Sons, Inc., 111 River Street, Hoboken, NJ 07030, (201) 748-6011, fax (201) 748-6008, or online at

  Limit of Liability/Disclaimer of Warranty: The publisher and the author make no representations or warranties with respect to the accuracy or completeness of the contents of this work and specifi cally disclaim all warranties, including without limitation warranties of fi tness for a particular purpose. No warranty may be created or extended by sales or promotional materials. The advice and strategies contained herein may not be suitable for every situation. This work is sold with the understanding that the publisher is not engaged in rendering legal, accounting, or other professional ser-

vices. If professional assistance is required, the services of a competent professional person should be sought. Neither the

publisher nor the author shall be liable for damages arising herefrom. The fact that an organization or Web site is referred

to in this work as a citation and/or a potential source of further information does not mean that the author or the

publisher endorses the information the organization or Web site may provide or recommendations it may make. Further,

readers should be aware that Internet Web sites listed in this work may have changed or disappeared between when this

work was written and when it is read.

  For general information on our other products and services please contact our Customer Care Department within the United States at (877) 762-2974, outside the United States at (317) 572-3993 or fax (317) 572-4002.

Wiley publishes in a variety of print and electronic formats and by print-on-demand. Some material included with standard

print versions of this book may not be included in e-books or in print-on-demand. If this book refers to media such as a CD

or DVD that is not included in the version you purchased, you may download this material at

  Library of Congress Control Number: 2013958303

Trademarks: Wiley, Wrox, the Wrox logo, Programmer to Programmer, and related trade dress are trademarks or registered

trademarks of John Wiley & Sons, Inc. and/or its affi liates, in the United States and other countries, and may not be used

without written permission. Visual Studio is a registered trademark of Microsoft Corporation. All other trademarks are the

property of their respective owners. John Wiley & Sons, Inc., is not associated with any product or vendor mentioned in this book.

  To Amye, Emma, and Meg, the girls in my life.

  I love you! —Mickey Gousset

  

To Evangelina and Kaiden. Without whom I would be

lost at this time of great change.

  —Martin Hinshelwood To Juliane, Brent, and Nicole. I love you.

  —Brian Randell

ABOUT THE AUTHORS

  MICKEY GOUSSET is a Principal Consultant for Infront Consulting Group, a consult-

  ing company focused on the Microsoft System Center family of products. He is one of the original Microsoft Application Lifecycle Management MVPs, and co-author of several books about ALM, including Professional Team Foundation Server (Wrox, 2006), Professional Application Lifecycle Management with Visual Studio 2010

  (Wrox, 2010), and Professional Application Lifecycle Management with Visual Studio 2012 (Wrox, 2012). Gousset runs ALM Rockrites about Visual Studio, TFS, and ALM in general. He speaks around the world on ALM and System Center topics. When not writing or working with computers, Mickey enjoys a range of hobbies, from playing on Xbox Live (Gamer Tag: HereBDragons) to participating in local community theatre. But nothing beats his favorite pastime: spending time with Amye, Emma, Meg, and their four dogs, two cats, and one fi sh.

  MARTIN HINSHELWOOD is the Principal Consultant for naked ALM Consulting, a

  technical and management consultancy based in Scotland that focuses on Visual Studio ALM, TFS, and Scrum. He has been a Visual Studio ALM MVP for six years running and was even ALM MVP of the Year in 2011. As well as working with the Visual Studio ALM Rangers and being an ALM Ranger Champion in 2011, Martin participates in the lean-agile community. Martin has been a Professional Scrum Trainer with

  Scrum.org since early 2010. He regularly teaches Scrum courses around the world and works as an Engagement Manager for Agility Path. Somehow he also fi nds time to maintain his blog his spare time Martin can be found on excur- sions with his favourite people (Evangelina and Kaiden) and occasionally on Xbox

  BRIAN RANDELL is a Partner with MCW Technologies LLC. For more than 20 years

  he has been building software solutions. He educates teams on Microsoft technolo- gies via writing and training—both in-person and on demand. He speaks regularly at shows small and large including Microsoft’s TechEd and PDC in the United States, Europe, Africa, Australia, and New Zealand. He’s also a consultant for companies small and large, worldwide, including Fortune 100 companies like Microsoft. Brian is a passionate software craftsman who still enjoys coding as he helps teams to improve their processes from idea to shipping, and to production management and monitoring. As a long time virtualization junkie, Brian’s an expert in Hyper-V and Lab Management. In addition, he’s become obsessed over the last few years with natural user interfaces and how to create compelling user experiences regardless of platform. In early 2010, he toured the world hitting most of the continents (sadly no penguins were trained) prepping Microsoft employees and Microsoft partners for the Microsoft Visual Studio 2010 launch. In 2012, he and his team built some of the fi rst training content and demos for Microsoft using Visual Studio 2012, Team Foundation Server 2012, and Windows 8. For the 2013 release, he continued building new ALM content for use worldwide by Microsoft and its partners. He’s been a Microsoft MVP in developer related technologies for more than 10 years and is currently a Visual Studio ALM MVP. When not working, Brian enjoys spending time with his wife and two children who enjoy making him look bad on the Xbox One (with and without Kinect).

  BRIAN KELLER is a Director for Microsoft, specializing in Visual Studio and applica-

  tion lifecycle management. He has been with Microsoft since 2002 and has presented at conferences around the world, including TechEd, PDC, and Build. Outside of work he enjoys spending time with his lovely wife Elisa and their awesome son Paxton.

  MARTIN WOODWARD is a Senior Program Manager on the Team Foundation Server

  team at Microsoft. Previously, Woodward was also Team System Most Valuable Professional (MVP) of the year. Not only does he bring unique insight into the inner workings of Team Foundation Server, he brings a cross-platform perspective that he is always happy to share through his writings, on his blog at when speaking at events internationally. Martin also co-authored Professional Application Lifecycle

  Management with Visual Studio 2010 (Wrox, 2010), Professional Team Foundation Server 2010

  (Wrox, 2011), Professional Application Lifecycle Management with Visual Studio 2012 (Wrox, 2012), and Professional Team Foundation Server 2012 (Wrox, 2013).

  EXECUTIVE EDITOR

  PROOFREADER

  VICE PRESIDENT AND EXECUTIVE GROUP PUBLISHER

  Richard Swadley

  ASSOCIATE PUBLISHER

  Jim Minatel

  PROJECT COORDINATOR, COVER

  Todd Klemme

  Sarah Kaikini, Word One

  BUSINESS MANAGER

  INDEXER

  Johnna van Hoose Dinse

  COVER DESIGNER

  Wiley

  COVER IMAGE

  ©iStockphoto.com/IS_ImageSource

  Amy Knies

  Ashley Zurcher

  Robert Elliott

  PRODUCTION EDITOR

  PROJECT EDITOR

  Tom Dinse

  TECHNICAL EDITOR

  Michael Fourie

  TECHNICAL PROOFREADER

  Anthony Borton

  Daniel Scribner

  MARKETING MANAGER

  COPY EDITOR

  Kezia Endsley

  MANAGER OF CONTENT DEVELOPMENT AND ASSEMBLY

  Mary Beth Wakefi eld

  DIRECTOR OF COMMUNIT Y MARKETING

  David Mayhew

  CREDITS

  ACKNOWLEDGMENTS

I’M FORTUNATE TO BE SURROUNDED by ALM MVPs who make my life much easier. Brian Randell

  and Martin Hinshelwood, thank you for taking this journey with me. You both have created some amazing content in this book, and it is much better for it. And we are even closer friends because of it. Mike Fourie, I just don’t know what to say. You are the most amazing technical editor I have had. You have the ability to point out all the things I missed, without making me look bad. And your depth of knowledge is astounding. Anthony Borton, thank you for all your help and assistance with the book. To our editors Bob Elliot and especially Tom Dinse, thank you so much for keeping us on track and schedule, and working with us when “stuff” happens. Tom, you are an amazing edi- tor that I would write a book with anytime. And fi nally, to Amye, Emma (14), and Meg (10), thank you for putting up with my schedule and my late hours in getting this project completed. I could not have done it without your love and support.

  —Mickey Gousset

WITH THE MANY CHANGES IN THE LAST SIX MONTHS I don’t know where to start or why I agreed to

  write a book of all things. I want to thank my parents Anne and John for helping me settle back into Scotland (it was quite a shock after three years in Seattle), without you guys I would not have been able to start my own business. My wonderful kids Evangelina (6) and Kaiden (4) for their patience and distraction from the world around us, you make it all worth it. Finally I want to thank Mickey Gousset and Brian Randell for putting up with my newbie questions and issues, and Mike Fourie for taking it easy with the technical editing.

  —Martin Hinshelwood FIRST, TO MY DEAR FRIEND MICKEY for asking me to join him. We keep fi nding new ways to have

  fun. To Mr. Hinsh, I’ve enjoyed getting to know you better and look forward to many more friendly exchanges; exchanges only friends have. Mr. Keller, I still think fondly about fi rst working with you when you were a Product Manager and the fun we had on your fi rst tour of duty outside the Unites States speaking. Congratulations on being a husband and father, it suites you. And to Mr. Woodward, what can I say mate? I only wish Ballycastle were up the road for me too. That said, every visit we have is warm and wonderful no matter what part of the globe we’re at. All four of you made this book better and I thank you for having me on the journey. Thank you to everyone at Wrox especially Bob Elliot, Tom Dinse, and Kezia Endsley. Your editorial guidance and continued pokes as well as catching all the little things, got this book done in fi ne shape. Thank you. To our techni- cal editor Mike Fourie, you continue to amaze me with your work ethic and I know the book is 100 times better due to your keen eye. And I can’t leave out my dear Aussie friend Anthony Borton, who took on the job of “one more read” before we published to make sure we didn’t write something stu- pid. Thank you. Of course, any errors are those of myself and my co-authors. Throw stones our way. Beyond those who were directly involved in the project, I have a few people I must mention who have infl uenced my writing and general geekiness. To my business partner Ken Getz—you’ve done more for me than you’ll ever know. I’m a better human because of you. Thank you. To Dave and Barbara Brady who gave me my fi rst “computer” job. You gave me more than a job. You put me on the path to a career I love. Thank you. To Ian Griffi ths, you’re an inspiration to work with but a better friend to break bread with—I look forward to more fun in the future. To Matt Nunn, from our fi rst fun in Australia to the wonderful solutions we’ve built, it’s been great working on the “art of the possible.” To Jon Flanders, I know at your wedding you said you still didn't like me. That's OK. I'll take what I can get. And to Mr. Brian Harry. It started with Visual SourceSafe. You wrote that automation interface one summer and I was lucky to work with you. Your work ethic inspires as does your dedication to customer and craft. Thank you for always being there. To my fi rst set of co-authors on my fi rst published book: Dr. Joe Hummel, Justin Gehtland, Jason Masterman, and Ted Pattison. Gents, there are times in your life that you wonder what you were thinking. That book hurt, but everything has a purpose. I said never again but I did and the lessons learned helped. Beyond that book however, all of our teaching together, the Guerilla events, and all the other “fun” continues to warm my heart with great memories when I think of each of you.

  All the things I know about Visual Studio and TFS come from hard work and having a cadre of wonderful people to answer questions. This includes two special groups to me: Microsoft employ- ees in DevDiv and the Microsoft ALM MVPs. Over the years countless e-mails, IM conversations, and phone calls have been exchanged as well as many wonderful face-to-face conversations (even the ones that were loud). Thank you. I can’t thank you all individually, but I do want to highlight a few in particular from Microsoft working on ALM and TFS, including Doug Seven, David Starr, Larry Guger, Grant Holliday, William Bartholomew, Rob Caron, Chuck Sterling, Chris Patterson, Peter Provost, Buck Hodges, Aaron Bjork, Justin Marks, Jamie Cool, Jeff Behler, Ed Holloway, Ed Blankenship, Ewald Hofman, Matthew Mitrik, Philip Kelley, Chad Boles, Sean McBreen, Tracy Trewin, Will Smythe, Ravi Shanker, Vijay Machiraju, and Subrahmanyam Veera Mandavilli. To my fellow MVPs, you’re all wonderful, I’m lucky to have you as peers and thank all of you for your help but in particular want to call out Jeff Levinson, Neno Loje, Richard Hundhausen, Adam Cogan, Ben Day, David V. Corbin, Ognjen Bajic, Thomas Schissler, Jesse Houwing, Dylan Smith, Richard Banks, and Jason Stangroome. Anyone not mentioned directly and forgotten, I’m sorry.

  Finally, I need to thank my dear, lovely wife. You are my best friend. Even though you told me not to write the book, you supported me when I did. Our house is a home because of you and I am a lucky man to fi nd you here every time I come home from a trip. I see you in the eyes of our children and that brings more joy than I would have ever imagined over twenty years ago when we fi rst met.

  —Brian Randell CONTENTS

  

CHAPTER 1: INTRODUCTION TO APPLICATION LIFECYCLE MANAGEMENT WITH VISUAL STUDIO 2013

  

  

  

  

  

  

  

  

  

PART I: TEAM FOUNDATION SERVER CHAPTER 2: INTRODUCTION TO TEAM FOUNDATION SERVER

  

  

  

  

  

  

  

  

  

  

  

  

  

CHAPTER 3: USING CENTRALIZED TEAM FOUNDATION VERSION CONTROL

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  xvi CONTENTS

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

   Team Foundation Version Control and

  CONTENTS

CHAPTER 4: DISTRIBUTED VERSION CONTROL WITH GIT AND TEAM FOUNDATION SERVER

   Fundamentals of Distributed Version Control

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

   xvii CONTENTS

  

  

  

CHAPTER 7: COMMON TEAM FOUNDATION SERVER CUSTOMIZATIONS 153 Object Models

  

  

  

  

  

  

  

  PART II: BUILDING THE RIGHT SOFTWARE

  

   xviii

  CONTENTS

  

  

  

  

  

  

  

  

  PART III: PROJECT MANAGEMENT

  

  

  

  

  

   xix xx CONTENTS

  

  

  

  

  

  

  

  

  PART IV: ARCHITECTURE

  

  

  

  CONTENTS

  

  What’s New with Architecture Tools in

  

  

  CHAPTER 15: TOP-DOWN DESIGN WITH USE CASE, ACTIVITY,

  

  

  

  

  

  

  

  

  

  

  CHAPTER 16: ANALYZING APPLICATIONS USING ARCHITECTURE xxi CONTENTS

  

  

  

CHAPTER 17: USING LAYER DIAGRAMS TO MODEL AND ENFORCE APPLICATION ARCHITECTURE 343 Creating a Layer Diagram

  

  

  

PART V: SOFTWARE DEVELOPMENT CHAPTER 18: INTRODUCTION TO SOFTWARE DEVELOPMENT

  

  

  

  

  

  

   xxii

  CONTENTS

  

  

  

  

  

  

  

  

  

  

  

  

  

CHAPTER 20: CODE ANALYSIS, CODE METRICS, CODE CLONE ANALYSIS, AND CODELENS 397 The Need for Analysis Tools 398 What’s New for Code Analysis in Visual Studio 2013 398 Using Code Analysis

  

  

  

   xxiii xxiv CONTENTS

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  CONTENTS

  

  

  

  PART VI: TESTING

  

  

  

  

  

  

  

  

  

   xxv CONTENTS

  

  

  

  

  

  

  

  

  

  

   xxvi xxvii CONTENTS

  

  

  

  

  

  

  

  

  INTRODUCTION

OVER THE LAST 15 YEARS, Microsoft’s software development tooling has matured to address not

  only the needs of the lone programmer, but the needs of an entire software development team. This includes business analysts, project managers, architects, testers, programmers, managers, stakehold- ers, and even operations personnel who deploy and maintain applications. This book was written to help teams understand and adopt these tools with the end goal of making them more cohesive and productive, and ultimately to produce higher-quality software on time and on budget. Whether you already own Visual Studio 2013, or are considering purchasing it, this book will help you evaluate and adopt the right tools for your project. This book considers all of the roles that make up a modern software development project. The tools and technologies that are relevant to each role are examined in detail, including walk-throughs, which will help you learn and apply each tool within your team.

WHO THIS BOOK IS FOR

  This book primarily targets teams of professionals in the fi eld of commercial or enterprise software development — in other words, intermediate to advanced users. You are likely to fi nd this book use- ful if you are any of the following:

  ➤

  A developer, tester, or architect who wants to learn how the Visual Studio 2013 family of products can help you perform your job

  ➤ A project manager who must manage a software development project

  This book is not designed for the absolute beginner. The focus is on practical application of the tools, code samples, and hands-on scenarios. The book’s organization makes it easy to use as a step-by-step guide and as a reference for modeling, designing, testing, and coordinating enterprise solutions at every level.

  Visual Studio 2013 is designed for software teams of all sizes. So, whether you have a team of 5 or 2,000 members, this book includes useful information for you related to Visual Studio 2013 and application lifecycle management. Unlike most Wrox books, this book targets all roles in the software development organization — architects, developers, testers, project leads, and manage- ment — not just developers. INTRODUCTION WHAT THIS BOOK COVERS

  This book includes a complete overview of the application lifecycle management capabilities of Visual Studio 2013. The book is divided into six main parts, based around the different aspects of application lifecycle management:

  ➤

  Part I: Team Foundation Server

  ➤

  Part II: Building the Right Software

  ➤

  Part III: Project Management

  ➤

  Part IV: Architecture

  ➤

  Part V: Software Development

  ➤

  Part VI: Testing Part I: Team Foundation Server Because Team Foundation Server is at the heart of Microsoft’s application lifecycle management solution, this book starts with an examination of its capabilities. It discusses the architecture of Team Foundation Server 2013, and then delves into the version control system and some best prac- tices surrounding branching and merging using Team Foundation Server. There is an in-depth look at the automated build process — Team Foundation Build — followed by a detailed look at how release management works in Team Foundation Server. Finally, you are presented with some exam- ples of common customizations you can make to Team Foundation Server.

  Part II: Building the Right Software Microsoft’s application lifecycle management offerings in Visual Studio 2013 have expanded to

  recognize the role that stakeholders play in the software development process. Stakeholders could be future end users of an application, the decision makers who are authorizing payment for an appli- cation, lawyers who need to approve applications for regulatory requirements, or any number of people external to the development team who have a vested interest in the outcome of a particular development project. In this section of the book, you fi nd out about new tools available to engage with stakeholders early and often throughout the development process. These tools can lead to higher-quality software that is more likely to meet expectations and deliver continuous value while minimizing the amount of rework required.

  Part III: Project Management This section of the book deals with the project and process management functionality of Visual Studio 2013 and Team Foundation Server 2013. This section examines the process templates that

  ship with the product, and it covers the web-based agile planning and tracking capabilities. Part

  III also discusses the reports that ship with Team Foundation Server. Whether you are practicing a lightweight development methodology such as Scrum, or a more formal, rigorous development

  xxx

  INTRODUCTION

  process, you will discover that Team Foundation Server will provide you with the tooling you need to manage your projects.

  Part IV: Architecture This section of the book examines the tools available in Visual Studio 2013 for defi ning and ana-

  lyzing application architecture. After a brief introduction to architecture concepts, the discussion dives into all the new UML tools available, including use case diagrams, activity diagrams, sequence diagrams, class diagrams, and component diagrams. You then learn about the Architecture Explorer and how you can use it to understand the architecture of your application. Finally, this section wraps up with a discussion of layer diagrams.

  Part V: Software Development This section of the book covers topics of most interest to a software developer using Visual Studio

  2013. The topics selected for this section of the book pertain most to building either complex applications or working with teams. For example, the section explains how unit testing, static code analysis, profi ling, code coverage, and code clone analysis features are ways to improve your appli- cation’s overall quality and maintainability. Part V also discusses the built-in code review capability and how you can use it to collaborate with other developers. You fi nd out how the ability to suspend and resume work in progress makes it easier to deal with interruptions. Finally, this section pro- vides in-depth coverage of debugging applications with IntelliTrace, including a new way of using IntelliTrace for debugging applications in a production environment.

  Part VI: Testing Visual Studio 2013 has numerous tools available for testers to use. The examination starts with a

  look at the manual testing functionality available in Microsoft Test Manager, as well as the ability to automate user interface tests with coded user interface tests. Web performance testing and load testing enable you to create tests that can help you ensure that users of your website will experience the best possible performance, even under heavy load. You’ll learn about the new cloud-based load testing features. The section concludes with a look at the improved lab management capabilities of Visual Studio 2013, which enable you to make use of physical or virtual environments that you can use to automate build-deploy-test workfl ows.

TEAM FOUNDATION SERVER ADMINISTRATORS

  If you are the person on your team who is responsible for administering your Team Foundation Server deployment, you should consider purchasing this book as well as its sister book — Professional Team

  

Foundation Server 2013 by Steven St. Jean, Damian Brady, Ed Blankenship, Martin Woodward, and

  Grant Holliday (Wrox, 2014. ISBN 978-1-118-83634-7) — which dives deeper into setup, confi gu- ration, and administration of Team Foundation Server 2013. You fi nd out more about the possible deployment topologies you can choose from, how to make changes to process templates, advanced secu- rity settings, considerations for disaster recovery and geographically distributed teams, and much more.

  xxxi INTRODUCTION CONVENTIONS

  To help you get the most from the text and keep track of what’s happening, we’ve used a number of conventions throughout the book.

  WARNING Boxes like this one hold important, not-to-be forgotten information that is directly relevant to the surrounding text.

  NOTE Notes, tips, hints, and tricks are offset and placed in italics like this.

  SIDEBAR Asides to the current discussion are offset like this.

  As for styles in the text:

  ➤ We italicize new terms and important words when we introduce them. ➤ We show keyboard strokes like this: Ctrl+A. ➤ We show fi le names, URLs, and code within the text like so: . persistence.properties

  ➤

  We present code in two different ways: We use a monofont type with no highlighting for most code examples.

  We use boldface to emphasize code that is particularly important in the present context.

SOURCE CODE

  As you work through the examples in this book, you may choose either to type in all the code manually, or to use the source code fi les that accompany the book. All the source code used in this book is available for download at ou can also search for the book

  

  at hen you’re at the site, simply locate the book’s title (either by using the Search

  

  box, or by using one of the title lists) and click the Download Code link on the book’s detail page to obtain all the source code for the book.

  xxxii

  INTRODUCTION Because many books have similar titles, you may fi nd it easiest to search

  NOTE by ISBN; this book’s ISBN is 978-1-118-83658-3. Alternatively, you can go to the main Wrox code download page at

  

books/download.aspx to see the code available for this book and all other Wrox books. After you

download the code, just decompress it with your favorite compression tool.

  ERRATA

  We make every effort to ensure that there are no errors in the text or in the code. However, no one is perfect, and mistakes do occur. If you fi nd an error in one of our books, such as a spelling mistake or a faulty piece of code, we would be very grateful for your feedback. By sending in errata, you may save another reader hours of frustration, and you will be helping us provide even higher quality information. d locate the title using the Search box

  To fi nd the errata page for this book, or one of the title lists. Then, on the book details page, click the Book Errata link. On this page, you can view all errata that has been submitted for this book and posted by Wrox editors.

  

A complete book list including links to errata is also available at

  NOTE

  

  If you don’t spot “your” error on the Book Errata page, go to

  

/techsupport.shtml and complete the form to alert us to the error you have found. We’ll check

  the information and, if appropriate, post a message to the book’s errata page and fi x the problem in subsequent editions of the book.

P2P.WROX.COM

  For author and peer discussion, join the P2P forums at he forums are a web-based system for you to post messages relating to Wrox books and related technologies, and to interact with other readers and technology users. The forums offer a subscription feature to email you topics of your choosing when new posts are made to the forums. Wrox authors, editors, other industry experts, and your fellow readers are present on these forums.

  xxxiii INTRODUCTION

  Atou can fi nd several forums that will help you not only as you read the book, but also as you develop your own applications. To join the forums, just follow these steps:

  1. Read the terms of use and click Agree.

  2. Complete the required information to join, as well as any optional information you want to 3.

  provide, and click Submit. You will receive an email message with information describing how to verify your account 4. and complete the joining process. You can read messages in the forums without joining P2P, but in order to post your own messages, you must join.

  After you join, you can post new messages and respond to messages other users post. You can read messages at any time on the web. If you would like to have new messages from a particular forum emailed to you, click the Subscribe to this Forum icon by the forum name in the forum listing. For more information about how to use the Wrox P2P, be sure to read the P2P FAQs for answers to questions about how the forum software works, as well as many common questions specifi c to P2P and Wrox books. To read the FAQs, click the FAQ link on any P2P page.

  xxxiv

1 Introduction to Application

  Lifecycle Management with Visual Studio 2013

  WHAT’S IN THIS CHAPTER?

  ➤

  Defi ning application lifecycle management

  ➤

  Learning about the Visual Studio 2013 product family

  ➤

  Seeing ALM in action using Visual Studio Ultimate 2013 In June of 1999, Microsoft started to re-evaluate how Visual Studio was being used as part of the software development process. Microsoft was continuing to serve the needs of an individual programmer through the highly productive “code-focused rapid-application-devel- opment” features of Visual Studio, but wasn’t doing much to help programmers work together as a team. And what about software architects—how should they be working with the pro- gramming team? And what about testers and project managers? Many teams had begun to set up their own solutions using a mixture of third-party, in-house, and vendor-provided tools to address such challenges as version control, bug tracking, and team communications. But this mishmash of tools can be tricky to set up and maintain, and even more diffi cult to integrate and report across. Microsoft sought to address this challenge by providing an integrated set of tools designed to address the needs of the entire software development team. Thus, Visual Studio Team System was born, and was fi rst released with the Visual Studio 2005 product line. At the heart of Team System, Team Foundation Server was created to provide a hub for all members of the development team to collaborate. Team Foundation Server is uniquely posi- tioned from its predecessors across the industry by being the fi rst tool of its kind built from the ground up to provide an integrated solution for many capabilities that had historically

INTRODUCTION TO APPLICATION LIFECYCLE MANAGEMENT WITH VISUAL STUDIO 2013

  CHAPTER 1 ❘

  been offered as standalone tools. Team Foundation Server provides a unifi ed solution for storing source code (along with a history of changes), work item tracking (which can include bugs, require- ments, and so on), and automated builds. By providing a single solution with all of these capabilities, Microsoft delivered the ability to link all these artifacts for end-to-end traceability, reporting, pro- cess enforcement, and project management.

  Team System also included “client” functionality, which surfaced in the various editions of Visual Studio development tools. Visual Studio seamlessly integrated with Team Foundation Server, but much of this tooling could also be used independently or with third-party source control solutions.

  Visual Studio Team System also introduced role-specifi c tooling that lived outside of the core Visual Studio development environment by recognizing that team members such as project managers are oftentimes more comfortable using tools such as Excel or Project, both of which could be used to manage and track work that lived in Team Foundation Server.

  Team System was built from a foundation of tools and technologies that Microsoft had been using internally for many years to build some of the most complex software projects ever undertaken. Team System appealed not only to programmers, but to all members of the development team— architects, application developers, database developers, and project managers.

  Three years later, Visual Studio Team System 2008 evolved from the previous version to include even more tools and functionality for all members of the project team to use. Two years after that, Visual Studio 2010 added even more functionality, including an entirely new set of tools for general- ist testers (also referred to as manual testers), bringing a new audience of prospective users into the same set of tooling used by the rest of the team.

APPLICATION LIFECYCLE MANAGEMENT

  Along with the release of Visual Studio 2010, Microsoft also stopped using the sub-brand “Team System” to describe these capabilities. Instead, Microsoft started referring to these tools as the application lifecycle management (also referred to as ALM) capabilities of Visual Studio.

  Application lifecycle management is a term that has gained momentum in the development industry to describe the way an application is managed from its conception, through its creation and deploy- ment, to its eventual retirement. It is important to note that application lifecycle management is a more comprehensive concept than its popular predecessor, software development lifecycle (SDLC). SDLC is primarily focused on the core coding activities that comprise the creation of an application’s life, beginning with a require- ment for an application and ending when that application is built and delivered. Application lifecycle management recognizes that requirements aren’t simply born out of thin air. They evolve based on business needs, or ideas for new opportunities, and stakeholders who are considered external to the development team may still play a role during the development of an application in helping to refi ne requirements and provide feedback on implementations. Application lifecycle management also recognizes that a development team’s job isn’t done the moment they hand off a “fi nished” applica- tion. The development team will likely be called upon to help troubleshoot the application when things go wrong in the deployed environment, or to create subsequent versions of the applica- tion based on feedback from users or analytics from the operations team. Visual Studio itself has

  Visual Studio 2013 Product Lineup

  ❘

  matured over time to grow from being a tool targeted squarely at programmers during the software development lifecycle to becoming a true solution for end-to-end application lifecycle management.

  VISUAL STUDIO 2013 PRODUCT LINEUP Table 1-1 outlines the product lineup for Visual Studio 2013.

  TABLE 1-1: Visual Studio 2013 Product Lineup

PRODUCT NAME DESCRIPTION

  Microsoft Visual Studio Ultimate 2013 with MSDN

  The comprehensive suite of application lifecycle management tools for software teams to help ensure quality results from design to deployment. Microsoft Visual Studio Premium 2013 with MSDN

  A complete toolset to help developers deliver scalable, high-quality applications. Microsoft Visual Studio Professional 2013 with MSDN

  The essential tool for basic development tasks to assist developers in implementing their ideas easily. Microsoft Visual Studio Test Professional 2013 with MSDN

  The primary tool for manual and generalist testers who need to defi ne and manage test cases, execute test runs, and fi le bugs. Microsoft Visual Studio Express 2013 for Web

  A free version of Visual Studio 2013 that provides the core tools for creating web applications and services. Microsoft Visual Studio Express 2013 for Windows

  A free version of Visual Studio 2013 that provides the core tools for creating Windows Store apps. Microsoft Visual Studio Express 2013 for Windows Desktop

  A free version of Visual Studio 2013 that enables the creation of desktop applications in C#, Visual Basic, and C++. Microsoft Visual Studio Team Foundation Server 2013

  The server component for team development, version control, work item tracking, build automation, project management, lab manage- ment, and reporting. Microsoft Visual Studio Team Foundation Server Express 2013

  A free edition of Team Foundation Server that provides most of the same capabilities (including version control, work item tracking, and build automation), with some limitations, for a team of up to fi ve users.

INTRODUCTION TO APPLICATION LIFECYCLE MANAGEMENT WITH VISUAL STUDIO 2013

  CHAPTER 1 ❘