Entity Framework 6 for developers, Code-First!Michael Denny
https://www.sqlsaturday.com/viewsession.aspx?sat=355&sessionid=25373
Entity Framework è la tecnologia (open-source) di accesso ai dati consigliata e coordinata da Microsoft, in dettaglio è un ORM (object-relational mapper) nato dall'esigenza di volere accedere a dati relazionali sfruttando la pura programmazione ad oggetti, eliminando quasi completamente la necessità di dovere scrivere codice specifico per l'accesso ai dati (T-SQL). In particolare in questa sessione vedremo come sfruttare Entity Framework ricavandone il massimo dell'elasticità, partendo dal codice (Code-First) e non da un designer (Model-First), inoltre vedremo come sia possibile accedere anche ad un database esistente, sempre in code-first. Indipendentemente che siate nuovi, o abbiate già sguazzato in altre tecnologie ORM, vi mostrerò quanto velocemente sia possibile iniziare a lavorare con EF6 e aumentare la vostra produttività durante la creazione di applicazione .NET data-centriche.
Sessione "Advanced ef code first 5.0" tenuta da Luca Cestola all'evento EF@Work di DomusDotNet (http://www.domusdotnet.org/eventi/efatwork.aspx) del 5 Luglio 2013
Entity Framework 6 for developers, Code-First!Michael Denny
https://www.sqlsaturday.com/viewsession.aspx?sat=355&sessionid=25373
Entity Framework è la tecnologia (open-source) di accesso ai dati consigliata e coordinata da Microsoft, in dettaglio è un ORM (object-relational mapper) nato dall'esigenza di volere accedere a dati relazionali sfruttando la pura programmazione ad oggetti, eliminando quasi completamente la necessità di dovere scrivere codice specifico per l'accesso ai dati (T-SQL). In particolare in questa sessione vedremo come sfruttare Entity Framework ricavandone il massimo dell'elasticità, partendo dal codice (Code-First) e non da un designer (Model-First), inoltre vedremo come sia possibile accedere anche ad un database esistente, sempre in code-first. Indipendentemente che siate nuovi, o abbiate già sguazzato in altre tecnologie ORM, vi mostrerò quanto velocemente sia possibile iniziare a lavorare con EF6 e aumentare la vostra produttività durante la creazione di applicazione .NET data-centriche.
Sessione "Advanced ef code first 5.0" tenuta da Luca Cestola all'evento EF@Work di DomusDotNet (http://www.domusdotnet.org/eventi/efatwork.aspx) del 5 Luglio 2013
Prepariamoci al cambiamento. ASP.NET MVC e ASP.NET Web API saranno unificati in un unico framework chiamato ASP.NET MVC 6, e questo è solo la prima di una serie di novità che stanno per arrivare.
Tutto si semplifica. Le performance migliorano. Un altro salto tecnologico in avanti portato da ASP.NET 5.
In questa sessione, infatti, vedremo tutte le novità che ASP.NET MVC 6 porta con se, e cercheremo di andare in dettaglio in modo da capire cosa voglia dire realizzare (da zero) o migrare (un'applicazione essitente) a questa nuova versione
DevOpsHeroes 2016 - Realizzare Continouous Integration con SQL Server e Visua...Alessandro Alpi
In questa serie di slide vedremo come creare i build step su Visual Studio Team Services sfruttando gli add-on forniti da Red Gate, come DLM Automation 2: Build.
In questa sessione vedremo come realizzare un Data Access Layer basato su una implementazione del Repository pattern ed in grado di essere interrogabile mediante query LINQ, eventualmente delegate ad O/RM quali Entity Framework e/o NHibernate. Vedremo inoltre come fare utilizzo dei Code Contracts del FX4 per specificare "una tantum" le regole comuni a tutti i repository di un Domain Model.
DotNetCampus - Continuous Integration con Sql ServerAlessandro Alpi
Continuous Integration con SQL Server. Come automatizzare i processi di build e di test su database SQL Server. Come includere SQL Server nei processi di Application Lifecycle Management (Database Lifecycle Management).
La continuous integration, ovvero un insieme di pratiche di sviluppo atte a rilasciare frequentemente le modifiche al nostro codice, può essere applicata anche a SQL Server. In questa sessione andremo a descrivere come mettere sotto controllo del codice sorgente i nostri database in un'ottica di teamwork e, successivamente, a capire come automatizzare il processo di test unitario al fine di prevenire regressioni e correggere quanto prima bug.
C# is entering its third decade of life. And it is consistently evolving over the years with lot of new features. Let's recap the recent 7.x evolution and what we expect for the 8.0 features.
Prepariamoci al cambiamento. ASP.NET MVC e ASP.NET Web API saranno unificati in un unico framework chiamato ASP.NET MVC 6, e questo è solo la prima di una serie di novità che stanno per arrivare.
Tutto si semplifica. Le performance migliorano. Un altro salto tecnologico in avanti portato da ASP.NET 5.
In questa sessione, infatti, vedremo tutte le novità che ASP.NET MVC 6 porta con se, e cercheremo di andare in dettaglio in modo da capire cosa voglia dire realizzare (da zero) o migrare (un'applicazione essitente) a questa nuova versione
DevOpsHeroes 2016 - Realizzare Continouous Integration con SQL Server e Visua...Alessandro Alpi
In questa serie di slide vedremo come creare i build step su Visual Studio Team Services sfruttando gli add-on forniti da Red Gate, come DLM Automation 2: Build.
In questa sessione vedremo come realizzare un Data Access Layer basato su una implementazione del Repository pattern ed in grado di essere interrogabile mediante query LINQ, eventualmente delegate ad O/RM quali Entity Framework e/o NHibernate. Vedremo inoltre come fare utilizzo dei Code Contracts del FX4 per specificare "una tantum" le regole comuni a tutti i repository di un Domain Model.
DotNetCampus - Continuous Integration con Sql ServerAlessandro Alpi
Continuous Integration con SQL Server. Come automatizzare i processi di build e di test su database SQL Server. Come includere SQL Server nei processi di Application Lifecycle Management (Database Lifecycle Management).
La continuous integration, ovvero un insieme di pratiche di sviluppo atte a rilasciare frequentemente le modifiche al nostro codice, può essere applicata anche a SQL Server. In questa sessione andremo a descrivere come mettere sotto controllo del codice sorgente i nostri database in un'ottica di teamwork e, successivamente, a capire come automatizzare il processo di test unitario al fine di prevenire regressioni e correggere quanto prima bug.
C# is entering its third decade of life. And it is consistently evolving over the years with lot of new features. Let's recap the recent 7.x evolution and what we expect for the 8.0 features.
Sessione "Sviluppare per Intel® Ultrabook™" tenuta da Francesco Baldassarri (INTEL Italian Community Manager) all'evento Win8@Work di DomusDotNet il 26/10/2012
3. Configuration & Mapping L’origine di tutto: la classe DbContext I passi minimi nell’approccio Code First: Costruire le classi che definiscono l’object Model asData Model (Importante: Code First NON è DDD ) Costruire una classe derivata da DbContext(gateway per l’accesso all’entità e dati) ed esporre proprietà System.Data.Entity.DataSet<> per ognuna delle classi dell’Object Model Se ci basiamo solo sulle convezioni nient’altro.
4. Configuration & Mapping Quali convezioni? Nome database e stringa di connessione Di default: «LocalhostQLEXPRESS», Full QualifiedTypeName del DbContextderivato Override: aggiungere App.Config o Web.Config con una stringa di connessione Custom il cui nome è uguale al DbContext derivato
5. Configuration & Mapping Quali convezioni ? Per il mapping delle colonne abbiamo convezioni per: Chiave primarie Nomi delle tabelle Nomi delle colonne Nomi delle relazioni ForeignKey Tipi Ecc… Possiamo cambiarle ? Ovviamente si: Utilizzando gli attributi del System.ComponentModel.Annotations Fluent API Elenco delle convenzioni Code First http://msdn.microsoft.com/en-us/library/hh161541%28VS.103%29.aspx
6.
7.
8. Configuration & Mapping Inizializzazione del database Cancella e crea in ogni caso Database.SetInitializer<Db>(new DropCreateDatabaseAlways<Db>()); Crea se non esiste Database.SetInitializer<Db>(new CreateDatabaseIfNotExists<Db>()); Cancella e crea se il modello cambia (Attenzione!) Database.SetInitializer<Db>(new DropCreateDatabaseIfModelChanges<Db>()); Strategia Custom Database.SetInitializer<Db>(new DbCustomDatabaseStrategy()); DEMO
9. Validazione Perché ‘Validare ?’ Dati corretti Risparmiare round trip sul server (SQL Azure) In EF 4.1 Abilitata per default Utilizza attributi (DataAnnotations.ValidationAttribute) Validazione automatica dei ComplextType Supporta l’interfaccia IValidatableObject Attributi su NavigationProperties e Collection (validità della proprietà e non degli elementi)
10.
11. Proprietà Per ogni proprietà di un’entità: Current Value (getet) Context.Entry(entity).Property(n=>n.name).CurrentValue Original Value (getet) Context.Entry(entity).Property(n=>name).OriginalValue Verificare proprietà modificate: Context.Entry(entity).Property(n=>n.name).IsModified (Getet) Forzare l’Updatedurante il SaveChanges() anche se Original Value e Current Value coincidono Current, Original e Database Values: Context.Entry(entity).CurrentValues() Context.Entry(entity).OriginalValues() Context.Entry(entity).GetDatabaseValues()
12. Proprietà Original e CurrentValues da un altro oggetto: Consideriamo un DTO del tipo: new Book {Title=‘Pippo’ , ISBN=‘Franco’}; Il DTO viene utilizzato da Services Layerper la comunicazione tra strati Valorizzare la entity da modificare Context.Entry(entity).CurrentValues.SetValues(dto) DEMO
13. Persistenza e Query Abbiamo visto nella sessione di Alessandro l’utilizzo di LINQ per l’interrogazione dei dati.
20. Concorrenza Concorrenza (ottimistica): Specifichiamo le proprietà interessate Attributo [ConcurrencyCheck] Due possibili strategie: StoreWins Utilizziamo il metodo Reload() per sovrascrivere i dati dell’entity con quelli presenti nel database Client Wins Sostituiamo i valori originali dell’entity con quelli del database GetDatabaseValues() (eliminazione delle incogruenze) DEMO
21. Futuro (Entity Framework 4.2) Rilasciata la CTP a Giugno 2011 e la Beta 1 ad Agosto 2011 Enum SpatialType Table-Valuedfunctions Stored Procedure con result sets multipli Ottimizzazione delle query nei modelli Table-per-Type (TPT) Query Linq automaticamente compilate e «cached» Entity Data Model con diagrammi multipli Stored Procedure mappate automaticamente a ComplexType Miglioramenti e aggiunge di funzionalità all’Entity Data Designer Code First Sql Migration Evoluzione del database in sincronia con l’evoluzione del modello Code First
22. Link utili Entity Framework 4.1 Download: http://www.microsoft.com/download/en/details.aspx?id=8363 Blog Personale: http://blogs.ugidotnet.org/PietroLibroBlog Blog EntityFramework Design: http://blogs.msdn.com/b/efdesign Ado.NetTeam Blog: http://blogs.msdn.com/b/adonet DomusDotNet : http://www.domusdotnet.org