in

DĂ© specialist in .NET trainingen en consultancy

Jo-wen Mei

november 2007 - Posts

  • XamlPad Extended

    In de windows sdk zit een tooltje, genaamd XamlPad. Het is een mini designer waarbij je xaml code wordt geparsed en je direct het resultaat ziet.

    Het is erg handig om bijvoorbeeld tutorials te doorlopen, of te experimenteren met voorbeeldjes. Anyway, vergeet deze tool...

    Er is namelijk een gepimpte versie (met colorPicker, weergave interne xaml, default templates, code interpreter, etc)

    Posted nov 29 2007, 09:06 by Jo-wen with no comments
    Filed under:
  • 3 veel voorkomende fouten met Asp.Net Ajax

    Hier staat een heel interessant stukje over het werken met Ajax.

    Het beschrijft een drietal veel voorkomende problemen met natuurlijk de bijbehorende oplossingen.

    Het geeft je meer inzicht in wanneer events optreden.

    De 5 minuten die je nodig hebt om het artikel te lezen ga je makkelijk terugverdienen! :)

    Posted nov 28 2007, 10:41 by Jo-wen with no comments
    Filed under:
  • De standaard waardes van ServiceHost zijn laag!

    Als je in WCF je service direct host, is het verstandig om je ServiceHost zorgvuldig te configureren. De standaard waarden staan nogal "laag" ingesteld.

    Bijvoorbeeld: standaard kan je bijvoorbeeld maar 10 clients tegelijkertijd ondersteunen. Als dit onvoldoende is, kan je deze aanpassen mbv ServiceThrottling. Ik zal meteen de code geven:

     

    public static void SetServiceHostThrottle(ServiceHost host)

    {

    ServiceThrottlingBehavior throttle = host.Description.Behaviors.Find<ServiceThrottlingBehavior>();

    if (throttle == null)

    {

         throttle = new ServiceThrottlingBehavior();

         throttle.MaxConcurrentCalls = 1000;

         throttle.MaxConcurrentInstances = 1000;

         throttle.MaxConcurrentSessions = 1000;

         host.Description.Behaviors.Add(throttle);

         host.CloseTimeout = TimeSpan.FromSeconds(1);

    }

    }

     

    De keuze voor deze waarden is overigens wel logisch, want hiermee wordt de beveiliging verhoogd. Het is bijvoorbeeld een stuk lastiger om zo een DoS attack op je dak te krijgen (meer info). Dus zet de waarden ook weer niet te groot.

    Moraal van het verhaal: als dingen niet meer werken, denk dan aan de lage standaard waardes!

    Posted nov 22 2007, 09:45 by Jo-wen with no comments
    Filed under:
  • Visual Tree vs. Logical Tree

    Ok, in het begin zal je deze termen lichtelijk negeren (ik in ieder geval wel)...

    maar uiteindelijk is het belangrijk te weten wat de verschillen tussen deze twee zijn.

    Je gaat ze nodig hebben op het moment dat je andere controls gaat opzoeken, en het geeft je meer inzicht in de structuur van de wpf.

     

    We gebruiken als voorbeeld even deze code:

    <DockPanel>
      <ListBox>
        <ListBoxItem>Dog</ListBoxItem>
        <ListBoxItem>Cat</ListBoxItem>
        <ListBoxItem>Fish</ListBoxItem>
      </ListBox>
      <Button>OK</Button>
    </DockPanel>

     

    De Logical Tree

    De logical tree geeft de structuur van de elementen op runtime weer.  Een logical tree kan non-visuele data objecten bevatten, zoals een ListItem.

    De logical tree is (bijna) altijd gelijk aan de structuur zoals deze in xaml gedefinieert is.

    Hier de helper class om de logical tree te doorlopen.

     

    image

     

     

    De Visual Tree

    De visual tree bestaat uit alle visuele elementen. De visuele tree bevat alle rendering informatie om het uiteindelijke output te genereren.

    In principe heb je hier alleen mee te maken als je echt volledige controle wilt hebben om de output te wijzigen, om bijvoorbeeld performance redenen.

    Note: routed events reizen met name in de visual tree, en niet in de logical tree!

    Hier de helper class om de visual tree te doorlopen.

     

    image

     

    Meer info over de tree's

    Hier kun je een poster downloaden met alle wpf classes erop (en de bijbehorende assembly)

    Posted nov 15 2007, 10:53 by Jo-wen with no comments
    Filed under:
  • DockPanel in de praktijk

    In WinForms hebben sommige controls een Dock property. In WPF is er een speciale layout-manager voor gemaakt, namelijk de DockPanel

    Het gebruik ervan lijkt redelijk voor de hand liggend, maar een belangrijk detail wordt toch vaak niet vermeld.

     

    Dit was mijn eerste poging:

    <DockPanel>
                <Button Height="23" Name="button1" Content="top" DockPanel.Dock="Top" />
                <Button Height="23" Name="button2" Content="stretch" />
                <Button Height="23" Name="button3" Content="bottom" DockPanel.Dock="Bottom" />
    </DockPanel>

     

    image

     

    Maar deze code had het gewenste effect:


    <DockPanel>
                <Button Height="23" Name="button1" Content="top" DockPanel.Dock="Top" />
                <Button Height="23" Name="button3" Content="bottom" DockPanel.Dock="Bottom" />
                <Button Height="23" Name="button2" Content="stretch" />
    </DockPanel>

     

     image

     

    Zoek de verschillen...   

     

    Het maakt dus uit in welke volgorde je de elementen definieert!

    Het laatste item zonder de attached "DockPanel" property wordt automagisch opgevuld.

  • nieuwe dingen in WPF 3.5

    Visual Studio 2008 komt eind deze maand uit, en het is wederom een flink verbeterde versie.

    Op wpf gebied is de voornaamste verbetering de wpf forms designer, ook wel "Cider" genoemd.

    Zaken die je standaard mag verwachten (zoals het automatisch genereren van eventHandlers, en wpf controls in de toolbox!) zitten er nu eindelijk in.

    En het is nu zelf een echte wpf applicatie, en dus een stuk stabieler. Ook de intellisense heeft nu geen kuren meer.

     

    Hier een kort overzicht van de nieuwe features

    En hier een film (55 min!) waarin ze nog eens toegelicht worden 

    Posted nov 09 2007, 01:58 by Jo-wen with no comments
    Filed under: