2006-02-28

Microsoft Certified Applications Developer

Nu kan jag lägga Microsoft Certified Applications Developer till min titelsamling sedan jag i kväll skrapat ihop 920 poäng på testet "70-320 Developing XML Web Services and Server Components with Microsoft Visual C# and the Microsoft .NET Framework". Ytterligare ett steg på vägen till certifieringsmålet alltså! :-)

VirtualEarth Streetlevel

Robert Scoble berättar att Microsoft precis har släppt en prototyp av en rätt häftig vidareutveckling av sin Mapping-tjänst VirtualEarth som säkert kan ge dem en fördel mot Googles och Yahoos motsvarigheter. De har åkt runt med en skåpbil fullastad med kameror på gatorna i San Francisco och Seattle, kopplat bildmaterialet till VirtualEarth och därmed skapat ett nytt perspektiv de kallar "Streetlevel". Du kan själv styra en liten bil längs gatorna i någon av de två städerna och se gator, byggnader och människor utifrån din position på kartan. Hitta.se har ett tag haft en liknande tjänst som jag tycker mycket om där du kan se fotografier av portuppgången, liksom av närliggande adresser, för den adress du sökt (i alla fall i Stockholm). VirtualEarth Streetlevel tar detta till nästa nivå och även om nyttan för en svensk användare kanske är något begränsad, visar den var utvecklingen är på väg. Testa själv eller se Scobles Channel9-video om Streetlevel med det team som byggt tjänsten.

Uppdaterat: Street-Side verkar vara den officiella benämningen, inte Scobles namn "Streetlevel".

2006-02-27

Windows Vista February CTP

Nu har det kommit en ny version av Vista som till skillnad mot förra versionen går att installera på Virtual PC. Dag König har en instruktion du kan följa.

2006-02-24

Fel veckonummer med .NET Frameworks GregorianCalendar

Om ni någon gång försökt räkna ut svenska veckonummer med .NET Frameworks GregorianCalendar kanske ni känner till detta problem. Eller så kanske ni använder den utan att känna till problemet (som jag!) och undrade vad som gick snett vid t.ex. nyår 2003/2004. Mina kollegor Sofia Max och Stefan Vestin upplyste mig om att .NETs regel CalendarWeekRule.FirstFourDayWeek inte exakt motsvarar den ISO-standard vi använder i Sverige, ISO 8601:2000. Denna standard nöjer sig inte med villkoret att vecka 1 är den vecka där minst fyra dagar inkluders i det nya året, utan kräver också att en vecka alltid måste innehålla sju dagar, d.v.s. börja på en måndag och sluta på en söndag.

För att räkna ut svenskt veckonummer enligt ISO 8601:2000 kan man använda sig av följande kod (ladda ned som textfil här):

2006-02-23

Beräkna kontrollsiffran i personnummer

När man skapar inmatningsformulär i ASP.NET behöver man ibland kontrollera att inmatade personnummer är korrekta. Man kan nöja sig med att de har formatet "YYMMDD(-)NNNN", men det kan vara bra att kontrollera att den sista siffran - den s.k. kontrollsiffran - är rätt. Jag har skrivit en liten C# Console Application som gör just det. Det står var och en fritt att ladda ned den och använda den som de behagar, sprida vidare etc.

Samma metod, modulus-10-metoden med vikterna 1 och 2, används för övrigt även för kontrollsiffror i andra sammanhang, exempelvis svenska post- och bankgironummer.

Objekorienterad programmering för småbarn

Vad är det man brukar säga? Det skall krökas i tid, det som krokigt skall bliva...

http://www.lava.se/max/

2006-02-22

Code Snippets för C# - nu ännu bättre

