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

Archief van 'Code'

Rene Kapitein

Registry File

De laatste tijd ben ik weer regelmatig bezig met het maken van kleine aanpassingen in bestaande Visual Basic 6 applicaties. Ik heb daarbij vaak heel veel vensters met code geopend. CTRL + F4 dan maar om alles af te sluiten. Het is daarbij vervelend dat je in VB6 niet bij de instellingen kunt opgeven dat je het venster met code maximaal wilt vergroten. Het schijnt dat VB5 deze optie nog wel had.

Niet voor één gat te vangen, vond ik de registry instelling waarmee je deze vergeten optie zelf kunt instellen. Ik dacht dit even snel te doen met uitvoeren –> regedit.


Lees verder…

Laat ik beginnen om mezelf even voor te stellen. Mijn naam is Peter van Ooijen en ik ben software ontwikkelaar en bij deze nu ook blogger op 4dotnet. Sommigen van jullie kennen mij misschien van mijn weblog op Codebetter. Of misschien nog van vroegere artikelen in het SDN magazine. Ik heb dus al een weblog. Een daar blijf ik ook schrijven. Waarom begin ik er hier dan nog ééntje ? En waarom hier bij 4dotnet ? Daar zijn verschillende redenen voor.
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…

Andre Mussche

Een aantal zaken mbt Delphi (Win32 + Prism):

  • RemObjects heeft hun open source repository uitgebreid metDelpi Prism Templates en Delphi Prism Aspects .
    Op moment van schrijven zitten er alleen een Monoobj Template en een ASP.Net MVC Template en een CheckDisposedAttribute Aspect .
    De bedoeling is dat dit natuurlijk uitgebreid wordt, en iedereen wordt aangemoedigd om mee te helpen!
  • Ik had in mijn vorige blog al even Plastic SCM genoemd. Er is een interessant blog van de makers verschenen over het blame commando: hiermee kun je opvragen welke regel door wie of in welke branch aangepast is!
  • Verder kun je Plastic SCM koppelen dmv triggers met bijvoorbeeld CruiseControl, voor Contineous Integration .
  • Momenteel ben ik aan het oriënteren voor een nieuwe data object structuur bij mijn huidige opdrachtgever. Dit omdat in de toekomst waarschijnlijk meer met .Net gedaan gaat worden (Delphi 2007 + Delphi Prism?). Dan vervalt sowieso de huidige (en oude) structuur. Dus als iemand ideeën of tips heeft, graag! (het liefst voor zowel Delphi als .Net te gebruiken ipv 2 verschillende).
  • Een interessante kandidaat is Hitsoft SQL Object Library (HitSQLe): een soort LINQ voor Delphi Win32! Uiteraard niet 100% compatible maar toch heel uitbreid en krachtig. Zo hoef je oa niet druk te maken over Oracle of SQL Server commando’s, en het heeft een ingebouwde connection pool. O ja, en het is nog open source ook!
  • Een ander alternatief is Data Abstract van RemObjects . Hiermee kan namelijk eenvoudig multi-tier systemen mee gebouwd worden. Ik heb al eens een Proof Of Concept gemaakt voor multi-tier, boven op het RemObjects Remoting Framework (wat wat we al voor messaging en onderlinge service communicatie gebruiken). Maar Data Abstact werkt ook boven op dezelfde SDK, en het is idem database onafhankelijk (het gebruikt oa Schema Modeler ). Ook interessant dus :-) .
  • Momenteel ben ik bezig met het opfrissen van de GUI. Oa met de nieuwe versie van de VCL Components van TMS (ze hebben ook .Net componenten). Hiermee kan bijvoorbeeld eenvoudig een “Office 2007 Blue” look verkregen worden, maar je kunt ook zelf de kleuren schema’s aanpassen. Zo moet straks een groene Greenax look verkregen worden ivm de integratie hiermee.
  • Verder heeft TMS mooie “Smooth” componenten! Deze maakt gebruik van de videokaart voor de 3D effecten.
  • Naast de TMS componenten, wordt nu ook gebruik gemaakt van de mooi iconen van GlyphLab. Dit is een hele uitgebreide set, inclusief originele gelayerde PhotoShop bestanden, zodat je zelf eenvoudig aanpassingen en combinaties kunt maken! En $200 is dan niet duur! Een verademing in vergelijking met de ouderwetse Delphi 3 iconen… Het leuke van het aanpassen van GUI is dat in principe de werking gelijk blijft, maar het toont gelijk een heel stuk beter!
  • Nog meer wat betreft de GUI? Ja, want GUI testen is nogal lastig. Hopelijk gaat OpenCTF mij hierbij helpen. Dit is een uitbreiding op DUnit, waarmee ik al bezig geweest ben voor een POC voor integratie testen.

