PerSalmi.NET

Swedish .Net software developer...
# Tuesday den 7 December 2010

Ett par godbitar för den som vill ligga på topp när det gäller det senaste i .NET- och Visual Studio-väg dök upp på Microsoft Downloads respektive MSDN idag.

image

Jason Zander skriver om betaversionen av SP1 för VS 2010 som finns på MSDN för prenumeranter redan idag och kommer ut till allmän nerladdning inom några dagar. Kolla bloggen på Announcing Visual Studio 2010 Service Pack 1 Beta. Nerladdning finns här VS 2010 Service Pack 1 Beta (MSDN prenumeranter) och inom kort även här på Microsoft Downloads. Nu återstår att titta på förbättringar av online-hjälpsystemet och annat smått och gott.

Nästa grej då… Jo, tidigare i höst under PDC 2010 visades en del nya funktioner ur ADO.NET Entity Frameworks kommande uppdatering, nu kommer då en preview version 5 som finns att tanka hem och pröva. Här laddar du ner Microsoft ADO.NET Entity Framework Feature Community Technology Preview 5.

För lite utförligare info om nya features som finns med, så har Julie Lerman postat flera artiklar om vad som är nytt på sin blogg, Don't Be Iffy.

Tuesday, 07 December 2010 22:59:00 (W. Europe Standard Time, UTC+01:00)  #    Comments [0]
.Net | Entity Framework | Visual Studio
# Saturday den 20 November 2010

Lite smått oväntat gick sommaren 2010 i prylarnas tecken. Jag tänkte sammanfatta mina erfarenheter av de tre intressantaste. För ca 15 år sedan var man betydligt mer prylgalen än nu vilket var ett problem för då fanns inte pengarna för att underhålla galenskapen… nu tycks jag ha fått ett återfall.

HTC Desire – Android mobil

image

Eftersom min gamla mobil, en Sony Ericsson P1i, började ge upp och behövde en ersättare och HTC Desire med Android 2.1 verkade vara lovande så den fick uppdraget att ersätta den hårt prövade P1i-mobilen. Desiren funkade utmärkt under sitt elddop som mobil under TechEd i New Orleans och fick senare under sommaren en uppgradering till Android 2.2. Jag är riktigt nöjd med telefonen, lagom storlek för att passa fickan samtidigt som man kan surfa och få mejlen rakt ner i telefonen. Faktum är att mitt användningsmönster för datorer ändrades ganska mycket, det blir helt enkelt inte att man slår på datorn för att kolla mejlen längre, den dyker ju direkt ner i fickan nu. Jag är helt enkelt riktigt nöjd med den och de appar man hittar och använder är oftast vettiga.

Som utvecklare är jag ju rätt nyfiken på att bygga egna applikationer för telefonen så det har blivit lite experiment med både den vanliga Javabaserade miljön och Eclipse men jag är också med i ett beta program för att testa MonoDroid, dvs en .NET implementation på Android plattformen. Vi får se var det tar vägen framöver nu när det är möjligt att använda Android Market även i Sverige. Hittils har det bara blivit lite laborerande utgående från den tvådagars Android utvecklingskurs som jag halkade in  på för nån vecka sedan. Väldigt intressant men ovant eftersom det var flera år sedan jag körde en Java IDE för utveckling senast.

Flip Slide HD – Videokamera i fickformat

image

Små kompakta HD videokameror - stor trendpryl i YouTubes kölvatten insåg jag under TechEd i New Orleans. Cisco har förstås insett att man kan sälja mer hårdvara för internetinfrastruktur om man driver på mängden video som alla sprider online, därav deras Flip kameror. Den variant jag fick med mig hem till Sverige som vinst i en utlottning kallas Flip Slide HD. Min första tanke när jag fick den var “Vad ska man ha denna till?”, jag har nog faktiskt inte kommit närmare svaret på den frågan heller. Visst den slår bildkvaliten på vår tolv år gamla DV-kamera där hemma men samtidigt är det inte så ofta man verkligen behöver en kamera för YouTube-moments i HD kvalitet och när man väl önskat att man hade den till hands så har man det inte.

Amazon Kindle DX – E-bokläsare

