tisdag 20 november 2007

VS2008 Installerat och klart!

Japp, det var sant. Igår släpptes så äntligen release versionen av Visual Studio 2008. Finns att ladda ner för er som har MSDN prenumeration på downloadsidan (ni som inte har det borde skaffa det, se bara här vilka fördelar). Om man inte har MSDN prenumeration kan man ladda ner 90 dagars utvärderingversioner här.
Microsoft fortsätter med gratis versionerna av Visual Studio, de som kallas Express produkterna. De produkter som ingår i den sfären finns att ladda ner här, och riktar sig främst mot icke yrkes programmerare och hobbyister (gillar designen på den sidan skarpt på tal om ingenting).
Microsoft .NET Framework 3.5 finns också att hämta här. Lite MSDN dokumentation för Express produkterna här. Full MSDN dokumentation här.
Jag har installerat VS2008 TeamSystem och är riktigt glad nu. Kört en liten stund här på eftermiddagen för att se om de buggar jag råkat ut för är fixade, och hittils har det bara varit 100% fixat. Får se om man dyker på något senare. Nu tänker jag avinstallera VS2005 då det inte längre finns någon anledning att ha den versionen kvar. Multitargeting stödet var verkligen efterlängtat. Återkommer med erfarenheter senare.

söndag 18 november 2007

Visual Studio 2008 MSDN Release imorgon?

En liten fågel har viskat till mig att Microsoft antagligen släpper Visual Studio 2008 och .NET Framework 3.5, för dem som har MSDN prenumeration redan imorgon (måndag 19/11-2007). Det ska bli spännande att se om min källa hade rätt eller inte. Spännande. Jag har väntat på VS2008 ett bra tag nu. De sista buggarna i beta2 skall vara fixade och då blir VS2008 tillsammans med Team Foundation Server i min mening den bästa utvecklar plattformen på marknaden för dem som skriver applikationer för Windows/Web. Detta släpp är bara själva bitarna. Det stora release evenmanget är fortfarande satt till 27 februari 2008, då även Windows Server 2008 och SQL Server 2008 presenteras. Nu ska jag sova så får vi se om morgondagen blir en installationsdag.

onsdag 7 november 2007

Kasta inte sten...

Hahaha... nu ni era äppeltuggande freaks. Tydligen är inte erat senaste kattdjur så bra som det skulle kunna vara. Jag läste precis på en blog för MacOS anhängare att Leopard tydligen är lite buggigt. nämen?! Hur kommer det sig?! Rykten säger att Leopard introducerade 300 nya funktioner och med dem även 300 nya buggar?! Snacka om att ta igen för alla missade buggar på en gång. Shit jag kanske låter lite ironisk men jag har varit väldigt less på att höra att MacOS inte innehåller några buggar och att man inte får virus på Mac.
Tro det eller ej men jag äger faktiskt en Mac Mini och utan att överdriva så ska jag säga att MacOS X 10.4 (Tiger), som jag kör i den är det operativsystem som har buggat mest av alla jag har testa. Enkla grejer som nätverksfunktioner och skärmsläckare fungerar bara när solen står i zenit. Och nu 300 nya buggar. Jag tror jag väntar med att vara en "early bird" denna gång. När kommer första service packet? Vad ska man säga?! Om det fanns operativsystemshuliganer så skulle jag lätt vara på Windows sidan när det brakar loss.

tisdag 6 november 2007

Visual Studio 2008 RTM i November

Nu är det bestämt! Visual Studio 2008 släpps i slutet av November 2007. Då skall alla bugfixar och sista bitarna vara fördiga och man släpper iväg produkten för tillverkning. Jag har kört betatester av VS2008 ett bra tag nu och det känns som att i beta2 verkar det mesta vara på plats och stabiliserats. Dags för Devtools-teamet i Redmond att åter igen fira lite. I öppningstalet på TechEd Developers 2007 i Barcelona 5 November, tillkännagav S. “Soma” Somasega (VP för Developer Division, Microsoft) att .NET Framework 3.5 och VS2008 känns klart för leverans. Det som inte hinns med inom ramarna för detta släpp kommer troligtvis att levereras senare i form av tillägg till VS2008.
27 Februari 2008, kommer själva launch eventet att braka loss i Los Angeles. Det kommer märkas på Microsoft kontor över hela världen. En av de största händelserna för Microsoft produkter på länge. Man lanserar bland annat Visual Studio 2008, SQL Server 2008 och Windows Server 2008 samtidigt. Troligtvis släpps även SP1 för Vista i den tidsperioden också. Det blir mycket att installera om för IT-pro killarna. Avundsjuk?! näääähh!

