Posted on Lascia un commento

ASP.NET MVC : ACCESSO AI DATI

ApplicationDbContext

Nell’articolo precedente abbiamo introdotto la classe ApplicationDbContext.

Cercatela nel progetto. Dovreste trovarla all’interno del file IdentityModels.cs. Questa classe deriva dalla classe IdentityDbContext che a sua volta deriva da DbContext.

DbContext è la classe di accesso ad un database. Il costruttore della classe ha come parametro il nome della stringa di connessione che avevamo precedentemente trovato nel file Web.config.

public ApplicationDbContext() : base("DefaultConnection")
 {
 }

Soffermiamoci su questa informazione : nel Web.config potete inserire più stringhe di connessione e quindi testare l’applicazione su database diversi, cambiando il parametro qui sopra, oppure creare una applicazione che si connette a diversi database definendo più di un DbContext.

All’interno di un DbContext dovranno essere referenziate tutte le tabelle del database che vogliamo usare nella nostra applicazione: o meglio, tutte le tabelle che hanno dei vincoli tra loro.

Se per esempio volessimo legare alla tabella degli utenti creata da Visual Studio, una seconda tabella creata da noi, le 2 tabelle dovrebbero fare parte dello stesso DbContext. Ma noi non sappiamo niente delle tabelle per la gestione degli utenti create in automatico. La classe IdentityDbContext contiene i riferimenti a queste tabelle. Per questo motivo il nostro ApplicationDbContext non deriva da DbContext ma da IdentityDBContext che contiene, appunto, qualche informazione in più.

Mano a mano che aggiungerete tabelle alla applicazione andrete a lavorare sulla classe ApplicationDbContext. Per rendere il codice più ordinato, nella directory Models andate a creare un nuovo file ApplicationDbContext.cs e copiate in questa classe il codice di ApplicationDbContext (solo quello) che era presente in IdentityModels.cs.

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
 {
     public ApplicationDbContext()
     : base("DefaultConnection")
     {
     }

     public static ApplicationDbContext Create()
     {
       return new ApplicationDbContext();
     }
 }

Provate a lanciare l’applicazione ed ad effettuare un login per testare che tutto funzioni.

 

Posted on Lascia un commento

asp.net mvc facile facile – Database

Il database di default

Avete creato il vostro primo progetto ASP.NET MVC. Potete eseguirlo attraverso Visual Studio. Il sito è perfettamente funzionante e vi permette già la registrazione di un nuovo utente ed il login. Se potete registrarvi ed accedere significa che “sotto” al sito è già presente un database. Per sapere dove è il database e quali tabelle compongono la gestione utenti, aprite in Visual Studio SQL Server Object Explorer e vedrete il vostro database sotto

localdb – DefaultConnection

DefaultConnection è il nome della stringa di connessione usata dalla vostra applicazione per collegarsi al Database. Se osservate il contenuto di Tables vedete tabelle che gestiscono gli utenti. Se avete creato il sito usando il Framework 4.5.1 o 4.5.2 queste tabelle sono 6.

Il nostro database SQL Server

Noi non vogliamo lavorare sul  database di default, bensì su un database di SQL Server sulla nostra macchina o in rete. Creiamo un database di SQL Server da qualche parte. Ora dobbiamo fare puntare il nostro sito a questo database. Aprite il file web.config e cercate il tag connectionStrings. Sostituite la stringa di connessione con una valida connessione al vostro database SQL Server (in rete trovate le stringhe di connessione). Lasciate il nome del tag a “DefaultConnection”. Lanciate l’applicazione attraverso Visual Studio.

Questo è un nuovo database quindi l’utente che avete creato prima sul database di default non esiste. Dovete ri-effettuare la registrazione e, a questo punto, potrete effettuare il login. Se ora controllate il contenuto del vostro database SQL Server (con Visual Studio SQL Server Object Explorer oppure con SQL Server Management Studio) vedrete che ci sono anche qui le 6 tabelle che permettono la gestione degli utenti. Create dal sito stesso.

Nel vostro progetto infatti esistono i modelli delle tabelle che consentono la gestione degli utenti (nella directory Models), e il vostro sito, vedendo che sul database non esistevano le tabelle relative , le ha create per voi. Molto comodo.

Da qui in poi creerete i vostri modelli, cioè i contenitori dei vostri dati e il sito tenterà sempre di creare le tabelle relative per voi. Questo non è una procedura comoda perchè non vi consente errori o ripensamenti mentre create il vostro modello. E’ meglio dire al sito di non stare da qui in poi a controllare la reciprocità modello – tabella: costruirete i vostri modelli a mano e quindi le vostre tabelle su SQL Server. Per comunicare questo al sito, aprite il file Global.asax.cs e nella funzione Application_Start(), aggiungete questa riga :

Database.SetInitializer<YourSite.Models.ApplicationDbContext>(null);

Dove ApplicationDbContext è il nome della classe che si connette al database usando la stringa DefaultConnection. Cercatela nel sito.

 

Posted on Lascia un commento

asp.net mvc facile facile . Introduzione – parte 1

nb. Se deciderete di lavorare con questa tecnologia, ogni volta che avete un dubbio o la necessità di un approfondimento, vi basta andare sul vostro motore di ricerca preferito e digitare la vostra ricerca (con parole in inglese) , preceduta dalle semplici parole ASP.NET MVC. Troverete tutte le risposte.

