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

Video: "The Website is Down: Sales Guy vs. Web Dude"

Den här har nog redan gått några virala varv runt "the intertubes" men har du inte sett den rekommenderas den starkt. Varning för stundvis omogen humor och dåligt språk, men den är i många delar helt klockren. Vi har haft rätt mycket kul åt den här på kontoret och har svårt att oss på själva på allvar längre. Om vi nu någonsin har gjort det ;)

Orginalet finns på thewebsiteisdown.com och har på den senaste veckan blivit så populär så att själva sajten har krashat några gånger (ödets ironi...)

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

BuiltWith - Visar vilken teknik en webbplats använder

BuiltWith är en bra gratistjänst som visar vilken teknik en webbsajt använder.

Genom att skriva in en URL får man information sidans typ av server, programmeringspråk, JavaScript-bibliotek, vilka annons-nätverk som är anslutna, typ av besöksräknare, doctype m.m. Varje teknik beskrivs kortfattat på ett informativt sätt.

Man får också tillgång till statistik på hur vanlig varje teknik är bland de sajter som har undersökts av tjänsten. En annan finess är att man kan söka efter likande teknik och på så sätt utforska nya lösningar.

Sajtägare kan även ansöka om medlemskap för att få en skräddarsydd rapport av rekommendationer för nya tekniker.

By Jesper Lind

Hacka till fixerad positionering på IE6

Som ni kanske märker på mina senare inlägg så är jag i en hård batalj med IE6. Webbläsaren stödjer inte CSS-attributet position:fixed så vill man ha element som ligger på samma plats så blir det problem.

I mitt fall ville jag ha en footer som hela tiden låg i nedre kanten av skärmen. På de moderna webbläsarna fungerar denna CSS.

#footer {
    width:700px;
    z-index:10;
}

div[id=footer] { /* for real browsers */
    position: fixed !important;
    top:auto !important;
    bottom:0;
}
 

För att få till samma effekt på IE6 så kan man länka in ett speciellt stylesheet med hjälp av conditional comments. För att bara länka på IE6 eller lägre versioner kan man köra så här.

<!--[if lte IE 6]>
<link rel="stylesheet" type="text/css" href="css/style-ie6-footer.css">
<![endif]-->

Jag hittade sen scriptet jag behövde på en sida som visar hur man kan positionera element på IE6, uppe i mitten eller som i mitt fall i nederkanten. Eftersom CSSen använder "stjärn-hacket" så hade det inte behövt att ligga i en egen stylesheet. Men det kändes bättre eftesom jag inte ville blanda in denna bizarra kod för de moderna webbläsarna.

* html div#footer {position: absolute;
top:expression(eval(document.compatMode &&
document.compatMode=='CSS1Compat') ?
documentElement.scrollTop
+(documentElement.clientHeight-this.clientHeight)
: document.body.scrollTop
+(document.body.clientHeight-this.clientHeight));}

By Jesper Lind

IE7 till piraterna

Microsoft beslutar sig för att släppa på valideringen av Windows vid nedladdning av Internet Explorer 7. Något som jag tycker är kanon, och som vi lustigt nog hade en diskussion om nyligen borta på Sovrat (som idag bytt namn till Pusha), och hoppades på att Microsoft skulle göra.

Så nu kan användare utan riktig Windows-licens ladda hem den nyaste webbläsaren från operativ-utvecklaren i Redmond. Förhoppningsvis kommer detta leda till att fler uppgraderar från IE6, som är så jobbig att skapa hemsidor för.

Men anledning av denna nyhet tänkte jag det var läge att kolla hur statistiken ser ut för tillfället. Som vanligt när det gäller statistik så är det svårt att veta vilka källor man bör förlita sig på.

Om man ser på webbläsar-statistiken på W3School så såg den ut enligt nedan i september. Firefox har denna månad gått upp i topp som den mest använda webbläsaren om man delar på de olika versionerna av IE. Den stora andel Firefox-användare beror ju på att det ofta är utvecklare som besöker W3C-sajterna.

Firefox 35.4%
IE6 34.9%
IE7 20.8%
Safari 1.6%
Opera 1.5%
Övriga 2.7%

Ser man istället på samma månad på W3Counter som sammanställer statistik från ett större antal källor så ser situationen lite annorlunda ut. Här är IE6 på solklar topp. Jag har lagt ihop de olika Firefox-versionerna samt grupperat övriga läsare under en post för att statistiken ska kunna jämföras lättare.

IE6 46.68%
IE7 19.54%
Firefox 25.45%
Safari 1.76%
Opera 1.22%
Övriga 1.14%

Vad man kan se av detta är att det gäller att veta hur den vanliga besökaren ser ut på din webbplats. Det varierar helt enkelt beroende på vilken typ genomsnittlig besökare du har.

Om du har ett lågt användarantal som använder den förlegade IE6, kan du eventuellt strunta i dessa och använda alla de nya finesser som moderna webbläsare erbjuder, transparenta png, riktigt box-modell och allt det där.

Har du dock ett stort antal så bör du testa så att designen fortfarande fungerar någorlunda. Microsoft har en virtuell installation av IE6 om du inte har kvar den på din dator. Annars finns det som vi nämnt tidigare online-tjänster som kan visa IE-design.