onsdag 10 oktober 2007

.NET Framework 3.5 Källkod

Microsoft har valt att släppa källkoden till .NET Framework 3.5.
Väldigt väldigt oväntat av dem att ta detta steg. Kom som en riktig överraskning. Det innebär att man kommer att kunna se hur de utvecklat klasserna som finns i .NET Framework. Personligen tycker jag att det är kanonbra.
Många gånger sitter man och försöker debugga sin kod som anropar .NET-klasserna, utan att förstå vad som egentligen händer "bakom kulisserna".
Nu när det släppt källkoden kan man mer se vad som händer "bakom kulisserna" och på så sätt kanske förbättra sin egen kod. Man kan även se hur de implementerat en viss klass om man funderar på att skriva något liknande.

I VisualStudio 2008 kommer man att kunna stega in i .NET-klasserna när man debuggar (Step Into-F11).
Ok, vi har ju alla använt Lutz Roeder's eminenta Reflector, men nu får vi lite mer funktionalitet i VS debuggern. Dessutom så lovar Microsoft att spara utvecklarnas kommentarer i källkoden.
Ska bli intressant att se hur en MS-programmerare kommenterar sin kod, jag har hört att de har väldigt strikta regler på kodkommentarer.
Läs mer om detta på Scott Guthries blogg här.

onsdag 19 september 2007

