ANUG snak og de korte nyheder

by DotNetNerd 25. September 2008 18:10

Snak for ANUG om F#

Igår var det så langt om længe dagen hvor jeg skulle til Århus for at snakke om F# for Århus .NET usergroup. Jeg har set frem til den udfordring det er i et stykke tid, og heldigvis gik snakken rigtigt godt, og jeg blev meget positivt modtaget i smilets by. Det er fedt at se at der er så mange andre der har interesse i at lære om et sprog som F#, og at stemningen var helt i top med et fagligt højt niveau og plads til at grine lidt af tingene. Jeg gik selv derfra med en rigtig god oplevelse i bagagen, og en hel del erfaringer rigere, da det var en super fed udfordring at tale om et meget nørdet emne for en relativt stor forsamling. Alle deltagende skal ihvertfald have tak for en fed aften herfra :-)

AntiXssLibrary

I den seneste udgave af MSDN magazine faldt jeg over en artikel der hedder "SDL Embraces The Web" som jeg synes var ganske interessant. SDL står for "Security Development Lifecycle" som er et team der arbejder med af lave værktøjer til og beskrive sikring af applikationer imod angreb. Artiklen omhandler helt basale princippet for hvordan man kan sikre sine applikationer ved hjælp af validering, encoding, permission restriction og Parameterized SPROCS.

So far so good. Ikke meget nyt under solen, men det er altid sundt lige at få genopfrisket de her ting - og til det formål er artiklen ganske velskrevet og med nogen gode eksempler. Det der gjorde artiklen mere interessant for mig er hvor de nævner AntiXssLibrary som man kan bruge til at sikre imod XSS (cross-site scripting) ved at encode sit output. Der nævnes syv forskellige scenarier der kræver at man bruger en forskellig type encoding (HTML, HTML attribute,  URL, Javascript, VBScript, XML og XML attribute) og at Microsoft Application Consulting and Engineering teamet derfor har lavet det her library. AntiXssLibrary består af en hovedklasse der hedder AntiXss, som indeholder en stribe statiske metoder til at håndtere de her forskellige typer encoding let og smertefrit. Min personlige erfaring er at det er de færreste udviklere der er gode til at huske at encode deres output - selvom jeg kender nogen der gør det indimellem er det sjældent helt konsekvent. Netop af den årsag synes jeg det her library er interessant fordi det gør encoding så let at der ikke er nogen undskyldning for ikke at bruge det.

DateTime.Utc

For nylig fik jeg til opgave at skrive en applikation der skal bruges fra Danmark, Hong Kong og Kina og som skal kunne vise dato og tid korrekt. Det lød jo ikke som nogen større udfordring, for hvor svært kunne det være at korrigere for nogen tidszoner med plus minus nogen timer. Det viste sig imidlertid at det faktisk ikke er så nemt endda, hvis applikationen skulle laves så der også kunne komme andre lande til. I virkeligheden er det åbenbart ikke kun hele timer der kan være i forskel, og der er stor forskel på om lande bruger sommer/vintertid og i givet fald hvornår de skelner imellem de to. Jeg gav mig til at google lidt og fandt ud af at der faktisk ikke havde været noget til at hjælpe med den slags i .NET 2.0. Heldigvis til min store glæde fandt jeg ud af at der er dukket en ny klasse op i .NET 3.5 som er en af de små tilføjelser man ikke har hørt så meget om da det meste af snakken har omhandler større ting som eksmepelvis LINQ. Klassen hedder TimeZoneInfo, og den indeholder både metoder til at trække information ud om de forskellige tidszoner, men den indeholder også en metode til at konvertere fra UTC til lokaltid. Det eneste man skal gøre er at gemme ens datoer ved hjælp af DateTime.UtcNow eller i Sql via GetUtcDate(), og så sætte Kind på DateTime objektet til UTC når man hiver det ud af eksmepelvis en database hvor kind informationerne går tabt. Ellers håndterer metoden ConvertTimeBySystemTimeZoneId konverteringen for en, så hvad er i kort tid lignede en "tip of the iceberg" opgave hvor det ser nemt ud men der stikker mere under, blev i virkeligheden pludselig meget overskuelig at have med at gøre. Tak skal du have .NET 3.5 :)

Gazelle igen!

Efter et spændende år hvor der er sket rigtigt meget i butikken, både i kraft af omstrukturering, nye metodikker og større kunder der afføder mere komplekse løsninger end tidligere er det lykkedes os igen at blive Gazelle virksomhed. Det er en titel man næppe nogensinde bliver træt af, da det viser at man er der hvor det sker.

Bøger

CLR via C# og Framework design guidelines blev jeg nærmest provokeret til at læse da John Robbins skrev i sin bog "Debugging Microsoft .NET 2.0 Applications" at de to bøger var must read hvis man ville kalde sig selv .NET udvikler. Selvom det selvfølgelig er en provokation vil jeg gerne støtte op om den, da det er nogen bøger der giver noget essentiel viden henholdsvis om hvordan CLR'en er skruet sammen og om "best practices".

Jeg ender tit med at diskutere vigtigheden af best practices med folk, men en vigtig parameter i at skrive god kode (læs: “Any fool can write code that a computer can understand. Good programmers write code that humans can understand.” -Martin Fowler) er nu engang konformitet så man undgår misforståelser. Og hvem ved mere om best practices i frameworket end de folk der har udviklet det?

De næste bøger jeg selv har planer om at kaste mig over bliver "Introducing Microsoft Silverlight 2.0, 2nd Edition", "Professional ASP.NET 3.5: In C# and VB" og "LINQ in Action" som jeg netop har bestilt hjem. Især Silverlight bliver interessant for alvor at komme igang med, hvor de andre bøger mere er nogen jeg håber kan give lidt supplerende viden om .NET 3.5 og LINQ - hvorefter deres hovedformål bliver at fungere som opslagsværker.

Tags: , ,

Who am I?

My name is Christian Holm Diget, and I work as an independent consultant, in Denmark, where I write code, give advice on architecture and help with training. On the side I get to do a bit of speaking and help with miscellaneous community events.

Some of my primary focus areas are code quality, programming languages and using new technologies to provide value.

Microsoft Certified Professional Developer

Microsoft Most Valuable Professional

Month List

bedava tv izle