Nog wat leuke informatie mbt .Net algemeen:

  • Het Mono project heeft een aantal uitbreidingen gemaakt voor .Net. 1 ervan is Mono.Simd. Hiermee kan eenvoudig en snel met vectoren gewerkt worden, die door de Mono compiler omgezet wordt in SSE /SIMD instructies voor de CPU. Dit is stukken sneller dan normale CPU instructies. Mono.Simd is compatible met het Microsoft .Net framework, alleen maakt deze compiler er normale CPU instructies van, dus vele malen trager (maar het is wel compatible). Het is vooral bedoel voor games, omdat deze veel gebruik maken van vectoren.
  • Een specifiekere uitbreiding is ondersteuning voor Microthreads (of Continuations). Vooral bedoeld voor games, maar kan ook goed gebruikt worden voor afhandeling van veel (kleine) netwerk connecties. Microthreads draaien in 1 thread, waarbij bijvoorbeeld de status van een functie opgeslagen kan worden (CPU registers, stack, etc), zodat deze later weer “resumed” kan worden. Het gaat te ver om het helemaal uit te leggen, lees het blog zelf maar :-) . Maar een voorbeeld is wel handig:

prince.WaitForObjectVisible (princess);
prince.WalkTo (princess);
prince.Kiss (princess);

Andre Mussche

RemObjects SDK is een Remoting Framework, waar onder andere eenvoudig WebServices mee gemaakt kunnen worden. Het is van het gelijknamige RemObjects.com . De laatste tijd is het vooral bekend geworden door Delphi Prism , omdat zij de Oxygene compiler geschreven hebben. RemObjects maakt nog meer mooie software: Hydra (.Net assemblies in Win32 gebruiken), Data Abstract , Pascal Script, etc. Niet alleen Delphi maar ook .Net (Visual Studio) wordt ondersteund.
Ik heb geluk gehad dat ik bij mijn huidige detacheringsopdracht met deze mooie software in aanraking mocht komen :-) .

Lees verder…

Andre Mussche

Vorige week heeft CodeGear de Delphi Prism Roadmap vrijgegeven. 1 onderdeel wat me opviel was de support voor “Aspect Oriented Programming” (AOP). Ik heb deze term opgezocht bij Wikipedia (AOP [nl] en AOP [en] ) en simpel gezegd komt het erop neer dat het een uitbreiding is van “Object Oriented Programming”, waarbij de nadruk ligt in het verdelen van functionaliteit in “aspecten”. Leuk, maar hoe werkt dit in de praktijk?

Gelukkig verscheen eind vorige week een interesante blog op de blogsite van RemObjects (makers van de Oxygene compiler in Delphi Prism): Delphi Prism AOP – Cirrus

Lees verder…

Andre Mussche

Ik gebruik Delphi 2007 nog niet zo heel lang, omdat de huidige klant nog de oude Delphi 6 versie gebruikte. Sowieso zijn er best veel bedrijven die bijvoorbeeld Delphi 7 nog steeds gebruiken (wat vaak gewoon goed bevalt). Best jammer, want Delphi 2007 en 2009 zijn mooie en goede Delphi versies, met veel verbeteringen: IDE, VCL en Language features.

Het nadeel van nieuwe features is echter: je moet ze wel gebruiken :-) . Heel gauw ben je geneigd om je oude gewoontes te blijven gebruiken: bijvoorbeeld nog steeds “for i := 0 to stringlist.Count-1 do” gebruiken in plaats van “for s in stringlist”.

Lees verder…

Andre Mussche

Even weer een “dump” van mijn bezigheden, ontdekkingen en ervaringen tijdens het programmeren:
Lees verder…

Andre Mussche

Op mijn huidige detacheringsplek gebruiken ze “Team Coherence” (http://www.teamcoherence.com) voor versie beheer en bug/issue tracking. Ze gebruiken dit pakket heel strict: bijvoorbeeld elke check-in moet een tracker melding hebben, een tracker heeft aantal stadia (waaronder controle door de aanvrager of indiener), versie labels, promotion levels, etc.


Lees verder…

Andre Mussche

Ik had wel eens eerder gehoord dat ADO traag zou zijn, maar ik had met ADO nog geen ervaring.
(trouwens, deze traagheid geldt voor ADO Win32, ADO.net weet ik niet, maar als ik SQL Server Enterprise Manager 2003 (win32) vergelijk met SQL Server Management Studio 2005 (.net) dan is de .Net versie VELE malen trager!).


Lees verder…