Browse DevX
Sign up for e-mail newsletters from DevX


Software Configuration and Management Using Visual SourceSafe and VS .NET : Page 3

Good software development is a combination of many things that are outside of just writing great code. Turning the art of software development into the science that makes for controllable, predictable, managed software projects makes your business more productive.




Building the Right Environment to Support AI, Machine Learning and Deep Learning

Visual SourceSafe (VSS) Server
The Visual SourceSafe server is a central file server that hosts one or more Visual SourceSafe (VSS) libraries. You can, of course, locate VSS libraries on different file servers. Use the VSS library to provide versioned, controlled access to project source files. Developers interact with VSS on a daily basis as you check project files in and out through Visual Studio .NET's Interactive Development Environment (IDE). Though you can use the VSS client program to check files in and out, we strongly recommend that you manage your source code through .NET's IDE when developing .NET applications. For other files like project plans, specification documents, and the like, use the VSS client program to manage and use those files.
Use the isolated development model for best source code control.
VSS is a "file management system" and not a database server (like SQL Server). A VSS instance "lives" on a Windows file share and therefore, your system administrator can use basic file share security to ensure that only authorized people can use the VSS library.

You can assign each VSS library to a different administrator or the same administrator could manage multiple VSS libraries. VSS requires very little administration. The administrator would initially create one or more libraries on the appropriate Windows shares and set up the access control lists. The administrator would add the necessary user IDs and passwords for the developers. Unfortunately VSS does not yet offer integration between Windows authentication and VSS library authentication. And, in fact, you will need to add IDs and passwords for each VSS library that you create. The administrator sets up a Windows share and puts the VSS client installation folder there with read access. In that way your developers can easily install the VSS 6.0c client software. VSS's Netsetup.exe program lets your administrator perform a client setup over a network. Netsetup.exe does not require you to have an installation disc at your computer.

Team Development Roles
There are several instrumental roles when developing software. A role is a function or duty performed by a person. A role does not imply a full time effort, and a role may require three people to perform. Based on your own organization, you'll staff roles as appropriate to get your job done. Here are some of the various roles you might create within your organization.

  • A Systems Analyst develops the functional specification document, the prototype, and possibly the initial data model. We have seen the analyst role vary widely from company to company. A good analyst has a broad range of skills including customer interface, interviewing, documenting, prototyping, and data modeling.
  • A Developer writes software and performs unit testing for all the tasks assigned to them. Also, a developer may do some database modeling, they may need to use SQL and stored procedures, and they need to do software design.
  • A System Integrator or Project Manager is the overall project manager of the development effort, supplying the necessary resources. Key tasks are the customer interface, software integration across the developers, managing the software build, and ensuring a quality product.
  • A Quality Assurance role is involved in the final integrated testing for the application. Many times the developer will assist in this role, but there should be a dedicated team devoted to ensuring the quality of all applications prior to going into production.
  • A Database Administrator (DBA) is responsible for implementing the data model created by the systems analyst. A DBA will ensure that all the data objects are created and that good referential integrity is maintained within the database. In addition, the DBA will most likely generate many of the stored procedures for the application this database will support. Additionally, the DBA performs routine maintenance on the database including backup and restore functions. Finally, the DBA should tune the database for performance.
VSS and the Development Process
Just how should your development team interact with VSS? We strongly recommended an isolated development model. With this model, you completely isolate the developer (edit, debug, and run capabilities) on their own development workstation. This applies to desktop or Web applications. In the case of Web applications, the developer is using the instance of IIS (or other Web server) on their workstation for unit testing. Let's work through a scenario.

  1. The Project Manager or lead developer initially builds a Visual Studio .NET application (Web, desktop, etc.) on their workstation. Visual Studio .NET creates the appropriate VS projects, defines references, and adds other initial solution elements (Web pages, Windows Forms, etc.) to the project.
  2. The Project Manager or lead developer adds this solution to the VSS library through Visual Studio .NET—NOT from the VSS client program. This is a good habit to get used to. In the case of Web applications, VSS will not work very well without adding and getting projects through the Visual Studio .NET interface.
  3. Now hold a team meeting is with all the roles present and let your Project Manager lead this meeting. The Project Manager assigns each Developer their portion of the project. For example, one developer may get ten screens and another may have to build five screens and five reports.
  4. Each developer returns to their workstation and launches Visual Studio .NET. They then load the solution from the VSS library from within Visual Studio .NET. This, in essence, is called a "get latest" from the VSS library.
Now each developer has their own copy of the entire solution and projects on their workstation, but their copy of the solution is READ ONLY. This is important: Each and every developer should always have an entire instance of the application they are working on. This provides an excellent form of incremental testing. When a developer needs to create or edit an existing source code file, the developer "checks out" the file(s). When a developer has checked out a file, only that developer can edit that file. After the developer codes and tests his or her program, then and only then should they check it back in. A good rule of thumb is to check in only those files that are fully debugged so that when other developers perform a "get latest" on the solution, they will not be impeded by another developer's bugs.

Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



Thanks for your registration, follow us on our social networks to keep up-to-date