Entity Framework 4.1
Ero troppo curioso di provare la nuova versione (beta) dei Tools per EF. Diciamo che la curiosità è stata parzialmente ripagata dato che con la prima versione non riuscii a fare granché essendo, almeno nella mia configurazione software, non molto stabile. Andiamo con ordine: dopo aver installato la nuova versione dei Tools, ho provato subito ad eseguire la funzione “Reverse Engineer Code First” (disponibile come voce di menu contestuale selezionando un progetto C#). Per l’esperimento ho scelto un database con diverse tabelle, relazioni e “gerarchie”. Dopo aver cliccato sulla voce precedente, VS ha iniziato a “macinare”...
Ieri 9/3/12 si è svolto l’evento WeWantWeb organizzato da DomusDotNet presso la sede Microsoft di Roma. Le sessioni sono state registrare e quanto prima pubblicheremo Slide, codice sorgente degli esempi e Video, sul sito di DomusDotNet. Grazie a tutti i partecipanti!!! Attendiamo i vostri feedback! Al prossimo evento . Da sinistra verso destra: Alessandro Mostarda e Massimo Bonanni, Giorgio Di Nardo, Nick, io , parte di coloro che hanno avuto la pazienza di ascoltarci .
Secondo articolo della serie dedicata ai WCF Data Services: utilizzo con Entity Framework, ed approfondimento su Service Operations. Nel codice allegato un client ASP.NET MVC di test. Articolo completo sul sito di DomusDotNet. Al solito, consigli e suggerimenti sono sempre ben accetti .
Rilasciata la versione Beta 1 di Code First Migrations. Tutti i dettagli qui. La semplicità di utilizzo è veramente notevole .
Se lavoriamo con EF utilizzando l’approccio Code First, in alcuni scenari, il mapping (ad esempio nel caso di classi di dominio già esistenti) potrebbe essere un task non banale. Riprendiamo un esempio di qualche tempo fa , aggiungendo all’Object Model l’entità Articolo, come riassunto dal Class Diagram seguente: Fattura espone una collezione di oggetti RigoFattura accessibile (dall’esterno) tramite l’IEnumerable<RigoFattura> pertanto, l’unico modo di aggiungere nuove righe alla fattura è l’utilizzo del metodo AddRigoFattura. Ancora, la classe RigoFattura contiene una proprietà CodiceArticolo che ritorna la proprietà Codice dell’istanza della classe Articolo referenziata, ma anche in questo caso, l’unico...
E’ stata rilasciata la versione 4.2 Release Candidate di Entity Framework. Tutti i dettagli relativi qui
Venerdì 7 ottobre si è tenuto l’evento Pomeriggio Entity Framework organizzato da DomusDotNet. L’argomento sembra aver suscitato un certo interesse dato il numero di presenze. Si è discusso dei vari approcci di utilizzo dell’O\RM di Casa Microsoft : Database First & Model First, Alessandro Mostarda, Code First (io, nonostante non fosse la mia prima esperienza da Speaker era la prima volta in casa Microsoft ) , WP7 e Database Locali (Nicolò). Grazie a tutti partecipanti !!! A presto! Qualche foto dell’evento: Da sinistra verso destra: Vela DomusDotNet,...
Maggiori info ed un dettagliato Walkthrough qui.
Rilasciata la versione CTP di “Code First Migrations” (per il momento solo per SQL Server), installabile via NuGet, che aggiunge alcuni comandi per la gestione delle modifiche di database creati utilizzando l’approccio Code First. Tutti i dettagli qui: http://blogs.msdn.com/b/adonet/archive/2011/07/27/code-first-migrations-august-2011-ctp-released.aspx. Attenzione alle compatibilità!!!
Rilasciati i Language Pack per EF 4.1. Lingue supportate: Chinese (Simplified) Chinese (Traditional) French German Italian Japanese Korean Russian Spanish Post: http://blogs.msdn.com/b/adonet/archive/2011/07/11/ef-4-1-language-packs.aspx Download: http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=26708
Devo ammetterlo, non ho resistito alla tentazione e ho subito installato sulla VM la versione CTP June 2011 di Entity Framework. La prima feature che ho provato è il supporto agli enumerativi in modalità Code First. Partiamo subito con l’esempio. Banale classe Product e relativo DbContext: public class Product{ public string Code { get; set; } public string Description { get; set; } public DiscountType Discount { get; set; }}public class Db : DbContext{ public DbSet<Product>...
Il Team di ADO.NET non ci lascia mai soli : http://blogs.msdn.com/b/adonet/archive/2011/06/30/announcing-the-microsoft-entity-framework-june-2011-ctp.aspx Riporto una porzione del post: What’s in Entity Framework June 2011 CTP? The Microsoft Entity Framework June 2011 CTP introduces both new runtime and design-time features. Here are some of the new runtime features: The Enum data-type is now available in the Entity Framework. You can use either the Entity Designer within Visual Studio to model entities that have Enum properties, or use the Code First workflow to define entities that have Enum objects as properties. You can use your Enum...
Sono stati rilasciati i Power Tools per Entity Framework, che dovrebbero permettere una maggiore integrazione dello sviluppo “Code First” con Visual Studio (almeno in questa release). Per il momento, maggiori dettagli sono disponibili direttamente sul blog del team di ADO.NET: http://blogs.msdn.com/b/adonet/archive/2011/05/18/ef-power-tools-ctp1-released.aspx
Chi usa i WCF Data Service (vedi ADO.NET Data Service), potrebbe incontrare qualche difficoltà nell’utilizzo di Entity Framework 4.1 utilizzando l’approccio Code First, “a causa” del DbContext, dato che un DataService<T> si aspetta un T derivato da ObjectContext . “Under the hood” il DbContext utilizza ObjectContext e di conseguenza è facile immaginare una possibile soluzione al problema: eseguire l’ovveride del metodo CreateDataSource del DataService<T> ed utilizzare l’ObjectContext corrente. E’ sufficiente qualche ricerca tramite Bing o Google per trovare del codice di esempio. Per chi ha voglia di sperimentare, può a scaricare la versione WCF Data Service CTP 2 di Marzo...
Direttamente dal blog del team di ADO.NET: http://blogs.msdn.com/b/adonet/archive/2011/04/11/ef-4-1-released.aspx
Utilizzando l’approccio Code First, potremmo pensare di applicare automaticamente DDD (Domain-Driven Design). In realtà non è così. Analizziamo la questione con un semplice esempio. Definiamo due classi, “Fattura”: public class Fattura
{
private int _numero = 1;
private DateTime _dataFattura;
private IList<RigoFattura> _righeFatture = null;
public int Numero
{
...
E’ da un po’ di tempo che volevo chiudere questa serie, forse questa sera ci riesco . A differenza del titolo, questo post farà riferimento alla versione RC di Entity Framework 4.1, ma per essere coerenti è necessario qualche nota su come rendere “utilizzabile” per questa versione il codice degli esempi precedenti (scritti per la CTP 5): 1) Disinstallazione della versione CTP5 di Entity Framework 2) Installazione della versione RC (scaricabile come pacchetto stand alone all’indirizzo: http://www.microsoft.com/downloads/en/details.aspx?FamilyID=2dc5ddac-5a96-48b2-878d-b9f49d87569a&displaylang=en) 3) Sostituzione della reference alla nuova libreria EntityFramework.dll 4) Cambiare la firma di OnModelCreating in : OnModelCreating(DbModelBuilder modelBuilder) ...