Kom igång med ASP.NET MVC Release Candidate

ASP.NET MVC är ett ramverk som erbjuder ett sätt att utveckla webbplatser som främjar testbarhet, struktur och klar separation av huvudbry. Man får intuitiva url:er och total kontroll över html-kod och css som rendereras. Själva designmönstret Model-View-Controller är ju inget nytt utan har tidigare funnits i webbramverk som t ex Zend, Django, eller Ruby On Rails. Det här handlar alltså om Microsofts implementering för webb av mönstret.

Ramverket utannnonserades av Microsoft i slutet av 2007 och har sedan dess släppts i ett antal förhandstitt-versioner (fem tror jag), en betaversion och nu nyligen en kandidat till den slutgiltiga versionen. Utveckligen har skett i stor samverkan med utvecklarcommunityn och det har varit riktigt roligt att se det växa fram. Det riktiga släppet ska enligt tidigare meddelanden släppas nu under februari månad. Återstår att se ifall de håller den tidsramen, men nu är det hur som helst inte långt kvar.

Det är alltså ett perfekt läge att börja testa med ramverket ifall du inte gjort det tidigare, något jag rekommenderar varmt. Web forms i all ära, när jag har kört MVC ett tag så lockar inte den klassiska modellen längre.

Bra introduktionsartiklar till ASP.NET MVC av Stephen Walter

Stephen Walter skriver för tillfället på boken ASP.NET MVC Framework Unleashed och bjuder på sin blogg på några exempelkapitel från denna. Riktigt bra ifall man vill lära sig runderna i ASP.NET MVC.

I Chapter 1 - An Introduction to ASP.NET MVC ger han en introduktion till vad han anser hur bra mjukvara ska byggas, designmönster, arkitektur och vikten av testdriven utveckling. Han förklarar även hur standardinstallationen av ASP.NET MVC-installationen fungerar.

Vidare med Chapter 2 - Building a Simple ASP.NET MVC Application ber han oss lustigt nog att glömma vad han just sagt om testbarhet och de stora målen med mönstret och visar oss istället hur man bygger en enkel applikation, utan ett enda test. Här får vi dock lära sig hur man skapar projektetet i Visual Studio och bekantar oss med filstruktur coh de allmänna begreppen.

Sen visas i Chapter 3 - Understanding Controllers hur Controllers fungerar, vad för olika typer av resultat de returnerar, hur man kan begränsa dem till att bara acceptera specifika HTTP-attribut och hur man testar dem.

Det i skrivandes stund sista kapitlet som förhandsvisas är Chapter 9 - Understanding Routing och här visas hur man sätter upp sina routes i Global.asax för hur url-stukturen på för sin applikation ska se ut. Han går igenom hur man kan sätta begränsningar på dem och hur man debuggar och testar dem.

En riktigt lärolik samling artiklar alltså och hoppas fler kapitel dyker upp snart. Tänkt bara att detta är temporära kapitel ur boken som kan komma att ändras för att reflektera eventuella sista-minuten-ändringar vi kan komma att få se i den slutgiltiga versionen av ASP.NET MVC.

Köra olika versioner av ramverket samtidigt

Till sist ett litet tips ifall du redan har utvecklat sajter på tidigare versioner och vill testköra den nya RC-versionen utan att oroa dig för att dina tidigare projekt slutar att fungera. Här handlar det om att ta bort MVC-referenserna från GAC efter du installerat den senaste releasen. Man måste in i registret och röja så var försiktig vad du än gör. Jag har följt instruktionerna på min maskin och det gick fint. Mina äldre projekt körs med betaversionens MVC-ddl:er som ligger i respektive projekts Bin-mapp.

Att jag inte ens har provat att skapa ett RC-projekt är en annan femma. Försöker hålla mig eftersom den riktiga versionen kanske släpps typ imorgon...

By Jesper Lind

Spara filer som Unicode UFT-8 i Visual Studio

http://www.codeodyssey.se/upload/resource/blog/vs-utf-8.jpg

Som jag har letat efter inställningen för var man väljer vilken kodning ens filer ska sparas med i Visual Studio. Började tvivla på att det var möjligt att välja över huvud taget, men idag hittade jag äntligen instruktioner för hur man gör:

