Navigatie

Contact

Send mail to the author(s) E-mail

View Richard Soeteman's profile on LinkedIn

RSS 2.0 | Atom 1.0 | CDF

Archief

Categorieën

Blogroll

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.

Sign In

Zoeken

# Wednesday, 24 January 2007
Wednesday, 24 January 2007 21:54:49 (GMT Standard Time, UTC+00:00) ( )

This Blog is not active anymore, further posts will be available on my company website. Read new posts here

Ik mag Pieter Joost bedanken voor het taggen. Nu mijn beurt om 5 dingen over mezelf te vertellen die je waarschijnlijk nog niet weet, hier gaan we:

  1. Ik ben begonnen met programmeren op mijn commodore 64. Deze had ik op 13 jarige leeftijd gekocht, nadat ik hier ruim een jaar voor had gespaard. Deze commodore heeft er niet alleen voor gezorgt dat ik op jonge leeftijd met programmeren in aanraking kwam, maar heeft er tevens voor gezorgd dat ik meerdere zomers met 30+ graden binnen zat.
  2. In 2003 ben ik getrouwd met Tamara. Een jaar later is onze dochter Marijn geboren. Niet normaal hoe snel ze groot wordt. Ik weet nog als de dag van gisteren dat ze geboren werd en volgend jaar gaat ze al naar school.
  3. Mijn muzieksmaak varieert van easy listening tot knalharde rock, met een uitschieter naar goede dance. Dit tot groot ongenoegen van de buren die af en toe verplicht mee moeten luisteren. Zoals bij de meeste mensen hangt dit van mijn stemming af. Wel verheug ik me al op het concert van Faithless op 18 april
  4. In mijn vrije tijd ben ik veelal aan het klussen. Dit doe ik niet alleen omdat ik het leuk vind, maar het is ook noodzaak. We hebben in 2002 een huis gekocht waar het een en ander aan moest gebeuren. Dit jaar is de zolder aan de beurt en dat is tevens het laatste wat moet gebeuren. Whoa wat ga ik doen met al die vrije tijd...
  5. Sinds 1999 werk ik in de internet industrie(ja ik heb de Internet Bubble meegemaakt), eerst ontwikkelen in classic(crappy) ASP en daarna ASP.NET, met een tussenpose waarin ik Tridion projecten heb moeten doen. Aan Tridion word ik liever niet herinnert.
    Sinds een jaar werk ik voor Detrio Consultancy B.V.  Daar heb ik de gelegenheid mijn (ASP).NET kennis verder uit te diepen. Dit wordt overigens ook aktief door het bedrijf gestimuleerd en dat vind ik prettig.

Nu is het mijn beurt om de volgende personen te taggen:

Comments [1] | | # 
# Tuesday, 19 December 2006
Tuesday, 19 December 2006 20:13:45 (GMT Standard Time, UTC+00:00) ( )

This Blog is not active anymore, further posts will be available on my company website. Read new posts here

Ik heb met tot afgelopen week vaak afgevraagd waarom ik ooit gebruik zou maken van CLR integratie in SQL Server 2005. Totdat ik een query zag waar een Regular Expression meer op zijn plaats was geweest. Regular Expressions kent T-SQL niet, maar middels CLR integratie is dit op te lossen.

In onderstaand voorbeeld is men vergeten emailadressen te valideren. Daardoor staan er foutief geformateerde emailadressen in de database. Middels het gebruik van een Regular Expression gaan we deze in de database opzoeken. Onderstaande afbeelding toont alle data in de contacts tabel.

Code

Onderstaande code bevat de functie IsValidEmailAdress. Deze functie wordt straks ook binnen SQL Server gebruikt om te controlleren of het een geldig emailadres betreft.  De code zelf maakt gebruik van een regular expression om te bepalen of het emailadres geldig is.

using System;
using System.Text.RegularExpressions;
using Microsoft.SqlServer.Server;

public class DatabaseFunctions
{
    [SqlFunction( DataAccess = DataAccessKind.None , IsDeterministic=true) ]
    public static bool IsValidEmailAddress(string emailAddress)
    {
        Regex regex = new Regex(@"^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$");
        return regex.IsMatch(emailAddress);
    }
}

Drie zaken die opvallen:

  1. We maken gebruik van de Microsoft.SqlServer.Server namespace. De Microsoft.SqlServer.Server bevat alle onderdelen die we nodig hebben voor CLR integratie. 
  2. We maken gebruik van het Attribuut SqlFunction. Aan dit attribuut geven we de volgende parameters mee :
    • DataAccess. Deze kan de waarde DataAccessKind.None, of DataAccessKind.Read bevatten. We voeren geen database acties uit, dus gebruiken we DataAccessKind.None 
    • IsDeterministic. Indien True wordt de output gecached op basis van de inputparameters en database state. We willen performance dus zetten we deze op true
  3. IsValidEmailAddress is static. Functies die binnen SQL Server worden gebruikt moeten static zijn.

Gebruik van de code in SQL Server

CLR integratie staat default uit. Middels onderstaande statements zetten we dit aan. Mocht je dit trouwens vergeten, geeft SQL Server zelf aan dat CLR integratie aangezet moet worden en ook hoe je dat moet doen.

EXEC sp_configure 'show advanced options' , '1';
go
reconfigure;
go
EXEC sp_configure 'clr enabled' , '1'
go
reconfigure;

Vervolgens registreren we onze Assembly.

CREATE ASSEMBLY CLRDatabaseFunctions FROM 'D:\CLRDatabaseFunctions.dll' WITH PERMISSION_SET = SAFE

We kunnen de functie IsValidEmailAddress niet direct aanroepen, daarom maken we gebruik van onderstaande functie(SQL) welke de CLR functie IsValidEmailAddress  wel aan kan roepen.

CREATE FUNCTION IsValidEmailAddress(@emailAddress nVarchar(255)) RETURNS bit
AS EXTERNAL NAME CLRDatabaseFunctions.DatabaseFunctions.IsValidEmailAddress

Nu kunnen we de foutieve emailadressen opvragen:

Select Contacts.* from Contacts WHERE  dbo.IsValidEmailAddress(Contacts.EmailAddress) = 0 

Dit geeft als resultaat het emailadres wat niet correct was ingevoerd.

 

Downloads en meer info

Via onderstaande links zijn de gebruikte voorbeelden te downloaden:

Verder kan je via onderstaande links meer informatie over dit onderwerp vinden:

Comments [0] | | # 
# Saturday, 11 November 2006
Saturday, 11 November 2006 08:33:13 (GMT Standard Time, UTC+00:00) ( )

This Blog is not active anymore, further posts will be available on my company website. Read new posts here

TechEd zit er helaas alweer op. Deze week heb ik een hoop geleerd, een aantal nieuwe manieren geleerd om een bepaalde techniek toe te passen. Dus mijn overall indruk van dit evenement is goed. Wel hoorde ik van veel mensen die al eens eerder bij TechEd waren geweest dat deze TechEd tegenviel en dat de sfeer niet hetzelfde was als tevoren. Ik hoop het volgend jaar te kunnen vergelijken :-)

Comments [0] | | # 
# Thursday, 09 November 2006
Thursday, 09 November 2006 23:58:19 (GMT Standard Time, UTC+00:00) ( )

This Blog is not active anymore, further posts will be available on my company website. Read new posts here

Inmiddels is het al weer drie weken geleden dat Microsoft ASP.NET AJAX Beta 1 uitbracht. Op een project waaraan ik werk maken we gebruik van ASP.NET AJAX, toen heette het nog ATLAS. Na een Upgrade kregen we onderstaande foutmelding na een postback:

 

Na enige tijd speuren bleek dit te komen doordat we gebruik maakte van de ASP.NET Tracing functionaliteit, waarbij de output direct in de browser getoond werd. Van de week kreeg ik te horen dat ASP.NET AJAX Beta 2 uit was en heb deze direct geïnstalleerd om te kijken of dit was opgelost. Ik krijg nog steeds een foutmelding na een postback, maar ik kan nu wel in één oogopslag zien wat de foutmelding inhoud. 

Comments [0] | | # 
# Wednesday, 08 November 2006
Wednesday, 08 November 2006 19:20:22 (GMT Standard Time, UTC+00:00) ( )

This Blog is not active anymore, further posts will be available on my company website. Read new posts here

Vandaag zijn we bij de opname van .NET Rocks geweest, in de vorm van een panel discussie met Carl Franklin, Richard Campbell, Stephen Forte, Roy Osherove en Kate Gregory. Het onderwerp was Agile development en mede omdat ik al een geruime tijd volgens Agile methode werk vond ik deze aflevering zeer de moeite waard. Het einde van de show is echt hilarisch Roy Osherove pakt een paar oude melodien en maakt daar "Agile songs" van. Gewoon downloaden deze show dus. Hij is vanaf 21 novemer te downloaden via de .NET Rocks site.

De meeste personen uit dit panel hielden vandaag ook een sessie. Zo begon Roy Osherove vanochtend met een White Board sessie over Test Driven Development. Deze man is echt een guru op dat gebied. Hij vroeg aan de zaal wat men wilde weten van TDD en dat was de agenda.  

