Premetto che non avrei mai scritto un post sull'argomento, però dato che mi piace fare delle considerazioni, ne sfrutto l'occasione.
Partiamo subito dalle considerazioni. LightSwitch è un prodotto Microsoft che permette di realizzare applicazioni 3-Tier in modo molto semplice e veloce.
Dall'uscita del prodotto, subito sono sorte domande la cui risposta (imho) è negativa ovvero:
Lightswitch è/tenta di sostituire Access? No. Access è Access, ha un altro target. Può sembrare simile, ma solo in lontananza.
E' possibile creare applicazioni 1-Tier? No. O meglio, LightSwitch non è pensato per questo.
E' possibile utilizzare strumenti/tecniche...
LightSwitch permette di creare/gestire un database al suo interno senza utilizzare strumenti esterni. Questo DB è chiamato ApplicationData e verrà generato in produzione, in fase di deploy, utilizzando una connection string impostata tramite widzard.
Cosa avviene in pratica:
- La connessione viene memorizzata, sempre con lo stesso nome "_IntrinsicData", all'interno del web.config deployato.
- l'ObjectContext di EF viene autogenerato nel file ServerGenerated\GeneratedArtifacts\ApplicationData.cs
Per utilizzare l'ObjectContext in un WCF Ria Service quindi basta:
- Aggiungere il file al progetto WCF Service (As Link dato che verrà rigenerato)
- Recuperare l'ObjectContext nel seguente modo:
EntityConnectionStringBuilder builder = new EntityConnectionStringBuilder();builder.Metadata = "res://*/ApplicationData.csdl|res://*/ApplicationData.ssdl|res://*/ApplicationData.msl";builder.Provider = "System.Data.SqlClient";builder.ProviderConnectionString = WebConfigurationManager.ConnectionStrings["_IntrinsicData"].ConnectionString;var context = new ApplicationDataObjectContext(builder.ConnectionString);
In questo modo è possibile:
- eseguire query complesse sul nostro db applicativo (quelle supportate dal provider di EF)
-...