Programmering

Produktanmeldelse: Visual Studio 2008 skrider frem med få fejltrin

Microsoft Visual Studio 2008 (VS08) er den nuværende inkarnation af virksomhedens lange række IDE'er. Det er den førende IDE til udvikling af applikationer med Microsoft .Net Framework og i det mindste en kandidat til den bedste Windows-hostede C / C ++ IDE. Naturligvis er Visual Studio 2008 ikke begrænset til at udvikle desktop-applikationer; det er også godt til udvikling af web-, SOA- og enhedsapplikationer. Denne udgivelse introducerer support til .Net Framework 3.5, og den understøtter også andre versioner af. Net Framework. Det introducerer også sprogintegreret forespørgsel, en generisk måde at forespørge på alle slags data i C # og Visual Basic, og fuld support til Windows Vista, Silverlight og Windows Presentation Foundation.

VS08 kommer i en række udgaver, fra de gratis Express Editions til $ 10.000 gør-alt Visual Studio Team System 2008 Team Suite. Dybest set er Express-udgaverne til begyndere, studerende og hobbyudviklere; Standard Edition er til individuelle udviklere; Professional Edition er til avancerede udviklere og dem, der arbejder i små teams.

Team System er primært til større hold. Der er Team System-klienter til udviklere, arkitekter, DBA'er og testere samt en kombineret klient til alle roller kaldet Team Suite. Serveren til Team System er Team Foundation Server (TFS), som kombinerer en teamportal, versionskontrol, sporing af arbejdsgenstande, build management, procesvejledning og business intelligence.

I denne anmeldelse koncentrerer jeg mig om funktionerne i VS08 Professional Edition og berører et par af højdepunkterne i Team Suite. Jeg vil ikke forsøge at diskutere Team Foundation Server som sådan, selvom den har modtaget adskillige forbedringer, såsom et nyt teambuild-system og webadgang, siden vi sidst har gennemgået det (se Tom Yagers preview i maj 2004 af Visual Studio 2005).

Installation og test

Jeg har blogget noget (her og her) om mine forsøg og problemer med installation af Team Suite. Intet af det skal påvirke dig, medmindre du prøver at afinstallere VS08 fra en maskine, der også har VS05; ikke desto mindre kan det være klogt at lave en sikkerhedskopi af dit system, før du starter installationen. Forvent, at en VS08-installation vil tage flere timer, med en manuel indgriben nødvendig for at starte dokumentationens installationstrin.

Jeg kørte VS08 Team Suite på min XP-desktop næsten hele dagen, fem dage om ugen i flere uger, og forsøgte at bruge den til alt mit udviklingsarbejde. Jeg løb også gennem en række individuelle udviklingsscenarier med Professional Edition på Vista-computeren og simulerede et par gruppeudviklingsscenarier på Team Suite / TFS virtuel pc. En advarsel: Hvis du installerer på Windows Vista med User Account Control (UAC) aktiveret, skal du være forberedt på at køre VS08 som administrator et par gange, indtil alle de nødvendige mapper er oprettet; derefter skal den være fuldt UAC-kompatibel.

Introduktion til .Net Framework 3.5

Jeg ville ønske, at Microsoft var gået lidt længere i denne retning. Det er synd, at Microsoft ikke også leverede målretning til .Net Framework 1.1 og let tovejskonvertering mellem VS08, VS05 og Visual Studio. Net 2003-projekter.

.Net Framework 3.5 har en række nye klassebiblioteker og sprogfunktioner. Disse inkluderer Language-Integrated Query (LINQ), Web 2.0 og SOA-relaterede forbedringer, integreret workflow, peer-to-peer-protokoller og Microsoft Office-support.

Værktøjet til alle disse findes i VS08. Så for eksempel har VS08 Standard og derover LINQ-understøttelse i Visual Basic .Net og Visual C #, herunder en Object Relational Designer, SQLMetal-kommandolinjeværktøjet, LINQ-opmærksomme kodeditorer og debugger-understøttelse.

Sprogintegrerede forespørgsler med LINQ

Flere af LINQ-komponenterne og -udbydere leveret i VS08, herunder LINQ til objekter (strenge, refleksion og filmapper), LINQ til XML og LINQ til ADO.Net. LINQ til ADO.Net indeholder to komponenter: LINQ til DataSet og LINQ til SQL. Jo mere ambitiøse ADO.Net Entity Framework og LINQ to Entities er ikke inkluderet i VS08, men sendes muligvis senere på året som en tilføjelse.

