Att berätta eller skriva om alla nyheter i kommande version av Visual Studio och .NET skulle ta lång tid, här har jag samlat ihop några av de saker som jag personligen ser fram emot mest i en egen “struktur” som passar mig.

.NET Framework 4.0
Det första som vi bör känna till med .NET Fx 4.0 är att det nu kommer en ny Common Language Runtime. En annan viktig nyhet och något som redan nu emottagits mycket positivt är ett gemensamt ramverk för “utbyggbarhet” som kallas Managed Extensibility Framework eller MEF. Med MEF får vi äntligen en programmeringsmodell som kommer att användas av både Visual Studio och andra applikationer från Microsoft i framtiden som baserar sig på att utvecklaren bygger tillägg till applikationen. SharePoint och BizTalk har nämnts och kommer att bidra med rejäla produktivitetsvinster och flexibla lösningar. I basklasserna kommer några nya datastrukturer som BigInteger, ComplexNumber, Tuples och SortedSet. För parallell utveckling tillförs en hel del nyheter som jag skrivit om tidigare, men värt att nämna är Task Parallel Library, Parallel LINQ och Coordination Data Structure. De här tilläggen ger alla utvecklare av .NET applikationer åtkomst till hela prestandan av ett flerkärnigt system (multi-core) på betydligt enklare sätt än tidigare.

För Windows Presentation Foundation fokuserar vi på att skapa tydliga synergier mellan Silverlight och WPF vilket innebär att saker som skapades för Silverlight (som visuell tillståndshantering) förs in i WPF och vice versa, det i sin tur gör det enklare att bygga gränssnitt som kan exekvera antingen i webbläsaren eller lokalt installerat. I och med Windows 7 blir också “multitouch” funktionaliteten mycket mer tillgängligt och även det får vi stöd för i WPF. Även prestandan blir betydligt bättre och ska tydligen fungera ännu bättre på terminal-sessioner än idag.

För dataåtkomst läggs mycket fokus på Entity Framework 2.0. LINQ to SQL är absolut inte nedlagt, men vår primära utveckling sker på just EF och det märks också i nyheterna. Med EF v2 får vi äntligen POCO-stöd och möjligheten att helt slippa använda mappningsfiler eller attribut, utan kan istället låta ramverket själv försöka klura ut hur objekten ska mappas mot databasen. Det bidrar också till ett bättre stöd för TDD vilket efterfrågats länge av communityn. För explicita mappningar kan fortfarande attribut eller XML-filer användas om så önskas.

För webblösningar är ASP.NET MVC det kanske tydligaste tillägget. ASP.NET MVC är inte en ersättare till WebForms utan istället ett komplement för lösningar där utvecklarna vill använda en TDD-metodik och ha ett flexibelt och avancerat ramverk som passar deras ändamål. ASP.NET MVC har redan släppts i en version 1.0 och dess källkod har också publicerats för dem som vill titta på den. Ett mycket intressant tillägg på webbsidan är också projektet “Velocity” som är en distribuerad cachnings-teknik för sessioner i ASP.NET. Även nyheter för AJAX utveckling kommer, som exempelvis JQuery och nya kontroller.

Windows Communication Foundation får en del trevlia ansiktslyftningar med bland annat bättre stöd för REST. Vi får också stöd för WS-Discovery vilket innebär att tjänster kan automatiskt publicer metadata om sig själva och klienter kan automatiskt hitta tjänster som passar dess syfte. Det tillkommer också en del transport-protokoll som UDP, MQ (jepp MQ Series) och kommunikation med hjälp av WCF inom en och samma process. WCF integreras också mycket kraftfullt och snyggt med…

…Windows Workflow Foundation som har fått markant förbättrad prestanda och skalbarhet. Även arkitekturen för WF har setts över och förenklats för att kunna bygga egna aktiviteter och flöden. Med WF 4 kommer också en ny visuell designer med stöd för “flödesscheman” som ser mycket intressant ut. Men mest intressant anser jag fortfarande vara integrationen med WCF och XAML som innebär att vi kommer att kunna skapa helt deklarativa WCF och WF-baserade tjänster utan att behöva skriva kod.

Språken
I och med Visual Studio 2010 försöker Microsoft nu att ytterligare göra C# 4.0 och Visual Basic “10” mer “lika varandra” med så få skillnader i funktionalitet som möjligt. C# 4.0 får bland annat stöd för namngivna och “valbara” parametrar enligt följande syntax:

public StreamReader OpenTextFile(
    string path,
    Encoding encoding = null,
    bool detectEncoding = true,
    int bufferSize = 1024) { … }

Som då kan anropas med exempelvis följande anrop:

OpenTextFile(bufferSize: 4096, path: “foo.txt”, detectEncoding: false);

