Provider Model Design Pattern

Daniele Bochicchio

di , in ASP.NET,

Mi ci sono imbattuto per la prima volta 2 anni fa, modificando ed assimilando l'architettura del forum. All'inizio mi sembrava un controsenso, un appesantimento del sistema.

A capo del progetto c'è sempre stato Rob Howard, allora PM del dev team di ASP.NET, da un paio di mesi tornato "libero".

La versione 2.0 dei forum, in beta, è in realtà la prima ad implementare anche altri provider, ma già nella 1.0 era possibile vedere, seppure limitatamente a SQL Server, quanto fosse geniale l'idea di avere API generiche e l'implementazione particolare fornita da una classe specifica, specializzata per ogni data provider. Fu così che nacque il Provider Model Design Pattern.

Se ne trova una ampia trattazione in questa prima parte e nella seconda, applicata alle funzionalità di ASP.NET 2.0.

Niente di strano, è un pattern come tanti altri, verrebbe da pensare.

No, in realtà è il pattern per ASP.NET 2.0. Tutte le funzionalità, dall'authorization APIs, alla personalization, ai SiteMap, a qualsiasi cosa vi passi per la testa (inclusi i data controls) passa per questo pattern.

Tutto in ASP.NET è pluggabile, ovvero, tanto per capirci, è arricchibile da plug-in. Che vuol dire, semplicemente, che tutto è comandato da provider.

Sembra tanto, se ci riflettiamo bene, la scoperta dell'acqua calda. Invece è solo la presa di consapevolezza che nel mondo dello sviluppo non siamo soli, che dobbiamo preparci ai cambiamenti (perchè, come sviluppatori lo sappiamo, le esigenze delle nostre applicazioni variano spesso) e che dobbiamo, soprattutto, incominciare ad utilizzare regole, precise e rigorose, per le parti sensibili delle nostre applicazioni.

Il vantaggio di un modello rispetto ad un'implementazione astratta, poi, è che chi lo implementa non deve subire scelte progettuali specifiche, perchè, in fin dei conti, è libero di fare ciò che vuole, a patto che rispetti poche ma sensate regole.

Pensate alle Personaltion APIs: se le avete provate noterete quanto sia semplice personalizzare la propria implementazione.

Alla fine dovremo sempre utilizzare la classe ProviderBase come punto di partenza, piuttosto che le implementazioni particolari, come MembershipProvider, ma ciò che resta è il concetto: essere liberi di creare il proprio provider, non buttare via la struttura attuale delle nostre applicazioni web, ed essere felici di passare alla 2.0 con la consapevolezza che ASP.NET ha raggiunto ormai un ottimo punto di maturazione.

Commenti
Provider Model Design Pattern

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Nella stessa categoria
I più letti del mese
TAG CLOUD
.NET Framework, .NET Framework 2.0, .NET Framework 3.0, .NET Framework 3.5, .NET Framework 4.0, .NET Micro Framework, 10annidi, ADO.NET, AJAX, Architettura, ASP, ASP.NET, ASP.NET 2.0, ASP.NET 2.0 per tutti, ASP.NET 3.5, ASP.NET 3.5 per tutti, ASP.NET 4.0, ASP.NET 4.0 Guida completa, ASP.NET AJAX, ASP.NET Charting, ASP.NET MVC, ASPItalia.com, C# 4 Guida completa, Cache, Community Days 2010, Community Days 2012, CSS, Custom Control, Database, Databinding, Datagrid, Deployment, Dynamic Data Control, Entity Framework, Expression Blend, HTML 5 Espresso, HTML5, HttpHandler, HttpModule, HttpRuntime, IIS, ISAPI, Javascript, jQuery, LINQ, LINQ to Entities, LINQ to SQL, LogParser, Master Pages, Media Center, Membership API, Metro, Microsoft Expression, MIX11, Model Virtual Casting, Mono, MySQL, Object Oriented Programming, Off Topic, Office, ORM, Parallel FX, Pattern, PDC 2008, Profile API, Provider Model, Real Code Day 6, Report, Roles API, Security, SEO, Silverlight, Silverlight 2.0, Silverlight 3.0, Silverlight 3.0 Guida Completa, Silverlight 4.0, SQL Server, User Control, Visual Basic 2010 Guida completa, Visual Studio, WCF Data Services, WCF RIA Services, Web Service, web.config, Windows 7, Windows 8, Windows Azure, Windows Client, Windows Communication Foundation, Windows Identity Foundation, Windows Live Services, Windows Phone, Windows Phone - il libro, Windows Phone 7, Windows Phone 7.1, Windows Presentation Foundation, Windows Server, Windows Vista, WinRT, XAML, XBox 360, XHTML, XML, XNA, XSLT
BLOG INFO
  • 1.019 post, 438 commenti, 195 trackback
  • Feed blog: RSS Atom
In evidenza