fiGure 57-28
1132 .
chaPter 57 TeAm FoundATion SerVer
Microsoft has been very clear that you should not be accessing the data in the TFS
databases directly, but should instead be using the reports and tools provided. In
TFS 2010 there are new Data Warehouse Views, which have been added over the
tables in each TFS database. There is some guarantee that these views will not
change moving forward and they have been designed so you can create your own
reports.
teaM Portal
Team Foundation uses SharePoint to create a portal for each team project. It has all the benefits of
SharePoint, but is customized for each process template. The home in each team portal will include
the most important reports, latest announcements, and useful links. TFS 2010 also includes the
ability to create custom dashboards, which can be for specific users or for everyone on the project.
To navigate to the project portal, right-click the team project in the Team Explorer and select Show
Project Portal.
documents
Depending on the process template, certain documents will be included as templates. For example,
MSF for Agile Software Development includes Word documents for creating personas and scenarios.
These documents are also available from the Team Explorer’s document folder.
Process Guidance
Inside SharePoint are documents that define the process that your project adheres to. This guidance
is available to all developers on the team.
sharePoint lists
You can have picture libraries, discussion boards, surveys, announcements, links, events, contacts,
and custom lists. This will help improve team collaboration.
dashboards
Dashboards are SharePoint Web Part pages that have been preconfigured with useful Web Parts
to give you an overview of a project’s status. The MSF for Agile process template defines two
dashboards out of the box including My Dashboard (Figure 57-29), which contains lists of Tasks,
Bugs, and Test Cases that are assigned to you; and Project Dashboard, which contains metrics and
information about the progress of the entire team. Using the SharePoint UI, you can copy an existing
dashboard and make changes to the web parts that are displayed.
Team system Web access .
1133
fiGure 57-29
teaM systeM web access
This is a separate, free tool from Microsoft that integrates with TFS and allows you to do pretty
much everything you can do from VS, but in a web interface (Figure 57-30). You can create and
modify work items as well as work item queries, see the reports and documents, and initiate and
monitor builds. The only area with limited functionality is Source Control. You can see history
and changeset details, but you can’t check out/check in documents due to the web client nature.
1134 .
chaPter 57 TeAm FoundATion SerVer
fiGure 57-30
adMinisterinG tfs
Keeping track of all of the settings, web sites, databases, and accounts that TFS requires can be
a hassle. The Team Foundation Server Administration Console (Figure 57-31) aggregates a lot of
the information about your TFS installation into one place. It also provides capabilities for many
common tasks including managing project collections and configuring build controllers and agents.
fiGure 57-31
Tfs automation and Process Customization .
1135
tfs autoMation and Process custoMization
Throughout this chapter, you have seen how the process templates define most of the behavior of
TFS; for example, they define work item types, process guidance, and reports. To close the chapter,
we briefly introduce how you could customize a process template or edit work item types.
To edit either work item types or process templates, you could modify the XML that defines them,
but it’s easier to use the Process Editor, which is part of the Team Foundation Server Power Tools,
downloadable from the Microsoft site.
work item types
From the Tools . Process Editor . Work Item Types menu, you can open a work item type directly
from an existing team project and start to edit it. Working this way will cause all your changes to be
immediately propagated to all users. Another approach is to export the work item type to a file and
then open it for editing and finally import it back to a team project. All these options are located in
the same submenu.
It is recommended that you have a team project dedicated to testing changes
before importing or editing work item types in active team projects.
Once you are editing a work item type, either directly from a team project or from a file, you will
have three tabs to work with — Fields, Layout, and Workflow (Figure 57-32).
The first tab has a list of fields with their data types and a reference name. The reference name is
used to uniquely identify fields from different work item types. For example, a title for a bug and a
title for a task have the same “System.Title” reference name; other fields might have the same names
but refer to different things.
The second tab allows you to modify the layout. You don’t have a visual designer here, but you can
work in a tree designer to nest groups, columns, and controls. Each control will be mapped to a field
name using the reference name. There is also a Preview Form button that allows you to see what the
end product will look like.
On the third tab you can modify the workflow, and from the Toolbox you can add states and
transition links. The bug shown in Figure 57-32 shows how it can transition between active
and resolved. If you double-click the transition, you can define reasons, actions, and fields. The
last is used to set default values to fields after a transition; for example, when the bug transitions
from active to resolved, it is assigned to the person who created the bug, the Resolved By field is set
to the current user, and the Resolved Date is set to the server’s current date.
1136 .
chaPter 57 TeAm FoundATion SerVer
fiGure 57-32
In the next section you see how you can include work item types on a process template.
customizing the Process template
To serve as an example for process template customization, you will modify MSF for Agile
Development. To create a local copy you need to open the Process Template Manager from the
Team . Team Project Collection Settings menu and select Process Template Manager. When
the Process Template Manager dialog opens, select the desired template and click Download.
Now you can open it in the Process Template Editor from the Tool . Process Editor . Process
Template . Open Process Template menu and select the processtemplate.XML file just
downloaded.
In the Process Template Editor window (Figure 57-33) you have a tree view to configure the
different areas of a team project. In the Work Item Tracking node you can modify the Default Work
Item List, create default work item queries, and import work item types. In Areas & Iteration you
can configure default values for these lists and specify the field and column mappings for Microsoft
Project Integration. You can specify permissions and settings under Source Control. In the Portal
node, you can add documents that will be added to Document Libraries for SharePoint, and finally
in the Reports node you can add Report Definition files.
summary .
1137
fiGure 57-33
Although this tool can tremendously simplify the required work, you will need to edit the XML files
for several tasks. For example, there’s no way to specify a SharePoint template for the portal.
suMMary
In this chapter, you saw how Team Foundation Server can help you get the work done by integrating
the different roles involved. The project managers will be filing and monitoring work items in either
Excel or Project, while architects, developers, and testers will be working with the Visual Studio
Projects using the version control features, easily relating changes to their assigned work items.
Optionally, each change will trigger a team build that will ensure the quality standards are met. TFS
will be monitoring everything and generating metrics for reports that can be viewed through the
different interfaces like Visual Studio, Team Portal, and Team System Web Access. At the end of the
chapter, you saw how the whole process can be customized by modifying the process templates and
work item types to better suit each organization’s needs.
index
$( ) function, 468–470
* (asterisk), unsaved changes, 11
a
abstraction, imperative languages and, 312
Access Modifier option, 816
accessibility for users, 416–417
ACS (Access Control Service), 545–546
action methods
Create, 457
parameters, 456–459
ActionLink helper, 450
Actions Pane window (VSTO), 381, 386–387
ActivationKeyFile property, 957
activities (workflow), 703–704
code, 715–719
control flow, 704–705
Flowchart, 704
Sequence, 704
Activity class, 704
Activity Diagrams (UML), 1062, 1063
Add Area dialog, 459
Add button, 575–576
Add Controller dialog, 441
Add-in Manager dialog, 1011
Add-in Wizard, 1009–1012
add-ins
Add-in Wizard, 1009–1012
COM components, 1014
Connect class, 1015
deploying, 1022–1023
disabled, 394
extensibility and, 1002
loading, 1011
project structure, 1012–1013
testing, 1013–1014
unregistering, 392–393
Visual Studio IDE, 1011
Visual Studio Macros IDE, 1011
Add Reference dialog, 21
.AddIn file, 1014
address breakpoint, 847
AddSolutionFolder method, 1003
Administrative install, 970
ADO.NET. See also Sync Services
ADO.NET Entity Framework, 621
associations, 623
creating, 634
modifying, 634
navigating, 641–642
change tracking, 639
Empty Model option, 625
entities, 623
adding properties, 631–632
business logic, 645
complex types, 632
creating, 630–633, 632–633
inheritance, 635
modifying, 630–633
property names, 631
Entity Data Model Wizard, 624–625
Entity Framework designer, 626–630
entity models, 623
creating, 624–635
CRUD operations, 637–641
database updates, 644–645
querying, 636–642
updating with database changes, 635
validation, 635
aDo.neT entity framework – asP.neT aJaX
ADO.NET Entity Framework (continued)
entity sets, 623
LINQ and, 587
LINQ to Entities, 636–642
LINQ to SQL, 622–623
LINQ to SQL and, 487
mapping, 623
POCO (Plain Old CLR Objects), 645
reports, 649
adornments in text, 1047–1048
AfterInstall event handler, 970
aggregates, reports, 661–663
Agile Software Development. See MSF for Agile
Development
aliases
commands, Immediate window, 831
e (XML namespace), 605
alignment, text controls, 342
Allocation information, 1082
AmbientValue attribute, 31–32
anchoring controls, 349–350
animated window closing, 41
anonymous methods, 321–322
anonymous type feature (LINQ), 591
app.config file, 726, 774
AppFabric, 533, 545–546
authentication, 533
application add-ins, 388–392
VSTO, 388–392
Application Events, 954
Application Expiry, 950
Application Framework, 100
security, 728
application-level add-ins (Office), 381–382
application-level errors, 877
application-level tracing, 882
application monitoring and management, 949–958
application expiry, 956–957
RI (Runtime Intelligence), 952–956
Tamper defense, 950–952
usage tracking, 957–958
application pages, SharePoint, 522
Application tab (Solution Explorer), 97–98
Application Framework, 100
Assembly Information, 98–99
User Account Control, 99–100
Application Usage Tracking, 950
ApplicationAttribute attribute, 953
applicationHost.config file, 775
ApplicationRoot class, 1035
import requirements, 1036
applications. See also Windows Forms
applications
ASP.NET Dynamic Data, 489–491
composable parts, 1034
debugging
multi-threaded, 897–899
parallelized, 897–899
running remote debugging, 894–895
running Web applications, 893–894
running Windows processes, 892–893
deploying, 394–396
occasionally connected, 746
resourcing, 811–813
settings, configuration files, 782–790
themes (Silverlight), 479
ApplicationServices, 729
ApplyResources method, 817
appSettings section of configuration file,
782–783
Architecture edition. See VSTS Architecture
Architecture Explorer, 1068–1070
queries, 1070
areas (MVC), 459–461
arrays, literals, 323–324
Ascending keyword, 595
ASP (Active Server Pages), 437
ASP.NET
applications, reports, 646
configuration in IIS, 434
debugging, 872–877
Edit and Continue, 876
error handling, 876–877
web applications, 874–876
RIA Services and, 758
Web site administration, 431–434
ASP.NET AJAX
JavaScript, debugging, 879
Web Application projects, 427–429
control extenders, 429–431
asP.neT application services – attributes
ASP.NET Application Services, 725
authentication, 729
client application services, 729
profiles, 729
role management, 729
ASP.NET Dynamic Data, 485
applications, 489–491
Convention over Configuration, 486
data fields, customizing, 492–494
data models
adding, 487–489
customizing, 491–492
display format, 496–498
scaffolding tables, 491–494
validation rules, 494–496
enabling for existing projects, 511–512
Entities Dynamic Data project, 488
metadata classes, 492
presentation, 498
entity templates, 506–508
field templates, 502–506
filter templates, 509–511
page templates, 499–502
scaffolding, 486
web applications, creating, 486–491
ASP.NET MVC, 437, 438
action methods, parameters, 456–459
areas, 459–461
Dynamic Data templates, 464
display templates, 465–468
edit templates, 468
files, 439
folders, structure, 439–440