Observera att vi inte behöver ange alla parametrar utan de parametrar som har “default”-värden kommer då istället att tilldelas detta. Detta underlättar mycket för interoperabilitet med COM och exempelvis utveckling av Office-lösningar med C#.

Ett annat viktigt tillägg är nyckelordet “dynamic” som statiskt typar en variabel att vara dynamisk :) Det innebär att vi tappar IntelliSense i utvecklingsmiljön men får istället “lazy-binding” som sker först vid exekvering av applikationen, något som skapar flexibilitet i exempelvis Silverlight och dynamiska lösningar generellt.

Även Visual Basic “10” får en del nyheter, en som jag gillar skarpt är möjligheten att inte behöva skriva _ i slutet på varje rad som fortsätter på nästa rad med kod, det hanterar alltså kompilator och miljön automatiskt numera. VB 10 får också stöd för lambda-uttryck och samlings-intialiseringar som tidigare bara funnits i C#.

Vi hälsar också ett nytt språk välkommen till familjen av språk som installeras med Visual Studio 2010, nämligen F#. F# är ett funktionellt programmeringsspråk från Microsoft Research som fokuseras på att skapa mycket skalbara lösningar och applikationer i och med att data i F# i grundutförandet är “immutable” och alltså inte kan förändras. Att sätta sig in i F# kan ta sin lilla tid, men det finns tydliga områden där F# kommer att passa som handen i handsken och jag tror starkt att språket kommer att bli en av de DSL’er som kommer att anammas av utvecklare i framtiden.

Utvecklingsmiljön
I Visual Studio 2010 ligger fokuset naturligtvis på att göra oss utvecklare, arkitekter och testare ännu mer produktiva. Utvecklingen har hela tiden tagit intryck och samlat åsikter från communityn för att anpassa miljön så mycket som möjligt efter hur vi idag bygger applikationer och lösningar.

Visual Studio baseras i flera delar på Windows Presentation Foundation, bland annat är texteditorn helt byggd i WPF och har även byggts med MEF vilket möjliggör enkla och kraftfulla tillägg till editorn för att passa dit och era syften. Editorn får stöd för snabbsökning och markering av alla referenser av samma typ eller ord. Vi får också mycket trevligt stöd för utveckling med flera skärmar, helt enkelt genom att kunna “undock” fönster och lägga dem vart vi vill på skrivbordet.

För att underlätta för TDD får vi nu också stöd för “konsumera först, deklarera senare” vilket innebär att vi i kod först kan skriva instansieringen av en typ och låta Visual Studio generera en stubbe åt oss baserat på hur vi instansierar klassen. Det gör att vi först kan skriva våra testfall i testprojektet och låta Visual Studio generera de testade typerna i vårt utvecklingsprojekt.

Nya verktyg för debuggning underlättar bland annat för parallell utveckling med tydlighet på trådar och hierarkier. Något som jag också gillar är möjligheten att kunna spela in exekveringen av en applikation under debuggning och sedan återspela delar vid behov. Bra för att verkligen kunna identifiera vad som gick fel vid flertrådad utveckling.

För webbutvecklarna underlättar Visual Studio en hel del med förbättringar för Javascript, JQuery, snippets, MVC och en hel del mer.

Även C++-utvecklare har en del att se fram emot, med stöd för parallell-utveckling och debuggning, stöd för de senaste API’erna för Windows 7 och uppdateringar i MFC för att skapa visuellt attraktiva applikationer som ser ut som de senaste versionerna av Office och Windows om så önskas.

Office och SharePoint utveckling har alltid varit ett mycket viktigt område för Visual Studio och i Visual Studio 2010 är det en absolut topprioritet. Med hjälp och vidareutveckling av ClickOnce kommer Office-utvecklarna att kunna skapa ännu kraftfullare tillägg till sia dokument och mallar och enkelt publicera dessa exmpelvis till SharePoint för användarnas konsumtion. Vi kommer också att direkt i Visual Studio 2010 för SharePoint kunna skapa arbetsflöden, “List” och “Site”-definitioner, web-parts, “master pages”, kontroller, moduler och fält, samt rulla ut dessa på betydligt enklare sätt än tidigare.

För projekten
Den kanske största förändringen och förbättringen i Visual Studio 2010 är ändå för projekten i och med Visual Studio Team System 2010 och Team Foundation Server. Det här området lämnar jag dock över till kommande artiklar, men redan nu kan jag nämna nya verktyg för arkitekter som exempelvis har stöd för UML. Testare får förbättrad administration och hantering av testfall på riktigt trevliga sätt.Projektledare och beslutsfattare får tillgång till ytterligare fler projektmallar och möjligheter till anpassning av dessa för att passa ditt företags behov och arbetsssätt.