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);
- In het bovenstaande voorbeeld wacht het spel totdat de princes zichtbaar is, vervolgens loopt de prins er naar toe en geeft de princes een dikke kus. Elke actie kan een lange tijd duren :-). In de tussentijd loopt het normale spel, in dezelfde thread, gewoon door! Je kunt dit ook met callbacks, events en threads doen, maar bij veel van dit soort kleine wachtacties geeft dit veel te veel overhead (elke thread heeft 1Mb stack).
- SuperComputing Mono: Mono ondersteunt nu 64bit arrays (MS .Net op Windows64 en Java ondersteunen dit niet!).
- Silverlight schijnt toch niet altijd even goed en stabiel te werken: de Major League Baseball gebruikt weer "gewoon" Flash na problemen met Silverlight.
- de website NTCore.com is de moeite waard om wat tijd aan te besteden. Het bevat mooie gratis tools (zoals CFF Explorer , Rebel.Net en .Net Unpacker/Dumper), diepgaande artikelen over .Net hacking zoals Native Compiling en Code Injection, en uiteraard een blog.