Välj "Spara fil som", och klicka sen på den lilla fliken som ni ser markerad på bilden här ovan.

By Jesper Lind

Flera Visual Studio-projekt i samma Solution

Försökte just att skapa en "blank solution" i Visual Studio 2008 men den vägrade att låta mig ladda in mer än ett projekt.

Efter ett tag förstod jag att mina inställningsfiler hade återställts till default pga av mappbyte. Hittade tips hos Paul June om hur man skulle ställa in det rätt igen.

Gå till Tools/Options/Projects and Solutions och klicka i rutan "Always show solution".

By Jesper Lind

Jämnföra databasscheman och hålla ordning på versioner

När man utvecklar en webbapplikation (eller andra typer av program för den delen också) så är det ofta en stor utmaning att hålla strukturen på databaserna likadan. Man gör ändringar i sin orginalmodell och försöker ändra alla de databaser som är i drift enligt bästa förmåga. Hittills har jag inte haft något speciellt bra sätt att göra detta på utan det slutar ofta med felsökning steg för steg och ändra databasen manuellt. Tänkte här skriva om några sätt som kan förenkla detta jobb.

Lägga in databasskripten i källkodsprojektet

Ett sätt är att skripta ut hela databasen och sedan inkludera skripten i källkodsprojektet som Coding Horror förklarar. Inte helt på det klara om detta kan hjälpa en för att uppdatera befintliga databaser, men att ha strukturen i kod är ju ett bra första steg.

Använda sig av databas-migrering

Detta är ett koncept som funnits länge i Ruby On Rails-världen och innebär att varje förändring i databasen sparar i uppdateringsskript som man kan köra på sina databaser. 

Subsonic-teamet har nyligen inspirerats av Rails och lagt in liknande Migrations-funktionalitet i Subsonic. Har provat detta lite under sommaren och även fast det är väldigt ny teknik så verkar det fungera mycket bra.

Program för att Jämnföra databasscheman

Detta sätt tycker jag är det mest bekväma och innebär minst jobb. Man utgår helt enkels från sin orginalstruktur för databasen och jämför denna med de databaser som ska uppgraderas.

Denna funktionallitet finns i Visual Studio men bara i team-edition så den har jag inte testat själv. Verkar fungera fint och jag kan rekommendera läsning hos Emad Ibrahim som har provat på det.

Det smidigaste programmet som jag har provat är dock utan tvekan Redgate SQL Compare. Att jämföra två databaser går på nån minut och man får sedan SQL Skript redo att köra på den databas som ska uppgraderas. Har bara provat testversionen men funderar skarpt på att göra en investering i en licens.

Om du har några erfarenheter om hur man kan göra version-hantering av databaser lättare, så uppskattas kommentarer.

By Jesper Lind

.NET-utveckling på en Mac fungerar fint

Oj vilket blogg-uppehåll det varit här, hoppas ni inte saknat oss för mycket. Nu kommer vi köra igång igen och hoppas på att kunna skriva regelbundet här om webbutveckling som vi brukar.

Denna gång bloggar jag från en MacBook Pro, så se fram emot många OS X-relaterade artiklar i framtiden.

Men ni Windows-geeks behöver inte misströsta. Kör Vista i en boot camp installation via VMware Fusion, så det kommer finnas mycket matnyttigt för den plattformen också.

Man kan säga att mitt dataliv har blivit rätt mycket trevligare sen jag kunde pensionera den Dell-burk jag använde innan (och nej Dell har inte hört av sig för att kompensera för den dåliga upplevelsen). Det var inte helt smidigt att ha en dator som stängde av sig själv titt som tätt när den blev överhettat. En del bekanta brukar le så smått när jag berätta om hur jag fick sitta på balkongen med kylklampar under datorn, vid krävande operationer.

Jag har tidigare lovat en utvärdering av hur det fungerar att använda Visual Studio på en Mac via Vista som slavsystem, och kan säga att det går helt okej. I min maskin har jag 2 GB ram och det duger bra åt att köra de båda operativen sida vid sida. Funkar till och med bra att använda det processorintensiva pluginet Resharper som jag blivit så förtjust i.