Att det går att sänka IE6 men endast en rad HTML-kod, borde vara ett tecken nog att den borde pensioneras för gott, så hoppas att Microsofts senaste välgörande handling kommer att snabba upp processen.

Vill man vara riktigt radikal kan man visa ett varningsmeddelande för alla IE-användare att de bör byta webbläsare. Lite att ta i om du frågar mig, jag hade helldre sett ett skript som bara tipsade IE6-användare att uppdatera till IE7, Firefox eller annan med likvärdig standardiserad renderering.

By Jesper Lind

Om det var roligare – hade jag städat skrivbordet oftare

När folk ser mitt skrivbord på min laptop får de ofta en chock pga hur överfullt och med filer det är. För ett tag sen såg det nästan så här illa ut. Killen som har skrivbordet i länken har som idé, att han vill ta vara på allt utrymme. Han tänker så att om jag fyller allt tomt utrymme, med så mycket grejer det bara går, så har han allt han behöver inom så kort räckvidd som möjligt.

Skälet till att mitt skrivbord har varit så hopplöst överbelagt, är inte det samma som hans, utan jag inser att det skulle vara lättare att jobba om jag hade bättre ordning på inkommande filer. Jag använder det som en slags dumpplats för filer som jag tar emot på mail och chattklienter. Och känner oftast inget behov att städa, tills det har gått över styr..

Nu har jag inspirerats av Coding Horror's "Discipline Makes Strong Developers" så har jag bestämt att det är dags för en ny regim. Ordning och reda på skrivbord, mail och källkod i projekten. Eftersom jag precis har installerat om XP, så är detta ett gyllende tillfälle att börja hålla bättre ordning.

Hur skulle det kunna bli roligare?

Ända sen jag såg Bumptop för första gången, insåg jag att om jag hade ett liknade interface på skrivbordet, så skulle det vara mycket roligare att hålla ordning. Missa inte det lustiga parodin som nån lagt upp på YouTube, som visar hur Bumptop skulle se ut om man använde det i verkliga livet.

En annan som gillade idéen är Doug Mccune och jobbar på att skapa samma slags UI med Flash/Flex/AIR/Actionscript Physics Engine och PaperVision 3D. Han kallar sin implementation tileUI och har redan ett enkelt demo som man kan prova på. Intressant är även att se filmen på hans blogg, där han har dokumenterat utvecklingen av projektet.

Städa upp webbplatser

(Några dar senare:) Inlägget handlade i första hand om att städa på sin lokala dator, men vill tipsa om en länk på ungefär samma ämne. Backend Media ger bra råd till hur man kan se över sin webbplats, och städa bort gamla sidor som inte är så välbesökta. Bra läsning.

By Jesper Lind

Skatteverket förklarar hur man designade sin nya webbplats

Webbsnack ger en länk till Skatteverkets utvecklingsblogg där man förklarar hur man jobbat för att designa den nya hemsidan. Där finns också skärmdumpar som visar hur den sett ut genom tiderna.

Läser att även Skatteverkets webbutvecklare Jens Wedin har insett fördelarna med en "grid-design", och satsat på en total bredd på 960px, som vi skrev om nyss och ett tag sen. Verkar som vi fått en ny industristandard, och skönt är det.

Man har även i den senaste versionen gått över till att använda en flexibel layout, istället för en fast, som man hade innan.

Tycker att resultatet blev väldigt bra och det är kul att man delar med sig av arbetsprocessen på det här sättet.

By Jesper Lind

Dust-Me Selectors - Firefox-tillägg för att kontrollera CSS-redundans

http://www.codeodyssey.se/upload/resource/blog/dust-me-selectors.png

Måste först passa på att tacka Andy Budd (även om han antagligen inte förstår svenska så bra). Många av mina senaste CSS-relaterade inlägg kommer från hans länk-RSS.

Där snappade jag även upp det förträffliga tipset om Firefox-tillägget Dust-Me Selectors.

Ni som hängt med här på bloggen kanske kommer ihåg att vi skrev om ett annat verktyg för CSS-redundans-kontroll. Det fungerade bara lokalt och med statiska HTML-filer så vi eftersökte ett liknande verktyg som fungerade online. Nu har vi alltså funnit det i form av detta Firefox-godis.

Dust-Me Selectors ger alltså en rapport på ej använda CSS-klasser och ID och man kan välja att spara ner dem i en komma-separeras CVS-fil.

Ni kan se en del av rapporten för vår webbplats här ovan, där man kan se att det finns en del oanvända klasser. Detta gäller bara fronten som är den sida som jag scannade, de flesta av selektorerna använd någonstans längre in i sidans struktur. En del av dem läggs till med Javascript och dessa kan inte tillägget hitta.

By Jesper Lind

Webbproffs.se - nytt svenskt forum för utvecklare

Fick just en inbjudan av Frej Norling som nyligen har lanserat Webbproffs.se, ett forum med inriktning på systemutveckling, programmering och webbutveckling.

Jag registrerade mig givetvis med en gång, för det är kul att vara med från starten på en sån här grej. Och forumet har bra förutsättningar för att lyckats tror jag. Man har ett bra domännamn och har strukturerat det hela väldigt fint.

Forumet körs på YetAnotherForum som är ett öppet källkodsprojekt skrivet i ASP.NET C# med SQL Server som datalagring.

Läs mer hos Tobias Strandh

By Jesper Lind