2009-07-22 12 views
2

Derzeit ist unser .net-Projekt 3.5 auf drei separate Server von Präsentations-, Geschäftslogik- und Statusservern verteilt. Bitte empfehle, wie man dieses Projekt unter VSS 6.0 einrichtet, unter Berücksichtigung, dass wir mehrere Projekte auf dotnet haben und wir haben eine Reihe von Entwicklungsteams, die daran arbeiten. Aktuell können wir sie als Projekt haben 1:Visual SourceSafe Setup

>Business Object Layer 
>WebService 
>Proxy 
>Web 

Projekt 2:

>Business Object Layer 
>Proxy 
>Web 

Eine der Herausforderungen ist die tatsächliche Umsetzung konfrontiert über drei Server geschehen wird, aber zur Zeit sind wir ihnen unter einer Wurzel zu speichern und Das verursacht uns unnötige Kopfschmerzen.

+2

Für die Liebe von allem, was heilig ist, vermeide VSS wie Pest. Die Anzahl der Geschichten über beschädigte VSS-Repositorys, die ich von Leuten gehört habe, die sie aus erster Hand erfahren haben (und nicht im Internet, aber IRL), übersteigt alle vernünftigen Grenzen. Angesichts der Verfügbarkeit von kostenlosen Versionskontrollsystemen wie Subversion (obwohl CVS sogar viel besser ist!), Komplett mit Visual Studio-Integration, gibt es heutzutage wirklich keine Entschuldigung für die Verwendung von VSS. –

+0

Hören Sie Pavel. Fangen Sie in Ihrer Freizeit mit Subversion an, wenn es sein muss. Ich garantiere, dass Sie von VSS zu Subversion wechseln werden, sobald Sie es benutzt haben und verstehen, wie es funktioniert. Sie müssen ein paar Tutorials lesen, bevor Sie anfangen zu verstehen, wie Sie es richtig benutzen. Es ist jedoch einfach einzurichten und zu verwenden. –

+0

Wir sind mit Microsoft-Produkten als Teil der Management-Politik so gebunden .... – user142589

Antwort

3

Ich würde der Entwickler-Arbeitsverzeichnisse wie so auslegen:

 
c:\src\ 
    solutions\ 
     *.sln files with references to the project files 
    project1\ 
     project1.csproj 
     *.cs 
    project2\ 
     project2.csproj 
     *.cs 
    ... 

Das heißt: ein Projekt (* CSPROJ) pro Verzeichnis, keine verschachtelten Verzeichnisstruktur. Alle Lösungsdateien in einem separaten Verzeichnis. (Fügen Sie die Lösungsdateien optional in das Verzeichnis root (src) ein).

Die Entwickler öffnen die Lösungsdateien für den Teil des Systems, an dem sie arbeiten.

Die Ordnerstruktur auf dem VSS-Server sollte identisch sein.

Auf den Produktionsservern würde ich einfach alles auf alle Server herunterziehen (Wenn Sie auf den Servern bauen, also. Wenn Sie nicht auf den Servern bauen, würde ich Deployment - Skripte erstellen, die die richtige Lösung auf dem Entwickler-Maschinen, kopiert dann alles von bin\Debug|Release an den richtigen Ort).

Nebenbei bemerkt, würde ich empfehlen, ein anderes Quellcodeverwaltungssystem zu verwenden, zum Beispiel Subversion. VSS ist nicht einfach zu bedienen und neigt dazu, dir im Weg zu stehen, IMO.

+0

Danke. sieht gut aus – user142589

0

Da Sie keine Nicht-Microsoft-Tools verwenden können, haben Sie sich mit Team Foundation Server (für die Versionskontrollkomponente) und nicht mit VSS befasst? Aus meiner Erfahrung ist TFS ein ordentliches Quellcodeverwaltungssystem. Mit TFS haben Sie die schönere Editier-Merge-Funktionalität als die exklusive Kasse, die die Entwicklung durch mehr als eine Person viel schöner macht. Außerdem ist das Verzweigen und Zusammenführen in TFS viel besser als in VSS.

Es gibt eine kostenlose Arbeitsgruppe-Lizenz für TFS, die Ihnen bis zu 5 benannte Benutzer gibt, nach 5 Benutzern oder wenn Sie Active Directory-Authentifizierung/Autorisierung benötigen, müssen Sie die Standard Edition verwenden. Abhängig von Ihrem jeweiligen MS Partner-Leistungsniveau hat Ihr Unternehmen möglicherweise bereits eine Lizenz für TFS.