VMware Fusion som gör det möjligt att köra OS X och Windows (eller andra operativ) samtidigt har många bra inställningar där man bland annat kan ställa in hur mycket ram man vill dedikera till slavsystemet och det går också att simulera två processorer med hjälp av mjukvaran.

Något som är lite svårt i början är att vänja sig vid alla teckenkombinationer. Nu har jag hittat hur jag skriver in det mesta, men saknar fortfarande vänster måsvinge. Så här har jag lite forskning kvar innan jag kodar lika effektivt som på en PC.

Så jag kan gärna rekommendera även gamla Windows-rävar att i alla fall fundera på att switcha till Mac. OS X är ett väldigt skönt operativ som gör de mesta uppgifter till en bättre upplevelse. Mac-masknerna är också väldigt snygga och har väl integrerad hårdvara. Något som jag uppskattar som inte är så intresserad av att mecka med olika drivrutiner fram och tillbaks. På maccen funkar det mesta med en gång, och allt OS X är väldigt lättanvänt.

By Jesper Lind

Resharper - lika kul som Tetris

http://www.codeodyssey.se/upload/resource/blog/resharper-tetris.gif

Måste bara rekommendera Visual Studio-tillägget Resharper, ifall det är någon VS-kodare där ute som inte provat det ännu. Utan att gå in för djupare på vad det gör så kan man säga att det är som en slags automagiskt refaktionerings-verktyg.

Med detta kan till och med städa gammal kod vara roligt. Här äver ser ni en bild på de olika färgkoderna. De röda raderna betyder att referens saknas, och man hoppar till rätt ställe i koden genom att klicka på dem.

Finner det nästan lika kul som Tetris så det har definitivt gjort mig till en gladare kodare.

Men tänkt på att du behöver en relativt kraftfull dator med snabb processor, mycket ram och en snabb hårddisk, för att använda det, då det är väldigt resurskrävande.

By Jesper Lind

Lansering av Silverlight 1.0

http://www.codeodyssey.se/upload/resource/blog/silverlight_anims.jpg

Silverlight har nu släppts i version 1.0, läs mer hos bland Microsoft representanterna Robert Folkesson och Scott Guthrie. För er som inte är insatta i tekniken så handlar det om ett plugin till webbläsare för att presentera multimedia och erbjuda interaktivitet (ungefär som Adobe's Flash-spelaren).

Man tillkännager samtidigt att man kommer samarbeta med Novell och hjälpa dem med att utveckla en Linux-baserad implementation av tekniken. På Linux kommer denna få namnet Moonlight läs mer hos Mono-utvecklaren Miguel de Icaza.

Version 1.0 av Silverlight programmeras om jag har förstått det hela rätt genom Javascript-kod och man behöver bara en texteditor för att skapa denna. Det går att ladda ner en utökning till Visual Studio för att få Intellisense på Javascript för Silverlight.

Nästa version 1.1 kommer stödja ASP.NET och finns än så länge bara i Alpha-släpp för utvecklare att testa med. På Silverlight-sajten finns alla verktyg som man behöver för att komma igång med att utveckla applikationer.

Vi ser fram emot att prova på Silverlight-utveckling och tror väldigt starkt på tekniken. IDG har också skrivit en notis om det.

By Jesper Lind

Snabb Firefox på localhost och eliminera minnesläckande tillägg

Firefox kan gå riktigt långsamt när man kör den inbyggda web servern i Visual Studio. Tydligen kan detta bero på DNS-problem relaterat till IPv6. Om man sätter network.dns.disableIPv6 till false i about:config så ska det gå bättre.

Andra källor till seghet kan vara att tillägg man har installerat inte fungerar optimalt. Som tur är har Leak Monitor utvecklats för att kunna spåra såna minnesläckor i tillägg. Just fick jag passande upp den första rapporten från tillägget, när jag skriver detta. Det presenteras i en Javascript-popup där man kan spåra problemet och se vilket tillägg som läckt minne.

Cybernet News har gjort en undersökning med hjälp av Leak Monitor och presenterar en sammanställning på några tillägg man ska se upp för.

By Jesper Lind