The PIT
Röster från ITM-koncernen.

En ny era är här (VS2010+.Net4).

August 5, 2009 15:14 by Stefan Karlsson

 

Snart kommer VS 2010 att släppas. Idag kan vi tanka ner VS2010 Beta 1 och .Net framework 4 Beta 1.

Det finns så många härliga nyheter både i kompilator, språk och editor att man sitter som en liten pojke på julaftonen och hoppar av lycka.

Bara en sån liten sak som “auto-implemented property” är en stor grej.

Auto-implemented property

När man skapar en property som bara ska hålla en sträng så har det tidigare varit minst 9-10 rader kod och när man arbetar med stora klasser med många propertys så känns det alltid lite meningslöst att sitta och skriva de där raderna.

Här är ett exempel hur det såg ut förut:

Dim _Prop2 As String = "Empty"
Property Prop2 As String
    Get
        Return _Prop2
    End Get
    Set(ByVal value As String)
        _Prop2 = value
    End Set
End Property

Det ersätts med en enda rad med “Auto-implemented propertys”:

Property Prop2 As String = "Empty"

 

Ovanstående rad implementerar alltså automatiskt ett privat fält (Backing field)) för att hålla propertyvärdet och exponerar propertyn utanför klassen. Smidigt att kunna skapa en property inklusive defaultvärde med en enda rad. Det privata fältet som Visual Basic skapar automatiskt är propertyns namn med en underscore i början, i detta fallet _Prop2. Om du markerar properyn som shared så blir även backing field shared. Backing field kan accessas innifrån klassen och från debuggfönster men syns inte i intellisense-listan.

Vill du ha egen kod i settern eller gettern så kan du inte använda dig av auto-implemented propertys utan då gäller det att skriva properys som vanligt. Visual studio låter dig lätt göra detta genom att ställa dig på en rad direkt efter propertyn och trycker G eller S och sedan enter, då expanderar den propertyn och lägger till en getter eller setter beroende på vad du tryckte för bokstav.

Implicit Line Continuation

Också en feature som gör det lite snyggare att läsa kod. Man slipper avsluta rader som man vill fortsätta på ny rad med underscore. (Se http://msdn.microsoft.com/en-us/library/865x40k4(VS.100).aspx )

Collection Initializers

Med det nya nyckelordet FROM kan man initiera kolletioner direkt vid deklarationen, några exempel:

Dim names As New List(Of String) From {"Christa", "Brian", "Tim"}

 

och

Dim customers = New List(Of Customer) From
    {
        New Customer("City Power & Light", "http://www.cpandl.com/"),
        New Customer("Wide World Importers", "http://www.wideworldimporters.com/"),
        New Customer("Lucerne Publishing", "http://www.lucernepublishing.com/")
    }

( Se mer http://msdn.microsoft.com/en-us/library/dd293617(VS.100).aspx )

 

Multiline Lambda Expressions and Subroutines

Exempel: Första raden är en singleline lamda expression, andra är en multiradsexpression:

Dim increment1 = Function(x) x + 1
Dim increment2 = Function(x)
                     Return x + 2
                 End Function
' Write the value 2.
Console.WriteLine(increment1(1))
' Write the value 4.
Console.WriteLine(increment2(2))
(Se mer här http://msdn.microsoft.com/en-us/library/bb531253(VS.100).aspx )
 
 

Dynamic Support

Visual basik kan nu bindas till objekt från dynamiska språk som IronPython och IronRuby vilket öppnar upp för nya intressanta möjligheter som att låta användare scripta saker som sedan körs i ditt program, öppna upp för plugins på ett nytt sätt m.m. (Om jag har förstått det rätt)

 

En massa nya saker i editorn

  • Lättare/snyggare/snabbare navigering i kodfönstrena med nya navigeringsverktyg.
  • “Generate From Usage” vilket låter dig koda mot en klass som inte ännu finns och sedan låta visual studio generera klassen utifrån hur din kod använder den. Vilket skapar stubbar man sen kan skriva vidare på. Se ( http://msdn.microsoft.com/en-us/library/dd409796(VS.100).aspx )
  • Bättre breakpoint-hantering
  • Nydesignad thread-hanteringsfönster med filtermöjligheter m.m.
  • Mycket mycket annat.

Tags:
Categories:
Actions: E-mail | Permalink | Comments (0) | Comment RSSRSS comment feed