Real Code Day 6: slide e codice sorgente

di Riccardo Golia, in Eventi,

Nel ringraziare tutti coloro che sono intervenuti e chi in questi giorni ha espresso giudizi positivi sul nostro RCD6, vi confermo che le slide delle mie due sessioni sono online presso la pagina dedicata all'evento.

Vi ricordo le novità che riguardano la nostra applicazione di esempio Model Virtual Casting e che sono state presentate nel corso della giornata:

  • composizione dei repository con MEF (Managed Extensibility Framework);
  • object model POCO e utilizzo di Entity Framework 4.1;
  • sito web adattato a HTML5;
  • rimosso Silverlight dal front-end per un uso nel back-office avanzato;
  • back-office distribuito anche come applicazione OOB (Out-Of-Browser);
  • porting su Azure;
  • versione mobile web, ottimizzata per iPhone, iPad e browser HTML5;
  • due applicazioni Windows Phone 7 per pubblicizzare l'agenzia:
    1. gioco fatto in XNA (Ninja Braaa);
    2. applicazione per consultare il catalogo.

Per quanto riguarda quello che ho specificatamente presentato nella mia sessione tecnica, vi ricordo che tutto il codice è già disponibile presso il sito dedicato all'applicazione su CodePlex.

Per testare l'iniezione delle dipendenze con Unity 2.0 attraverso il progetto di test ASPItalia.ModelVirtualCasting.Test, al fine di caricare i repository fake presenti nell'assembly ASPItalia.ModelVirtualCasting.Fake, il file App.config va configurato come segue:

<unity>
  <containers>
    <container>
      <types>
        <type type="ASPITALIA.ModelVirtualCasting.Cache.ICacheBuilder, ASPItalia.ModelVirtualCasting.Cache" mapto="ASPITALIA.ModelVirtualCasting.Cache.Providers.InMemory.MemoryCacheBuilder, ASPItalia.ModelVirtualCasting.Cache.Providers.InMemory"></type>
        <type type="ASPItalia.ModelVirtualCasting.Common.ICandidateRepository, ASPItalia.ModelVirtualCasting" mapto="ASPItalia.ModelVirtualCasting.EntityFramework.CandidateRepository, ASPItalia.ModelVirtualCasting.Fake"></type>
        <type type="ASPItalia.ModelVirtualCasting.Common.IModelRepository, ASPItalia.ModelVirtualCasting" mapto="ASPItalia.ModelVirtualCasting.EntityFramework.ModelRepository, ASPItalia.ModelVirtualCasting.Fake"></type>
        <type type="ASPItalia.ModelVirtualCasting.Common.INewsRepository, ASPItalia.ModelVirtualCasting" mapto="ASPItalia.ModelVirtualCasting.EntityFramework.NewsRepository, ASPItalia.ModelVirtualCasting.Fake"></type>
        <type type="ASPItalia.ModelVirtualCasting.Common.IRequestRepository, ASPItalia.ModelVirtualCasting" mapto="ASPItalia.ModelVirtualCasting.EntityFramework.RequestRepository, ASPItalia.ModelVirtualCasting.Fake"></type>
        <type type="ASPItalia.ModelVirtualCasting.Common.ICountryRepository, ASPItalia.ModelVirtualCasting" mapto="ASPItalia.ModelVirtualCasting.EntityFramework.CountryRepository, ASPItalia.ModelVirtualCasting.Fake"></type>
        <type type="ASPItalia.ModelVirtualCasting.Common.IJobLevelRepository, ASPItalia.ModelVirtualCasting" mapto="ASPItalia.ModelVirtualCasting.EntityFramework.JobLevelRepository, ASPItalia.ModelVirtualCasting.Fake"></type>
        <type type="ASPItalia.ModelVirtualCasting.Common.IJobTypeRepository, ASPItalia.ModelVirtualCasting" mapto="ASPItalia.ModelVirtualCasting.EntityFramework.JobTypeRepository, ASPItalia.ModelVirtualCasting.Fake"></type>
        <type type="ASPItalia.ModelVirtualCasting.Common.ILanguageRepository, ASPItalia.ModelVirtualCasting" mapto="ASPItalia.ModelVirtualCasting.EntityFramework.LanguageRepository, ASPItalia.ModelVirtualCasting.Fake"></type>
        <type type="ASPItalia.ModelVirtualCasting.Common.IPersonRepository, ASPItalia.ModelVirtualCasting" mapto="ASPItalia.ModelVirtualCasting.EntityFramework.PersonRepository, ASPItalia.ModelVirtualCasting.Fake"></type>
        <type type="ASPItalia.ModelVirtualCasting.Common.IUserRepository, ASPItalia.ModelVirtualCasting" mapto="ASPItalia.ModelVirtualCasting.EntityFramework.UserRepository, ASPItalia.ModelVirtualCasting.Fake"></type>
        <type type="ASPItalia.ModelVirtualCasting.Common.IUserRoleRepository, ASPItalia.ModelVirtualCasting" mapto="ASPItalia.ModelVirtualCasting.EntityFramework.UserRoleRepository, ASPItalia.ModelVirtualCasting.Fake"></type>
     </types>
    </container>
  </containers>
</unity>
  
<appSettings>
  <add key="exceptionLogEnabled" value="true"></add>
  <add key="repositoryFactoryType" value="Unity"></add>
  <add key="repositoryAssemblyName" value="ASPItalia.ModelVirtualCasting.Fake"></add>
</appSettings>
 