image

Den tredje prylen som jag spenderat en hel del tid med under semestern och höstmånaderna är Amazon Kindle DX, alltså en e-bokläsare. Kindle är liksom Flip kameran en ganska ovanlig bekantskap här i Sverige, jag hade aldrig sett en i fysisk form innan den jag köpte anlände med UPS en sommarmorgon. Varför skaffa en Kindle? Jo, jag har massor av teknikböcker i PDF-form liggande och de blir inte lästa när man bara har laptop och skärm att tillgå och man blir ganska trött på blåmärken och jack i pannan av att tappa en APress-tegelsten om ASP.NET på 1700 sidor i skallen. Då kan det vara en bra idé med en e-bok som väger mindre och är betydligt tunnare trots att den innehåller hela teknikbiblioteket på en gång. Efter en del grubblande valde jag en 9,7” modell eftersom den enligt tips från de som prövat var mycket bättre lämpad för just PDF dokument. Problemet med att ha böcker i PDF format jämfört med andra e-bokformat som Kindles eget eller mobi är att PDF inte ändrar layout utan visas som det är tänkt i en pappers bok och då var det helt rätt att välja en storlek som hyffsat motsvarar det man har i pappersform. Det blir mer läsbart på det sättet. Effekten har i alla fall blivit att det lästs massor ur högen av PDF böcker så slutsatsen är att det funkade som jag tänkt.

Jag har väl shoppat loss på en del nya böcker också, en trevlig grej med e-böckerna är att när man köper från förlag som O’Reilly, Manning och APress så finns det allt som oftast bra erbjudanden med 40-50% rabattkoder att hitta på nätet och de flesta böcker finns i flera format som PDF och mobi, då kör man PDF på datorn och mobi på sin Kindle. Biblioteket tillgängligt överallt! Det område jag inte utforskat tillräckligt än är att köpa svenska böcker, men det jag hört är att utländska e-bokägare är avundsjuka på att vi svenskar tydligen har tillgång till icke-DRM-skyddade böcker från flera av våra internetbokhandlare. Återstår att kolla upp hur man får över dem i mobi-format för Kindle. Amazon håller sig ju tyvärr till engelsk litteratur som det ser ut hittils.

Nästa pryl på önskelistan då? En Windows Phone 7 vore ju inte fel att ha bara för jämförelsen med Android… och en Kinect kontroller till XBox… surfplatta… det finns massor att välja på.

Saturday, 20 November 2010 14:57:14 (W. Europe Standard Time, UTC+01:00)  #    Comments [1]
Hårdvara
# Sunday den 3 October 2010

Drar du dig för att installera om din Windows-maskin eftersom det tar tid att få in alla småverktyg och applikationer som du använder?

Installera livsnödvändigheterna

Det är ju inte längre ett evighetsjobb att installera om Windows 7 på en modern maskin men att få dit sin favoritwebbläsare, PDF-läsare, antivirus, mediaspelare, IM-applikationer, grafikverktyg, arkivering, runtime-miljöer mm kan ta sin lilla tid. Sist jag installerade om min utvecklarmaskin var det inte mindre än 27 olika applikationer och småverktyg att dra in och det var innan jag kom fram till väsentligheterna som Visual Studio och SQL Server.

Vill man fixa dessa standardprylar och börja med en rejäl kickstart och spara massor av sökande, nerladdande och klickande så rekommenderar jag Ninite. Ninite är en webbsajt där man går in, kryssar för alla applikationer man vill installera i en lista med ett urval av de vanligaste programmen och en del mer udda saker. När man valt applikationer klickar man på Get Installer längst ner och får hem ett installationspaket som automatiskt sköter nerladdning och installation av alla de applikationer du valt. Ninite ska själv se till att ta ner de versioner som passar bäst för din PC och Windows version samtidigt som den ser till att inte installera toolbars och annat sponsormaterial som finns med i en del av de valda installationspaketen. Så man slipper sitta och kryssa ur de grejerna i varje installationspaket.

image

Sen tar vi utvecklingsverktygen

Nu har ju inte tjänster som Ninite rikitgt koll på allt du behöver som utvecklare även om man kan få Eclipse den vägen. Vi som jobbar med .NET behöver Visual Studio och en del andra verktyg och mer specifika extra tillägg på Windowsplattformen. Visual Studio 2010 är relativt sett snabbt att installera jämfört med äldre versioner så den är inte mycket att snacka om. Men om man jobbar med webbutveckling vilket nån undersökning sa att ca 70% av .NET-utvecklare gör så tycker jag man ska ta en titt på Web Platform Installer, det är väldigt snabbt och smidigt att få in en del utvecklingsverktyg som man annars för ladda ner vart och ett från olika ställen. Om Visual Studio Web Developer Express räcker för dina behov så finns även den att få via WPI, bra om man bygger en tillfällig labbmaskin för webbjobb.

För kirurgiska ingrepp

Sysinternals verktyg är oumbärliga för att felsöka och hantera Windows-maskiner så ett besök på deras sajt och därmed följande nerladdning av den kompletta Sysinternals Suite är bra att lägga till när vi börjar närma oss en komplett installerad maskin.

Och lite strössel på toppen

Beroende på vad du ska göra med maskinen så skulle jag ta ett besök på Scott Hanselmans Tools lista och se efter om det inte finns lite godbitar som kan passa. Ett fynd jag gjort där är t ex SpaceSniffer, eftersom min SSD inte har obegränsat utrymme så är SpaceSniffer bra för att hålla koll på vem som spenderar dina gigabytes och på vad…

Vad brukar du göra för att minimera jobbet att installera en Windows-maskin?

Sunday, 03 October 2010 15:32:39 (W. Europe Daylight Time, UTC+02:00)  #    Comments [0]
Verktyg
# Thursday den 30 September 2010

Ok, detta är det första jag skriver med Windows Live Writer 2011, det finns en helt färsk utgåva av Windows Live Essentials att hämta på http://explore.live.com/windows-live-essentials. Jag har kört en testversion av den ett tag utan större problem. Just nu verkar inte den svenska versionen vara släppt men det ska komma ett 40-tal språkversioner inom ett par dagar.

image

Framför allt har Live Messenger vuxit till sig med direkt integration mot Facebook och massor med andra sociala sajter. Nu kanske man orkar chatta med nån som kör Facebook…

LiveMessenger

Men man vill nog inte köra med nya Messengers standardlayout, den lämnar inte plats för så mycket annat än uppdateringar från sociala nätverk. Det kanske är ett tecken på att det är dags för en bildskärm till? Man ska ju bli så produktiv av att ha flera skärmar enligt nån undersökning jag läst om.

Messenger verkar också ha inspirerats lite av Skype eftersom den verkar mycket duktigare på att ta sig genom mer eller mindre konstiga brandväggar för att ansluta mot yttervärlden.

Det var länge sedan jag klippte nån video med Movie Maker som också fått en ansiktslyftning, vilket får mig att tänka på att jag borde fixa min och Stefans Flip Cam video från TechEd New Orleans… Det får nog blir ett pilotprojekt.

Thursday, 30 September 2010 21:57:21 (W. Europe Daylight Time, UTC+02:00)  #    Comments [0]
Windows Live
# Wednesday den 15 September 2010

Ok, då var det dags att testa IE 9 på riktigt, den första betaversionen släpptes för nerladdning alldeles nyss.  De tidigare preview varianterna som kommit under våren och sommaren har ju funkat men nu är det ett betydligt mer komplett paket som trillar in.

image

Kolla in mer om browsern på sajten Beauty Of The Web och Putting sites at the center of the browsing experience, using the whole PC.

Själv märker jag direkt att tex Google Reader är märkbart mycket snabbare med IE 9 än den var med IE 8.

Hitta rätt språkversion och ladda ner IE 9 från Download languages for Internet Explorer 9 Beta.

Wednesday, 15 September 2010 19:48:17 (W. Europe Daylight Time, UTC+02:00)  #    Comments [0]
Internet Explorer
# 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
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 © 2017 Per Salmi

Bloggmotor: newtelligence dasBlog 2.3.12105.0

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

Datorer
All Content Copyright © 2017, Per Salmi