Welkom op het developersblog van 4DotNet
Op dit developersblog zullen onze eigen ontwikkelaars hun praktijkervaringen en andere inseressante onderwerpen plaatsen.

Archief van 'Technieken'

Silverlight is sinds de introductie in 2005 / 2006 aan een geweldige opmars bezig. Was de eerste versie (1.0), een door Microsoft te snel gepushte versie, welke alleen bestond uit XAML met als framework Javascript, tegenwoordig met Framework 4.0 en de introductie van RIA services is het zelfs een platform geworden waarin de nodige business applicaties geschreven worden.

De insteek van Silverlight vanuit Microsoft is geweest om als tegenhanger van Adobe Flash / Flex te fungeren. Voor .Net ontwikkelaars is het een eenvoudige stap om vanuit de ervaring met bijvoorbeeld Web of Forms, een overstap te maken naar WPF / Silverlight. Het enige verschil is dat de “voorkant” in Silverlight uit XAML bestaat.
Lees verder…

15 t/m 17 maart jl. was de MIX10 conferentie voor (web)ontwikkelaars in Las Vegas.

Tip voor degenen die niet zijn geweest:

de sessies zijn online te bekijken op http://live.visitmix.com/Sessions.

i-Pad .NET

Heel de wereld lijkt het er over te hebben. Apple heeft een nieuw speeltje voor de markt: de iPad. De reacties zijn op zich heel interessant. Aan de ene kant heb je de gadget freaks die superlatieven te komen komt om het moois te beschrijven. Aan de andere kant zijn er genoeg die nuchter weten te blijven. De iPad is niets meer dan een iPhone die te groot is om lekker mee te kunnen bellen en te klein om als notebook te kunnen worden gebruikt. En nieuw is de iPad helemaal niet. Dit is die van mij, ondertussen al ruim 5 jaar oud. 


Lees verder…

Rene Kapitein

Remember The Milk – Deel 2

In mijn vorige blog schreef ik over een handig tooltje dat ik heb herontdekt: Remember The Milk – deel 1. Deze keer wil ik iets dieper op ingaan. RTM biedt de mogelijkheid om tags aan je afspraken toe te voegen. Hier kun je dan weer op groeperen. Van deze tags wordt een Task Cloud gemaakt: een visuele weergave van je takenlijst.  De grootte van het font geeft aan dat er veel taken zijn of veel taken met een hoge prioriteit.


Lees verder…

Andre Mussche

Als je een applicatie maakt dat moet draaien via een WLAN (Wifi), pas dan even op en lees het onderstaande door:

Windows laadt namelijk niet de gehele executable in het geheugen, maar alleen wat hij op dat moment nodig heeft. Als je bijv. op een knop in je applicatie drukt, dan *kan* Windows een nieuw blok bitjes van je applicatie via het netwerk moeten ophalen (of voor een resource (bijv. een icon) bij een nieuw scherm dat je aanmaakt, etc).
Echter, als je via een WLAN werkt, dan kan natuurlijk net je verbinding weg zijn…
Wat er dan gebeurt? Een “External exception C0000006″ :-(
Oplossing? Je moet een flag in je exe zetten, die aangeeft dat je vanaf een removeable medium werkt (USB, Wifi, etc) zodat Windows wel alles inlaadt. In Delphi kun je dit in de .dpr doen:
{$SetPEFlags IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP}

Dit heeft bij mijn huidige klant nogal voor wat hoofdbrekens gezorgd: we kregen deze exceptions op de meest vreemde plaatsen, zonder aanwijsbare bug in de code. Na wat googlen was de oorzaak gauw gevonden en de fix snel gemaakt :-) Zie originele discussie + oplossing:
Andre Mussche

Soms wordt je onaangenaam verrast: je meet de tijd van alle SQL queries in je programma met “MillisecondsBetween” en je krijgt als resultaat: 0, 0, 0, en 15ms…

Hmmm, dit is te mooi om waar te zijn, zo snel is MS SQL Server nou ook weer niet! :-)
Er ging bij mij toen wel een lampje branden, ik eens eerder zoiets gezien met “Sleep” en “GetTickCount”.
Rene Kapitein

Werken tijdens de feestdagen

Twee vragen, één oplossing

De afgelopen weken kreeg ik van twee verschillende klanten een vrijwel identieke vraag. De ene klant wilde een uitbreiding in een bestaand programma om bij een bepaalde datum de eerstvolgende werkdag te bepalen. De andere wilde in een document een datum afdrukken waarop uiterlijk gereageerd kan worden. Voor deze datum geldt als regel dat men 20 dagen de tijd krijgt om te reageren. Als oplossing voor beide vragen heb ik een SQL functie gebruikt.


Lees verder…

jQuery

Momenteel werk ik aan een ASP.NET MVC 1.0 applicatie. In een ASP.NET MVC applicatie werkt je niet meer met postbacks. Daardoor werken de standaard servercontrols ook niet meer (runat=”server” is verdwenen). Eigenlijk is het een soort back to the basics, want het komt er in het kort op neer dat je met plain html aan de slag moet. Voor buttons gebruik je gewoon weer de <input  type=”submit|button”/> etc. Je hebt dus weer de volledige controle over de html die gerenderd wordt  in de browser. Dat biedt weer mogelijkheden om met javascript aan de slag te gaan.  Een library die hierbij erg handig kan zijn is jquery. Jquery is een javascript library dat de webprogrammeur de volledige beheersing over de html geeft.
Lees verder…

Andre Mussche

Delphi 2010 released!

Vlak na de preview van Delphi 2010 (zie mijn vorige post), verscheen al de RTM versie en is het officieel released. Ondertussen zijn er verschillende interessante blogs verschenen, waarbij verschillende verbeteringen verder uitgelegd worden. Ik zal niet alle verbeteringen bespreken, maar een paar uitlichten.  (P.S: zie ook de complete “reviewers” guide!)

Lees verder…

Rene Kapitein

Dynamische SQL

Voor een uitbreiding van een website bij mijn opdrachtgever kreeg ik laatst het verzoek om een stored procedure te maken waarmee je documenten uit een database kunt vinden. Als zoekcriterium kun je hiervoor oa. een aantal woorden invullen dat binnen de tekst moet voorkomen. Voor deze stored procedure heb ik dynamisch SQL gebruikt.  Dynamisch heeft hier de betekenis dat je de query runtime opbouwt en dan pas uitvoert. Deze techniek zul je niet vaak gebruiken, omdat juist de kracht van stored procedures is dat deze vooraf gecompileerd zijn en daardoor snel het gewenste resultaat opleveren. Ook zul je hierbij bewust moeten zijn van het gevaar van SQL injection. Bij deze opdracht heb ik toch voor dynamische SQL gekozen, omdat het aantal zoekwoorden kan variëren van 0 tot meer dan 10.

De totale stored procedure (SP) is te lang om hier in z’n geheel weer te geven. Dit verhaal zou dan ook voor sommigen saai en langdradig worden en dat is nu net wat je niet verwacht bij een artikel met ‘Dynamisch’ in de titel. Om de vaart erin te houden, wil ik in dit blog daarom de belangrijkste onderdelen even kort benoemen.  Wie weet helpt het iemand op weg die ook met dynamisch SQL wil werken. Ik ben overigens best benieuwd naar andere voorbeelden van geschikte toepassingen van deze techniek.


Lees verder…