Rilasciata la prima versione di BindAPI per Delphi

BindAPI è una libreria open source per #Delphi compatta e flessibile che consente di collegare con minimo sforzo istanze di classi di ogni tipo.

BindAPI è una libreria compatta e flessibile che consente di collegare con minimo sforzo istanze di classi di ogni tipo.

Morandotti.it è lieta di comunicare il rilascio della prima versione pubblica di BindAPI per Delphi, una libreria per Embarcadero Delphi che permette di implementare con pochissime righe di codice pattern architetturali quali MVC, MVP, MVVM e simili. Il suo scopo primario è quello di fornire una libreria di uso facile e immediato per prototipi, demo, POC e piccole applicazioni. A lungo termine, si propone come alternativa leggera ai sistemi di binding attuali in tutte le applicazioni che non siano time-critical.

Dark Mode

BindAPI (this link opens in a new window) by pmoitaly (this link opens in a new window)

A library for Delphi Rio to bind properties and fields among class instances with attributes and few lines of code.

I vantaggi di BindAPI

BindAPI permette di decorare qualsiasi classe con attributi che collegano le sue proprietà e i suoi campi a quelli di altre classi. In questo lo sviluppo di prototipi e applicazioni demo non deve preoccuparsi di scegliere immediatamente un’architettura o i sistemi di binding da adottare, ma possono concentrarsi sull’implementazione della business logic con una miglior gestione dei tempi e delle risorse. Alcune delle sue caratteristiche sono:

  • Offre un totale disaccoppiamento tra le classi di un’applicazione.
  • Si adatta a tutte le librerie esistenti; non richiede, pertanto, di adattare la VCL, FMX o altre popolari librerie di componenti visuali al pattern observer o ad altri sistemi di binding.
  • A differenza della tecnologia nativa Livebinding, opera su qualisiasi campo o proprietà di una classe, purché contenga informazioni RTTI
  • Permette di definire il collegamento tra due elementi in base al loro path (per esempio, ‘edit1.text’).
  • E’ possibile associare ad ogni collegamento una funzione che modifichi il valore ricevuto dal target.
  • La facilità con cui i collegamenti possono essere creati in qualsiasi momento dello sviluppo consente di rispondere velocemente a qualsiasi cambiamento dei requisiti,
  • Si adatta ai pattern architetturali più usati come MVC, MVP, MVVM e altri
  • Il supporto alla conversione automatica dei tipi più comuni agevola le modifiche dei componenti, non richiedendo interventi di adattamento.

L’uso di BindAPI si concentra nella decorazione delle classi interessate al binding e le linee di codice davvero necessarie sono solo quelle che provvedono alla loro registrazione:

uses
  ...,
  plBindAPI.Attributes, plBindAPI.CoreBinder, plBindAPI.AutoBinder,
  plBindAPI.ClassFactory;
type
  {Bind an instance of this class to an instance of TTestController}
  [ClassBind(True, 'TTestController')]
  {The value of the property edtSame.Text is read from TTestController.TestObject.IntProp}
  [BindFormFieldFrom('edtSame.Text', 'TestObject.IntProp')]
  {The following bind is disabled (first parameter is False)}  
  [BindFormFieldFrom(False, 'edtTarget2.Text', 'LowerText')]
  {Bind an instance of this class to an instance of TTestController and the value is converted by TTestController.DoubleOf}
  [BindFormFieldTo(True, 'speValue.Value', 'DoubleValue', 'DoubleOf')]
  {Bind the event btnTest.OnClick to the procedure TTestController.TestEventBind}
  [EventBind(True, 'btnTest.OnClick', 'TestEventBind')]
  TfrmBindApiSimpleDemo = class(TForm)

Gli sviluppi futuri

BindApi è stata rilasciata con licenza MIT e il suo codice, aggiornato alla versione 0.8, è liberamente scaricabile dal nostro spazio di Github. Per il momento è considerata una versione prototipale adatta ad applicazioni specifiche, soprattutto nello sviluppo di demo, prototipi e piccole applicazioni, ma nei prossimi mesi saranno gradualmente apportate migliorie quali il supporto per FreePascal Compiler, una documentazione più completa, nuovi test case e altre funzionalità. Una guida introduttiva in italiano è pubblicata in questo sito.

La seconda fase vedrà la possibilità di implementare un sistema basato sul pattern Observer in alternativa al sistema di polling implementato ora.

(Foto di abietams da Pixabay)

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *