Als je een applicatie maakt dat moet draaien via een WLAN (Wifi), pas dan even op en lees het onderstaande door:
{$SetPEFlags IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP}
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…
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.
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…
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…
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.
Op de site van Codegear/Embarcadero is vorige week de Delphi 2010 Preview Center verschenen: Nog 7 dagen, 2 uur, 31 minuten (and counting…) en dan is het zover.
Delphi 2010 belooft de beste Delphi release ooit te worden, met veelbelovende nieuwe features en verbeteringen! Zoals (Multi)Touch, Mouse Gestures, IDE Insight (alles (!) vinden in 1 scherm), background compilation, verbeterde debugger (oa threads), verbeterde RTTI (.Net Reflection!), class attributes, Direct2d canvas (Win7), etc etc.
Lees verder…
Stel je hebt net als ik een lijst met contactpersonen in Outlook en maakt dankbaar gebruik van de distributiegroepen. Het is dan niet denkbeeldig dat er eens een vraag komt van iemand die dezelfde distributiegroepen ook wil gebruiken. Denk bijvoorbeeld aan een groep collega’s of een overzicht van commissies.
Omdat mijn Outlook contactpersonen gesynchroniseerd worden met de contactpersonen in mijn mobiele telefoon, staan privé en zakelijke personen door elkaar. De zakelijke distributiegroepen en de bijbehorende e-mail adressen wilde ik wel delen. De personen die alleen voor mij interessant zijn, hoef ik niet te delen.
Voor ‘normale’ contactpersonen heeft Microsoft diverse exportmogelijkheden. Je kunt alles naar een bestand exporteren en in dit bestand gaan filteren. Voor distributiegroepen is er volgens mij maar één manier die echt goed werkt en dat is export naar een .pst bestand. Een .pst bestand gebruik je ook wanneer je een backup wilt maken of wanneer je het geluk hebt dat je een nieuwe computer mag inrichten. Om snel een .pst bestand te krijgen met alleen de relevante zakelijke contactpersonen en distributiegroepen, heb ik de volgende methode toegepast.
Met de introductie van ASP.NET heeft Microsoft, zwart-wit gezien, als het ware de Windows Forms naar het Web gebracht. Controls konden ineens hun state bewaren d.m.v. de ViewState en daarnaast draaiden deze op de server. Kennis van o.a. HTML was niet meer een must om Webapplicaties te ontwikkelen. Dit maakte het voor ontwikkelaars zonder kennis van het Web een stuk toegankelijker. Ik als webontwikkelaar die begonnen is met -inmiddels classic – Active Server Pages (ASP) was dit in het begin enorm wennen en voelde vooral omslachtig en log aan.
Omdat het bovenstaande in de verleden tijd is geschreven doet het misschien vermoeden dat ASP.NET zijn beste tijd heeft gehad. Dit is absoluut niet het geval want het is nog steeds zeer geschikt voor Webapplicaties en er kan relatief snel resultaat mee geboekt worden.
Afgelopen april heeft Microsoft de eerste definitieve versie vrijgegeven van het ASP.NET MVC Framework. MVC staat voor Model-view-controller en is gebaseerd op het gelijknamige design pattern.
Lees verder…
Veel van het web-based ontwikkel werk bestaat uit het maken van formulieren, bijvoorbeeld voor het aanmelden bij een service. Nu zitten er in het .NET Framework allerlei WebControls om dit redelijk snel voor elkaar te krijgen, alleen kan dit behoorlijk herhaaldelijk worden wanneer het om uitgebreide formulieren gaat waarbij er voor de meeste TextBox controls een of meerdere Validators moeten worden toegevoegd, zoals de RequiredFieldValidator en/of de RegularExpressionValidator.
Lees verder…