Team Development Using Visual Studio 6.0
1 / 36

Overview - PowerPoint PPT Presentation

  • Uploaded on

Team Development Using Visual Studio 6.0 Martyn Lovell Development Lead Visual Studio Enterprise Microsoft Corporation 6-309. Overview. Team Development Tools Source Control Setting up Unifying tools Parallel Development VSS integration best practices Component Management Setting up

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about ' Overview' - havily

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

Team Development Using Visual Studio 6.0Martyn LovellDevelopment LeadVisual Studio EnterpriseMicrosoft Corporation6-309


  • Team Development Tools

  • Source Control

    • Setting up

    • Unifying tools

    • Parallel Development

    • VSS integration best practices

  • Component Management

    • Setting up

    • Best practices

  • Summary

  • Q&A

Focus areas
Focus Areas

  • Covered

    • Visual Studio 6.0

      • Visual C++, Visual Basic, Visual J++, Visual InterDev

    • Source Control Systems

      • Visual SourceSafe, Others

    • Visual Component Manager

  • Not Deeply Covered

    • Visual FoxPro

    • Microsoft Access

    • Other uses of the Microsoft Repository

Team development tools
Team Development Tools

  • Source control

    • Manage Source code

    • Manage Documentation

    • Share Reusable source

  • Component management

    • Manage Built binaries

    • Manage External binaries (MFCxx.DLL)

    • Share Binary components (OCX)

  • Each allows other’s content

    • But is optimized as described above.

Source control
Source Control

  • All of Visual Studio is integrated with Source Control

  • Each piece of the product does it slightly differently

  • Working with each individually is well-documented

  • When your work crosses tools things become more complex

    • This is the focus of this part of the talk

Types of integration
Types of Integration

  • Client Side

    • Has user interface

      • e.g. Diff/Merge

    • Uses Microsoft Source Code Control Interface (MSSCCI)

  • Server/Automation

    • No user-interface

    • Runs unattended

Client integration
Client Integration

  • MSSCCI-based

    • De Facto standard

    • Supported by all major vendors

      • PVCS, ClearCase, Team Connection, …

    • Used by other editors and tools

  • MS Products

    • Visual Basic, Visual C++, Visual J++, Visual FoxPro, Access

Server integration
Server Integration

  • Server-side integration uses a VSS-specific interface

    • SourceSafe supports it

    • PVCS has some support too

  • Used to keep a server backed by source control

  • Not widely used on the client

  • MS Products

    • FrontPage, Office Web Server, Visual InterDev

Setting up team
Setting up: Team

  • One person should administer

  • They will be responsible for

    • User management

    • Sharing

    • Branching

    • Pinning

    • Analyze

    • Creating Databases

Setting up visual sourcesafe
Setting up:Visual SourceSafe

  • Use VSS explorer to open databases

  • Use browse to find your database on the network

  • Create shareable connections

  • Shareable connections look like

    • \\martyn\vss\srcsafe.ini

  • Non-shareable connections look like

    • C:\foo\srcsafe.ini

  • Avoid using NetSetup

    • It makes a non-shareable connection

Setting up frontpage
Setting up: FrontPage

  • Set up FrontPage server to point at VSS

  • Can point at VSS database on any machine

  • Tough process

  • Get the KB articles

    • See Q157883, which points at other KB articles

  • Works seamlessly when set up

Creating a new project
Creating A New Project

  • Create it on your local machine

    • Ensure it builds there

  • Keep everything under a unified root

    • All projects and files should be under some well known point

    • Otherwise, VSS will force you to copy them

  • Put metafiles above their references

    • Workspaces above projects (VC)

    • Project groups above projects (VB)

    • Solutions above projects (VJ/VID)

    • Vital for VB and VC; highly desirable for others

Importing libraries
Importing Libraries

  • Don’t try to share local copies of library files

    • Your development efforts will interfere with each other

    • Source space is a small fraction of build space

  • Use ‘Share and branch’ to make references to common libraries

    • Caveats later

Adding to source control
Adding To Source Control

  • Server layout should match disk layout

  • Don’t add output or temporary files

    • OPT/SUO

    • NCB

    • PDB

    • APS

  • Do add binary files

    • BMP/ICO

  • Consider adding input binaries (OCX, DLL)

