26.04.2015 Views

Team Development with Visual Studio Team Foundation Server

Team Development with Visual Studio Team Foundation Server

Team Development with Visual Studio Team Foundation Server

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

• /Source<br />

• /WinFormsProject<br />

• /WebProject<br />

• /WindowsServiceProject<br />

• /ClassLibrary1<br />

• /ClassLibrary2<br />

• /ClassLibrary3<br />

• Web.sln<br />

• Service.sln<br />

• All.sln<br />

Keeping the structure flat provides a lot of flexibility and the ability to use solutions for<br />

presenting different views on the projects. The physical folder structure around solution<br />

files is very hard to change, especially if you realize that you need to reuse a class library<br />

from another solution.<br />

Reasons to use this structure include:<br />

• Performance is improved when loading and building application sub-solutions.<br />

• Sub-solutions can be used to create views on sets of projects based on development<br />

sub-teams or boundaries of code sharing.<br />

• You can use the master solution to build the entire application.<br />

• You can easily map dependencies across projects in each sub-solution.<br />

• It reduces overall complexity if the solutions are broken up logically. For example<br />

breaking up the solution along technology or feature lines makes it easier for new<br />

developers to understand which solution to work on.<br />

The main reason not to use this structure is:<br />

• Increased solution maintenance costs. Adding a new project might require multiple<br />

solution file changes.<br />

Multiple Solutions<br />

If you work on a very large solution requiring many dozens of projects, you may<br />

encounter solution scalability limits. In this scenario, break your application into multiple<br />

solutions but do not create a master solution for the entire application because all<br />

references inside each solution are project references. References to projects outside of<br />

each solution (for example to third-party libraries or projects in another sub-solution) are<br />

file references. This means that there can be no “master” solution.<br />

Instead, you must use a script that understands the order in which the solutions need to be<br />

built. One of the maintenance tasks associated <strong>with</strong> a multiple-solution structure is<br />

ensuring that developers do not inadvertently create circular references between<br />

solutions. This structure requires complex build scripts and explicit mapping of<br />

dependency relationships. In this structure it is not possible to build the application in its<br />

entirety <strong>with</strong>in <strong>Visual</strong> <strong>Studio</strong>. Instead, you can use TFS <strong>Team</strong> Build or MSBuild directly.<br />

Figure 3.3 shows the multiple solutions approach.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!