Quando parliamo di ASP.NET MVC intendiamo in generale la creazione di siti con Visual Studio, utilizzando il linguaggio c# ed impostando lo sviluppo secondo le norme di programmazione MVC.

MVC sta per Model – View – Controller. Nella pratica ogni vecchia pagina web è ora costruita utilizzando 3 file diversi. Oppure, i 3 file insieme costituiscono la pagina. Due di questi file sono codice c# puro ed hanno estensione .cs, il terzo è codice html e ha estensione .cshtml. In ognuno dei 3 file c’è un pezzo di codice. Scrivere le cose in questo modo vi permetterà di essere più rapidi nello sviluppo. Per ora vi dovete fidare.

Facciamo un esempio. Se cercate con il browser la pagina http://www.miodominio.com/Prodotti/Index,   il sito cercherà un file che si chiama ProdottiController.cs  (il primo dei nostri 3).  Nel file ProdottiController.cs c’è almeno la classe ProdottiController. All’interno di questa classe, in questo file, esiste una funzione di nome Index. A questo punto il Controller fa 2 cose: cerca nel sito un file chiamato Index.cshtml . Questo file (è la View) contiene il nostro html. In alcuni casi nella pagina del sito ci sono solo scritte statiche. Se invece è previsto che in questa pagina ci siano dati dinamici, il controller crea una rappresentazione dell’insieme dei dati partendo da un terzo file che può avere qualsiasi nome, per esempio Item.cs (il Model) e lo da in pasto al file Index.cshtml che ci appare infine sul browser. Spiegazione lunga ma funziona tutto in un attimo.

Dalla spiegazione capite che ci sono delle regole precise sui nomi dei file : ci viene quindi imposto un modo di organizzare i file, una strada da percorrere sempre uguale che renderà il nostro codice più ordinato, manutenibile e leggibile dai nostri colleghi programmatori.

Ora aprite Visual Studio e create il primo sito ASP.NET MVC. Trovate tantissime guide sul web ma potete anche provarci da soli. Analizziamo la struttura delle cartelle che compongono il sito e vediamo quello che ci potete fare. Nel sito trovate sicuramente queste 3 cartelle :

  •  Controller
  •  Model
  •  View

Nella cartella controller ci staranno, i file Controller. Potete dare a questi file qualsiasi nome nella forma QualcosaController.cs. All’interno delle cartella potete creare tutte le sottocartelle che volete e con qualsiasi nome per riordinare meglio i file Controller che andrete a creare.

Nella cartella Model ci staranno i file Model. Potete dare a quest file qualsiasi nome e creare tutte le sottocartelle che volete.

Nella Cartella View ci staranno le View. All’interno di questa cartella deve esistere, per ogni Controller, una sottocartella che si chiama esattamente come il Controller (senza Controller.cs). Nei nostri esempi avremo quindi una cartella Prodotti ed una cartella Qualcosa. All’interno di questa cartella ci saranno tanti file .cshtml quante sono le funzioni presenti nel file Controller o meglio le funzioni del Controller che volete siano utilizzate dall’esterno. Devono chiamarsi esattamente come la funzione. Nel nostro esempio avremo :

  •  Controller
    •  ProdottiController.cs
    •  QualcosaController.cs
  •  Model
    •  Item.cs
  •  View
    •  Prodotti
      •  Index.cshtml
    •  Qualcosa

Il bello di tutta questa gestione è che Visual Studio la fa per voi in automatico e tra un po vedremo come.

Posted on Lascia un commento

WordPress on Azure. CNAME Settings

After installing WordPress on Azure using this “how to” : https://azure.microsoft.com/it-it/documentation/articles/app-service-web-create-web-app-from-marketplace/

You will have a website with an address like this: http://examplewp.azurewebsites.net

Now you have to set the CNAME on the provider’s DNS of your hosting because you want your wordpress site points to http://www.mydomain.com. You can use this “how to” : https://azure.microsoft.com/en-us/documentation/articles/web-sites-custom-domain-name/

Now go into your wordpress site, in the general configuration.
You have to change WordPress address (URL) and Site address (URL). from http://examplewp.azurewebsites.net to http://www.mydomain.com

Posted on Lascia un commento

Storage e Azure Machine Learning

Se state pensando di provare il Microsoft Azure Machine Learning di Microsoft e avete intenzione di prelevare i dati che vi serviranno da uno storage Azure, ricordate che al momento (Agosto 2016) il AML può essere attivato solo in Asia Sud Orientale, Europa Occidentale e stati uniti centro meridionali.

Date quindi queste limitazioni fate attenzione di creare lo storage in una di queste 3 regioni.

Posted on Lascia un commento

Microsoft Azure Machine Learning prove di importazione csv

Per chi di voi fa esperimenti con Microsoft Azure Machine Learning, una breve nota sull’importazione di file csv per costruire il proprio dataset. Se producete un csv utilizzando Microsoft Excel in italiano, otterrete un file che ha “la virgola” (,) come separatore dei decimali ed “il punto e virgola” (;) come separatore dei campi.

Questo formato non è compatibile con AML e deve essere portato allo standard americano : “il punto” (.) come separatore dei decimali e “la virgola” (,) come separatore dei campi.

Aprite con notepad (blocco note) il vostro csv :

  1. Trasformate i separatori dei decimali : da virgola a punto
  2. Trasformate i separatori di campi : da punto e virgola a virgola