PerSalmi.NET

Swedish .Net software developer...
# Thursday den 10 June 2010

Riktigt packat schema hela dagarna… Undrar när ska man hitta tid att summera och reflektera över det man snappar upp ur störtfloden av information här på TechEd? Här blir det ju mitt i natten som man har tid att samla tankarna.

image GeekFest  på Pat O’Briens igårkväll, mycket folk. MS DevDiv hade bullat upp med New Orleans specialitéer, Po-Boys, jambalaya och räkor (utan råolja :-) ).

Det blev mycket prat om Sverige med nyfikna amerikaner. Snackade även lite kodkata och varför vi så sällan tränar på att kunna våra verktyg som utvecklare med David Starr som höll ett föredrag om det tidigare på  dagen.

Kodkatan som David körde på sin session tillsammans med Ben Day var Uncle Bobs Bowling Game Kata. I den variant de gjorde under pågående diskussion med oss i publiken användes MSpec och Resharper.

Hur går det till med en kodkata? Jag receptet är någon i stil med detta:

  1. Välj en kata uppgift.
  2. Implementera en lösning för uppgiften, gärna testdriven!
  3. Variera faktorer som programspråk, algoritm, programmeringsparadigm - skriv funktionellt, objektorienterat eller procedurellt använd olika testramverk och/eller mockramverk
  4. Börja om på steg 2.

Vill du börja? Uppgifter som kan passa hittar man på http://codekata.com/ eller om man gillar matematiska problem så passar väl valt problem från Project Euler.

Tidigare idag var jag på en dragning om erfarenheter av att bygga LOB applikationer i Silverlight. Det var Dan Wahlin som höll det och han har sammanfattat det han pratade om i en bloggpost med tillhörande exempelkod: Tales from the Trenches – Building a Real-World Silverlight Line of Business Application

Thursday, 10 June 2010 08:36:23 (W. Europe Daylight Time, UTC+02:00)  #    Comments [0]
TechEd
# Tuesday den 8 June 2010

Måndagen började med keynoteföredrag av Bob Muglia med sällskap av ett gäng medhjälpare. Det var mycket Cloud-snack med inslag av utveckling och driftsättning samt en del intressanta stora kundprojekt som tex resurshantering under inspelningen av Avatar. Vill man se hela keynote-sessionen så finns den här: TechEd Keynote (kräver Silverlight). Lite nyheter från keynote var att Azure nu klarar IntelliTrace debugging, Office och SharePoint integration för Windows Phone 7 och att nästa Office Communicator ser lovande ut med HD-video.

Developer Foundation Session

Efter keynoten kördes tre olika spår med översiktliga föredrag riktade till olika målgrupper, vi var på Developer Foundation sessionen med Jason Zander. Här trillade det in flera nyheter som släppts idag. Vi börjar med Windows Azure Tools for Microsoft Visual Studio 1.2 (June 2010) som ger fullt stöd för Azure utveckling i Visual Studio 2010 och 2008. Man kan nu välja mellan .NET Framework 3.5 eller 4.0 i sina molnapplikationer.

Utöver detta släpptes Windows Server AppFabric och ännu ett par tillägg till Visual Studio 2010, nämligen Visualization and Modeling Feature Pack, som ger kodgenerering från UML diagram mm till den som har Ultimate Edition av Visual Studio, och Visual Studio 2010 Pro Power Tools som ger förbättrat fliksystem och mer funktioner i texteditorn.

image
Färgade flikar som indikerar att filerna tillhör olika projekt. 

Den bästa funktionen i detta power pack är nog att man nu kan söka i Add References dialogen:

image
Nya Add References med fritextsök för assemblies efter namn.

Mer nyheter som rör Visual Studio är en projektmall för TFS: Team Foundation Server Scrum v1.0 Beta som också släppts idag.

Expression Blend 4 och dess kompisar i sviten Expression Studio 4 har också blivit vuxna och kompletterar verktygen för utveckling mot .NET 4 så man nu kan jobba med Blend 4 och VS 2010 utan att behöva köra betaversioner av dem. Expression 4 finns på MSDN Download nu.