Jag berättade tidigare om att Microsoft släppt ett paket med code snippets för C# till Visual Studio 2005. Ett problem med detta paket är att det inte finns något enkelt sätt att installera de olika katalogerna med snippets på en gång, utan man måste göra det manuellt en katalog i taget. Det har Jeff Atwood med intressanta bloggen Coding Horror uppmärksammat och helt enkelt satt ihop ett eget paket med samma snippets och en registryändring som installerar alla på en gång.

ASP.NET RSS Toolkit

Dmitryr, Development Manager för ASP.NET och IIS, släppte i går ASP.NET RSS Toolkit, som förutom en assembly som gör att du enkelt kan bygga in RSS-publicering eller RSS-läsning i dina ASP.NET-applikationen, även innehåller fullständig källkod. Scott Guthrie har en utmärkt steg-för-steg-tutorial i sin blogg som visar hur enkelt det är att använda ASP.NET RSS Toolkit.

VM i HDTV-format

SVT och TV4 kommer att sända VM i HDTV-format enligt Zulan.

OutOfMemoryException i ASP.NET trots massor med RAM?

Ett problem jag sett ett par gånger på sistone är System.OutOfMemoryException i en ASP.NET-applikation trots att det tycks finnas hur mycket minne som helst ledigt i maskinen. Faktum är att problemet gärna uppstår om du har runt 3,5 Gb minne eller mer. Det beror på att ASP.NET-processen som standard har en gräns på 60% (memoryLimit=60 i machine.config) innan den återvinner sig själv. Samtidigt kan en process som standard bara adressera 2 Gb RAM. När ASP.NET börjar utnyttja minne i trakterna runt 2 Gb kommer alltså fel att uppstå.

Detta problem kan förstås ofta ha sin orsak i att man har en minnesläcka i applikationen eller att den på annat sätt utnyttjar mer minne än den behöver. Om man vill få sin applikation att köra medan man arbetar på att lösa det problemet, eller om den helt enkelt behöver mer av det tillgängliga minnet, kan man använda /3GB-switchen i boot.ini eller sänka gränsen för när ASP.NET återvinner sig själv.

Du kan läsa mer om detta på DevelopmentNow som också länkar till en bra MSDN-artikel om tuning och performance monitoring för ASP.NET.

2006-02-21

Gratis ASP.NET 2.0 videoutbildningar

Brian Goldfarb, som en del kanske känner igen från när han demonstrerade VS2005 i Sverige förra våren, har länge pratat om en serie med ASP.NET 2.0-How-to-videos. Nu är den här. ASP.NET HOW DO I Video Series innehåller avsnitt som Caching, Data, Create a Full-Featured Customer Login Portal och Web Parts and Personalization.

2006-02-20

Problem med mail i .NET?

En mycket bra resurs för allt som har med System.Web.Mail att göra är http://www.systemwebmail.com/. Dave Wanta, mannen bakom sajten, har naturligtvis även en ny sajt för .NET Framework 2.0: http://www.systemnetmail.com/

Blogg tvingar Vita huset lägga om miljöpolitik

I det avsnitt av Vita huset (The West Wing) som just nu visas på SVT1 trampar vice stabschef Josh Lyman i klaveret efter att ha retat upp en bloggare och underskattat mediets makt. Vita huset är verkligen en mycket bra och dessutom lärorik och faktaspäckad tv-serie. Om du missat den bör du genast reparerara misstaget via exempelvis DVD.

2006-02-19

LINQ - den felande länken mellan OO och relationsdatabaser?

I princip alla projekt jag varit inblandad i de senaste åren har använt sig av ett objektorienterat programmeringsspråk som hämtat och lagrat data i en relationsdatabas. Ett återkommande arkitekturproblem vid denna kombination är att den objektorienterade programmeringsmodellen inte är särskilt väl lämpad att hantera relationsdata. Detta problem brukar kallas Object-Relational impedance mismatch och det har utvecklats en uppsjö angreppssätt för att komma runt detta problem genom åren. De mest kända och mest använda är Call-Level Interfaces som ADO.NET, ODBC och JDBC. Kodgeneratorer som CodeSmith och Visual Studios egen är en annan populär metod. Något som blivit mycket populärt på senare tid - först i Java-världen, men nu också bland .NET-utvecklare - är object/relational mapping (även O/R-mapping, automated mapping) med verktyg som NHibernate (.NET-varianten av Hibernate) och Ruby.

I "Orcas", nästa version av Visual Studio, lanserar Microsoft sin nya lösning på problemet med Object-Relational impedance mismatch: projektet LINQ. LINQ står för Language INtegrated Query och är en utbyggnad av C# och Visual Basic som gör det möjligt att använda SQL-liknande "query expressions" precis som vanlig kod och få tillgång till compile-time syntax checking, IntelliSense-hjälp och så vidare. Med LINQ kommer man dels att kunna ställa queries mot såväl relationsdata som XML, men också mot objekt av klasser som implementerar IEnumerable/IEnumerator, t.ex. alla Collections. Även om LINQ kanske inte är svaret på alla objekt/reation-problem så är det definitivt värt att kolla in.

Artikel på MSDN som jämför LINQ med NHibernate, CodeSmith m.fl. utifrån problemet med Object-Relational impedance mismatch:
http://msdn.microsoft.com/netframework/default.aspx?pull=/library/en-us/dndotnet/html/linqcomparisons.asp

Introduktion till LINQ:
http://msdn.microsoft.com/netframework/default.aspx?pull=/library/en-us/dndotnet/html/linqprojectovw.asp

2006-02-15

Superhjältar hjälper Microsoft sprida kunskap

Microsoft tar hjälp av superhjältar för att få folk att utbilda sig själva. Om man besöker minst två live MSDN Webcasts eller Virtual Labs under en månad får man nämligen månadens "action figure" hem i brevlådan. Förra månadens hjälte var "MSDN Webcast superhero" och i februari är det "Visual Studio superhero". Tyvärr gäller inte erbjudandet utanför Nordamerika, men du kan åtminstone få se hjältarna i aktion på http://msdn.microsoft.com/events/hero/default.aspx.

2006-02-14

.NET Pet Shop 4 lanserad

Nu har Microsoft lanserat den fjärde versionen av .NET Pet Shop. För den som inte hört talas om Pet Shop tidigare så har det hela sin början i en exempelapplikation från Sun, då med namnet Pet Store, som visade hur lätt det var att bygga Java-applikationer med bra prestanda. När .NET gjorde sitt intåg lät Microsoft bygga en likadan applikation och gjorde dessutom benchmarks som visade hur mycket snabbare och bättre .NET var än Java. Det dröjde förstås inte länge förrän debatten var i gång och nya versioner togs fram för att visa vilken teknik som minsann var den bästa.

Den senaste Pet Shop i ordningen har dock skippat skryt-benchmark (man jämför förvisso med tidigare versioner av .NET Pet Shop) och återgått till vad det hela egentligen handlade om från början: "best practices" för att bygga lösningar på (i det här fallet) plattformen ASP.NET 2.0. I denna version har man lyckats utnyttja en hel del nyheter i ASP.NET 2.0. Några exempel:

  • Master Pages
  • Wizard Control
  • SQL Cache Dependency
  • Membership Service
  • Profile Service

Sundblad & Sundblad bloggar

Sten och Per Sundblad, fadern och sonen bakom utbildningsföretaget Sundblad & Sundblad, har börjat blogga. Förutom att de i ett par års tid bedrivit ett certifieringsprogram för Microsoft .NET-arkitektur, som nu köpts av Microsoft Learning, är de Microsoft Regional Directors och Microsoft MVP Solutions Architects, något som borgar för att vi kan se fram emot intressanta texter i deras blogg.

Scoble testar bloggsökmotorer

Robert Scoble testar hur bloggsökmotorerna fungerar. Tänkte att jag skulle hjälpa till: brrreeeport