ClassMate 3 (Extension Methods C#3.0)

Jag är helt frälst i C# 3.0 tilläget "Extension Methods". Ska förklara lite snabbt vad det innebär.

I objektorienterade världen så är vi vana vid arv och polymorfism. Vi har en basklass A som sedan B och C ärver ifrån. B och C är nu subklasser till A. De ärver alla publika egenskaper och metoder från A. Vi kan nu utöka funktionaliteten i B och C med nya metoder och egenskaper. Vi kan även förändra beteende av befintliga ärvda metoder och egenskaper från A genom s.k polymorfism. Allt detta vet ni OO programmerare om, gammalt som gatan.

Ibland kan det ändå kännas lite overkill att ärva en klass för att lägga till någon enstaka metod. Eller vissa klasser går inte att ärva ifrån eftersom de är förseglade (sealed). Då kommer extension methods in i bilden. Med den metodiken kan man nämligen "injicera" metoder i befintliga klasser utan att ärva eller förändra klasserna. Det går även att utföra denna injicering på förseglade klasser som t ex string klassen. Idén har funnits länge och vi hittar delar av denna metodik i bl.a programspråken Eiffel och Smalltalk där det kallas Mixin. Här är ett exempel där jag lägger till en metod "ToVoice" som får datorn att "tala ut" den sträng som man jobbar med. Extension metoden ser ut så här:



Observera att metoden måste vara static i en static class. Hemlighetet ligger i metodens parametara ser vi nyckelordet "this", det är detta nyckelord tillsammans med den statiska deklarationen som gör metoden till en extension method. Nu kan vi använda denna metod på vilket sträng objekt som helst precis som om det var med i strängklassen från början. Tex så här:



Denna kod kommer att dels printa ut alla kataloger på C: och deras ändringsdatum, men datorn kommer även att "prata" och säga namnet på katalogen och ändringsdatumet. Kanske användbart vad vet jag. Men det är ett exempel på en extension method. Som vanligt kod skickas på begäran.

torsdag 30 augusti 2007

Windows Vista SP1

Det gick snabbare än väntat. Snart kommer ServicePack 1 för Windows Vista. Med tanke på allt snack om den enorma säkerheten i Vista och att det skulle dröja ett tag innan vi såg något SP1 så är jag lite förvånad. Men jag har i tidigare inlägg påpekat om vissa buggar i Vista och det finns fler. Förhoppningsvis blir många av dessa åtgärdade i SP1. En av de tunga bitarna i SP1 verkar vara integration av alla Windows Updates som släpps varje tisdag (patch Tuesday, som det så fint kallas).

En annan bit är alla drivrutiner till olika hårdvaror som äntligen kommit sedan Vista släpptes i November-06.
Microsoft ändrade mycket i drivrutinsmodellen för Windows Vista jämfört med tidigare operativsystem. Detta för att öka på stabiliteten på det nya OS:et. Nackdelen var att alla hårdvarutillverkare fick ett mastodont jobb att skriva om drivrutinerna. Men nu har många kommit ikapp och flera av dessa skall ingå i SP1.

Stöd för nya exFAT filsystemet och SD-DMA för snabbare åtkomst till SecureDigital minnen lovas också. Direct 3D 10.1 (måste fär alla gamers) stöd. Allt som allt så är det ett bra ServicePack som väntas med bättre prestanda, säkerhet och tillgänglighet. Min vilda gissning är att SP1 släpps i samband med Windows Server 2008 i Februari 2008. Läs här för mer info om vad som är tänkt att ingå.

fredag 24 augusti 2007

Ultimata tangentbordet

Jag har gått och väntat på att den här killen ska få igång tillverkningen av det jag tycker är det ultimata tangentbordet. Nu verkar det ha skett, dock i liten skala men ändå.
Den ryska killen Artemy Lebedev och hans företag har gjort det. Art Lebedev är en industridesigner med unika ideer.

Tänk er ett tangentbord där varje tangent är en liten OLED skärm på 1 cm och 48x48 pixlar 65k färger, som kan visa unika bilder och animeringar beroende på vilken applikation man jobbar i. Det går även att programmera tangentbordet efter eget tycke. Borta är problemet med att komma ihåg genvägskombinationerna i de program man jobbar med. Eller alla snabbkommandon i spelen. Nu kan man snabbt se en liten bild eller animering som illustrerar dessa olika kommandon.

Kolla det här tangentbordet och fascineras.
Det får Logitech's G15 att likna stenhuggar stilen.
Men ska ni ha ett får ni skynda er att boka.
I slutet av december kommer nästa produktionsbatch om troligtvis 300 enheter att vara klar för leverans (först till kvarn gäller).

Förresten, glömde nämna priset. Håll i er nu... ca 17000 SEK!! Mer än vad många av era spenderat på sin dator. I Sverige kan ni förhandsboka/beställa hos DataNova. Beställ... den som har flest prylar vinner!

onsdag 22 augusti 2007

ClassMate 2 (Stopwatch)

Denna gång ska jag tjata om vikten av att använda rätt klasser till rätt saker. Vi tar klassen StopWatch, som namnet antyder så är det ett tidtagarur. Bra att använda när man vill klocka delar av sin kod eller funktioner som man tror tar för lång tid. Du hittar StopWatch klassen i System.Diagnostics. Det jag sett att många gör när de vill ta tid i sin kod är att spara undan 2 stycken objekt av typen System.DateTime som innehåller DateTime.Now() och sedan räkna ut resultattiden.
T ex så här:

System.DateTime startTime = System.DateTime.Now;
//Do some time consuming stuff here...
System.DateTime stopTime = System.DateTime.Now;
//Calculate the difference.
System.TimeSpan elapsedTimeSpan = stopTime.Subtract(stopTime);
double elapsedSeconds = elapsedTimeSpan.TotalSeconds;


Varför??? Det finns ju en klass som gör allt det där åt dig. Samma exempel med StopWatch klassen.

Stopwatch objStopWatch = new Stopwatch();
objStopWatch.Start();
//Do some time consuming stuff...
objStopWatch.Stop();
double elapsedSeconds = objStopWatch.Elapsed.TotalSeconds;


Ok! Jag vet vad ni tänker nu. Smartass! Det är ju bara 1 kodrad mindre. Jo!! men det är inte det som är poängen. Det sista exemplet är mycket elegantare och tydligare att läsa och förstå. Man ser direkt vart tidtagningen startar och slutar. Man bör göra allt man kan för att skriva kod som inte är "write only". Nu kanske detta exempel inte var så komplicerat, men en annan kanske viktigare punkt. Det skapas bara 2 objekt instanser för GarbageCollectorn att hålla reda på och rensa upp, istället för 4 objekt som i det första exemplet. Färre objekt instanser = snabbare exekvering av kod.

lördag 18 augusti 2007

Skaffat en Apple MacBook Pro

Många av er som känner mig vet vilken stor uppoffring jag har gjort. Nu har jag bytt ut min IBM Thinkpad mot en fet Apple MacBook Pro! Så nu ska jag bara övertyga mig själv att byta OS och gå över till MacOS X också.

fredag 17 augusti 2007

CD-Skivan 25 år idag.

Jag tycker att vi passar på att säga grattis till CD-skivan som fyller 25 år idag 17/8-2007. Eller kanske grattis till de företag som skapade den första specen.

Philips och Sony samarbetade med att ta fram en spec för ett media att lagra musik digitalt på. LP skivans underbara knaster skulle ersättas av något som inte slets med tiden eller adderade någon karaktär till inspelad musik. 1980 var specen klar och fick namnet ”Red Book”. 1982 pressades den första CD-DA (musik) skivan med Alpsymfonin av Richard Strauss som premiärmusik. Detta media kom sen att användas för lagring av data där ISO-9660 var filsystemet som användes. CD-skivorna utvecklades senare till DVD media allteftersom tekniken tillät oss att krympa våglängden på lasern. Vi datormänniskor tackar Philips och Sony för detta. Det skulle varit extremt jobbigt att installera Windows Vista på 2.6 Gb från

1.44 Mb floppy disketter. Förstår ni den stackars it-kille som skulle få byta diskett minst 1805 gånger vid en installation. För att inte tala om vilken grym låda Vista skulle levereras i. Tänk på den ni!! Så än en gång grattis till Philips och Sony och tack så mycket!!!

torsdag 16 augusti 2007

ClassMate 1 (ObservableCollection)

ClassMate är en grej jag testar där jag tänkte ha följande upplägg:
Lite då och då så kommer jag skriva om en klass eller ett namespace i .NET som kanske inte alla är bekanta med. Se det som en liten tips och trix. De flesta sitter och kodar med samma gamla klasser som de alltid använt och gör saker på sitt "gamla invanda" sätt. ovetande om att det kanske finns klasser i .NET som kan underlätta. Klassbiblioteket i .NET är hur stort som helst och växer ständigt. Ingen har full koll på alla klasser.
Det jag tänkte göra är att utforska och försöka förklara vissa av de "okända" klasserna och namespacen.


Vi börjar denna gång med en klass som heter ObservableCollection<T>. Den finns bara i .NET 3.0 (om ni inte använder 3.0 så är det kanske dags nu!?). Ni hittar ObservableCollection<T> i System.Collection.ObjectModel. Glöm inte att lägga till en referens till assemblyn WindowsBase.dll, vilket jag tycker är idiotiskt. Förstår att classen inte kan ligga i mscorlib.dll för att inte bryta versionshanteringen men en ny assembly som kunde hetat System.Collections hade inte varit fel. Men men man kan inte få allt.
ObservableCollection<T> är som ni ser generisk. Det är en avancerad variant av System.Collections.Generic.List<T>.
Det som finns i ObservableCollection<T> men inte i List<T> är stöd för eventhantering. När ObservableCollection<T> förändras på något sätt så triggas CollectionChanged eventet som skickar med 2 parametrar; object sender (som vanligt) och
System.Collections.Specialized.NotifyCollectionChangedEventArgs e som innehåller all info du behöver veta om vad som är förändrat, gammalt värde och nytt värde etc. Kanon bra för att ha koll på vad som läggs till, tas bort eller förändras i en lista. Jag har tidigare haft behov av en sån klass och då implementerat den genom att implementera IList<T> och lagt till eventhandlers etc. Det blev en klass på ca 700 rader som skall underhållas och debuggas etc. Skönt att ObservableCollection<T> finns nu. Säg till så skickar jag kodexempel.

söndag 12 augusti 2007

Konstig Windows Vista utforskare

Av någon anledning så kunde jag inte längre välja flera filer i utforskaren i Vista. Det bara slutade att fungera, provade alla möjliga varianter via menyerna, Ctrl-A, hålla ner Shift-tangenten samtidigt som man klickar på filer. Inget fungerar. Detta är första gången som jag blivit besviken på Vista. Vad gör man när sånt händer? Jo, man googlar och ser om någon annan har haft liknande problem. Sagt och gjort. Hittade flera som råkat ut för samma. De dom löste det var att med ta bort "Bags" och "BagsMRU" i registret under HKCU/Software/Microsoft/Windows/Shell.
Jag gjorde det men det hjälpte inte. Så nu börjar jag bli lite arg. Jag tog saken i egna händer och började analysera vad "Bags" används till och såg då att det finns på flera ställen i registret. Den som skall raderas är i HKCU/Software/Classes/Local Settings/Microsoft/Windows/Shell. Då fungerar det att välja fler filer igen. Dessvärre förlorar man alla inställningar man gjort i olika mappar som avser hur filer skall presenteras. Placeringen av dina ikoner på skrivbordet kommer också att ryka. Det är sånt som "Bags" används till. Men så är det, man vinner och förlorar alltid. Det jag fortfarande undrar är varför det slutade fungera. Konstigt.

lördag 11 augusti 2007

Välkommen till ThinAir Software (RMConsult)

Hej och välkommen till min blog om programutveckling och annat relaterat till programmering och systemdesign. Här kommer jag att skriva lite om mycket, så förvänta er inte någon specifik inriktning utan mer allmänt om programmering och teknik. Det kan vara jobbrelaterat men även roliga prylar etc. Skriver så ofta jag hinner och har något som jag känner att jag vill dela med mig. Välkommnar alla kommentarer och kritik. Just go for it!!