Confessions of a Dangerous Mind

Brain.FlushBuffer()
posts - 176, comments - 234, trackbacks - 93

PLINQO: LINQ2SQL on steroids!

Era da un pò di tempo che lo tenevo d’occhio: per la precisione dal mese prima della mia presentazione riguardante .netTiers al workshop di XeDotNet riguardante la code generation. L’altro giorno, discutendo con un cliente che mi chiedeva una soluzione “fluida” per utilizzare LINQ to SQL l’ho ripreso in mano e gliel’ho proposto. Devo dire che PLINQO ha fatto strada e a mio avviso rappresenta la miglior soluzione per l’impiego in applicazioni reali “data-oriented” della Code Generation basata su LINQ2SQL. Ma che cos’è PLINQO?

PLINQO è un insieme di template di CodeSmith che permette di generare intere soluzioni in pochi secondi, ed è basato su LINQ to SQL. Tra le caratteristiche (veramente tante) che questo template offre, volevo esaltare:

  • Sincronizzazione del database con il file DBML.
  • Creazione automatica di Managers (AKA Providers) per l’estrazione “ragionata” dei dati, sempre basata sull’infrastruttura di database (GetByPK, GetByIndex, etc)
  • Query Extensions: è possibile estendere le query, tramite Extension Mehods, per combinre dinamicamente i filtri delle nostre query LINQ
  • Impiego di Metadati per la configurazione delle proprie entità (Utilizza System.ComponentModel.DataAnnotations)
  • Entity Detaching: PLINQO colma una delle lacune più sentite di LINQ to SQL, ovvero la possibilità di “staccare” una entity dal proprio DataContext e “riattaccarla” ad un altro datacontext quando si è pronti per salvare le modifiche (es. scenari basati su web services)
  • Pieno supporto alle regole di validazione, sia dichiarative che imperative
  • Pieno supporto alle relazioni Many-to-Many

Tutte queste caratteristiche, e molte altre, sono disponibili nell’attuale versione di PLINQO disponibile per il downolad a questo indirizzo. Sono disponibili anche molti video e della documentazione veramente ben fatta. Provatelo, non ve ne pentirete.

Print | posted on domenica 6 dicembre 2009 13:20 |

Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET