Visual Studio 2008 Seeria (3): Professional vs Team

by melborp 14. august 2008 07:02

Seekordne postitus on viimane Visual Studio 2008 seeriast ja toob võrdlusesse juurde Team System versioonid. Proovin antud postituses mõelda, mis juhul võib vajalik olla Professional versiooni asemel/kõrvale kaaluda Team versiooni(de) hankimist.

Kui soovite lugeda eelmist postitust seeriast, kus võrdlesin omavahel Standard ja Professional versioone, siis leiate selle siit.

Nagu ka varasemalt, alustan artiklit lühikeste tutvustustega toodetest.

Visual Studio 2008 Professional

image

Visual Studio 2008 Professional on mõeldud professionaalsetele arendajatele, kes soovivad enamat, kui Standard versioon pakub. Ehk siis ettevõttele või arendajale, kes loovad lisaks tavapärastele .NET-i veebi ja Windowsi rakendustele ka lahendusi tarkadele telefonidele (smart phone) või Microsoft Office-le. Ka on võimalik Professional versiooniga luua kvaliteetsemat tarkvara kasutades ära kaasa pandud testimisvahendeid ühik testimiseks (unit testing). Professional versiooniga on mõnusam arendusmeeskonnal töötada kasutades igapäevaselt Team Foundation Serverit (TFS), et toetada tarkvara arendamise protsessi. Samas ei sisalda Pro versioon endas litsentsi TFS-iga ühendumiseks ja see tuleb eraldi hankida. Ka ei ole kaasas Team Explorerit, kuid selle saab netist vabalt alla tõmmata.

Visual Studio 2008 Team System versioonid

image Visual Studio 2008 Team System (edaspidi VSTS) koosneb mitmest rollispetsiifilisest versioonist, mis on mõeldud muutma ühe kindla rolli ülesannete teostamise efektiivseks.

Nendeks toote versioonideks on:

  • VSTS 2008 for Architecture
  • VSTS 2008 for Development
  • VSTS 2008 for Database
  • VSTS 2008 for Test
  • VSTS 2008 Team Suite

VSTS 2008 for Architecture sisaldab endas kõike Professional versioonist ja lisaks arhitekti rolli jaoks kasulikke lisasid nagu loogilise arhitektuuri disainimine, deploymendi disainimine, lahenduse disainimine.

VSTS 2008 for Development sisaldab endas kõike Professional versioonist ja lisaks arendaja rollile kasulikke lisasid nagu koodi profileerija (Code Profiler), koodi kaetus, koodi meetrika, koodi staatiline analüüs (n-ö fxcop on sisse ehitatud).

VSTS 2008 for Database sisaldab endas kõike Professional versioonist ja lisaks andebaasiarendaja jaoks kasulikke lisasid nagu andmebaasi projekt, andmete genereerija, andmebaasi refaktoorimisvahend, andmebaasi unit testid, T-SQL editor, Schema compare, jt.

VSTS 2008 for Test sisaldab endas kõike Professional versioonist ja lisaks testijale kasulikke lisasid nagu stress testide tugi, veebi testide tugi, manuaalsed testid, jt.

VSTS 2008 Team Suite sisaldab endas kõikki eespool kirjeldatud versioone.

Lisaks antud toodetele, kuulub Team Systemi juurde ka Team Foundation Server, aga sellest artikli hilisemates osades. Loodan, et järgnev pilt aitab paremini mõista, millest kogu Team System -i perekond koosneb.

image

Professional vs Team System

Järgnevalt tooksin välja detailsemalt, mida enamat sisaldavad endas Team System versioonid võrreldes Professional versiooniga.

VSTS 2008 for Architecture

Funktsionaalsus (inglise keeles) Kirjeldus
System diagram & tools Võimaldab lahenduse suure pildi (komponentide ja interaktsioonide tasemel) kirjeldada diagrammil. Saab luua juurutusplaani, millega valideerida, kas antud lahendus ja rakenduse plaanitud majutuskeskkond omavahel sobivad.
Application diagram & tools Võimaldab rakenduse komponente kirjeldada ja seejärel projektid genereerida, mida implementeerima hakata ja mis vastaks seatud piirangutele ja nõuetele. Saab ka olemasolevale lahendusele genereerida rakendusdiagrammid.
Logical Datacenter diagram & tools Võimalik kirjeldada plaanitud majutuskeskkond, mida saab hiljem kasutada valideerimaks, kas lahendus selle peal toimiks.
Deployment diagram & tools Valideerib loogilise majutuskeskkonna ja lahenduse kirjelduse sobivust. Võimalik genereerida juurutusraport.
Web Service Details and Endpoint to WSDL mapping. Veebiteenuste kirjelduste vaatamine ja muutmine ning WSDL -i ja veebiteenuse vastandamine.
TFS CAL Iga Team versiooniga on kaasas üks kliendi litsents ehk Client Access License (CAL) TFS-iga töötamiseks
MSDN Premium Iga meeskonna versiooniga on kaasas MSDN Premiumi tellimus (MSDN Premiumi kohta loe siit.).

Väga huvitavad vahendid on VSTS 2008 arhitektuuri versioonis, kuid pean tunnistama, et ei ole päriselus kunagi neid kasutanud ega ka vajadust näinud nende kasutamiseks. Küll aga on mul vajadust olnud UML -i abil kirjeldada erinevaid arhitektuuri vaateid, mida kahjuks praegune versioon ei paku. Minu soovitus ja praktika siiamaani on olnud, et kasutada vahendit nagu Enterprise Architect oma arhitektuuri vaadete loomiseks ning ülejäänud - rakenduse tasemel koodi kirjutamine ja klasside haldamine ja andmebaasidiagrammid on võimalik lahendada VSTS 2008 Team System Development (või Pro) või SQL Server Management Studio abil (andmebaasi diagrammide loomine). Seda mudelit mina jätkan kuni tuleb Rosario välja, sest seal on juba olemas UML -i diagrammid jm tõesti väärtuslikud ja praktilised vahendid arhitekti rolli jaoks (uskuge mind, te pole veel Rosario osas kõike näinud:)).

VSTS 2008 for Development

Funktsionaalsus (inglise keeles) Kirjeldus
C/C++ code analysis C/C++ staatiline koodi analüüs.
Code Analysis Check-in Policy TFS -i staatilise koodi analüüsi nõue. Enne kui koodi saab sisse panna, peab see vastama staatilises analüüsis valitud reeglitele.
Code Metrics Viis koodi meetrikat, mis aitavad hinnata, kui hallatav kood on. Loe täpsemalt siit.
Managed code analysis Staatiline koodi analüüs (FxCop stiilis)
Code Coverage Koodi kaetuse info kogumine ja vaatamine peale testi jooksutamist.
Performance Profiler: two profiling methods - sampling and instrumentation. Rakenduse jõudluse profileerimine. Sampling ja Instrumentation on kaks erinevat meetodit koodi profileerimiseks - esimene käib regulaarselt kontrollimas, mida rakendus parasjagu teeb, teine variant aga lisab iga meetodi algusesse ja lõppu inspekteerija ning võimaldab täpsemat analüüsi, kuid nõuab rohkem ressursse andmete kogumisel ja analüüsimisel (andmeid on rohkem). Mõlema puhul on võimalik koguda ka rakenduse mälukasutuse informatsiooni.
Performance Profiler: reports, compare reports, to HTML Profileerimine toodab jõudlusraporti, mille kaudu on võimalik analüüsida, mida rakendus siis täpselt tegi. On võimalik võrrelda kahte jõudluse raportit omavahel ja ka genereerida HTML raportist.
Performance Profiler: Hotpath, Report Noise reduction Hotpath toob raportis esile tee (kohad), kus rakendus tegi kõige rohkem tööd. On võimalik filtreerida andmeid raportil.
Standa-alone version of Performance Profiler On võimalik ilma Visual Studiota profileerida rakendusi (näiteks laiv keskkonnas).
Performance Profiler: performance counter Võimalik koguda süsteemi perf. Countereid jõudluse profileerimise ajal.
TFS CAL Iga Team versiooniga on kaasas Client Access License (CAL) TFS -iga töötamiseks
MSDN Premium Iga meeskonna versiooniga on kaasas MSDN Premiumi tellimus (MSDN Premiumi kohta loe siit.)

Paljud ei tea, et kui teil on olemas Visual Studio Team System 2008 for Development, siis sellega on kaasas koodi profileerija ja te ei pea seda enam eraldi ostma. Minu jaoks tuli see ka üllatusena veidi üle aasta aja tagasi. Ometi enamusel kuld partneritel näiteks on kasutuses Development versioon, kuid ei kasuta antud profileerijat. Igatahes minumeelest sisaldab arenduse versioon igapäevaselt arendaja jaoks vajalikke lisasid. Igaks juhuks lisan siia alla linke, kust saate Profileri ja koodi meetrika kohta rohkem lugeda:

VSTS 2008 for Database

Funktsionaalsus (inglise keeles) Kirjeldus
Data Compare Võimalik võrrelda andmeid kahe sama schemaga andmebaasi vahel.
Data Generation Võimalik genereerida testi andmed andmebaasi.
Custom Data Generator Võimalik laiendada testiandmete loomist vastavalt oma vajadustele.
Database refactoring Andmebaasi objektide ümbernimetamine.
Database unit testing andmebaasi ühik testide kirjutamine ja jooksutamine.
Offline database schema Ühenduseta (Offline) schema muutmine.
Schema Compare Schemade võrdlemine.
T-SQL editor T-SQL -i kirjutamise editor otse Visual Studios.
SQL projects and Wizards Andmebaasi projekti template ja wizardid selle loomiseks.
Database schema build and deploy Võimalik luua uus andmebaas või muuta olemasolevat vastavalt muudatustele andmebaasiprojektis.
TFS CAL Iga Team versiooniga on kaasas Client Access License (CAL) TFS-iga töötamiseks
MSDN Premium Iga meeskonna versiooniga on kaasas MSDN Premiumi tellimus (MSDN Premiumi kohta loe siit.)

Väga praktilised igapäevaselt vajalikud vahendid andmebaasi arendaja jaoks. Lisainfot saate lugeda järgnevatelt linkidelt:

VSTS 2008 for Test

Funktsionaalsus (inglise keeles) Kirjeldus
Code Coverage Koodi kaetuse info kogumine ja vaatamine peale testi jooksutamist.
Load Tests Väga võimas vahend koormustestide jooksutamiseks ja samal ajal lahenduse erinevate osade jõudluse kohta informatsiooni kogumine (perf. Counterid). Võimalik kaasata veebi teste, unit teste, jada teste jt.
Web Tests HTTP kihil toimivad veebi testid, mida on võimalik kirjeldada ära läbi browseri ja seejärel jooksutada. Võimas ja lihtne API laiendamaks testi oma tingimuste jaoks. Toetab AJAX -i testimist, aga mitte javascripti testimist.
Manual Tests Võimalik Wordi dokumendis ära kirjeldada testisammud ja seejärel saab teine isik antud testi samme läbida ning määrata testi kas õnnestunuks või ebaõnnestunuks.
Load Test runner, modeling, results repository, results analysis Võimalik salvestada testi tulemused andmebaasi hilisemaks vaatamiseks. Võimalik jooksutada kuni 1000 kasutajat samaaegselt. Võimas graafiline liides vaatamaks andmeid, mis kogutud. Koormustesti ajal on võimalik ka koguda SQL Trace -i.
TFS CAL Iga Team versiooniga on kaasas Client Access License (CAL) TFS -iga töötamiseks
MSDN Premium Iga meeskonna versiooniga on kaasas MSDN Premiumi tellimus (MSDN Premiumi kohta loe siit.)

Veebirakenduste juures on minu jaoks siiamaani väga väärtuslik olnud veebi testide ja koormustestide kasutamine. Olen suutnud tekitada väga erinevat koormust lehtedele, testides põhilisi kasutuslugusid ja kogunud samal ajal informatsiooni rakendusserveri, andmebaasiserveri ja rakenduse kohta. Vaikimisi perf. counterite jaoks on konfigureeritud läved, milleni jõudmisel muutub perf. counter kollaseks (koos ! märgiga - ehk warning lävi) või punaseks (ehk kriitiline lävi) ja seeläbi tuuakse esile võimalikud probleemkohad, mida uurida lähemalt. Muidugi rakenduse koormustestimine enne kliendile andmist on alati nutikas tegevus, et teada, kui suurt koormust rakendus üldse suudab kannatada ja kas all olev infrastruktuur on piisav kliendi poolt seatud kasutamisnõuete täitmiseks (või mis infra on vajalik selleks).