Efter lunchen freakade vi ur på AppFabric och såg två sessioner om WCF, WF och vad AppFabric ger. Kan passa riktigt bra i projektet vi jobbar på där hemma! Ger en del idéer som vi nog borde pröva för att bättra på skalbarheten.

Tuesday, 08 June 2010 06:51:01 (W. Europe Daylight Time, UTC+02:00)  #    Comments [0]
TechEd

Resan hit gick ganska bra, nån timmes försening av sista flyget från Detroit ner till New Orleans på grund av att presidenten ville ha flygplatsen för sig själv men det ordnade sig rätt bra. Obama lyfte och vi fick landa.

Det vore väl synd att säga att vädret här i  är på topp, bilden säger det mesta. Tryckande värme och fuktigt… Lite känsla av att sitta i en tryckkokare. Nån skrev på Twitter att en av fördelarna med New Orleans just nu är att alla skrynkliga skjortor rätar ut sig själva med hjälp av ångan…

image

I söndags var det förkonferens där vi fick en crash course i Silverlight av Jeff Prosise från Wintellect. Rätt mycket coola demos och en rejäl hög med kod att gå igenom framöver. Får väl se om jag kan plocka några guldkorn ur materialet att skiva om senare. Man inser att Microsoft satsar stenhårt på Silverlight i kombination med Windows Phone Series 7 som kommer på skarpa lurar i höst. Eftersom jag själv har en Android telefon nu så kunde det ju vara intressant att veta hur det ser ut för Silverlight på Android, frågan kom upp och Jeff som inte är anställd av Microsoft men har bra insyn i utvecklingen sa bara: “Jag kan inte ge några kommentarer om det.”  - Tolkas antagligen precis som man själv vill men visst vore det bra om det dök upp en runtime för Android. Med tanke på att Microsoft verkar vara ganska kritiska till Apples krav att iPhone appar ska utvecklas i Objective C och att Jobs vägrar släppa fram andra tekniker som Flash och Silverlight så kanske Microsoft kan gå i bräschen för öppenhet för en gångs skull och släppa Silverlight för fler plattformar. Men å andra sidan så betraktar de kanske Andriod som ett hot mot Windows Phone 7 och låter bli att släppa Silverlight för Android.

För övrigt var Jeffs föredrag mycket intressant och proffsigt genomfört och innehöll en del “det här säger folk att man inte kan göra med Silverlight men det kan man visst”-punkter.

Tuesday, 08 June 2010 05:01:57 (W. Europe Daylight Time, UTC+02:00)  #    Comments [0]
TechEd
# Thursday den 27 May 2010

Är du trött på att Notepad i Windows är lite för enkel som textredigerare? Det är jag och idag rann det över och jag bytte ut Notepad, troligen för gott.

Vill du ha några små extragrejer som syntaxfärgning, radnummer, ihopfällbara sektioner med mera men ändå inte få för mycket funktioner med tillkrånglat gränssnitt?

Originalvarianten av Notepad2 av Florian Balmer finns att hämta på http://www.flos-freeware.ch.

 image

Men som titeln antyder vill man kanske kunna göra det hela ännu enklare, dvs en färdig installerbar variant som automatiskt ersätter den vanliga Notepad som finns i Windows med Notepad2. Ta då en titt på denna sajt Notepad2 Modifications på sidan finns nerladdningslänkar till färdiga installationspaket för både 32- och 64-bitars Windows.

Thursday, 27 May 2010 16:03:19 (W. Europe Daylight Time, UTC+02:00)  #    Comments [0]

# Wednesday den 26 May 2010

Nu är det lite drygt bara en vecka kvar innan avfärd till Tech·Ed 2010 i New Orleans. Efter det artilleri av lanserade och uppdaterade tekniker och produkter som kommit under våren kommer det att bli väldigt intressant att vara på Tech·Ed i år. Nu har ju utvecklare världen över hunnit ta in lite av det nya vilket borde kunna ge en del bränsle åt intressanta diskussioner. I projektet jag jobbar med just nu gick vi över till .NET 4.0 och Visual Studio 2010 med rätt enkla medel redan första veckan efter den officiella lanseringen. Iofs hade vi läst på läxan lite innan och hade hyffsad koll på vad som funkar och inte funkar.