2006-02-10

Web 2.0 på Demo

I veckan gick Demo 06, en konferens för demos/presentationer av "emerging technologies", av stapeln. I själva verket handlar det mycket om nya Web 2.0-lösningar. Ett 70-tal företag, från små start-ups till jättar som AOL och Yahoo, presenterade kommande tjänster. TechCrunch listar några av de företag man tycker det kan vara värt att hålla ett öga på under året. Underligt nog finns inte Riya, coolast enligt "alla" som Robert Scoble (Scobleizer) talat med på Demo, med på denna lista. Riya, en fotosamlingstjänst ungefär som Flickr, verkar onekligen rätt häftigt med flera sätt att automatiskt lista ut vilka "tags" du vill använda för olika foton, bland annat genom att den automatiskt känner igen tidigare inlagda personers ansikten i nya fotografier!

2006-02-09

Ingen Button Click Event när man trycker Enter från en TextBox

Ett ganska vanligt problem i ASP.NET är att Button Click Event ibland inte avfyras när man postar om en sida genom att trycka Enter i en TextBox, t.ex. när man skrivit in ett ord i en sökfunktion och trycker Enter. Det händer närmare bestämt när man bara har en TextBox på sidan och bara i Internet Explorer. Förklaringen är en något oväntad implementation av en gammal W3C-standard.

Lösningen? Man får helt enkelt lägga till en till TextBox/Input och göra den osynlig, t.ex. genom att lägga till dessa style-attribut:

style="visibility:hidden;display:none;"

2006-02-08

Ny version av Atlas

Nu finns det en ny version av Atlas. Förutom buggfixar innehåller den stöd för redirects, bättre felhantering, förloppsindikator och mer som Nikhil Kothari berättar om i sin blogg.

WM - Hier komme Ich!

Jag fick alldeles nyss veta att jag blivit tilldelad biljetter till Sveriges VM-match mot Paraguay i Berlin den 15 juni! Även om det är skymd sikt är det ett fantastiskt trevligt besked. Dags att börja planera på en gång, hotellen är antagligen fullbokade och/eller svindyra redan.

Som en bonus fick jag även biljett till en eventuell match om tredje pris. Jag hoppas så klart ändå på finalspel, men det vore inte helt dumt att få se Sverige i en bronsmatch heller... :-)

Har Microsoft Sverige upptäckt Web2.0?

Hehe. Så lustigt. Jag läser precis microsoftarna Robert Scobles och Shel Israels "Naked Conversations" där de fascinerat skriver om först ICQs och sedan GMails smarta kampanjer med särskilda inbjudningar för att skapa hype kring sina nya produkter/produktversioner. Häromdagen läste jag i microsoftaren Johan Lindfors blogg om vad han har installerat på sin dator, vilket bl.a. är MSN Messenger 8.0 Beta. När jag i en kommentar frågar var man hittar den svarar han att den bara finns för "inbjudna"... :-)

Det är ju inte särskilt överraskande att finna så många Microsoft-produkter på Johans dator, inte bara därför att han är anställd hos Microsoft utan helt enkelt därför att det är vad man hittar i de flesta Microsoft-utvecklares datorer. Undantaget de många betorna förstås.
Det vore emellertid intressant att höra vilka webbplatser/webbtjänster en svensk Microsoft-anställd evangelist använder. Använder man verkligen MSN Search eller är det Google som alla andra?

Microsoft USA har ju, inte minst nämnde Scoble, verkligen fått upp ögonen för Web 2.0 något som också är tydligt i och med Mix06. Hur ser det ut hos svenska Microsoft på den fronten? Developer Evangelist André Henriksson nämner förvisso konferensen i sin blogg, men inte med särskilt stort intresse och mest klipp-och-klistrat från Mix06s förstasida:

"För dig som jobbar med webbutveckling och gärna håller dig i framkant så kommer det en konferens som kan vara något att eventuellt deltaga på." (Min kursivering.)

