# Wednesday, December 13, 2006

Microsoft heeft een security patch uitgebracht voor Visual Studio. Het "gat" in VS2005 wordt als kritiek beschouwd, dus is het heeeel verstandig de patch te installeren. Zie voor meer informatie en download Microsoft Security Bulletin MS06-073.

Wednesday, December 13, 2006 1:05:09 PM (W. Europe Standard Time, UTC+01:00)  #    Disclaimer  |  Comments [0]  | 
# Monday, December 11, 2006

Alex Thissen meldt op deze blogpost dat het probeert om zoveel mogelijk te programmeren met alleen z'n keyboard, omdat keyboard+muis vertragend werkt. De assumptie daarbij is uiteraard

1) Je kan alle shortcuts onthouden.
2) Je hebt de shortcuts vaak genoeg nodig om ze te onthouden.

In beide gevallen moet ik helaas zeggen "lukt me niet". Vandaag de dag spendeer ik minder uren aan programmeren en meer aan zaken die om het ontwikkelproces heen liggen. Voor hardcode programmeurs is dit wel handig lijkt me, hoewel ik wel een beetje flashbacks heb naar discussies over waarom VI beter is dan Emacs (of andersom).

Monday, December 11, 2006 3:06:39 PM (W. Europe Standard Time, UTC+01:00)  #    Disclaimer  |  Comments [0]  | 

Nu Internet Explorer 7 uitgerold wordt op de meeste computers ontstaat de situatie dat sites zowel met IE6 als IE7 goed moeten werken. Dit testen vanaf 1 machine is lastig omdat IE7 over IE6 heen gezet wordt. Maar geen nood, je kunt altijd nog gebruik maken van Virtual PC om in een virtuele machine met IE6 te testen (of IE7 natuurlijk als IE6 op je eigen machine staat). Microsoft biedt hiervoor een kant-en-klare Virtual PC. Meer informatie en de nodige download links vind je op het IEBlog. Bij The Vision Web werken we al tijden met Virtual PC voor het ontwikkelen en testen van applicaties, dus waren we zelf ook al op deze oplossing gekomen. Het is echter wel erg handig dat Microsoft een standaard Virtual PC aanbiedit hiervoor.

Monday, December 11, 2006 2:43:29 PM (W. Europe Standard Time, UTC+01:00)  #    Disclaimer  |  Comments [3]  | 

Serieus over beveiliging? Dan is de Threat Analysis & Modeling tool een goede toevoeging aan je arsenaal. Met deze tool kun je in kaart brengen welke (mogelijke) beveiligingsproblemen je applicatie heeft. Versie 2.1 verbetert een aantal zaken, waaronder export naar Work Items voor Visual Studio team System en voegt zaken als Auto Save toe. Download Threat Analysis & Modeling v2.1

Monday, December 11, 2006 2:27:45 PM (W. Europe Standard Time, UTC+01:00)  #    Disclaimer  |  Comments [0]  | 
# Saturday, December 02, 2006

Vandaag ontving ik met de post het eerste exemplaar van mijn nieuwe boek ASP.NET 2.0 - de basis. Het ziet er mooi uit en ik ben er dan ook trots op. Het behandelt de beginselen van ASP.NET 2.0 op zo'n manier dat je na het lezen van het boek ook echt wesites kunt maken met beveiliging, gegevens in een database, gebruikersprofielen en nog meer. Het boek is uiteraard verkrijgbaar via de boekhandel en diverse websites, maar kan ook besteld worden bij uitgever Pearson Education.

Ik wil bij deze alle mensen die meegewerkt hebben aan het boek hartelijk bedanken. John Numan die mij gevraagd heeft het boek te schrijven, Sandra Wouters die alles in goede banen geleid heeft en Cynthia van Heusden voor de tekstcorrectie. Tenslotte ben ik een enorme dank verschuldigd aan mijn vrouw Annette. Niet alleen voor haar tekstcorrectie en suggesties om het boek beter te maken, maar ook voor ruimte die ze me gegeven heeft om het boek te schrijven.

Saturday, December 02, 2006 10:57:16 PM (W. Europe Standard Time, UTC+01:00)  #    Disclaimer  |  Comments [0]  | 
# Tuesday, November 07, 2006