Jag får nog jobba lite till med schedule buildern innan jag är klar att ge ifrån mig en “sannolik” lista av sessioner som jag tänkt gå på men det ser ut att bli en del Silverlight på schemat eftersom det ligger projekt i pipen framöver som kommer att bygga på tekniken. Eftersom det oftast dyker upp något intressant spår när man väl är på plats får det nog finnas utrymme för improvisation.

Wednesday, 26 May 2010 15:18:22 (W. Europe Daylight Time, UTC+02:00)  #    Comments [0]
TechEd
# Wednesday den 21 April 2010

Nu kan man labba med den färdiga versionen av SQL Server 2008 R2 Express!

SQL Server 2008 R2 Express

SQL Server 2008 R2 Express Download

Microsoft SQL Server2008 R2 Express with Advanced Services

Microsoft SQL Server 2008 R2 Express with Management Tools

Microsoft SQL Server 2008 R2 Express with Management Studio Express

Större varianter som Standard, Enterprise och Developer Editions kommer tydligen på MSDN i början av Maj.

Wednesday, 21 April 2010 16:57:22 (W. Europe Daylight Time, UTC+02:00)  #    Comments [0]
SQL Server
# Monday den 12 April 2010

Nerladdning pågår! Dags att göra sig av med förhandsversionerna och köra den riktiga varan!

image

De verkar ha jobbat hårt på att hålla farten uppe för nerladdning, ser ut att vara mindre än en timme till första installationen kan inledas på mina maskiner. Blir det en team task att migrera det pågående projektet till .NET 4.0 imorgon? :-)

Monday, 12 April 2010 18:24:10 (W. Europe Daylight Time, UTC+02:00)  #    Comments [0]
.Net | Visual Studio
# Tuesday den 16 March 2010

Min tidigare postning om kodkontrakt tänkte jag föja upp med en länk till Roy Dictus blogg. Han har ett snyggt exempel på hur man kan lägga upp sin användning av kontrakt tillsammans med testdriven utveckling där man baserar sin kod på en basklass som utrustats med kontrakt. Kolla in Roys artikel på Code Contracts By Example.

image

Man kan väl kanske ha åsikter om hur stiligt det är att ha en klass med namn som börjar med “I” som annars brukar vara reserverat för interface i C#, men jag tycker trots detta att det är ett snyggt sätt att uttrycka krav i form av kodkontrakt.

Tuesday, 16 March 2010 22:59:38 (W. Europe Standard Time, UTC+01:00)  #    Comments [0]
.Net | C# | Visual Studio
# Monday den 15 March 2010

image Lite nytt som trillar in så här på kvällskvisten från MIX konferensen i Las Vegas ser ut att vara stöd för utveckling med Silverlight 4 i Visual Studio 2010 RC. Den förra Silverlight 4 beta-versionen fungerade ju bara ihop med Visual Studio 2010 Beta 2 om man inte tog till mindre tillförlitliga fulhack. Det verkar vara Silverlight som gäller för utveckling av applikationer mot den kommande Windows Phone 7 plattformen också. Frågan är hur länge WPF och Silverlight kommer att ha parallella spår framåt…

Ladda ner verktygen för Silverlight 4 här - Silverlight 4 Tools

För att fixa design med Silverlight 4 släpps samtidigt Expression Blend 4 Beta.

Monday, 15 March 2010 23:21:10 (W. Europe Standard Time, UTC+01:00)  #    Comments [0]
Silverlight | Visual Studio
# Saturday den 20 February 2010

Kodkontrakt är en ny teknik som kommer i samband med Visual Studio 2010. Vad är då detta med konkontrakt? Lite förenklat kan man väl säga att det är ett sätt att kunna skriva kod som kontrollerar att inkommande och utgående parametrar och resultat är rimliga och håller sig inom förväntade gränser. Kan alltså vara riktigt bra för att se till att den som använder dina klassbibliotek inte skickar in dåliga parametervärden och ställler till det för sig.

