# Friday, June 30, 2006

De Prescriptive Architecture Guidance Group (PAG) heeft een tool ontwikkeld waar me je kunt nagaan of je ASP.NET applicatie wel voldoet aan de best practices. Scott Guthrie laat er meer van zien in zijn blog post Free Patterns and Practices Guidance Explorer for ASP.NET and .NET en je kunt de tool downloaden van http://www.gotdotnet.com/codegallery/codegallery.aspx?id=bb9aecfe-56ba-4ca9-8127-44e551b90962. Samen met FxCop en de Threat Modelling tool kun je zo steeds beter in kaart brengen of je applicatie goed gebouwd is.

Friday, June 30, 2006 9:35:07 PM (W. Europe Standard Time, UTC+01:00)  #    Disclaimer  |  Comments [0]  | 

Onlangs heb ik Office 2007 Beta op mijn werkmachine gezet. Waarom? Een aantal features (zoals contstant de woord-count in de taakbalk zichbaar) zijn erg handig nu ik een boek aan het schrijven ben. Nu dacht ik dat dit geen neveneffecten had, maar ik heb er inmiddels een gevonden: Desktop Search is weg. Nou ja, niet helemaal. Het is nog geinstalleerd, maar er is geen zoekvakje meer waar je iets kunt invullen (wat het geheel redelijk nutteloos maakt). De oorzaak is volgens een post van Chris Pratley dat Office 2007 Beta ook WDS 3.0 installeert zodat je ook de nieuwe documentformaten van Office 2007 kunt doorzoeken. En daar gaat het dus mis... WDS werkt wel in de applicaties afzonderlijk, dus in Outlook (waarvoor ik het 't meest gebruik) kan ik gewoon zoeken. Voor bestanden moet ik even  wachten tot er een fix is. Heb je dit echt nodig zul je dus Office 2007 moeten verwijderen en WDS moeten herinstalleren.

Friday, June 30, 2006 12:36:27 PM (W. Europe Standard Time, UTC+01:00)  #    Disclaimer  |  Comments [0]  | 
# Tuesday, June 27, 2006

Ted Neward legt in zijn blogpost The Vietnam of Computer Science uit welke problemen zich voordoen bij object-relational mapping (de overgang van de database naar objecten en weer terug). Het stuk is behoorlijk lang, dus neem er even de tijd voor.

Tuesday, June 27, 2006 12:26:17 PM (W. Europe Standard Time, UTC+01:00)  #    Disclaimer  |  Comments [0]  | 
# Monday, June 26, 2006

Met behulp van Typed DataSets en TableAdapters kun je een volwaardige Data Access laag maken voor je applicatie, en kun je met behulp van de ObjectDataSource control de nodige data in je applicatie tonen en bewerken. Hoe je dit allemaal kunt doen (en nog veel meer) is te lezen in een serie tutorials geschreven door ASP.NET guru Scott Mitchell.

Monday, June 26, 2006 8:25:58 PM (W. Europe Standard Time, UTC+01:00)  #    Disclaimer  |  Comments [0]  | 

Threat Modeling van een applicatie, het identificeren van mogelijke bedreigingen en het registreren van de genomen maatregelen, wordt steeds belangrijker bij het maken van veilige applicaties. Zonder Threat Modeling is het eigenlijk niet mogelijk om te weten of een applicatie veilig is of niet. Aangezien Threat Modeling best lastig is, heeft Microsoft een tool om dit te doen, Microsoft Threat Analysis & Modeling. Hiervan is momenteel versie 2.0 Release Candidate 1 te downloaden, en binnenkort zal de uiteindelijke versie verschijnen. Deze tool bevat een wizard om je applicatie mee te definieren, waaruit de mogelijke threats worden gegenereerd. Zonodig kun je op basis van de Attack Library meer zaken toevoegen aan je model. Doe er je voordeel mee!

Overigens staat deze tool nog los van Visual Studio, hoewel je wel work items kunt maken en exporteren naar VS. Het schijnt de bedoeling te zijn dat deze tool t.z.t. onderdeel wordt van Visual Studio.

Monday, June 26, 2006 12:46:30 PM (W. Europe Standard Time, UTC+01:00)  #    Disclaimer  |  Comments [0]  | 

WinFS, het op de PDC 2003 aangekondigde relationele file systeem, is op sterven na dood. Oorspronkelijk zou deze technologie in Windows Vista komen en zou je makkelijk je bestanden kunnen organiseren. Op het WinFS blog van Microsoft is nu aangekondigd wat er gaat gebeuren met WinFS. In het kort: onderdelen van de technologie komen in de volgende versie van ADO.NET en SQL Server terecht, maar het zal niet meer geleverd worden als aparte technologie. Daarmee is de gedachte van het relationele file systeem min of meer van de baan zo lijkt het. De kritiek op dit bericht is niet van de lucht (zie comments bij het bericht), en terecht. Door deze koerswijziging is iets wat geweldig is voor zowel bedrijven als consumenten de nek opgedraaied en wordt het expliciet in de bedrijfssfeer neergezet.

Monday, June 26, 2006 9:26:46 AM (W. Europe Standard Time, UTC+01:00)  #    Disclaimer  |  Comments [0]  | 
# Thursday, June 22, 2006

Scott Guthrie heeft op zijn blog een lijst met artikelen en andere resources over "Atlas" samengesteld. Een uitstekend vertrekpunt als je met "Atlas" wilt gaan werken. Zie ook zijn post over de Free Atlas Control Toolkit Test Automation Harness voor het testen van Atlas controls.

Thursday, June 22, 2006 12:23:45 PM (W. Europe Standard Time, UTC+01:00)  #    Disclaimer  |  Comments [0]  | 
# Monday, June 19, 2006

See Scott Hanselman's blog for details (no use repeating his post): http://www.hanselman.com/blog/FreePowerShellIDE.aspx

Monday, June 19, 2006 8:50:09 AM (W. Europe Standard Time, UTC+01:00)  #    Disclaimer  |  Comments [0]  | 

Ik ben nooit zo van de command line geweest, maar Windows Powershell (voorheen bekend als "Monad") is wel heel cool. Om het makkelijker te maken om Powershell scfiprts te maken is het toch wel prettig dat er ook weer een IDE is. Zie deze post van Scott Hanselman.

Monday, June 19, 2006 8:49:11 AM (W. Europe Standard Time, UTC+01:00)  #    Disclaimer  |  Comments [0]  | 
# Thursday, June 15, 2006

Het scenario:
Een bestaande applicatie schrijft (Word) bestanden in een image-field in een SQL Server database, en jij moet ze er weer uithalen en naar een browser sturen.

De oplossing:
Je zou zeggen "no problemo", met een DataReader kan ik bytes uit het betreffende veld lezen, en als ik gebruik maak van een DataAdapter+DataSet dan heb ik de hele byte array. Vervolgens gebruik je gewoon Response.BinaryWrite. Dat dacht ik eerst ook, totdat ik het deed en Word niet met het bestand overweg bleek te kunnen.

In dit saoort gevallen is een HEX viewer onmisbaar. Trek een bestaand document open en kijk hoe die er op byte niveau uitziet, en doe hetzelfde met het foute bestand. In mijn geval viel op dat we dezelfde karakters erin stonden, maar in het foute bestand staat een extra byte tussen alle karakters. Het foute bestand maakt dus kennelijk gebruik van 16-bits karakters, vermoedelijk UTF-16 (Unicode). Om dat te verhelpen kun je gebruik maken van de System.Text.Encoding class:

Encoding.Convert(Encoding sourceEncoding, Encoding destinationEncoding, byte[] sourceByteArray);

Mijn eerste gok was UTF-16 naar UTF-8, maar dat bleek niet goed te zijn. Ook de andere in .NET bekende encodings (UTF-7, ASCII) leverden niets op. Terug naar de Windows code pages dus... Mijn eerste gok was meteen goed: windows-1252, waardoor de code hieronder het gewenste resultaat leverde (GetDocument is een functie die en byte array teruggeeft van het bestand in de database):

Encoding targetEncoding = Encoding.GetEncoding(1252);
Response.Clear();
Response.ContentType = "application/ms-word";
Response.AddHeader("Content-Disposition", "attachment;filename=bestand.doc");
Response.BinaryWrite(Encoding.Convert(Encoding.Unicode, targetEncoding, DocDataAccess.GetDocument(documentId)));

Thursday, June 15, 2006 1:44:33 PM (W. Europe Standard Time, UTC+01:00)  #    Disclaimer  |  Comments [1]  | 
# Wednesday, June 14, 2006

You can watch the top sessions (including Gates') on It's Showtime, as is the case with sessions from TechEd and other events.

Wednesday, June 14, 2006 9:37:03 PM (W. Europe Standard Time, UTC+01:00)  #    Disclaimer  |  Comments [0]  | 

Je kunt de beste sessies (inclusief die van Ome Bill) nu bekijken op It's Showtime, evenals sessies van o.a. TechEd.

Wednesday, June 14, 2006 9:35:10 PM (W. Europe Standard Time, UTC+01:00)  #    Disclaimer  |  Comments [0]  | 
# Tuesday, June 13, 2006

I think Microsoft has made a smart move in renaming WinFX (including .NET 2.0) to .NET 3.0 (see blog post by Soma Somasegar). First of all there was a lot confusion about what .NET and WinFX are, and secondly WinFX is often confused with WinFS (the new file system). Us developers can all do with a little less confusion finding out way through development technologies.

Tuesday, June 13, 2006 9:47:43 AM (W. Europe Standard Time, UTC+01:00)  #    Disclaimer  |  Comments [3]  | 

Microsoft heeft een wijs besluit genomen door de term WinFX te laten vallen ten faveure van .NET Framework 3.0. WinFX leverde ten eerste naamsverwarring op ten opzicht van WinFS en ten tweede was het niet voor iedereen duidelijk wat nu het verschil was tussen het .NET Framework en WinFX (wat er eigenlijk ook niet echt is). Overigens schept het versienummer 3.0 wel weer een beetje verwarring, omdat er hele delen zijn die niet aangepast worden.

Dit is trouwens ook heugelijk nieuws voor de .NET gebruikersgroep dotNED, omdat hiermee een naamsverandering in de toekomst niet nodig is. 

Tuesday, June 13, 2006 9:42:02 AM (W. Europe Standard Time, UTC+01:00)  #    Disclaimer  |  Comments [0]  | 
# Wednesday, June 07, 2006

Om een of andere reden denken kopstukken uit het Nederlandse bedrijfsleven dat wij als zorgconsument marktwerking in de zorg willen. Nou, ik niet! Ik wil dat als ik het dichtsbijzijnde ziekenhuis binnenloop, ik zo snel en zo goed mogelijk geholpen wordt. Zorg is geen mobieltje waar ik desnoods kilometers voor omrij om een betere prijs-kwaliteitsverhouding te krijgen. Door keuze en marktwerking loop ik het risico dat het dichtsbijzijnde ziekenhuis straks 10 km verderweg is, omdat de goede ziekenhuizen meer geld krijgen. Dat kan het verschil zijn tussen leven en dood. We moeten niet zorgen dat sommige ziekenhuizen beter worden dan anderen, we moeten zorgen dat alle ziekenhuizen beter worden.

Eigenlijk zouden we een voorbeeld moeten nemen aan de Scandinavische landen die de top-5 van beste zorg in Europa domineren. Daar heeft de overheid het voor het zeggen in de zorg, en zo zou het ook moeten zijn met dit soort onmisbare voorzieningen. Dat zijn wat mij betreft zorg, onderwijs, politie en brandweer, en mogelijk ook gas, elektra en water. Ik moet er niet aan denken dat er in Nederland mensen zonder energie komen te zitten omdat Engeland bereid is een hogere prijs te betalen. Bovendien zou er veel meer geinvesteerd moeten worden in duurzame energie, iets wat blijkbaar ook niet kan zonder de overheid.

Wednesday, June 07, 2006 10:22:21 AM (W. Europe Standard Time, UTC+01:00)  #    Disclaimer  |  Comments [1]  | 
# Tuesday, June 06, 2006

I recently downloaded the Windows Workflow Hands On Labs for WF beta 2 and found the samples to be less than perfect. For instance the state management example (Lab 04) doesn't even build because there are some workflow fields set to private instead of public. Remedy that and the application will run. Not that it'll help... it crashes almost immediately. Looking at the code I can see that it is not beta 1, but I assume that it is pre-beta 2. This is a big disappointment because I'd like people within my company to do the labs to get to know WF. I hope the WF team tests and debugs the current hands on labs and puts out a new download that works well with beta 2.

Tuesday, June 06, 2006 8:01:59 PM (W. Europe Standard Time, UTC+01:00)  #    Disclaimer  |  Comments [0]  | 

Vandaag heb ik een presentatie gegeven over Windows Workflow Foundation (WF) aan onze .NET thema groep binnen The Vision Web. Gezien mijn laatste ervaring met WF nog met Beta 1 was, en ik keurig een Beta 2 omgeving had opgezet in een Virtual PC, was het even schrikken toen ik aan m'n demo's ging werken. De API is op sommige plaatsen behoorlijk aangepast, die me vooral even teruggooiden toen ik met State Machine workflow aan de gang ging. Ik dacht gered te zijn toen ik op windowsworkflow.net Beta 2 demo's tegen kwam en later de WF Hands On Labs Beta 2. Sommige voorbeelden uit de Hands On Labs werken echter niet, sterker nog ze builden niet eens! Ik vermoed dat dit nog pre-beta 2 voorbeelden zijn die nog net niet helemaal bijgewerk zijn.

Tuesday, June 06, 2006 7:55:06 PM (W. Europe Standard Time, UTC+01:00)  #    Disclaimer  |  Comments [0]  | 

Since I started as a programmer, I have hardly ever developed Windows applications. I mostly did web and components, GUI stuff is not my can of beans. That said, I do want to keep tabs on what's happening in with Windows GUI development, so I bought Programming Microsoft Windows Forms (a streamlined approach using C#) by Charles Petzold. I can tell you it was not the type of book I expected. What I expected was to learn how to build Windows applications, using a database and so on. Basically everything you need as a beginner to start developing full fledged apps. To my surprise the book is actually JUST about the GUI. There is the least amount of "clutter" of stuff that is not related to the GUI. In addition the whole book is setup so you can develop with just Notepad. The result is that the book has a very clear build up to how Windows Forms actually works. As such it was an enjoyable read for me.

Tuesday, June 06, 2006 8:17:16 AM (W. Europe Standard Time, UTC+01:00)  #    Disclaimer  |  Comments [0]  | 

Relationele data en objecten passen over het algemeen niet echt lekker op elkaar. Daarom zijn er ook behoorlijk wat Object-Relation Mapping tools (O/R Mappers) op de markt. Met LINQ en DLINQ brengt Microsoft relationele data en objecten dichter tot elkaar. Scott Guthrie heeft twee uitgebreide blog posts gemaakt over hoe dit in ASP.NET gebruikt kan worden. Zie
Using LINQ with ASP.NET (Part 1)
en
Using DLINQ with ASP.NET (Part 2 of my LINQ series)

Tuesday, June 06, 2006 8:02:12 AM (W. Europe Standard Time, UTC+01:00)  #    Disclaimer  |  Comments [0]  | 
# Thursday, June 01, 2006

The recent post by Scott Guthrie on Localization in ASP.NET 2.0 made me realize that most developers I know (myself included) don't know that much about localization. That's kind of ironic because I live in The Netherlands where the primary language is definitly not English. You would expect that in countries like that localization would be a big issue. It is not (well not here anyway).

Thursday, June 01, 2006 9:51:01 AM (W. Europe Standard Time, UTC+01:00)  #    Disclaimer  |  Comments [0]  | 

Aangezien wij niet in een Engelstalig land wonen zou localisatie van applicaties voor ons best belangrijk moeten zijn, maar in de praktijk weten weinig mensen er echt goed mee overweg te kunnen (mezelf incluis). Scott Guthrie heeft op zijn blog een bericht met allemaal goede informatiebronnen hierover, waaronder een webcast van 13 minuten. Zie ASP.NET 2.0 Localization (Video, Whitepaper, and Database Provider Support)

Thursday, June 01, 2006 9:46:39 AM (W. Europe Standard Time, UTC+01:00)  #    Disclaimer  |  Comments [0]  |