Jeg testede LINQ til SQL i C # mod en SQL Server 2000-database. Objekt-relationsdiagrammet i dette skærmbillede blev automatisk genereret ved at trække tabellerne fra en database. Et sæt kaldbare, LINQ-kompatible klasser blev også automatisk genereret.

Objektrelationsdesigneren fungerede godt til at oprette C # -klasser fra databaseskemaet, og IntelliSense fungerede godt, da jeg skrev LINQ-forespørgsler. På den anden side skrev LINQ-forespørgsler manuelt mod tre relaterede tabeller grænserne for mine nye LINQ-færdigheder, og jeg længtes efter LINQ-ækvivalenten til VS08s grafiske SQL Query Designer. Jeg har aldrig fundet ud af, hvordan man skriver LINQ-ækvivalenten for en SQL "SELECT DISTINCT" -forespørgsel.

IntelliSense, refactoring, enhedstest og metrics

Da jeg arbejdede på dette lille projekt, fandt jeg ud af, at C # refactoring-funktionaliteten (inkluderet i Professional og derover) fungerede godt og ret glat. Ved redigering af C # kan programmøren udnytte automatiseret refactoring, som vist i popup-menuen på dette skærmbillede. Der er fuld IntelliSense-understøttelse af LINQ (se koden, der starter med “var qAV” i figuren). Kodemetrikker (nederst på figuren) beregnes kun for administreret kode.

Jeg fandt også, at kodemetrikkerne for administreret kode (inkluderet i VSTS Developer og Team Suite) fungerede ret godt. Jeg er ikke sikker på, at jeg er enig i den måde, metrics beregnes på for kode genereret fra designflader, men jeg kan bestemt se den overordnede nytte af metrics, især i sammenhæng med teamprojekter, der administreres med TFS.

Jeg brugte målinger som cyklomatisk kompleksitet (et mål for antallet af lineært uafhængige stier gennem et programmodul) for mange år siden for at hjælpe mig med at styre et stort C-projekt med et dusin programmører. Jeg er glad for at se denne teknologi introduceret i VS08 til administreret kode.

Jeg er dog skuffet over, at kodemetrik og kodefakturering ikke er tilgængelige for ikke-administrerede C ++ - projekter. På den anden side kan C ++ -projekter bruge en meget flot opkaldsbrowser: Det giver dig et kompakt overblik over de andre funktioner, der kalder en given funktion, og de kodelinjer, der foretager opkaldene.

Jeg er glad for, at Visual Basic-projekter har kodemetrik sammen med en utrolig kortfattet syntaks, stor IntelliSense og mange kodestykker. Jeg er skuffet over, at Visual Basic-projekter ikke har kodeomdannelse, selvom denne funktionalitet kan tilføjes ved hjælp af et af flere tredjeparts-plug-ins.

Jeg er glad for at rapportere, at test af enheder nu er en funktion i Professional Edition. (Det var en VSTS-funktion i VS05.) Du kan oprette enhedstests og testprojekter til C #, Visual Basic og administrerede C ++ - løsninger. Det var muligt at gøre dette inden du bruger det gratis open source-program NUnit, men det er lidt pænere at have enhedstestfunktionen integreret med IDE.

IntelliSense til JavaScript var en af ​​de lovede forbedringer i VS08. Det er der, men til en pris: Selvom der er tilføjet support til den slags JavaScript, der bruges til at skrive ASP.Net AJAX og Silverlight-sider, er support til redigering af VBScript og Classic ASP blevet droppet. Da jeg stadig vedligeholder et klassisk ASP-site fra 1999, blev jeg mere end lidt irriteret over at finde ud af, at VS08 gjorde et dårligere job med ASP-sider end VS05, eller faktisk end Visual InterDev 6. Microsoft overvejer at gendanne denne funktionalitet til en servicepakke til VS08. I mellemtiden bør folk, der stadig vedligeholder Classic ASP-websteder, ikke opgive deres eksisterende værktøjer.

WPF, Silverlight og Web 2.0