Kodkontrakt har varit i fokus och diskuterats i min närhet vid flera tillfällen de senaste månaderna, dels vid ett frukostseminarie  i december och senare när jag själv presenterade nyheter kring .NET 4 på en konferens i Sälen för några veckor sedan. Först var vi lite besvikna eftersom det verkade som kodkontrakten inte skulle fungera ihop med Visual Studio 2010, de fanns inte med i installationen. Vi hörde rykten om att teamet på Microsoft Research inte hade levererat till Visual Studios byggteam, så kontrakten kom att saknas i betaversion 2.

imageEn del extra efterforskningar efter frukostseminariet visade dock att kontraktstödet faktiskt finns och fungerar, det kräver bara en liten extra nerladding och en separat installation. Både vi som lyssnade och killen som höll frukostföredraget var alltså besvikna i onödan. Det visade sig dessutom fungera bra med Visual Studio 2010 Beta 2 samt nu med den nya RC-versionen.

Det man behöver är antingen Code Contracts Standard eller Premium som finns att ladda ner från Code Contracts på Microsoft DevLabs. Teamet bakom kodkontrakten har mer material i form av publicerade forskningsrapporter och användarhandledning i PDF-form på sin sajt hos Microsoft Research, läs dem här: Contracts - Microsoft Research. Om man vill delta i diskussioner eller ställa frågor finns även ett forum specifikt om kodkontrakt på: Code Contracts MSDN Forum

Ok, det var lite allmän info. Hur kommer man då igång att använda kontrakt i sin dagliga kodning?

Efter att man installerat kontraktstödet så får man en ny panel i projektegenskaperna, Code Contracts:

image

Ovan ser man att jag aktiverat både runtime-kontroller och statiska kontroller som körs vid kompilering. På min labbmaskin har jag installerat premiumvarianten av kontraktstödet, därav har jag både runtime och statisk kontroll. Det är alltså denna projektinställning som behövs för att kontrakt som skrivits in i koden ska vara aktiva och kontrolleras antingen vid körning eller kompilering.

För att visa hur kontrakt för före- och eftervillkor fungerar har jag en mycket enkel metod i mitt C# projekt:

public int PositiveAdd(int a, int b) 
{
    Contract.Requires(a >= 0);
    Contract.Requires(b >= 0);
    Contract.Requires((a + b) > 0);
    Contract.Ensures(Contract.Result<int>() == (a + b));
    return (a + b);
}

Villkoren ovan är avsedda att kontrollera att båda inparametrarna är större än noll och att de tillsammans också ska vara större än noll. Kontrollen av slutresultatet verifierar att returvärdet är ett heltal som är summan av inparametrarna. Detta är ju som ni ser extremt förenklat bara för att visa just själva kontrakten. Requires-raderna ger alltså de “före”-villkor vi vill ha medan Ensures ger oss “efter”-kontroller.

Om man kör kod som utrustats med kontrakt för före- och eftervillkor i sin debugger kan man tydligt se att Contract.Requires(…) och Contract.Ensures(…) inte är kodrader som exekveras som vanligt. I denna sekvens av bilder från en debugger session visar det sig hur kontrakten kontrolleras vid exekvering av metoden.

Vi börjar med att först köra alla sk pre-conditions för att kontrollera utgångsläget när metodens kod påbörjas:

CropperCapture[4]

CropperCapture[5]

CropperCapture[6]

Nästa steg är mer överraskande, det är här man verkligen ser att Contract raderna inte är en vanlig del av metoden, debuggern visar nu att metodens kod kommer att exekvera från början av metodens kodblock:

CropperCapture[7]

Här fortsätter sedan körningen med att utföra det verkliga jobbet i vår metod:

CropperCapture[8]

Den funktionella delen av metoden är nu klar, i normala fall är vi nu färdiga att returnera resultatet till den anropande kodsekvensen:

CropperCapture[9]

Men eftersom kontrakten är aktiverade så är det istället dags att gå igenom och verifiera alla “efter”-villkor:

CropperCapture[10]

Som sammanfattning är alltså Contract-raderna inte en del av metoden som körs procedurellt!