Stephen Forte en Richard Campbell hielden een sessie over T-SQL Querying: Tips and Techniques. Deze sessie was grappig en toch leerzaam. Helaas viel de sessie "10 Undiscovered Features of ASP.NET 2.0" een beetje tegen. De meeste features waren helemaal niet undiscovered. Volgens mij had ik al deze onderwerpen al eens langs zien komen op een MSDN event. 

Verder nog een Hands on  LAB over Windows Workflow gedaan.  Morgen alweer donderdag , je komt echt tijd te kort hier :-(

Comments [0] | | # 
Wednesday, 08 November 2006 06:25:42 (GMT Standard Time, UTC+00:00) ( )

This Blog is not active anymore, further posts will be available on my company website. Read new posts here

Teched Europe 2006 is begonnen. De keynote werd gegeven door Eric Rudder en werd vooraf gegaan door Simon Brown. Simon Brown had Arfa Karim, een Microsoft Certified Professional van 11 jaar uitgenodigd om een door haar ontwikkelde Calculator te tonen. Nadat Simon vroeg wat er nog aan de applicatie moest gebeuren en Arfa daar op antwoorde dat de applicatie nog gedocumenteerd moest worden hoorde je uit de zaal "She's a real developer".

Verder werden er nog een aantal mooie demo's getoond. Uiteraard een demo van WPF en ATLAS en het daarop volgende succes verhaal van Otto, waar mijn collega geen vertrouwen in had omdat Otto er 8 dagen voor nodig had om de prijs van een LCD TV aan te passen.

 

 

DEV230 Developing Rich Web Applications with ASP.NET AJAX

Dat sessies snel vol zitten was me direct duidelijk. Eigenlijk had ik naar de sessie "OFF202 Windows SharePoint Services v3 and Office SharePoint Servers 2007 as a Development Platform " willen gaan. Maar bij aankomst bleek deze al vol te zitten.  Daarom snel naar deze Sessie gegaan. Het was een hele aardige sessie gegeven door Shanku Niyogi. Omdat ik al aardig wat met ATLAS heb gedaan ben ik niet veel wijzer geworden van deze sessie. Wel ben ik er nu achter dat er voor JSON Serializatie is gekozen omdat SOAP te veel overhead met zich mee brengt. 

OFF001 DEMO: Designing and Implementing a Solution with SharePoint 2007, Windows Workflow Foundation and InfoPath 2007

Een van mijn doelen voor Teched is zoveel mogelijk te weten te komen over Sharepoint Development. De demo van  Mario Szpuszta leek me daarom goed om heen te gaan. De demo liet zien hoe je zeer gemakkelijk (in demo's gaat uiteraard alles vlekkeloos ;-)) een orderformulier met InfoPath in elkaar zet, workflow aan het formulier kan koppelen en deze middels sharepoint kan publiceren zodat iedereen met een browser een order kan plaatsen. Ik ben er na deze sessie nog meer bewust van geworden dat Sharepoint 2007 en Workflow erg  groot gaan worden volgend jaar. Ik kijk er al naar uit om een project met deze nieuwe technieken te gaan doen.

DEV223 LINQ Overview

Naar deze sessie van Anders Hejlsberg had ik al de hele dag uit gekeken. Afgelopen jaar had mijn collega al eens een sessie over LINQ gehouden. Daarna heb ik LINQ eigenlijk een beetje links laten liggen. Het is me duidelijk. Ik moet hier heel snel weer aandacht aan gaan besteden. Dit onderwerp wordt echt huge in .NET 3.0. Anders liet zien hoe gemakkelijk je met LINQ data kan opvragen,groeperen ,kan combineren met andere datasources en daar bijvoorbeeld weer een xml document van kan genereren en dit allemaal geintegreerd in VB.Net of C#  3.0.

Dev203 ADO.NET Present and Future

Naar deze demo door Jackie Goldstein had ik ook uitgekeken. Veel vernieuwende zaken heb ik niet gezien maar wel weer een aantal handige tips opgedaan. Zoals het afhandelen van concurrency conflicts. Wel vind ik dat een "Software Legend" in zijn demo's altijd gebruik moet maken van best practices, hetgeen Jackie niet deed. Zo werden bijvoorbeeld queries met  string concatenation opgebouwd.

Comments [1] | | # 
# Thursday, 02 November 2006
Thursday, 02 November 2006 07:18:49 (GMT Standard Time, UTC+00:00) ( ASP.NET )

This Blog is not active anymore, further posts will be available on my company website. Read new posts here

Vorig jaar heb ik het al eens heel kort gehad over het vernieuwde compilatie en deployment model. Dit onderwerp is echter zeer uitgebreid. Rick Strahl heeft hier een zeer uitgebreid artikel over geschreven. Rick Strahl is tevens de maker van de tool die ik destijds genoemd had. Dit artikel is een must read.

Link naar het het artikel.

Comments [0] | | # 
# Tuesday, 31 October 2006
Tuesday, 31 October 2006 21:21:21 (GMT Standard Time, UTC+00:00) ( ASP.NET )

This Blog is not active anymore, further posts will be available on my company website. Read new posts here

Inmiddels is het al weer bijna twee weken geleden dat Microsoft ASP.NET Ajax Beta heeft released. Het project waar ik aan werk maakte gebruik van ATLAS en de upgrade van een CTP kostte ons slechts enkele minuten.  De upgrade van ATLAS naar Ajax .Net ging echter niet zo simpel. Dit heeft me overigens wel verbaasd heeft omdat de CTP releases erg goed waren, een gemiste kans.  Lees dit migratiedocument en let bij een upgrade op het onderstaande:

Configuratie:

De configuratie in web.config is compleet veranderd. Appendix "Manual Configuration Changes" beschrijft hoe je je huidige web.config kan aanpassen.

Aanpassing van tagprefix:

Verder is de Prefix <ATLAS:/> veranderd in <ASP:/>. Dit houdt in dat je al je verwijzingen dus kan aanpassen.  

Deployment:

Voorheen werd een losse DLL geleverd. Deze kon je in je bin folder plaatsen en je had direct ATLAS functionaliteit. In de huidige versie wordt de DLL in de GAC geplaatst. Wanneer je een deployment naar een server waar de installatie niet is uitgevoerd, bijvoorbeeld een hosting provider kom je in de problemen omdat de Microsoft.Web.Extensions DLL niet gevonden wordt. Je krijgt onderstaande foutmelding te zien:

Could not load file or assembly 'Microsoft.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.

De Microsoft.Web.Extensions DLL is echter wel gemakkelijk uit de GAC te halen. Je zult dit echter via de Command Line moeten doen, omdat windows explorer de Assembly folder anders weergeeft dan normale folders en de DLL's dus niet te kopiëren zijn.

  1. CMD
  2. CD c:\windows\assembly\Gac_msil\microsoft.web.extensions\1.*
  3. copy microsoft.web.extensions.dll [type hier de binfolder waar de dll geplaatst moet worden]

Meer Info

Deze post beschrijft alleen de punten die we zelf tegengekomen zijn tijdens de migratie van ons project. We zijn nog een probleem tegen aangelopen met HTTPModules waarover later meer. Voor meer informatie zie de volgende resources:

Comments [2] | | # 
# Friday, 29 September 2006
Friday, 29 September 2006 23:46:34 (GMT Daylight Time, UTC+01:00) ( )

This Blog is not active anymore, further posts will be available on my company website. Read new posts here

Afgelopen week is DasBlog 1.9 released. Ik gebruik DasBlog al ruim een jaar en ben er zeer tevreden over. DasBlog is volgens mij ook nog eens de enige op .Net gebaseerde blogtool die geen database gebruikt (wat aanzienlijk scheelt aan hosting kosten). Alle data wordt in losse XML bestanden opgeslagen.

Onderstaande functies hebben me doen besluiten direct te upgraden:

  • DasBlog 1.9 is vele malen sneller.
  • Ondersteuning voor Windows Live Writer.
  • Feedburner ondersteuning op een manier dat mijn huidige subscribers op mijn RSS feeds automatisch doorverwezen worden. Overigens weet ik nog niet of ik overstap op Feedburner.
  • Verbeterde statistieken module.
  • Er zijn een aantal extra macro's ontwikkeld die je in je templates kan gebruiken.

Voor de volledige lijst zie deze url.

Comments [2] | | # 
# Tuesday, 12 September 2006
Tuesday, 12 September 2006 10:39:37 (GMT Daylight Time, UTC+01:00) ( Atlas )

This Blog is not active anymore, further posts will be available on my company website. Read new posts here

Gisteren maakte  Scott Guthrie bekend dat Atlas V1.0 dit jaar nog wordt released. Hierin zal niet de volledige functionaliteit worden opgenomen zoals nu in de CTP het geval is maar het wordt wel volledig door Microsoft ondersteund. De overige functionaliteit blijft via CTP's beschikbaar.

Ook hebben ze de officiële naam bekend gemaakt, hier ben ik minder gelukkig mee. Atlas was een mooie naam, had dit Microsoft Atlas genoemd en je was klaar, maar nee dit is het geworden:

De Atlas Javascript Library wordt Microsoft AJAX Library
De Atlas server controls wordt ASP.NET 2.0 AJAX Extensions
De Atlas Control Toolkit wordt ASP.NET AJAX Control Toolkit

Lees meer

Comments [0] | | #