In the two sections of this article, I will introduce some core features of the team Foundation server, focusing on how these features are used together in the daily application of this product.
As a software developer, in my career, I often use a large number of development tools that support the software development process, such as version control tools, vulnerability tracking packages, script language generation, unit test framework, and requirement analysis tools. On the. NET platform, a large number of support tools can work independently. However, manual work is often required to make the various tools cooperate with each other.
With the release of the team Foundation server component in the Visual Studio product line, Microsoft has made great progress in the rigid software engineering practice and application. This is not because the product includes the best new features, but the key factor is its integration.
Team Foundation ServerStart
Team Foundation server (TFS) is a server product that needs to be deployed in a software development environment so that developers can use the services it provides. Because TFs is designed for large-scale teams, there are two topologies available: Dual-server and single-server.
In a single server deployment, TFS is installed on windous 2003 Server, and SQL Server 2005 database server, web server IIS, and Windows SharePoint Services are installed on this server. This type of installation can meet the needs of a large number of users and is suitable for most of the conditions.
The dual-server deployment separates the database engine and Analysis Service Components of SQL Server 2005 and installs them on different machines, in this way, scalability can be achieved (by increasing the space for a large number of user registration operations and installing different data warehouses for processing loads on different machines, this machine can be up to 64 bits .)
After the TFS server is installed, the client can access the server by installing team explorer. Team Explorer is a group of components, including the simple version of Visual Studio 2005 (if you have installed Visual Studio 2005 on a machine, simply add more features) and a large number of plug-ins for Microsoft Excel and project. Using Excel and project, you can access data stored in the team Foundation Server database.
Team Explorer can be used to access the following features of team Foundation server:
- Process Guidance
- Work Item tracking
- Version Control
- Automatic Generation
- Report
Create a Team Project
Before a development team can use the team Foundation server, you must first create a team project, which represents a management unit where all team activities occur. To create a team project, the team Foundation server administrator needs to open the Visual Studio 2005 and team explorer tool windows (from the View menu ). When the team Explorer window is opened, you can establish a connection to the server.
Right-click the server node in the tree view, and the TFS administrator can select "create Team Project ". In fact, this option is usually hidden. It can be seen that a team project needs to be created in rare cases. In most cases, a software development team has only one team project in the lifecycle of a large software.
When creating a team project, the first thing the development team needs to do is to decide which development model to use.
Select Development Model
Team Foundation server allows the development team to select any specific software development method they want to use. The following list provides two development models:
- Agile model-driven software development
- Capability Maturity Integration Model Software Development
Each development model has a set of unique custom features, including defining work items (what to do, what to determine, requirements, etc.), process management and reporting. The following table shows the breakdown of different work items in two default development models:
Agile model-driven software development |
Capability Maturity Integration Model Software Development |
Vulnerabilities Quality of service requirements Risks Scenario Task |
Vulnerabilities Change Request Problem Requirement Review Risks Task |
In this case, even if there are differences in the number and name of work items, you should also specify the common methods for using the two development models, rather than the development team to speculate on how they should use these work item types, the development model can contain some optional Process Management pages.
If the models in the dialog box do not suit your specific requirements, you can customize them to meet your requirements. In fact, there are already a large number of third-party development models available, such as scrum and process mentor.
Access work item Storage
After a team project is created, the first thing the development team needs to do is to break down the initial work item set that has been created. These work items help developers complete a series of activities that can successfully start the software project, and select different work items based on different development models. By expanding the Team Project node, you can see the work item folder, continue to expand, and then open the query folder to see all or part of the work items.
Write custom work item query
Finally, you need to write a new work item query list. The newly defined query can be placed in either of the "Team query" or "My queries" folders. Team query is a globally accessible container that can be accessed by all developers in the project team. My query is a private query set owned by each developer.
A useful query I often use is the recycle bin query, which can be used to open the recently closed and re-opened work items (occasionally close work items ). The first step is to select "add query" from the context menu of the work item node ".
After the query editor is opened, a simple user interface can filter out required items from the work item list based on some simple expressions. In the above case, the query is set to return all work items in the team project whose current status is closed.
Application Team Foundation ServerVersion Control
After accessing the work item, you can apply Version Control in team Foundation server. Like other features in TFs, the version control function is located above SQL Server 2005 and is used to provide good performance and scalability (in fact, the size of the version control memory of the host in TFs is estimated to be 1 Gbit/s. The first work item that the development team may encounter related to version control is to migrate existing source code, which provides a detailed view of what needs to be done during source code migration.
Configure a workspace
Before a programmer adds a file to a version control memory, he/she needs to map the logical structure of the version control memory to the file system on the local machine. Team Foundation server introduces the concept of workspace. A workspace is a set of mappings between physical locations and file systems. A file system matches a combination of special users and computers. Programmers who work on files are logical in/out work zones. To create a workspace, you must double-click the source code control icon in team explorer to go To the workspace drop-down menu.
I found that it is the easiest way to map the root of the entire source code tree to a specific location on the local drive and map it as a unique ing. My own method is to create a "sandbox" directory in the root directory of my data drive, and there is a sub-directory under it, name it the name of the TFS server that I connect. (I have connected to multiple TFs servers, so be sure to avoid confusion ).
After the ing is established, the browser that browses the source code control will list the local paths of the logical locations on the source code tree. Now you can add the source code to this container.
One limitation for programmers is that they cannot add files to the root of the version control memory ($/), and all and folders are directly related to a specific team project. The logic here is that a team Foundation server can be used for a large number of projects, and each project should work in their own region.
Add source code to team Foundation Server
There are countless ways to arrange source code in the team Foundation server. Why do you choose this instead of another? The detailed reasons are beyond the scope of this article. The method selected below is only one example for demonstration. Specifically, I have added three word folders: trunk, branches, and releases, for example.
After the folder is added to the version control system, other programmers will not immediately see it. They must register it like a file. In this example, I add a group of solution and project files to this container before registration, and then register them together.
In addition to enhanced performance and scalability, TFS installs its version control system on SQL Server 2005, which means that it is possible to perform atomic commit and registration. That is to say, either all registration is successful or all registration fails. Registration can be performed in the source code control browser or solution browser (or in the force change tool window)
The version control system and work item storage are integrated during registration. When registering, You can associate it with one or more work items. For example, because this is the source code just introduced, I can browse the work item view in the registration dialog box and select work item 3387 to associate with it. Note that when you associate a work item, you must set the registration behavior to "resolved" regardless of the default choice. This is to prevent the task from closing the work item, therefore, a very useful recycle bin query was created earlier.
The establishment of a registration is called a change set. A source code container is just a series of changes that accumulate constantly. Because the change set in the database is a distinct entity, data can be associated with it, therefore, the relationship between the above change set and work item 3387 can be viewed in the change set or work item. The following screen shows the change set connected to the work item.
New Concept: shelve set
A new concept related to Version Control in team Foundation server is the shelving set. The idea of shelving sets is that programmers can place changes made on workdays in a safe place during weekend breaks. Creating a shelving set is quite simple. First, the programmer selects "shelving necessary changes" in the background menu of the solution browser, and then the following dialog box appears.
The programmer can give a name to the shelving set so that it can be searched and restored later. Like the registration dialog box, the shelving set can also add comments and associated work items. The shelving set only contains modified files. Because the version of the change set is derived from the version control memory, it is quite simple to create them.
To restore a shelve set, you can select the "unfreeze required changes" option in the background menu. programmers can find the shelve set created by them or other programmers.
In fact, shelve sets can be shared, which means they can execute code preview well and enhance the single registration point policy, which may be very useful for a special project during encapsulation.
In the next part of this article, I will introduce in detail the shelving set, comprehensive branch support in TFs, how TFs supports automatic generation, and the functions provided by the report function.
Function 1: Microsoft's latest configuration management tool
In today's environment, the company's business is getting more and more complex, and the complexity of software development is getting higher and higher. At this time, we find that such a phenomenon occurs in many projects: Documents are scattered in different places, and code is missing, code and documentation are inconsistent. multiple versions of the same system use different configuration management tools and there is no uniform specification for each project, over time, our project management risks are constantly rising, the difficulty of project implementation is constantly increasing, and the quality of project implementation is hard to control. How can we quickly construct high-quality application systems to meet the needs of ever-changing business growth? We urgently need to establish a complete configuration management system to improve production efficiency, improve product quality, and ultimately maximize enterprise benefits. The current configuration management challenges are:
L
Unified SpecificationsL
Better organization and higher development management levelL
Investment Protection: enterprise-level process historical data, experience, and digital assetsL
Establish a standard development environmentL
Achieve parallel development and shorten product time to marketL
Automated ManagementL
Release more time for creative workL
More Professional EmployeesHowever, implementing Software Configuration Management through Microsoft's team Foundation server (TFS) can effectively solve these problems, such as centralized management of documents and codes for various projects, effectively manage changes in documents and code in the project, so that you can easily reproduce the historical version of a file and recompile a previous version, it makes document maintenance easy and enables concurrent development by multiple teams a reality. At the same time, implementing a unified configuration management process can improve the efficiency of personnel flow between project teams, it is also an effective protection of work results.
Function 2: Outsourcing Management Tools
With the rapid development of information technology, software has entered all aspects of social life. More and more enterprises are building their business systems on the basis of software, enterprises use them to provide fast and high-quality services to their customers. Because software has become the basic platform for business, the core competitiveness of enterprises depends largely on the quality of the software system, requiring the software system to quickly adapt to changes in business needs, at the same time, it ensures the high performance, high reliability and maintainability of the software system. However, for most enterprises, software development is not what they are good at. In addition to the complexity and high quality requirements of software systems, most enterprises choose to outsource software development projects, professional Software Development (supply) vendors are responsible for software development. However, software outsourcing does not mean that enterprises can leave the software development process alone. Enterprises should establish agreements with suppliers and monitor the development process of suppliers, complete acceptance of the final system submitted by the supplier to ensure that the supplier can deliver a high-quality software system on time. The success or failure of a software project depends largely on the control of its development process, which includes control over quality, source code, progress, capital, personnel, etc. It is not enough to rely solely on human resources for effective process control. Corresponding management tools are also required for efficient "software lifecycle management ". However, due to historical and practical reasons, software life cycle management processes and tools are not widely used in the software industry in China. Due to the lack of necessary management processes and tools, many enterprises may encounter the following problems in software outsourcing projects: l
Lack of unified development management process guidance, unable to guarantee the quality and success rate of the projectL
The developed system cannot meet user or business needs.L
The development process is not transparent and it is difficult to monitor the development progress.L
Unable to understand the project in time
Progress, which often leads to project delaysL
Project changes cannot be effectively controlled, increasing project risks.L
Collaborative development across multiple regions cannot be effectively implemented
To increase outsourcing development costs (site and travel expenses)L
Low software reuse rate reduces the ROI of EnterprisesL
Unable to conduct standardized testing
, Many problems will not be exposed until the acceptance stage.L
Lack of accumulation of historical software development data,
Project cost cannot be accurately estimatedL
There is a lack of necessary version management tools to cause problems during system building and releaseL
The lack of relevant documentation increases the difficulty of maintenance and upgradeThese problems make many enterprises unable to effectively control outsourcing projects or cause excessive resource waste during development (too many repeated development between systems ), and the developed system cannot respond to rapid changes in the market. These problems directly reduce the productivity of the employer and increase the operating costs of the enterprise. To fundamentally improve the management level of software outsourcing development, we must start from multiple aspects, introduce advanced development processes, and learn from the best practices in the industry, and building an efficient system development and management platform is an inevitable choice. To solve the common problems in outsourcing development management, we designed Microsoft's outsourcing development management solution based on Microsoft's latest software lifecycle tool, provide necessary development process guidance to development teams with multiple platforms and geographical distribution to achieve efficient project management and promote communication between the project team, it also provides a tightly integrated change and configuration management system, and establishes an advanced software collaborative development management platform for enterprises.