In the two sections of this article, I'll cover some of the core features of Team Foundation server, highlighting how these features are used together in everyday applications of this product.
As a software developer, in my career, I often use a number of development tools that support the software development process, such as version number control tools, vulnerability tracking packages, build scripting languages, unit test frameworks, and requirements analysis tools. On the. NET platform, a large number of support tools work very well on their own, but in order for the tools to work together, they often require some manual effort.
With the announcement of Team Foundation server components in the Visual Studio product line, Microsoft has made the development team make great strides in the application of rigid software project practices. This is not because the product includes a variety of new features must be the best, the key factor is its integration.
Team Foundation Server Start
Team Foundation Server (TFS) is a server product that needs to be deployed in a software development environment so that developers can use the various services it provides. Because TFS is designed for large teams, there are two topologies to choose from: Dual server and single server.
In a single Server deployment, TFS is installed on the Windous 2003 server, and SQL Server 2005 database server, Webserveriis, and Windows SharePoint Services are already installed on the machine. This type of installation can meet a large number of user needs and is suitable for most conditions.
A dual-server deployment installs the database engine and Analysis Services components of SQL Server 2005 separately on different machines, enabling scalability (by increasing the space used for a large number of user-register operations and by installing different data warehouses that handle the load on different machines, This machine can be up to 64 bits in maximum. )
After the tfsserver is installed, the client can access the server by installing Team Explorer. Team Explorer is a set of components that contains the simple version number of Visual Studio 2005 (assuming that you have already installed Visual Studio 2005 on a machine and then added it again?). Many other features) and a large number of plugins for Microsoft Excel and project, using Excel and project to 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 number control
- Build Your own initiative
- Report
Create a team project
Before a development team can use team Foundation server, a team project must be created, and the team project represents a snap-in where all team activities occur. In order to create a team project, team Foundation server administrators need to open the Visual Studio 2005 and Team Explorer tools form (from the View menu). When you open the Team Explorer form, you are able to establish a connection to the server.
By right-clicking the server node in the tree view, the TFS Administrator is able to select New team project. In fact, this option is generally hidden, so it is very rare to create a new team project. In most cases, a software development team has only one team project in the life cycle of a large software.
The first thing a development team needs to do when creating a team project is to decide to use that development model.
Select a development model
Team Foundation Server agrees that the development team chooses whatever specific software development method they want to use. Two development models are available in the following list:
- Agile model-driven software development
- Software development of integration model of capability maturity
Each development model has a unique set of customization features, including defining work items (what to do, what to identify, requirements, and so on), process management, and reporting. The following table shows the decomposition of the different work items in the two default development models:
Agile model-driven software development |
Software development of integration model of capability maturity |
Loopholes Quality of service Requirements Risk Scene Task |
Loopholes Change Request Problem Demand Recall Risk Task |
In such cases, even if there are differences in the number and name of work items, it should be noted that using the common methods of the two development models rather than the development team guessing how they use these types of work items, the development model can include some optional process management pages.
Suppose that the model in the dialog box does not fit your detailed requirements and can be customized to suit your requirements. In fact, there are already a large number of third-party development models that can be obtained, such as scrum and process MeNtOR.
Access to work item storage
After the team project is created, the first thing the development team needs to do is break down the initial set of work items that have already been created. These work items help the developer complete a series of activities that enable the software project to start successfully, and choose different work items based on different development models. By expanding the team project node, you will be able to see the work items, continue to expand, and open the query catalog to see all or part of the work items.
Writing custom Work Item queries
Finally, you need to write a new list of work item queries. The newly defined query can be placed in both the team query and my queries directories. A team query is a global accessibility container that can be visited by all developers in the project team, and my query is a private query set by every developer of the program.
A useful query that I often use is recycle Bin query, which can be used to open a work item that has recently been closed and needs to be opened again (accidentally closing a work item). The first step is to select "Join Query" from the background menu of the work Item node.
Once the Query Editor is open, a simple user interface can filter out the required items from the work item list based on some simple expressions. In the above scenario, the query is set to return all work items in the team project that have a current status of closed.
Apply Team Foundation Server the version number control
By visiting the work item, you can apply version number control in Team Foundation server. Like other features in TFS, the version number control feature is located above SQL Server 2005 and is designed to provide good performance and scalability (in fact, the size of the version number control memory hosted in TFS is expected to be gigabytes.) The first work item that the development team might encounter related to version number control is the migration of the existing source code, which provides a concrete view of what needs to be done in migrating the source code.
Configure a workspace
Before the program apes add files to the version number control memory, you need to map the logical structure of the version number control memory to the file system on the local machine. Team Foundation Server introduces the concept of workspaces. A workspace is a set of mappings between a physical location and a file system, and a file system matches a particular user and computer combination. Programs that work on files ape, they are logical in and out of the work area. To create a workspace, the ape needs to double-click the source control icon in Team Explorer and go to the workspace drop-down menu.
I find it easiest to map the root of the entire source tree to a detailed location on a local drive as a unique mapping. My own method is to create a "sandbox" folder on the root folder of my data drive, with a subfolder under it, named after the name of the tfsserver I connected to. (I am connected to multiple tfsserver, so be sure to avoid confusion).
Once the mapping is established, the browser will list the local path to the logical location on the source tree. You are now able to join the source into this container.
One limitation of program apes is that they cannot add files to the root of the version control Memory ($/), and all and directories are directly related to a particular team project. The logic in this is that a team Foundation server can be used for a large number of projects, and each project should work within its own region.
Add source to Team Foundation Server
There are countless ways to arrange the source code in team Foundation server, and why do you choose to do so instead of having one, specific reasons beyond the scope of this article. The following choices are only one for the example. In particular, I chose to join the three-word directory: Trunks, Branches, and releases, for example.
Directory join? To the version number control system, other program apes do not immediately see, they must be like a file to register. In this example, before the registration, I will join a group of solutions and project files into this container, and then register together.
In addition to enhanced performance and extensibility, TFS installs its version number control system on SQL Server 2005, which means that the method of atomic submission and registration is possible. That is, either all the brochures succeed or all fail. The register can be run on the source control browser or the solution browser (or in the Force Change tool form)
The version number control system and the work item memory are integrated at the time of the registration. When you register, you can associate it with one or more work items. For example, since this is just the introduction of the source code, I was able to browse the work Item view in the Register dialog box, select Work Item 3387 and associate it. Note When you associate a work item regardless of the default selection, set the register behavior to "resolve", which is done to prevent the task from closing the work item, thus creating a very useful recycle Bin query earlier.
Creating a register is called a change set, and a source container is just a series of changing sets that keep piling up to each other. Because changing a set in a database is a distinguishable entity, it is able to correlate data with it, so the relationship between the set of changes set above and the work item 3387 can be browsed in a change focus or in a work item. The following screen shows the set of changes that are attached to a work item.
New concept: Shelveset
A new concept related to version number control in Team Foundation server is a shelveset. The idea of shelving is that a program ape can put a change in the workday in a safe place during the weekend. Building a shelveset is fairly simple, first of all, the program ape in the solution browser in the Background menu, select "Shelve necessary Changes", and then the following dialog box appears.
The program Ape is able to give a shelveset a name so that it can be found and recovered later, and as with the Register dialog box, the shelveset can also join? comments and associated work items. The shelveset includes only the changed files, since the change set version number is derived from the version number control memory, so creating them is fairly straightforward.
To restore the shelveset, you can choose the "thaw necessary changes" option in the Background menu, and the program ape can find a shelveset set up by them or other program apes.
In fact, shelvesets can be shared, which means they can run code previews very well and enhance the single-point policy, which can be very useful for a particular project when packaged.
In the next section of this article, I'll cover the shelveset, the good branch support in TFS, how TFS supports self-generated and describes the features that the reporting feature provides.
Feature Introduction: Microsoft's latest configuration management tool
In today's environment, the company's business more and more complex, software development complexity is also more and more high, at this time, many projects now have this phenomenon occurs: documents scattered in different places, code is missing, code and document inconsistencies, the same system multiple version number, each project with different configuration management tools, no unified specifications, As time goes by, our project management risks are increasing, the project implementation is becoming more difficult, and the quality of project implementation is difficult to control. How can high-quality applications be built quickly to meet the demands of ever-changing business growth? We urgently need to establish a good configuration management system to improve production efficiency, improve product quality, and finally realize the maximization of enterprise benefits. The challenge for configuration management at this stage is: L
Uniform SpecificationsL
better organizational, higher level of development managementL
Protection Investment: enterprise-Class process history data, experience, digital assetsL
Establish a standard development environmentL
achieve parallel development and shorten time-to-marketL
self-initiated managementL
freeing up a lot of other time for creative workL
more Professional staffand through Microsoft's team Foundation Server (TFS) Implementation of software configuration management can effectively solve these problems, such as the centralized management of the purpose of the document, code, the document in the project, code and other changes to effectively manage, you can easily reproduce a file's historical version number , it is possible to compile a historical version number again, making document maintenance easy, enabling multi-team parallel development to be a reality, and implementing a unified configuration management process at the same time can improve the efficiency of staff movement between project groups, and is an effective protection of the work results.
function Introduction II: Outsourcing management Tools
with the rapid development of information technology, Software has entered all aspects of social life, more and more enterprises to build their business system in the software as the coresystem, enterprises through them to provide their customers with high-speed high-quality services. Because the software has become the basic platform of the business, the core competence of the enterprise depends on the quality of the software system to a great extent, and the software system can quickly adapt to the change of business requirement, and guarantee the high performance, high reliability and maintainability of the software system at the same time. However, for most enterprises, software development is not the business they are good at, coupled with the complexity of software systems and very high quality requirements, most enterprises choose to outsource the software development projects, by the Professional software Development (supply) companies responsible for software development. However, software outsourcing does not mean that the enterprise to the software development process, regardless, the enterprise should establish the agreement with the supplier, and monitor the supplier's development process, and the supplier submitted by the final system to complete acceptance, so as to completely 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 the control of quality, source code, progress, funds, personnel, etc. Effective process control, relying only on human power is not enough, there is a corresponding management tool support to achieve efficient"Software life cycle Management". However, due to historical and practical reasons, software lifecycle management processes and tools in China's software industry is not widely used, because of the lack of necessary management processes and tools, a lot of enterprises in the software outsourcing projects will be more or less encountered such as the following problems:L
lack of unified development and management process guidance, can not guarantee the quality and success rate of the projectL
the developed system does not meet the needs of users or business• The
development process is opaque and very difficult to monitor development progress L
can not understand the project in time
progress, often leading to project delaysL
unable to effectively control the project changes, add the risk of the projectL
cannot effectively achieve multi-land collaborative development
, add? Outsourcing development costs (site, travel)L
low software reuse rate reduces the return on investment of the EnterpriseL
Unable to conduct standardized test work
, a lot of problems will be exposed to the acceptance stage .L
lack of software development history data accumulation,
inability to accurately estimate project costsL
lack of the necessary version number management tools, resulting in problems with the system building and publishingL
lack of corresponding documentation, added? Maintenance and upgrade difficultythese problems lead to a very large number of enterprises outside the package project can not be effectively controlled or in the development of excessive resource waste (too much iterative development between the systems), and the development of the system can not respond to the rapid changes in the market. These problems directly reduce the productivity of the employer, add the enterprise operating costs. to fundamentally improve the management level of software outsourcing development, we must start from many aspects, introduce the advanced development process, draw on the best practice of the industry, and build an efficient system development management platform is a certain choice. in order to solve the above problems in outsourcing development management, we have designed Microsoft's software outsourcing development Management solution based on Microsoft's latest published software Lifecycle Tool, which can provide the necessary development process guidance to multi-platform and geographically distributed development teams. Achieve efficient project management, promote project team communication, and provide a tightly integrated change and configuration management system, for enterprises to establish an advanced software collaborative development management platform.
Introduction and Getting Started with TFS (Team Foundation Server)