Här på Code Odyssey har det inte hänt så mycket den senaste tiden p g a av några olika skäl. Framförall så har min egenutvecklade bloggmotor blivit något föråldrad och det är därför inte så kul att blogga här som det borde vara. Helt galet att den fortfarande körs på en Access-databas för att nämna en teknisk detalj.
Men nu är det dags att göra något åt detta och jag kommer under början av år 2009 försöka att importera all data till ett nyare system som vi har jobbat med. Vi kör en första version av detta på Nodestar om någon vill ha en förhandsgranskning.
Vi kommer även att använda det nya ramverket ASP.NET MVC som enligt Scott Guthrie kommer att släppas som release candidate i januari. Fördelarna är många och jag gillar verkligen att man får total kontroll över hur html rendereras. En bra routingmodell finnns inbyggd och äntligen kommer det bli användarvänliga url:er. Något jag viljat ha länge.
Vi har även fått en sponsringspartner som kommer stå för driften av bloggen, så det är riktigt roligt. Mer info om detta längre fram.
Något av det värsta som finns är att debugga Ajax-funktioner. AJAX Control Toolkit kan slänga ur sig en del väldigt konstiga felmeddelanden och de är inte lätta att lösa. Tänkte nu börjar dokumentera dem innan jag blir allt för galen.
Nyss fick jag detta i IE7:
Error: Sys.ArgumentNullException: Value cannot be null. Parameter name: element
På Firefox visas ett ändå mer förbryllande meddelande:
Sys.ArgumentNullException: Value cannot be null. Parameter name: element Sys$CultureInfo$_getAbbrMonthIndex("")ScriptRe...=15a6fa0c (line 6391) ScriptResource.axd?d=Mp3wOTv2U48tSwOzRbx9I5sb41bR8P9ogeRdPKRzZ5RBTNpXVRJNcEL9psPGosr4vyEbYVFfS05BUAtE2hlW2Q2&t=3004b210()()ScriptRe...=3004b210 (line 499) [Break on this error] this._upperAbbrMonths = this...s.dateTimeFormat.AbbreviatedMonthNames);
Ja även fast det är spännande att jobba med nya databas-tekniker som LinqToSQL och Subsonic, så kan det vara bra att kunna lite hederliga DataSet-operationer.
Just nu så hade jag ett problem med Subsonics Paging-funktioner, där en Where-sats inte kom med. Jag fick dubbla poster hur jag än gjorde. Då kom jag på att jag kunde filtrera DataSet:et i efterhand och skrev följande lilla funktion.
Anropar den sedan på följande vis. I detta fallet ville jag ha ut texter på en visst språk, och inte alla språk i databas-tabellen som Subsonic envisade sig med att returnera.
Tänkte visa ett exempel på hur man kan byta ut parametrar i resursfiler. I mitt exempel hämtar jag ut en text för copyright-meddelande och byter ut en parameter {0} med string.format mot aktuellt år.
I resursfilern har jag en nyckel som heter Copyright och lägger in följande sträng.
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.
Blev ställd inför uppgiften att konfigurera inloggningar till SQL Server 2008. Som tur va hittade jag en bra guide där författandet illustreras med screenshots. Hade inte klarat det utan den.
Lärde mig just hur man gör så att nyckleln på en tabell i en SQL Server databas börjar på ett visst nummer. Bra om man gjort massa tester och vill återställa dem innan man börjar lägga in riktiga data.
-- Reseed identity on [dbo].[Products] DBCC CHECKIDENT('[dbo].[Products]', RESEED, 0) GO
Ännu bättre är ju ifall man inte lägger in data alls, utan istället använder transaktioner för att rulla tillbaks testdata. Läs mer hos Johan Lindfors, teknisk chef på Microsoft, om detta.
Blev idag kontaktad av en besökare som hade problem med att skriva in sin hotmail som innehöll ett bindestreck. Hittade ett altenativ som verkar fungera bättre och accepterar bindestreck.
En bloggeditor spelade spratt med oss. Tiden i datumet då det postades ändrades till midnatt (00:00:00) då och då. Trodde först det var nån databas-grej, men när jag debuggade så kom jag på att vår ajax-kalender var felinställd. Så här såg den ut.