Trasabilitatea in .NET – partea 1

Ce este Trasabilitatea in software

Din Wikipedia, http://en.wikipedia.org/wiki/Traceability :

Traceability is the ability to verify the history, location, or application of an item by means of documented recorded identification.

Vom defini trasabilitatea in software capacitatea si implementarea de urmarire a componentelor software pentru a sti exact :

1. Data la care componenta a fost facuta( astfel incit sa putem reproduce codul sursa)

2. Detalii de producere ( versiune ,framework-uri, alte componente, compilare debug/release , alte date) astfel incit sa avem capacitatea de a distinge intre diferite versiuni

Presupunem ca deja am raspuns afirmativ la pasul 1 (Do you use source control ?)de la http://www.joelonsoftware.com/articles/fog0000000043.html De asemenea ( desi nu vom folosi šŸ˜‰ ) e bine sa studiati si Semantic Version http://semver.org/

De ce avem nevoie de trasabilitate in software

Sa presupunem ca avem un codul sursa 1 pe care il distribuim la citiva clienti. Presupunem ca modificam codul pentru un versiunea doi. Unii din clientii vechi isi upgradeaza softul ā€“altii nu. Daca un client raporteaza o eroare,cum stim care versiune de cod sursa a avut probleme?

Trasabilitatea in .NET

Fiecare proiect in Visual Studio contine un fisier numit AssemblyInfo.cs care contine informatii sumare despre componenta. Vom discuta despre aceste rinduri:

// Version information for an assembly consists of the following four values:

//

// Major Version

// Minor Version

// Build Number

// Revision

//

// You can specify all the values or you can default the Build and Revision Numbers

// by using the '*' as shown below:

// [assembly: AssemblyVersion("1.0.*")]

[assembly: AssemblyVersion("1.0.0.0")]

[assembly: AssemblyFileVersion("1.0.0.0")]

Dupa cum se vede exista deja posibilitatea de trasabilitate in .NET .Diferenta intre AssemblyVersion si AssemblyFileVersion este detaliata si aici: http://support.microsoft.com/kb/556041

Ceea ce vrem sa realizam este ca, dupa o modificare a codului sursa si recompilare, acest AssemblyVersion ( sau AssemblyFileVersion) sa ne indice cum sa putem ā€œrefaceā€ codul sursa

Este evident ca , daca facem modificari in codul sursa, AssemblyVersion va ramine tot 1.0.0.0 .

Ca sa putem avea control asupra versiunilor putem fie modifica manual versiunea, fie vom modifica automat versiunea.

In cele ce urmeaza voi arata diverse posibilitati de a modifica automat versiunea, precum si de a adaug alte amanunte in AssemblyDescription.

Calea oficiala ( 1.0.*)

Cel mai usor este sa puneti

[assembly: AssemblyVersion("1.0.*")]

In AssemblyInfo.cs si sa comentati

//[assembly: AssemblyFileVersion("1.0.0.0")]

Ca aici:

// Version information for an assembly consists of the following four values:

//

// Major Version

// Minor Version

// Build Number

// Revision

//

// You can specify all the values or you can default the Build and Revision Numbers

// by using the '*' as shown below:

[assembly: AssemblyVersion("1.0.*")]

// [assembly: AssemblyVersion("1.0.0.0")]

//[assembly: AssemblyFileVersion("1.0.0.0")]

In acest mod versiunea se va incrementa de fiecare data. Ceea ce e deranjant ca nu se incrementeaza astfel incit sa ne putem da seama, de exemplu, de ziua build-ului. Video : https://www.youtube.com/watch?v=jq6Uu64md1s

Proiectul demo il puteti downloada de aici : http://traceabilitydemo.codeplex.com/releases/view/130512

Codul sursa il puteti downloada de aici: https://traceabilitydemo.codeplex.com/SourceControl/changeset/view/110330

Data viitoare vom face identificarea datei de buildĀ prin fisiere .tt

2 thoughts on “Trasabilitatea in .NET – partea 1

Leave a Reply

Your email address will not be published. Required fields are marked *