Ed Glas on teinud nimekirja ressurssidest Web ja Load testimise teemadel.

VSTS2008 Team Suite

Nagu juba varem mainitud, sisaldab Team Suite endas kõikki VSTS 2008 Team System versioone (v-a TFS). Tänu sellele on võimalik kombineerida erinevate versioonide võimekusi omavahel nagu näiteks jooksutada veebiteste ja koormusteste ning teha samal ajal testitavale rakendusele jõudluse profileerimist (seda siis ühest vahendist). Lisaks sisaldab Team Suite endas TFS -i kliendi litsentsi ja MSDN Premiumit. Team Suite -i MSDN Premium on aga võimsam, kuna sisaldab endas tervet Expression Suite toote perekonda (mitte ainult Web ja Blend toodet nagu teiste puhul).

Lisaks Team System versioonidega

Nagu ka tabelitest on näha, on iga VSTS 2008 versiooniga kaasas MSDN Premium tellimus. Ei hakka oma eelmist postitust kordama, kuid mainin ära ühe väga hea poindi - MSDN Premium on teie tarkvara kindlustus ehk kui teil on kehtiv MSDN Premium, siis saate uue Visual Studio või kõikide teiste tellimuse kaudu kättesaadava tarkvara uued versioonid tasuta ja kõige esimesena kätte. Ka on MSDN Premiumi uuendamine märksa soodam.

 

Põhjaliku võrdluse leiate Microsofti tootevõrdluse lehelt.

 

Koostoime Team Foundation Serveriga

 

Postituse alguses oli pilt Visual Studio Team Systemist ja selle üheks vajalikuks osaks on arendusserver (ehk Team Foundation Server, edaspidi TFS). See on ühtne keskkond, kus hoida kogu oma projekti informatsiooni, saada jälgida projekti käekäiku igapäevaselt ning mis toetab ja võimaldab ettevõttes kasutusel oleval arendusprotsessil edasi areneda.

TFS koosneb järgnevatest osadest:

  • Koodihaldus
  • Meeskonna sait
  • Protsessi tugi
  • Tööde haldus ja jälgimine
  • Raporteerimine
  • Koosteserver (Build Server)

Visual Studio Team System versioonid on mõeldud koos toimima TFS serveriga ja sisaldavad funktsionaalsust, et töö võimalikult mugav ja efektiivne oleks. Nendega on kaasas Team Explorer, mis on Visual Studio sisene liides töötamaks TFS serveriga.

TFS -l on olemas veel liideseid nagu näiteks Web Access, mis pakub peaaegu sama funktsionaalsust, kui Team Explorer ainult, et veebis. TeamPrise, millel on Eclipse -i plugin ja võimaldab TFS -i kasutada ka muudelt platvormidelt kui Windows ning kasutada muul platvormil arenduseks kui .NET. TFS ei ole piiratud ainult .NET-i koodi hoidmisega ja ei ole piiratud liideste arvuga. TFS on tegelikkuses eraldiseisev server, mis on mõeldud tarkvara arendusprojekti toetamiseks, olgu mis platvormil tahes. TFS ise samas jookseb muidugi Windowsi platvormil.

TFS on laiendatav platvorm, mida tõestab ka TeamPrise-i olemasolu - nimelt toimub kogu liideste suhtlus TFS-ga üle veebi teenuste API. Laiendus -ja kohendamispunkte on muidugi veel. TFS integreerub ka Project Serveriga, et teha projekti makro haldamist (ressursid, eelarved üle projektide).

Mis mulle TFS -i puhul meeldib?

Esiteks arendusprotsessi tugi. Nimelt ei saa meeskonna projekti üldse luua, kui ei ole metoodika määratud (kuidas üldse arendust teha ilma protsessita?). Arendusprotsess määrab ära projekti struktuuri, töö tüübid (ülesanne, bugi, nõue, risk, ...), raportid, vaikimisi päringud, meeskonna sait, jm. Seda kõike on muidugi võimalik laiendada ja kohendada vastavalt organisatsioonile ning arendusprotsessile.

Olemasolevate arendusprotsessidega (MSF for Agile, MSF for CMMI, Scrum, ...) tulevad kaasa põhjalikud dokumentatsioonid, mis aitavad organisatsioonil protsessi kasutusele võtta.

Teiseks, kogu liidestus käib üle veebi teenuste API. Oma liideste ehitamine on seega standardne.

Kolmandaks, detailsus ja informatsiooni maht, mida TFS kogub töö (ülesanne, bugi, seosed koodi ja ülesande vahel, kood, ...) kohta on väga põhjalik ning kõige selle peale on võimalik kerge vaevaga ehitada oma raportid, kas Excelis või SQL Server-i raporteerimisteenuseid (Reporting Service) kasutades. Saab luua just need vaated projektile, mis ettevõte peab tähtsaks.

Neljandaks, TFS integreerub arendusvahendiga, millega mina arendust teen. Ma teen ühe vahendi kaudu oma tööd ja ei pea hüppama mitme keskkonna vahel, ei pea oma arenduskookonist välja minema.

Viiendaks, TFS-l on olemas väga aktiivne kommuun ja ka tugi Microsofti poolt. Microsoft laseb välja umbes iga kolme kuu järel täiendusi Power Toolidele, codeplexis on hunnik projekte seoses TFS -ga, partneritel on erinevad vahendid nagu TeamLook (Outlooki integratsioon TFS -ga), TeamSpec (Wordi integratsioon TFS -ga, nõuete sisestamiseks), TeamPrise, ... Microsofti siseselt on olemas Team System Rangerid - grupp inimesi erinevatest osakondadest, kes realiseerivad aastas mitmeid projekte, et muuta Team Systemi veel paremaks.

Plusse on veel ja siinsed on muidugi üldsõnalised. Selle postituse kirjutamine on veennud mind, et peab kirjutama eraldi postituse TFS -i teemal.

Kokkuvõte

Visual Studio Team System koos TFS Serveriga toetab kogu rakenduse arendamise elutsüklit (Application Lifecycle Management , edaspidi ALM). ALM -i defineerimiseks tsiteeriksin Forresteri:

The coordination of development life-cycle activities, including requirements, modeling, development, build, and testing, through

  • Enforcement of processes that span these activities
  • Management of relationships between development artifacts used or produced by these activities
  • Reporting on progress of the development effort as a whole

Microsoftil on olemas päris hea ALM -i lugu Visual Studio Team Systemiga, mis toetab kolme ALM -i alustala - protsessi tugi, töödehaldus ja raporteerimine, selleks et oleks:

  • meeskonnal protsess, mis aitab saavutada oodatud tulemusi, arendada edasi protsessi ja suhelda ning koostööd teha meeskonna liikmete vahel.
  • meeskonna töö jälgitav, läbi meeskonna tegevuste töövoo toe, töö integreeritakse kokku võimalikult tihti ja on ühtne projekti keskkond (koodihaldus, tööhaldus, raporteerimine), mis võimaldab koostööd ja suhtlust meeskonna liikmete vahel.
  • läbipaistvus, kasutades projekti raporteerimist igapäevaste otsuste tegemisel ja kõigil on kasutamiseks tuttavad vahendid.

Ja TFS on ehitatud nii, et oleks võimalik suvalisel platvormil arendamise jaoks kasutada.

Muidugi ei ole Visual Studio Team System ainukene valik ja leidub nii valmis tooteid, kui ka on võimalik ise kombineerida vahendeid, mis pakuksid sarnast funktsionaalsust. Samas, miks peaks kombineerima vahendeid, haldama seda kombinatsiooni ja kümmet vahendit ning integreerima need omavahel ise? Microsoft on teie jaoks selle ära teinud ja see on toetatud toode (teil on kelle poole pöörduda, kui asi ei toimi) ning seda arendatakse edasi pidevalt kommuuni ja Microsofti poolt.

Liikudes nüüd lõpuks Professional vs Team System võrdluse juurde, siis tegelikult neid omavahel hästi võrrelda ei saagi. Team System on palju enamat.