Commerce Server is een van die producten die altijd net buiten m'n gezichtsveld ligt. Binnen The Vision Web hebben we een aantal experts op het gebied, dus het is niet echt nodig om me daar mee te bemoeien. Nu CS2007 gebaseerd is op ASP.NET 2.0 weet ik echter ineens veel meer van de algemene werking dan voorheen. Door het baseren op ASP.NET 2.0 is CS2007 overigens niet meer bruikbaar met ASP, omdat er geen COM interfaces meer zijn. Die zou je wel weer kunnen maken door de Web Services interface te wrappen, maar dat moet je niet willen.

De spreker (Ryan Dononvan) weet waar hij het over heeft, maar dat mag ook wel als je onderdeel bent van het team dat het maakt. Wel lopen z'n demo's nog redelijk stroef. Dat een iisreset nodig is om een nieuw thema (look & feel) toe te passen vind ik wel dubieus. Een half uur in de sessie heb ik alleen nog maar ASP.NET 2.0 dingen gezien, met uitzondering van de standaard globalization zaken.

Wat me vooral opvalt is dat CS2007 niet een beetje, maar echt veeeeel beter doordacht is dan z'n voorloper. Het is niet meer een verzameling losse handige tools, maar veel meer gericht op het proces. Zo kunnen allerlei business rules gedeeld worden tussen verschillende onderdelen, zodat je niet meer op meerdere plaatsen dezelfde rules moet implementeren. De BizDesk is ook weg en vevangen door een Windows SmartClient applicatie die communiceert via de Web Services interface. De code van de SmartClient is beschikbaar in de Partner SDK en je kunt 'm daarom aanpassen aan eigen wensen. Dat geldt ook voor de rapportage, omdat die gedaan wordt via Reporting Services. Gek genoeg voor zowel SQL 2000 als SQL 2005, terwijl CS2007 alleen draait op SQL 2005 (althans dat zei Ryan eerder in z'n presentatie).

Tip voor de spreker (demo's geven les 1): zorg dat je alle updates geinstalleerd hebt en zet auto update daarna uit! Nu moest hij wachten tot zijn VPC opnieuw opgestart was na het installeren van updates.

Tuesday, November 07, 2006 12:02:21 PM (W. Europe Standard Time, UTC+01:00)  #    Disclaimer  |  Comments [0]  | 

Het jaarlijkse TechEd "feest" is weer begonnen. Gisteren al met een etentje met de MVP's waar ik weer eens heb kunnen praten met m'n mede-MVP's, waaronder Andre Obelink en Sander Gerz die boeken over VB en C# hebben geschreven in dezelfde serie waarvoor ik net een boek geschreven heb (De Basis). Leuk om ervaringen uit te wisselen.

Vanmorgen de keynote van Eric Rudder, die vooraf gegaan werd door Simon Brown. Simon had een leuk intermezzo met Arfa Karim, de jongste Microsoft Certified Professional (11 jaar, uit Pakistan). Arfa liet een zelf geprogrammeerde calculator zien en de code zag er netjes uit. De demo's tijdens Eric Rudder's keynote waren ook leuk om te zien. Als je de afgelopen twee jaar met je kop in het zand hebt gezet waren ze zelfs indrukwekkend.

Later meer over de sessies...

Tuesday, November 07, 2006 11:51:55 AM (W. Europe Standard Time, UTC+01:00)  #    Disclaimer  |  Comments [0]  | 
# Friday, November 03, 2006

Vandaag was ik met stomheid geslagen toen ik hoorde dat de buurman van mijn ouders, waar ik zelf 22 jaar lang naast gewoond heb overleden is aan een hersenbloeding. Hans was pas net met pensioen en dan is het heel sneu dat dit gebeurt, vooral voor de mensen om hem heen. Omdat zijn zoon Bernd niet veel ouder is dan ik kwam ik als kind vaak over de vloer. Daardoor kwam ik al vroeg in aanraking met een computer, want Hans had een TRS-80, waar Bernd en ik (toen misschien 8 jaar oud) mee mochten spelen. Hans was zo bedreven met de computer dat hij op de school waar hij werkte het IT-onderwijs opgezet heeft en het boekje Disk IT geschreven heeft (ik meen eind jaren tachtig), een boekje om de eerste stappen te zetten in de wereld van de computer. Dat zowel Bernd als ik in de IT beland zijn (Bernd is IT Pro, ik Developer) zal voor een groot deel te danken zijn aan Hans en zijn interesse in computers. Ik zal hem daarom niet vergeten.

Ik wens zijn vrouw, kinderen, kleinkinderen, en iedereen die dichtbij Hans stond heel veel sterkte.

Friday, November 03, 2006 8:56:13 PM (W. Europe Standard Time, UTC+01:00)  #    Disclaimer  |  Comments [0]  | 
# Thursday, October 26, 2006

Ik open net m'n blog en het is wel heel erg opvallend hoe lang ik niets geschreven heb... meer dan 1 maand. De reden daarvoor is simpel, alles gebeurde even tegelijk. Ik zat in de afrondende fase van mijn nieuwe boek ASP.NET 2.0 - de basis, zit in de afrondende fase van een groot project (waarbij ik ook nog eens niet goed bij m'n blog kan), en we zijn druk aan het verbouwen en verhuizen (inclusief de internetverbinding). Het boek is zo goed als af en we zijn ook bijna verhuisd, waardoor alles wel in een rustiger vaarwater zou moeten komen en ik ook wat meer tijd heb voor blog, website enzovoorts. Tot gauw dus!

Thursday, October 26, 2006 4:27:19 PM (W. Europe Standard Time, UTC+01:00)  #    Disclaimer  |  Comments [0]  | 
# Wednesday, September 20, 2006

When you make columns invisible in a GridView-control the values in those columns are ignored when doing an update. If the update function, stored proc, or whatever expects these values (particularly when you use CollisionDetection="CompareAllValues"), the update will fail.

The solution:
- Add the names of the invisible columns to the DataKeyNames-properties separated by a comma, so the values are available.
- Create an event handler for the GridView.RowUpdating and add the code below. This copies all "key" values to the old and new values so the update will work.

IDictionaryEnumerator restoreOldValues = e.Keys.GetEnumerator();
while (restoreOldValues.MoveNext())

   e.OldValues.Add(restoreOldValues.Key.ToString(), restoreOldValues.Value.ToString());
   e.NewValues.Add(restoreOldValues.Key.ToString(), restoreOldValues.Value.ToString());
}

Wednesday, September 20, 2006 4:11:11 PM (W. Europe Standard Time, UTC+01:00)  #    Disclaimer  |  Comments [0]  | 

Als je kolommen onzichtbaar maakt in een GridView-control worden de waardes daarvan niet meegestuurd als je een update gaat doen. Als je werkt met CollisionDetection="CompareValues" betekent dit dat de update niet goed gaat als de stored procedure of functie die je gebruikt de originele waardes ook verwacht.

De oplossing:
- Voeg de kolommen die je niet zichtbaar maakt (of uberhaupt niet invoegt) toe aan de DataKeyNames-eigenschap, gescheiden door een komma.
- Maak een EventHandler voor GridView.RowUpdating en zet daar de onderstaande code in. Hiermee worden alle keys toegevoegd aan de oude en nieuwe waardes (die voor die kolommen toch niet verandert).

IDictionaryEnumerator restoreOldValues = e.Keys.GetEnumerator();
while (restoreOldValues.MoveNext())

   e.OldValues.Add(restoreOldValues.Key.ToString(), restoreOldValues.Value.ToString());
   e.NewValues.Add(restoreOldValues.Key.ToString(), restoreOldValues.Value.ToString());
}

Wednesday, September 20, 2006 4:06:42 PM (W. Europe Standard Time, UTC+01:00)  #    Disclaimer  |  Comments [1]  | 
# Monday, September 18, 2006

Het gebeurt me nog wel eens dat ik een SQL Server database aangeleverd krijg en dan wil ik graag een diagram hebben van de tabellen en relaties. Zo'n diagram kun je maken door er een toe te voegen in de Database Diagram map die te zien is in SQL Enterprise Manager (2000) of SQL Management Studio (2005). Vaak krijg je dan de melding hieronder:

Helaas kun je de Database Properties in dat geval niet opvragen (in elk geval niet in SQL Management Studio), dus kun je het niet aanpassen. Door de volgende query uit te voeren is het euvel ook opgelost

ALTER AUTHORIZATION ON Database::[Database Name] TO [sa]

Monday, September 18, 2006 11:11:25 AM (W. Europe Standard Time, UTC+01:00)  #    Disclaimer  |  Comments [0]  |