Technology Experience
.NET World

L’importanza di ereditare dall’applicazione giusta

Quando abbiamo imparato a programmare secondo la metodologia OOP, tutti, chi prima e chi dopo, abbiamo imparato che se ad esempio volessimo creare un nuovo controllo conviene ereditare da quello che più gli assomiglia ed implementare solo la parte richiesta. Quindi, se avessimo bisogno di una TextBox specializzata per lavorare con url, potremmo creare una classe UrlTextBox:

public class UrlTextBox : System.Windows.Forms.TextBox { }

E ancora, se avessimo bisogno di una Label particolare, mi potremmo creare uno UserControl che erediti da System.Windows.Forms.Label. E così via.

Una cosa di cui sento parlare poco negli ambienti virtuali che frequento è la possibilità di applicare lo stesso tipo di approccio anche con intere applicazioni, a patto che queste ‘intere applicazioni’ siano abbastanza amichevoli – passatemi il termine – per permettere a qualcun’altro di interagire con loro. Spesso noi programmatori abbiamo la tendenza a non pensare neanche ad una soluzione di questo tipo. Vogliamo partire completamente da zero nello sviluppo, più che altro per così sappiamo che avremo il pieno controllo di tutti gli strati applicativi.

Ora, lasciate che vi illustri uno scenario. Supponiamo di dover scrivere un’applicazione che fondamentalmente debba gestire un calendario. L’anagrafica è composta da artisti e locali. Il calendario conterrà appuntamenti, dove si esprime il fatto che un certo artista andrà in un certo locale in un certo periodo della giornata per cantare e ballare ed incassare tot euro. L’appuntamento avrà caratteristiche particolari: il compenso dell’artista, la sua provvisorietà o meno, l’agente, note varie, etc. etc. L’applicazione dovrà fornire all’utente una vista semestrale del calendario, artista per artista e locale per locale. L’applicazione dovrà avere un modulo di fatturazione, molti diversi tipi di report, e molto altro ancora.

Ma l’applicazione di cui sto parlando è fondamentalmente un calendario, al quale vengono applicate determinate restrizioni in alcuni casi. Quindi, mi stavo chiedendo, invece di scrivere tutto da zero, perchè non sfruttare ciò che già c’è. Perchè non partire da un’applicazione esistente, e restringere ciò che va ristretto, ed estendere ciò che va esteso? Perchè non scrivere una cosa del tipo…

public class MyApplication : Outlook { }

e lavorarci su con strumenti come Visual Studio Tools for Office ? Non è che si fa proprio così, ma è solo per rendere l’idea. Creare ribbon e toolbar, integrare plug-in capaci di fare tutto il necessario, capaci di incorporare al loro interno componenti realizzati con framework complessi come Windows Presentation Foundation.

Non è che le cose diventino pù semplici, magari fosse così, è solo che viene spostata la nostra attenzione, dal momento che l’applicazione host ci dà già alcuni servizi aggratis.

Meditate gente, meditate.

Send to Kindle

Igor Damiani

La sua passione per l'informatica nasce nella prima metà degli anni '80, quando suo padre acquistò un Texas Instruments TI-99. Da allora ha continuato a seguire l'evoluzione sia hardware che software avvenuta nel corso degli anni. E' un utente, un videogiocatore ed uno sviluppatore software a tempo pieno. Igor ha lavorato e lavora anche oggi con le più moderne tecnologie Microsoft per lo sviluppo di applicazioni: .NET Framework, XAML, Universal Windows Platform, su diverse piattaforme, tra cui spiccano Windows 10 piattaforme mobile. Numerose sono le app che Igor ha creato e pubblicato sul marketplace sotto il nome VivendoByte, suo personale marchio di fabbrica. Adora mantenere i contatti attraverso Twitter e soprattutto attraverso gli eventi delle community .NET.

Lascia un commento

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

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.