ITDevCon 2014, Call4Papers

Dear potential ITDevCon speaker, As every year, I’m building the agenda for next ITDevCon that will be held next october 23th, 24th in Milan (Italy), in a new location. This will be the 6th edition ( we’re getting conference experts J ) The call for papers are officially open right now, so if you want to propose some speeches, I’ll be glad to see it. As usual, for the Call4Paper I need: Title (for every talk) Abstract (for every talk) Difficulty level (for every talk. Difficulty level is a scale from 1 to 3 with the following mean: introduction, intermediate,…
Continua a leggere →

Delphi MVC Web Framework – “Hello World”

This is the first “Hello World” for my Delphi MVC Web Framework. program DelphiMVCWebFramework; {$APPTYPE CONSOLE} uses System.SysUtils, MVCEngine in 'MVCEngine.pas', BaseController in 'BaseController.pas'; var mvc: TWebMVCEngine; begin mvc := TWebMVCEngine.Create; mvc.AddRoute('/', procedure(Context: TWebContext) begin Context.Write('Hello World'); end).Start(8080); ReadLn; mvc.Free; end. Features list (some of them are in the internal roadmap) Completely MVC Addressable with servername/controllername/actionname?par1&par2 Addressable with servername/controllername/actionname/par1/par2 Can also use anonymous methods as actions for very simple app (in the sample) Really RESTful (Level 3 of the Richardson Maturity Model) Fully integrable into WebBroker and DataSnap Supports multiple resource rapresentations Completely customizable routing using internal formatting or regex…
Continua a leggere →

In the core of LiveBindings expressions of RAD Studio XE2

WARNING! I’ve been authorized by EMBARCADERO to write about RAD Studio XE2. RAD Studio XE2 is full of nice and exciting features. One of the most awaited of them is the LiveBindings. The LiveBindings is available to the VCL and the new FireMonkey framework and allows to connect a property object to another using an expression and a set of observers. Let’s say Edit1.Text “is binded to” Person1.Name also in a bidirectional way. The “link” between a property (or a group of properties) and another property can also be very complex. The following is an example of a complex bind…
Continua a leggere →

Sneak preview about DORM, The Delphi ORM

My yesterday post about this busy time, have raised some interest about DORM, the Delphi ORM. So, also if I still haven’t released any files, wish to expose some internals about DORM. DORM is an implementation of the DataMapper design pattern written having Hibernate in mind. It’s completely unit tested and have the following features: External file mapping. (JSON format) Persistence ignorance (every TObject can be persisted) Support for One-One and One-Many relations (still no many-many) Support for LazyLoading (you can enable§/disable lazyloading by file or by code by per-basis needs) Support for IdentityMap Support for custom “finder” (you can…
Continua a leggere →

A Simple start with MVP in Delphi for Win32, Part 2

Some month ago I wrote a simple article about an MVP variant called PassiveView. That example was very simple. Now I’ll present a more “advanced” version of that example. The main problem with first example was the following method: procedure TfrmCalculatorView.FormCreate(Sender: TObject); begin //Link controls with related interface IFirstOperand := TGUIEdit.Create(EditFirstOp); ISecondOperand := TGUIEdit.Create(EditSecondOp); ICalcResult := TGUIEdit.Create(EditResult); IOperators := TGUISelectableList.Create(ComboOperators); IError := TGUIEdit.Create(EditError); //link view and presenter FPresenter := TCalculatorPresenter.Create(Self); //<<– THIS IS THE BAD LINE end; The “BAD” line links the View with the Presenter but it’s in the view code, so this is meaning that View KNOWS the…
Continua a leggere →

A simple Dependency Injection Container for Delphi

As wikipedia says: “Dependency injection (DI) in computer programming refers to the process of supplying an external dependency to a software component. It is a specific form of inversion of control where the concern being inverted is the process of obtaining the needed dependency. The term was first coined by Martin Fowler to describe the mechanism more clearly.” Many of us have already read this historical article from Martin Fowler about dependency injection pattern, but actually there isn’t a real framework for implement dependency injection in Delphi. There are already the following implementation for DI in Delphi Emballo (work with…
Continua a leggere →

My AMQP Delphi wrapper is in the standard 0MQ distribution

Yes, this is a nice news! My AMQP Delphi wrapper for 0MQ is officially included into the distribution of 0MQ. Now sources are managed into the main svn trunk. You can read the news in the project’s main page. You can see the code here. In the upcoming greatest Delphi conference ITDevCon, I’ll have a talk about MoM (Message oriented middleware) and I’ll talk about ZeroMQ too.

Using AMQP from Delphi with ZeroMQ

The Advanced Message Queuing Protocol (AMQP) is an open standard application layer protocol for Message Oriented Middleware (MoM). The defining features of AMQP are message orientation, queuing, routing (including point-to-point and publish-and-subscribe), reliability and security. The good news about AMQP is that AMQP mandates the behaviour of the messaging provider and client to the extent that implementations from different vendors are truly interoperable, in the same way as SMTP, HTTP, FTP, etc. have created interoperable systems. In a so “Open” market, live an interesting project called ZeroMQ. In a my recent Delphi project, I must choice a thin and fast…
Continua a leggere →

My speech at “PHPCon Italia 2009″

I will talk at the italian PHPCon in Rome on March 18-20 2009. I will talk about “Data Access Design Patterns” showing many PHP examples. PHPCon Italia 2009 Holiday Inn Eur Parco dei Medici Viale Castello Della Magliana 65 ROME, 00148 ITALIA Web Site Click here for discount on ticket (italian web site) And this is the “Speaker Button”

A Simple start with MVP in Delphi for Win32, Part 1

As GUI framework such as VCL become more and more powerful, it’s common practice to let the UI layer do more than it should. Without a clear separation of responsibilities, the UI layer can often become an integral part of application and businness logic, but… this kind of responsabilities belongs to other layers of the application. A design pattern (and his numberless variants), is especially well suited to solving this problem. In this article I want to build a simple application using MVP pattern. Actually, pattern used is not “clear” MVP but his variation called Passive View. Using Fowler words:…
Continua a leggere →

1 2