Mix06 - Here I come!

Jag kommer att åka på Mix06! Nu hoppas jag att det finns fler svenska .NET-utvecklare som kommer att åka, det vore kul att träffa andra svenskar på plats. För er som fortfarande inte vet vad Mix06 handlar om tycker jag Tim Sneath, Windows Vista Technical Evangelist, ger en bra beskrivning i sin blogg under rubriken "MIX: Will This Be The Next PDC?".

2006-02-07

Avancerad bildredigering på webben

Robert Scoble, Microsoft Geek Blogger som rattar Microsofts Channel9, tipsar om en avancerad bildredigerare för webbplattformen. Den heter PXN8 och är verkligen häftig, särskilt för den som någon gång försökt sig på bildhantering i ett webbgränssnitt...

2006-02-06

"If broken it is, fix it you should"

Jag snubblade över Tess Ferandez mycket kompetenta blogg "If broken it is, fix it you should" via Johan Lindfors blogg för en tid sedan. Tess Ferandez jobbar som "escalation engineer" på Microsofts Product Support Services och hennes blogg är en fantastisk källa till information om minnesläckor, serverkraschar och annat som kan gå fel med en ASP.NET-applikation.

2006-02-05

Web 2.0 enligt O'Reilly

Web 2.0 är ett uttryck som myntades som ett namn på en konferens arrangerad av O'Reilly, förlaget som har olika djur på sina programmeringsböckers omslag. Det är alltså inte särskilt konstigt att just förlagets VD Tim O'Reilly (som för övrigt närvarar på Mix06) har en hel del vettigt att säga om vad Web 2.0 handlar om. Hans artikel "What Is Web 2.0" är ganska lång, men samtidigt ganska konkret om ett svårfångat ämne. För den som inte orkar läsa hela texten rekommenderar jag den korta tabellen och - framför allt - det beskrivande diagrammet ("meme map") på artikelns första sida.

2006-02-02

Certifieringsprogram för Microsoft .NET-arkitekter

Microsofts Developer Evangelist André Henriksson rekommenderar varmt det certifieringsprogram för Microsoft .NET-arkitekter han precis är klar med. Jag kan bara hålla med. En annan person som genomgått samma program är Dag König som har en mycket trevlig blogg med .NET-fokus.

Även Microsoft Learning uppskattar programmet så till den milda grad att de köpt hela kursmaterialet av svenska Sundblad & Sundblad för att inrätta den globala certifieringen "Microsoft Associate in Architecture".

2006-02-01

Gratis halvdagsseminarium om Team System

Jönsson & Lepp bjuder in till ett kostnadsfritt halvdagsseminarium om Visual Studio Team System på Nordic Sea Hotel i Stockholm.

http://www.jonssonlepp.se/default_utbl.asp?select=424

Markera metoder som obsolete

UPPDATERING: Rättade skrivfel (obsolete->Obsolete).

Det händer då och då att man vill ersätta en gammal metod med en ny men inte kan göra det, till exempel på grund av att man inte har möjlighet att göra omfattande refactoring eller på grund av bakåtkompabilitet. Då skapar man i regel en ny överlagring eller en ny metod med snarlikt namn och snart sitter någon, ofta ens framtida jag, med IntelliSense i Visual Studio och vet inte vilken metod man ska använda.

Vad man kan göra är att markera metoden som obsolete; då får man en varning i Visual Studios task list när man har ett anrop till metoden. Allt du behöver göra är att lägga till attrbiutet Obsolete och ett meddelande som kommer att visas i task list:

[Obsolete("Use method MyOtherNewMethod.")]
public void MyOldAndObsoleteMethod(string inputParameter)
{
...
}

Vill man att användande av en metod som är obsolete ska generera fel istället för varning skickar man "true" som en andra parameter:

[Obsolete("You must not use this method!", true)]