
Έχουμε ένα μεγάλο έργο ASP.NET που αποτελείται από αρκετές εκατοντάδες εκθέσεις. Είμαστε στη διαδικασία της μετάβασης όλα τα ερωτήματα SQL (τρέχει εναντίον βάσης δεδομένων της Oracle) σε τρεις διαδικτυακές υπηρεσίες. Οι υπηρεσίες web κατηγοριοποιούνται με βάση την εντολή, τις επιλογές και τα ερωτήματα έκθεση. Πρέπει να αναπτύξετε ένα υποσύνολο του έργου μας, χρησιμοποιώντας ένα SQL * backend διακομιστή σε διάφορες τοποθεσίες που έχουν αποσυνδεθεί από το Internet. Ως εκ τούτου, έχει όλες τις συνδέσεις στη βάση δεδομένων και τα ερωτήματα των υπηρεσιών web καθιστά την εφαρμογή διαχειρίσιμο και μπορούμε να τραβήξει το υποσύνολο των αναφορών και δεν πρέπει να τροποποιήσει τον κώδικα. Το έργο είναι υπό έλεγχο πηγή χρησιμοποιώντας το λογισμικό Serena ChangeMan. 


Το θέμα είναι ότι έχουμε αρκετούς προγραμματιστές και όλοι πρέπει να δείτε τα αρχεία των υπηρεσιών Ιστού για να εργαστούν για τα στοιχεία τους. Έχουμε εφαρμόσει μόνο διακλάδωση, αλλά σιγά-σιγά να γίνει ένας εφιάλτης. Έχουμε μηνιαίες παραδόσεις της παραγωγής και μερικές φορές τα στοιχεία που υποτίθεται ότι πρέπει να πάει στο μηνιαίο κατασκευής να καθυστερήσει μέχρι τον επόμενο μήνα. Η συγχώνευση έχει γίνει μια αυτόματη διαδικασία.


Έχω συμπεριφορά αναζητήσεις στο διαδίκτυο και είμαι έκπληκτος ότι δεν ήταν σε θέση να βρούμε καλές λευκές σελίδες «Best Practice» διαδικτυακές υπηρεσίες αρχιτεκτονικής. Υπάρχουν πολλές μεγάλες επιχειρήσεις που πρέπει να αντιμετωπίσει αυτά τα θέματα.


Μήπως οι περισσότερες μεγάλες ομάδες ανάπτυξης χρησιμοποιούν διακλάδωση; Έκανα διαβάσει ότι το Visual Studio ομάδας συστήματος βάσης δεδομένων Edition θα μπορούσε να παρέχει πρότυπο κώδικα που θα επιτρέψει στην εφαρμογή να συνδεθεί σε διαφορετικές βάσεις δεδομένων. Θα αγοραστική Σύστημα ομάδας είναι η καλύτερη μέθοδος; Ή Ξέρει κανείς πού μπορώ να βρω τεκμηρίωση που θα μας βοηθήσει να αντιμετωπίσουν αυτά τα ζητήματα;


Σας ευχαριστώ, Lorie

 
.NET Web Υπηρεσία Ορθής Πρακτικής για πολλούς προγραμματιστές
=============================================================



Το πρόβλημα φαίνεται να είναι αρκετά ανεξάρτητη από τον σκοπό του λογισμικού. Το θέμα εδώ είναι ότι έχετε μια μικρή, πεπερασμένο αριθμό των αρχείων που σε πολλούς προγραμματιστές θα πρέπει να εργάζονται σε καθημερινή βάση. Δεν έχω εμπειρία με το λογισμικό Serena ChangeMan ούτε TFS άλλο από το να παίζεις γύρω με αυτό. Έχω εμπειρία με ένα ζευγάρι των συστημάτων ελέγχου έκδοση που χρησιμοποιεί μια συγχώνευση / δεσμευτούν μοντέλο: **[CVS](http://en.wikipedia.org/wiki/Concurrent_Versions_System)** και **[το Subversion](http://en.wikipedia.org/wiki/Subversion_(software))** . Αυτές είναι και οι δύο εξαιρετικές, χωρίς συστήματα ελέγχου εκδόσεων που χρησιμοποιούνται ευρέως. 


Εάν δεν είστε εξοικειωμένοι με τη συγχώνευση / διαπράττουν μοντέλο, η ιδέα εδώ είναι ότι δεν είναι μόνο προγραμματιστής μπορεί να «ταμείο» και να κλειδώσετε ένα αρχείο για τις αλλαγές. Ο καθένας μπορεί να κατεβάσετε και να κάνετε αλλαγές σε οποιοδήποτε αρχείο. Όταν έρθει η ώρα να δεσμευτούν αυτές τις αλλαγές στη βάση δεδομένων του πηγαίου κώδικα, το λογισμικό αποθετήριο θα αποτρέψει μια διαπράξει, αν έχουν άλλες αλλαγές έχουν γίνει στο αρχείο από άλλο προγραμματιστή. Η νέα έκδοση είναι στη συνέχεια κατεβάσει, και στις περισσότερες περιπτώσεις οι αλλαγές συγχωνεύονται αυτόματα με τις αλλαγές σας. Μπορείτε εκ νέου τεστ, και στη συνέχεια να δεσμευτεί ότι η έκδοση. Το μοντέλο αυτό είναι πολύ επιτυχημένο και πολύ επεκτάσιμη.


Έχοντας πει όλα αυτά, ακόμη και η συγχώνευση / commit μοντέλο δεν μπορεί να λύσει τη θλίψη του έχει ένα μικρό αριθμό αρχείων με πολύ προγραμματιστές να κάνετε αλλαγές στην εν λόγω αρχεία. Θα ήθελα να συστήσω το διαχωρισμό λειτουργικότητα σας σε περισσότερες υπηρεσίες web. Ίσως αντί για τρία, μονολιθικό υπηρεσίες web μπορείτε να δημιουργήσετε τρεις ομάδες των σχετικών υπηρεσιών web. Νομίζω ότι αυτό, σε συνδυασμό με τη χρήση ενός συστήματος ελέγχου εκδόσεων με τη συγχώνευση / διαπράττουν θα λύσει τα προβλήματά σας.


CVS και το Subversion servers τρέχουν σε Windows, Mac και Linux. Υπάρχει ένας αριθμός των πελατών για κάθε μία, που διατίθεται σε μια σειρά από λειτουργικά συστήματα. Αυτές περιλαμβάνουν stand-μαζί πελατών, το Visual Studio plugins, και τα plugins κέλυφος. Ένα άλλο πλεονέκτημα είναι ότι τόσο το CVS και το Subversion είναι διαθέσιμα από τη γραμμή εντολών που καθιστά scripting (σκεφτείτε αυτοματοποιημένη κατασκευή) αρκετά εύκολο.

 

Γιατί να μην το τμήμα λογική σας σε μεμονωμένα αρχεία της κατηγορίας που μπορούν να ελεγχθούν από κάθε έργου;

 

Χρησιμοποιούμε SOA, αλλά μπορούμε επίσης να χρησιμοποιήσετε SVN που είναι πιο συγχωνεύονται προσανατολισμό. Ίσως να εξετάσει ένα διαφορετικό σύστημα ελέγχου προέλευσης;

 