Working with source control
Working With Source Control

  • Use integration where ever possible

  • Resort to VSS Explorer only when necessary

  • Use Refresh status command after using VSS Explorer

  • Check out all files before working on them

Unifying tools
Unifying Tools

  • Three ways to unify tools

    • Command Line

    • Build Tree

    • Single SCC Environment

  • Each has strengths and weaknesses

  • No perfect solution yet

Command line
Command Line

  • Ensure unified root across all languages

  • Avoid adding directories too often

  • Write command line scripts to get latest versions

  • Pro

    • Simple

    • Extensible

  • Con

    • Completely manual

Build tree
Build Tree

  • Ensure unified root across all languages

  • Avoid adding directories too often

  • Use VSS GUI to get new versions

    • Recursive

    • Build Tree

  • Pro

    • Simple

  • Con

    • Completely manual

Single scc environment
Single SCC Environment

  • Choose a host environment

    • Probably best to choose your most important one

  • Create fake projects to wrap all projects from other environments

  • Fake projects must be kept in sync with real projects

  • All SCC operations done from the host environment

  • Other environments see themselves as controlled

Host mde vj vid vsa

  • Microsoft Development Environment

  • Best SCC UI and integration

  • Use utility projects to model external projects

  • Can set up build too

  • No debugging except of VJ

  • Only way to integrate with VID as well

  • Good support for Share and Branch

    • Does not have VC’s issues in this area.

  • Best general-case solution from a source control perspective

Host vc
Host: VC++

  • Good SCC UI and integration

  • Use makefile projects to model external projects

  • Can set up build too

  • Debug VB, VC

  • No way to integrate with VID

  • Manual support for Share and Branch

  • Good for primary-VC users

Host vb
Host: VB

  • Basic SCC UI and Integration

  • Use a VB Project to model external project

    • Not ideal

  • Can’t easily set up build

  • Debug only VB

  • No way to integrate with VID

  • Good support for Share and Branch

  • Good for mostly VB users who do a little VC


  • Assorted hosts

Parallel development
Parallel Development

  • VSS uses Share command to work in parallel

  • Branch command splits the share

  • Always branch metafiles


  • Some manual fix up required in VC

    • See knowledgebase Q173065

  • VJ has command to aid fix up

    • Change Connection

Parallel development 2
Parallel Development (2)

  • Simplest solution

    • Share and branch everything

  • Administrator should complete branch before people start work

  • Be sure to reopen everything before you let others loose

  • Branching webs is hard

    • Avoid it

    • Use Copy Web

Parallel development 3
Parallel Development (3)

  • Merge branches when no one is working

    • Tree can become un-buildable

    • Do a get latest version

    • Build, Test

    • Fix any problems

  • Avoid re-share unless required

Vss best practices
VSS Best Practices

  • Run Analyze weekly

  • Take regular backups

    • It’s a database!

  • Use the 6.0 format database

    • Performance

  • Get Visual Studio 6 SP4

    • Includes several useful VSS fixes

    • Deploy to clients, not just server

  • Avoid unreliable networks

    • Use RAS only for read operations

Integration best practices
Integration Best Practices

  • Have a shareable connection

  • Have a unified root

  • Share sparingly

  • Always use integration

  • Check out early

Component management
Component Management

  • Use Visual Component Manager to

    • Share built components

    • Reuse across organization boundaries

    • Provide centralised repository

    • Assign custom properties

    • Archive binary dependencies

      • VBRUN, MFC, etc

  • Not good for

    • Source code sharing

Setting up
Setting Up

  • Experiment with MS Access

    • Create a taxonomy

      • Investment here will pay off

      • Initial taxonomy may help

    • Decide on keywords

      • People will not bother unless the keywords are apposite

  • Then setup SQL server

    • Key for performance

  • Have users deploy

    • Many may not have installed


  • Publish and Reuse

Best practices
Best Practices

  • Archive all used binaries, OS-es, etc

  • Archive all inter-team releases

  • Create a simple website using FrontPage

    • Allows users to describe their component in more detail

    • VCM will run within IE too

  • Keep the publish burden low

    • Users are loathe to add metadata


  • SCC integration is powerful and flexible

  • Managing across many products is easier than it seems

  • Simple best practices can avoid most problems

Q & A