Detta var kontroller för enkla före- och eftervillkor, kontraktstödet innehåller fler varianter av kontroller, men de får vi ta upp en annan gång.

Saturday, 20 February 2010 00:14:08 (W. Europe Standard Time, UTC+01:00)  #    Comments [1]
.Net | C# | Visual Studio
# Thursday den 11 February 2010

Sedan ett par dagar har Visual Studio 2010 Release Candidate funnits tillgänglig för MSDN-prenumeranter och nu har denna version även släppts för allmän nerladdning.

image

Eftersom jag höll ett föredrag om en del av nyheterna i Visual Studio 2010 och .NET Framework 4 på Combitechs Sälenkonferens 2010 nu i slutet av januari så kan det ju finnas en liten anledning att tipsa om nerladdningslänkarna till den nya RC versionen:

Det kan också vara värt att kolla in nya Team Foundation Server 2010 på Visual Studio Team Foundation Server eftersom den nu går utmärkt att installera på klientoperativsystem som Windows 7. Det är ett enkelt sätt att experimentera med versionshantering och work items mm för att lära sig hantera TFS. Jag håller som bäst på att kolla in TFS lokalt på min laptop, installationen gick på några få minuter och jag har redan ett par projekt importerade för fortsatta experiment. Om du är nyfiken på hur konfiguration av TFS går till på din lokala maskin så kan man se en video om det från Jim Lamb:

Thursday, 11 February 2010 00:18:17 (W. Europe Standard Time, UTC+01:00)  #    Comments [0]
TFS | Visual Studio
# Tuesday den 5 January 2010

Hittade ett coolt trick på CNET News som gör att man kan skapa en enda mapp som Windows 7 magiskt fyller med länkar till alla administrationsverktyg och kontrollpaneler.

Windows 7 God Mode Screenshot

Att skapa sin egen God Mode mapp är enkelt! Skapa bara en ny mapp på valfritt ställe och döp om den till:

GodMode.{ED7BA470-8E54-465E-825C-99712043E01C} 

En extra karamell i Windows 7 som  jag har saknat under många år med Windows är ett kortkommando för att skapa en ny mapp, nu finns den Shift + Ctrl + N ger en ny mapp i Utforskaren, fungerar även på Windows skrivbord, i fildialoger för att spara och öppna filer. Dvs där man allt som oftast behöver ha en ny mapp.

Tuesday, 05 January 2010 13:39:05 (W. Europe Standard Time, UTC+01:00)  #    Comments [0]
Windows 7
# Friday den 11 December 2009

Ja, det kanske inte är den mest gångbara julklappen för alla kategorier av människor. Jag har ett tips till er som som sitter och funderar på den perfekta julklappen till programmerare, hobby hackare och andra sorteras datorfantaster:

Köp en Solid State Disk (SSD)!

Själv har jag väl funderat lite på om det verkligen är så fantastiskt mycket snabbare än en vanlig hårddisk, men i veckan fick alla utvecklarna i projektet jag jobbar med för tillfället varsin Intel X-25 160 GB SSD-enhet. Eftersom det är rätt mycket verktyg man jobbar med och har installerade är vi några som testat innan alla maskiner installeras om på bred front.

Lite snabba mätningar då? Jo, ta en titt på detta.

Utgångsläget, en Dell Latitude E6400 laptop med 7200 rpm 250 GB disk med Windows 7 x64:

NoSSD

Inte så illa diskprestanda för att vara en klassisk hårddisk i en laptop var vad jag tänkte, maskinen är hyffsat rapp, bygger om vår kompletta lösning i Visual Studio 2008 på lite under 2 minuter.

Ok, vad händer då när man fixat de tre skruvarna och har en Intel X-25 SSD på plats? Första indikationen på att nåt är rejält mycket snabbare är att Windows 7 installeras på ca 10 minuter, lägger på Visual Studio 2008 på ca 5 minuter och fortsätter med den notoriskt långsamma installationen av VS 2008 SP1. Servicepacket installerat på 12 minuter! Jag minns att jag en gång gått på lunch och kommit tillbaks innan den hunnit installera klart detta servicepack på en annan inte alltför långsam dator.

