Stiamo lavorando a un progetto in cui gli utenti aziendali operano su un set di dati che viene periodicamente pubblicato. Abbiamo etichettato le pietre miliari della pubblicazione come Versions
e, a causa di alcuni vincoli di business, finiamo per duplicare il set di dati per ogni versione che verrà pubblicata.
Durante il ciclo di lavoro, diventa spesso prudente per uno dei gruppi di lavoro estrarre un progetto collaterale (che abbiamo giustamente chiamato Project
), lavorare su quel set di dati per un po 'di tempo, quindi unire le loro modifiche torna alla versione principale, probabilmente aspettando che siano state pubblicate due o più versioni prima che le loro modifiche vengano ripristinate.
Posso vedere le luci che si accendono da qui. "Ah ah!" tu dici "Questa è la stessa cosa che succede in [Git, SVN, TFS, ecc.], la ramificazione e fusione dei codici. Fallo e basta."
Giusto, questo è un perfetto approccio alla mia domanda: come si implementa la ramificazione e la fusione per i dati aziendali che sono distribuiti su sette o più oggetti primari e i loro figli rappresentativi? Capisco chiaramente cosa voglio ottenere, non ho idea di come scrivere le regole in modo che gli sviluppatori possano portarlo avanti e implementarlo con successo (io sono l'architetto della soluzione per il progetto e uno scrittore di codici mediocri). Ho provato a ricercarlo, ma sto trovando solo articoli su cui Git (o Svn o qualsiasi altro) comandi da eseguire per ottenere i risultati desiderati.
A proposito, stiamo sviluppando su .NET 4.5 e implementando Workflow Foundation ed Entity Framework se questo ti aiuta.
Aggiorna
Per la domanda seguente, gli "oggetti primari" sono cose come Model
, Option
, Version
, Rule
e Note
. Ognuno di questi ha oggetti figlio (un Rule
ha un set di Conditions
), unendo oggetti ( RuleVersion
), e naturalmente proprietà ( Option.Description
, ecc.). Una delle funzioni principali del sistema consiste nel tenere traccia dei costi e del prezzo al dettaglio, quindi gli oggetti Price
e Cost
sono appesi ai bordi, ciascuno con il proprio set di proprietà ( Price.Retail
, Price.Calculated
, ecc.).