oppure, allo scopo di caricare le implementazioni dei repository relative a Entity Framework presenti nell'assembly ASPItalia.ModelVirtualCasting.EntityFramework, la configurazione deve essere la seguente:

<unity>
  <containers>
    <container>
      <types>
        <type type="ASPITALIA.ModelVirtualCasting.Cache.ICacheBuilder, ASPItalia.ModelVirtualCasting.Cache" mapto="ASPITALIA.ModelVirtualCasting.Cache.Providers.InMemory.MemoryCacheBuilder, ASPItalia.ModelVirtualCasting.Cache.Providers.InMemory"></type>
        <type type="ASPItalia.ModelVirtualCasting.Common.ICandidateRepository, ASPItalia.ModelVirtualCasting" mapto="ASPItalia.ModelVirtualCasting.EntityFramework.CandidateRepository, ASPItalia.ModelVirtualCasting.EntityFramework"></type>
        <type type="ASPItalia.ModelVirtualCasting.Common.IModelRepository, ASPItalia.ModelVirtualCasting" mapto="ASPItalia.ModelVirtualCasting.EntityFramework.ModelRepository, ASPItalia.ModelVirtualCasting.EntityFramework"></type>
        <type type="ASPItalia.ModelVirtualCasting.Common.INewsRepository, ASPItalia.ModelVirtualCasting" mapto="ASPItalia.ModelVirtualCasting.EntityFramework.NewsRepository, ASPItalia.ModelVirtualCasting.EntityFramework"></type>
        <type type="ASPItalia.ModelVirtualCasting.Common.IRequestRepository, ASPItalia.ModelVirtualCasting" mapto="ASPItalia.ModelVirtualCasting.EntityFramework.RequestRepository, ASPItalia.ModelVirtualCasting.EntityFramework"></type>
        <type type="ASPItalia.ModelVirtualCasting.Common.ICountryRepository, ASPItalia.ModelVirtualCasting" mapto="ASPItalia.ModelVirtualCasting.EntityFramework.CountryRepository, ASPItalia.ModelVirtualCasting.EntityFramework"></type>
        <type type="ASPItalia.ModelVirtualCasting.Common.IJobLevelRepository, ASPItalia.ModelVirtualCasting" mapto="ASPItalia.ModelVirtualCasting.EntityFramework.JobLevelRepository, ASPItalia.ModelVirtualCasting.EntityFramework"></type>
        <type type="ASPItalia.ModelVirtualCasting.Common.IJobTypeRepository, ASPItalia.ModelVirtualCasting" mapto="ASPItalia.ModelVirtualCasting.EntityFramework.JobTypeRepository, ASPItalia.ModelVirtualCasting.EntityFramework"></type>
        <type type="ASPItalia.ModelVirtualCasting.Common.ILanguageRepository, ASPItalia.ModelVirtualCasting" mapto="ASPItalia.ModelVirtualCasting.EntityFramework.LanguageRepository, ASPItalia.ModelVirtualCasting.EntityFramework"></type>
        <type type="ASPItalia.ModelVirtualCasting.Common.IPersonRepository, ASPItalia.ModelVirtualCasting" mapto="ASPItalia.ModelVirtualCasting.EntityFramework.PersonRepository, ASPItalia.ModelVirtualCasting.EntityFramework"></type>
        <type type="ASPItalia.ModelVirtualCasting.Common.IUserRepository, ASPItalia.ModelVirtualCasting" mapto="ASPItalia.ModelVirtualCasting.EntityFramework.UserRepository, ASPItalia.ModelVirtualCasting.EntityFramework"></type>
        <type type="ASPItalia.ModelVirtualCasting.Common.IUserRoleRepository, ASPItalia.ModelVirtualCasting" mapto="ASPItalia.ModelVirtualCasting.EntityFramework.UserRoleRepository, ASPItalia.ModelVirtualCasting.EntityFramework"></type>
        <type type="ASPItalia.ModelVirtualCasting.EntityFramework.IContextContainer, ASPItalia.ModelVirtualCasting.EntityFramework" mapto="ASPItalia.ModelVirtualCasting.EntityFramework.ThreadContextContainer, ASPItalia.ModelVirtualCasting.EntityFramework"></type>
     </types>
    </container>
  </containers>
</unity>
  
<appSettings>
  <add key="exceptionLogEnabled" value="true"></add>
  <add key="repositoryFactoryType" value="Unity"></add>
  <add key="repositoryAssemblyName" value="ASPItalia.ModelVirtualCasting.EntityFramework"></add>
</appSettings>
 

Per testare la composizione con il Managed Extensibility Framework attraverso il progetto di test ASPItalia.ModelVirtualCasting.Test, al fine di caricare i repository fake presenti nell'assembly ASPItalia.ModelVirtualCasting.Fake, il file App.config va configurato come segue:

<appSettings>
  <add key="exceptionLogEnabled" value="true"></add>
  <add key="repositoryFactoryType" value="Mef"></add>
  <add key="repositoryAssemblyName" value="ASPItalia.ModelVirtualCasting.Fake"></add>
</appSettings>
 

oppure, allo scopo di caricare le implementazioni dei repository relative a Entity Framework presenti nell'assembly ASPItalia.ModelVirtualCasting.EntityFramework, la configurazione deve essere la seguente:

<appSettings>
  <add key="exceptionLogEnabled" value="true"></add>
  <add key="repositoryFactoryType" value="Mef"></add>
  <add key="repositoryAssemblyName" value="ASPItalia.ModelVirtualCasting.EntityFramework"></add>
</appSettings>
 

Enjoy!

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

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