Till lite råa siffror då…

Samma Latitude E6400 som ovan men med med Intel X-25 SSD

SSD

Resultatet med 4 ggr snabbare läsning, dubbelt så snabb skrivning och generellt sett söktider nära noll känns helt sjukt.

Hur är datorn att jobba med då efter att ha bytt till den extremsnabba disken? Det som man framför allt märker av är att starta större program som förrut tog tid, tex SQL Server Management Studio går mycket snabbare. Kompileringar i Visual Studio går snabbare, några exakta mätningar är svåra att ge men ett stort projektbygge som vi har är ca 40% snabbare att bygga om helt. Office applikationerna startar i stort sett på ett ögonblick och webbsidor laddar mycket snabbare, så kontentan är att hela arbetsupplevelsen med maskinen flyter mycket bättre. Tid är pengar och liv, detta kommer att ge mig mer tid att göra vettigare saker än att sitta och vänta…

Det ska bli intressant att se hur länge denna “snabbhetskänsla” sitter i, tyvärr har man ju en tendens att ganska fort tycka att en dator inte är tillräckligt snabb. Teknostressen lär väl komma även här. Men just nu ser det lovande ut!

Friday, 11 December 2009 23:03:14 (W. Europe Standard Time, UTC+01:00)  #    Comments [3]
Hårdvara | Windows 7
# Monday den 7 September 2009

Ett gäng MVP- och Regional Directors har satt samman en gratis e-bok med ett urval av artiklar där innehållet spänner över lite blandade ämnen som berör de flesta av oss som är aktiva inom utveckling av programvara och speciellt på .NET plattformen.

image

Kolla in http://devshaped.com/book eller här för direktlänk till nerladdningen...

Bland innehållet finns allt från att jobba med underhåll av äldre applikationer, tips om C# konstruktioner som underlättar din vardag programmerare, till hur man kommer igång med innovativa användargränssnitt i Silverlight.

Materialet är till största delen hämtat från författarnas mest populära bloggartiklar som har förpackats i soffvänligt format och kryddats med lite tecknade serier.

Monday, 07 September 2009 11:42:30 (W. Europe Daylight Time, UTC+02:00)  #    Comments [0]
Läsning
# Thursday den 6 August 2009

Ok, då var det dags att ta ner det färdiga Windows 7 RTM versionen som precis släpptes på MSDN/TechNet.

image

Windows 7 ser just nu ut att vara tillgängligt i följande editions:

  • Starter (endast för x86)
  • Home Basic
  • Home Premium
  • Professional
  • Enterprise
  • Ultimate

Det finns även Windows SDK tillgängligt direkt för nerladdning, trevligt för ibland har det dröjt lite extra innan SDK har släppts men nu ligger de ute samtidigt.

Ultimate och Starter är de två varianterna jag tänkte installera först på min Dell Latitude E6400 respektive Asus Eee PC 901.

Thursday, 06 August 2009 19:22:57 (W. Europe Daylight Time, UTC+02:00)  #    Comments [0]
Windows 7
# Tuesday den 28 July 2009

NäraNerladdningsChef

Man undrar verkligen hur sånt som på bilden ovan kan slippa ut ur testlabbet. Det är ju inte så svårt att räkna ut vad den engelska textens betydelse var, men ett företag av den storleken borde väl ha råd att korrekturläsa nån gång då och då?

Tuesday, 28 July 2009 21:22:33 (W. Europe Daylight Time, UTC+02:00)  #    Comments [0]
Diverse
Blog & Contact
Per Salmi
Per Salmi
Min LinkedIn Profil

Jag arbetar på Combitech AB i Linköping med konsultuppdrag och utbildning inom Microsoft .NET området. Kontakta mig gärna om ni har frågor, behov av konsulttjänster eller är intresserade av utbildning inom .NET.

Copyright © 2018 Per Salmi

Bloggmotor: newtelligence dasBlog 2.3.12105.0

Sign In
Statistics
Total Posts: 220
This Year: 0
This Month: 0
This Week: 0
Comments: 40

Datorer
All Content Copyright © 2018, Per Salmi