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

Archief van '.NET'

N-Tier architectuur – uitleg (deel 4)

De vorige keer hebben we de structuur van de solution aangemaakt. We gaan dit keer verder met het bouwen van de BusinessObjects. Waarom eerst de Business Objects? De Business Objects komen overal in elke laag weer terug. Als ik nu eerst de DataLayer zou bouwen, zou ik de helft niet kunnen maken, omdat ik dan references nodig heb naar Business Objects. We kunnen niet zonder deze objecten.
Lees verder…

N-Tier architectuur – uitleg (deel 3)

We gaan nu stap voor stap het framework bouwen. Ik gebruik hiervoor Visual Studio 2005.
Maak in Visual Studio een nieuwe Solution aan. File->New->Project. In de treeview ProjectTypes selecteer je Other Project Types -> Visual Studio Solutions. Vervolgens selecteer je in Templates de Blank Solution. Noem de Solution OrderSystem.

Het eerste wat we nu gaan doen is de Logische indeling in Layers maken. Klik in de Solution Explorer met de rechtermuisknop op de solution node. Selecteer Add->New Solution Folder. Geef de folder de naam DataLayer. Doe hetzelfde nog een keer voor Business Layer en Framework.


Lees verder…

N-Tier architectuur – uitleg (deel 2)

Nu de architectuur uitgelegd (zien mijn vorige blogitem) is komen we bij de uitvoering. Allereerst wordt er een functioneel ontwerp gemaakt. Hierin wordt de functionaliteit beschreven die nodig is voor het orderverwerkend systeem. Voor het functioneel ontwerp kan het erg handig zijn om use cases (UML) te gebruiken. De use cases beschrijven precies wat de verwachtingen en omstandigheden zijn voor bepaalde functionaliteit. Het gaat te ver om dat nu te doen. Ik wil het voor de duidelijkheid heel simpel houden, het gaat om het principe.
Lees verder…

N-Tier architectuur – uitleg (deel 1)

Er is al veel geschreven over n-tier architecturen. Zo zijn er verschillende visies over hoe een n-tier architectuur eruit moet komen te zien. De verschillen in visies zijn niet zozeer zichtbaar in het conceptuele model, maar pas als er meer details in beeld komen. Voor mij is het een lange tijd onduidelijk geweest hoe ik nu concreet een n-tier architectuur kon gaan implementeren. Theoretisch wist ik precies hoe het moest. Er ontbraken telkens puzzelstukjes. Die ontbrekende puzzelstukjes heb ik kunnen vinden door me meer te gaan richten op design patterns. Ik kwam er achter dat de meeste ‘problemen’ al beschreven zijn in design patterns.

In de loop van de tijd wil ik van ontwerp tot implementatie het onderwerp N-tier architecturen uitdiepen aan de hand van een voorbeeldapplicatie.
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
Weer een overzicht van allerlei nieuws en interessante informatie.

Je kunt op verschillende manieren Win32 en .Net naast elkaar gebruiken. Voor als je bijvoorbeeld veel Win32 code hebt, die je niet 123 helemaal kunt/wilt porten naar .Net.

Ander .Net nieuws:

Natuurlijk ook normaal Delphi nieuws en tips:

Verder nog leuk om te vermelden:

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

Het heeft een poosje geduurd, maar bij deze weer een aantal interessante links:


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…