Kui võtta Professional versioon, osta sinna juurde TFS -i CAL ja MSDN Premium, siis tuleb kokku sarnane hind, kui osta Team System versioon tootest. Ainukene, millest te ilma jääte on lisafunktsionaalsus, mida Team System versioon juurde pakub. Kui mul on nende kahe vahel valida - Pro + TFS CAL + MSDN Premium või Team System for Development (näiteks), siis mina valiksin Team System versiooni, kuna see pakett pakub mulle rohkem sarnase hinna eest ja ma saan enda (arendaja) jaoks juurde lisavahendeid, mida ei pea eraldi ostma (profileerija näiteks).

Eks kõik oleneb ettevõtte hetke investeeringutest ja tuleviku plaanidest - kui TFS -ga tööd ei plaanita teha, siis muidugi TFS CAL ei ole väärtuslik, aga MSDN Premium siiski oleks ja Team System versioon ka. Juhul kui on juba investeeritud eraldi Profilerisse ja TFS -i ka ei ole plaanis, siis väärtus aina väheneb (vähemalt Development versiooni puhul) ja Pro võiks nagu piisav olla. Tuleb hinnata väärtust, mida antud keskkond suudab pakkuda lisaks olemasolevale ja kas see õigustab kulu.

TFS -i ei toonud ma siia võrdlusesse meelega, kuna antudf vahend ei ole kohustuslik vahend Visual Studio kõrval ja jutt oli peamiselt Visual Studio versioonide võrdlusest. TFS kindlasti pakub hulganisti lisaväärtust ja kuulub suuremasse - ALM vaatesse. Samas mingi keskne arenduskeskkond või server (koodihalduse, tööde halduse ja pideva integratsiooni toega) peaks ettevõttes siiski olema.
Mina ilma TFS-ta enam hästi tööd ette ei kujuta. Meie osakond teeb hetkel investeeringuid, et oma projektides laialdaselt TFS -i kasutada. See toetab meie arendusprotsessi ja pakub meile täpselt neid võimalusi (projekti jälgimine, tööde sisestus ja ajalugu, pidev integratsioon, meeskonna sait jt.), mis vajalikud ning kui midagi puudu on, siis saab alati kergelt kohendada ja täiendada. Sama on leidnud ka Microsofti enda divisionid ning on alates 2005 aastast TFS -i järk järgult laialdasemalt kasutusele võtnud. Brian Harry postitas juulis Microsofti arendusdivisoni kasutamise statistika. Lisaks saate lugeda detailsemalt blogist, kuidas antud vahendeid kasutatakse Microsofti siseselt. Minu jaoks on see juba suur tõestus, kuna maailmas väga palju nii suure arendusbaasiga ja kasutajaarvuga ettevõtteid ei ole ja, kui see töötab nende jaoks, siis ei näe ma takistust, miks ei peaks töötama meie jaoks või eesti ettevõtetes.

Artikklite seeria

Tags:

Arendus | Team Foundation Server 2008 | Viited | Visual Studio 2008 | Visual Studio Team System 2008

Kommentaarid

Lisa kommentaar




  Country flag

biuquote
  • Kommentaar
  • Preview
Loading



Autorist

Taavi Kõosaar

 Tere, olete sattunud mu blogi peale. Olen Taavi Kõosaar - tarkvara arendaja, arhitekt ja konsultant keskendudes arendamisele .NET -i platvormil. Hetkel asun peamiselt Rootsis, kus töötan Süsteemi Arhitektina toote/teenuse arendamisel, mida kasutatakse üle Euroopa. Lisaks tööle blogin, kirjutan artikleid, pean loenguid, treeninguid, reisin, loen raamatuid, sukeldun, teen sporti, fotografeerin, osalen Eesti arendajate kommuunis ...

Siit leiate minu mõtisklused ja seiklused tarkvara arendamisega, .NET -ga ja Team Systemiga.

Kalender

<<  september 2010  >>
estekonerela
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

View posts in large calendar

Liikmelisus

www.eneta.ee

Team System MVP

Tutvu minu LinkedIn profiiliga

Minu Eneta profiil

Lugejatest

Kaart:

Lugejad:

Hetkel lehel:

hit counters

Külastajaid:

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

Siin toodud arvamuseid saab käsitleda vaid kui minu isiklike arvamusi, need ei kajast vähimalgi kombel ühegi minu tööandja arvamusi ja nägemusi.

© Copyright 2010 Melborp.NET