Darüber hinaus müssen alle Clients eine CAL (und Team Explorer installiert) haben. Nach meinem Verständnis von MS Licensing ist es nicht erforderlich, dass jeder, der auf den TFS-Server zugreift, eine Team-SKU von Visual Studio besitzt und Sie weiterhin VS Pro verwenden und eine TFS-CAL erwerben können (die im Team Explorer enthalten ist). Ich habe diese genaue Lösung bei einem früheren Arbeitgeber umgesetzt.

In TFS würde ich Ihre Lösung wie diese einrichten (ich nur den Trunk als voll ausgebaut und eine (Teil-) Funktion Spike Zweig gezeigt haben):

$/Project1/ 
    Branches/ 
     /Spike1/ 
      BusinessObject/ 
       BusinessObject.sln 
       BusinessObjectProject1/ 
       BusinessObjectProject2/ 
      WebService/ 
       WebService.sln 
       WebServiceProject1/ 
       WebServiceProject2/ 
      <etc> 
    Tags/ 
    Trunk/ 
     BusinessObject/ 
      BusinessObject.sln 
      BusinessObjectProject1/ 
      BusinessObjectProject2/ 
     WebService/ 
      WebService.sln 
      WebServiceProject1/ 
      WebServiceProject2/ 
     Proxy/ 
      Proxy.sln 
      ProxyProject1/ 
      ProxyProject2/ 
     Web/ 
      Web.sln 
      WebProject1/ 
      WebProject2/ 
$/Project2/ 
    Branches/ 
    Tags/ 
    Trunk/ 
     BusinessObject/ 
      BusinessObject.sln 
      BusinessObjectProject1/ 
      BusinessObjectProject2/ 
     Proxy/ 
      Proxy.sln 
      ProxyProject1/ 
      ProxyProject2/ 
     Web/ 
      Web.sln 
      WebProject1/ 
      WebProject2/ 

Der Branchen-Ordner ist, so dass Sie leicht implementieren standardmäßige Verzweigungen und Zusammenführungen, insbesondere da TFS nur Verzweigungs-/Zusammenführungsvorgänge zwischen einem Zweig und seinem direkten Vorfahren und direkten Nachkommen ermöglicht.Die Idee ist, dass die meiste tägliche Entwicklung in Trunk stattfindet und wenn Sie Änderungen vorübergehend für die Arbeit an einem Hauptmerkmal oder einer Spitze isolieren müssen, nehmen Sie einen Zweig von Trunk in Zweige, die Sie dann wieder in Trunk zusammenführen können, wenn Sie dazu bereit sind integrieren (und auch fortlaufende Änderungen von Trunk in Ihren Feature-Zweig integrieren können).

Im Ordner Tags können Sie sowohl zu einem Tag verzweigen, wenn Sie einen Snapshot einer bestimmten Version Ihres Codes erstellen möchten, als auch diesen Ordner zum Erstellen und Deployment verwenden. Für Build und Deploy erstellen Sie einen Zweig von Trunk zu/Tags/Test und von/Tags/Test zu/Tags/Production und dann verbinden Sie Ihre Änderungen von/Trunk zu/Tags/Test, wenn Sie bereit sind, Ihre Änderungen an die Test Umgebung. Sie können entweder eine Continuous Integration Build erstellen, die auf/Tags/Test ausgeführt wird, oder eine On-Demand-Erstellung, die einen Build aus dieser Verzweigung ausführt und die erforderlichen Artefakte an die entsprechenden Speicherorte kopiert. Sie können ähnliche Funktionen im Zweig "/ Tags/Produktion" verwenden, sodass Sie beim Zusammenführen von Änderungen von "Testen" bis "Produktiv" weiterhin über eine automatische Erstellung und Bereitstellung verfügen.

Zusätzlich zur besseren Quellcodeverwaltung erhalten Sie mit TFS auch Dinge wie einen OK CI Build Server (mit Team Build und Aufbau auf der TFS Box oder einem dedizierten Build Server), Work Item Tracking (was ziemlich gut ist und schön anpassbar) und ein anständiges Projektportal, das die SharePoint-Integration mit TFS nutzt. All diese zusätzlichen Funktionen sind ebenfalls sehr überzeugend und ich empfehle Ihnen, sich einige der anderen großartigen TFS-Inhalte anzusehen, die im Internet für weitere Details verfügbar sind.

Verwandte Themen