VS08 understøtter Silverlight, en rig internetapplikationsteknologi, der inkluderer et undersæt af WPF, når du har installeret Silverlight SDK og Silverlight Tools til VS08. Jeg havde gode erfaringer med at udvikle Silverlight-applikationer med en betaversion af VS08. (For min anmeldelse af Silverlight selv, se "Microsoft Silverlight konkurrerer med Flash, AJAX.")

Med undtagelse af den understøttede understøttelse af VBScript og Classic ASP er websidesignoverfladen i VS08 bedre end VS05; det ligner meget Expression Web og understøtter pænt CSS. Designflader og projekter til ASP.Net AJAX, Windows Communications Foundation og Windows Workflow Foundation, som var gratis tilføjelser til VS05, er flyttet til det basale VS08-produkt.

Office og Smart Device mål

VS08 kan oprette administreret Smart Device-projekt til fire målplatforme og to versioner af .Net Compact Framework i C # og Visual Basic. I C ++ kan VS08 oprette ikke-administrerede Smart Device-projekter ved hjælp af Win32, ATL (Active Template Library) og MFC (Microsoft Foundation Class) biblioteker; denne funktion var tidligere i et separat Windows CE-værktøjssæt.

Odds og ender

Microsoft SQL Server Compact 3.5 er en ny lokal database, der er lille nok til at implementere på smarte enheder. Udviklere kan bruge det både i enkeltstående og lejlighedsvis forbundne scenarier. Når SQL Server Compact bruges til lokal databasecaching, sørger Microsoft Synchronization Services for ADO.Net for periodisk synkronisering mellem den lokale Compact-database og den eksterne database.

Hvis der registreres en Team Foundation Server-installation, kan Visual Studio integreres med den. Dette giver en programmør mulighed for at modtage arbejdsemner og foretage check-in, og en manager kan producere rapporter som den, der er vist her.

Team System har en række forbedringer. Ét stort element i TFS er et nyt Team Build-system; en anden er internetadgang. Arkitekter har en ny top-down systemdesigner og et arkitektonisk rollesystem. Udviklere har det nye kode-metrics-system, jeg diskuterede tidligere, samt bedre kodeanalyse og ydeevneværktøjer. DBA'er har T-SQL-kodeanalyse, en datagenerator og refactoring-værktøjer. Testere har bedre værktøjer og valideringsregler, herunder en Test Load Agent.

Visual Studio har et aktivt økosystem af uafhængige softwareleverandører. De fleste af disse leverandører producerer plug-ins og kontroller, der forbedrer Visual Studio. En ny Visual Studio Shell lader disse leverandører sende selvstændige versioner af deres produkter, der ikke kræver, at kunden køber korrekt Visual Studio. Jeg bifalder dette skridt fra Microsoft: Jeg synes, det gør økosystemet sundere, fordi det giver ISV'erne mulighed for at være mere konkurrencedygtige til en relativt lille pris for Microsoft.

Samlet set er Visual Studio 2008 en opgradering, som de fleste Microsoft-orienterede udviklingsbutikker vil foretage for at udvikle med nye teknologier, såsom WPF, WCF og WF, og til nye platforme, såsom Windows Vista. Det er dog ikke en opgradering, der let kan laves stykkevis; Jeg vil råde de fleste butikker til at opgradere alle udviklere på et projekt, når selve projektet er blevet opgraderet. Efter min erfaring har opgradering af projekter fra VS05 til VS08 været relativt smertefri og involveret meget lidt i vejen for kodeomskrivninger.

For butikker, der stadig vedligeholder Classic ASP-websteder, vil jeg anbefale at installere VS08 side om side med VS05, i det mindste indtil Classic ASP- og VBScript-redigeringsfunktionalitet er blevet gendannet. Og for butikker, der stadig bruger Visual Studio .Net 2003 eller ældre versioner på grund af opfattede problemer med VS05, vil jeg foreslå seriøst at evaluere VS08.

Med få undtagelser vil brugere på alle niveauer af Visual Studio finde udgivelsen fra 2008 forbedret. Det er en stærk opgradering og et solidt fundament for fremtidig udvikling.

Scorecard Værdi (10.0%) Evne (30.0%) Ydeevne (15.0%) Nem udvikling (30.0%) Dokumentation (15.0%) Samlet score (100%)
Microsoft Visual Studio 2008 Professional og Microsoft Visual Studio Team System 2008 Team Suite9.010.09.09.09.0 9.3

Copyright verticalshadows.com 2021