Alessandro Del Sole's Blog

{ A programming space about Microsoft® .NET® }
posts - 1909, comments - 2047, trackbacks - 352

My Links

News

Your host

This is me! Questo spazio è dedicato a Microsoft® .NET®, di cui sono molto appassionato :-)

Cookie e Privacy

Microsoft MVP

My MVP Profile

Microsoft Certified Professional

Microsoft Specialist

Xamarin Certified Mobile Developer

Il mio libro su VB 2015!

Pre-ordina il mio libro su VB 2015 Pre-ordina il mio libro "Visual Basic 2015 Unleashed". Clicca sulla copertina per informazioni!

Il mio libro su WPF 4.5.1!

Clicca sulla copertina per informazioni! E' uscito il mio libro "Programmare con WPF 4.5.1". Clicca sulla copertina per informazioni!

These postings are provided 'AS IS' for entertainment purposes only with absolutely no warranty expressed or implied and confer no rights.
If you're not an Italian user, please visit my English blog

Le vostre visite

I'm a VB!

Guarda la mia intervista a Seattle

Follow me on Twitter!

Altri spazi

GitHub
I miei progetti open-source su GitHub

Article Categories

Archives

Post Categories

Image Galleries

Privacy Policy

Creare e consumare ADO.NET Data Services con Visual Studio 2008 Express Editions

Nella mini serie di miei articoli introduttivi agli ADO.NET Data Services (servizi WCF REST enabled per l’esposizione di dati in rete attraverso ADO.NET Entity Framework) con Microsoft Visual Basic 2008, pubblicati su Visual Basic Tips & Tricks, abbiamo visto come creare e consumare i servizi utilizzando un’edizione molto completa di Visual Studio 2008 e abbiamo detto che, per lo scopo, è possibile utilizzare anche le edizioni Express di Visual Studio. Tuttavia, per motivi di spazio, non è stato possibile proporre anche questo scenario, che affrontiamo in questo post.

 

Ovviamente, è necessario aver scaricato e installato Visual Studio 2008 Express con Service Pack 1. Si agisce in maniera molto simile a quanto abbiamo visto in quest’altro post inerente la creazione di servizi WCF. Il servizio può essere creato con Visual Web Developer Express (avviato con privilegi amministrativi), creando un progetto per applicazione Web sfruttando il classico, apposito template come in figura:

 

 

Tramite la finestra Database Explorer eseguiamo, poi, la connessione al database di nostro interesse, che nel nostro esempio è l’immancabile Northwind:

 

 

Dopodiché, aggiungiamo il nostro Entity Data Model basato su ADO.NET Entity Framework, utilizzando il comando Project|Add new item, sfruttando il template illustrato in figura:

 

 

Nel wizard relativo alla generazione dell’EDM, accertiamoci di selezionare la generazione a partire da un database e la connessione al db Northwind già eseguita, infine selezioniamo tutte le tabelle di nostro interesse da far confluire nel modello a oggetti.

Se avete dubbi a questo riguardo, potete tornare a consultare il primo articolo della serie, poiché l’aggiunta dell’EDM in Visual Web Developer Express è identica a quanto visto nel più completo Visual Studio 2008.

 

Dopo l’Entity Data Model, è la volta dell’aggiunta del servizio WCF sfruttando il template ADO.NET Data Service, che si raggiunge tramite Project|Add new item, come illustrato in figura:

 

 

Anche questo passaggio è analogo a quanto visto in Visual Studio 2008, così come analoghi sono i successivi passaggi relativi alla scrittura del codice che riporto per comodità e per i cui approfondimenti vi rimando alla lettura degli articoli.

Fatto questo, attiviamo l’editor di codice Visual Basic sul file di code-behind del servizio, ossia Northwind.svc.vb e modifichiamo il codice della classe come segue:

 

Public Class Northwind

    ' TODO: replace [[class name]] with your data class name

    Inherits DataService(Of NORTHWNDEntities)

 

    ' This method is called only once to initialize service-wide policies.

    Public Shared Sub InitializeService(ByVal config As IDataServiceConfiguration)

        ' TODO: set rules to indicate which entity sets and service operations are visible, updatable, etc.

        ' Examples:

        config.SetEntitySetAccessRule("*", EntitySetRights.All)

        ' config.SetServiceOperationAccessRule("MyServiceOperation", ServiceOperationRights.All)

    End Sub

End Class

 

Nel ricordare la lettura del primo articolo per le varie note sul codice su esposto, è bene ricordare in questa fase che l’accesso indiscriminato a tutte le entità ha un senso solo in dimostrazioni didattiche come questa (SetEntititySetAccessRule). Se volete fare i vostri test di verifica sul funzionamento del servizio, mandatelo in esecuzione e provate ad eseguire delle operazioni in query string come visto nell’articolo di partenza.

 

La differenza principale rispetto al test fatto nell’articolo, è che qui servizio e client sono due progetti non inclusi nella medesima soluzione, pertanto dobbiamo pubblicare il servizio, per esempio su Microsoft Internet Information Services (che poi è quello che nella pratica ci troveremo a fare nella maggior parte dei casi). Ciò premesso, dopo aver compilato il tutto, dal menu Build selezioniamo Publish e specifichiamo il percorso di pubblicazione nel server locale. La figura seguente mostra un esempio di percorso (nella realtà LocalHost andrà sostituito con l’indirizzo Internet/Intranet del server):

 

 

Dopo alcuni secondi la pubblicazione su IIS viene completata (tenete d’occhio la finestra di Output per eventuali messaggi), quindi possiamo verificarla nel browser digitando l’URL del servizio come in figura:

 

 

Possiamo quindi consumare il servizio, avviando Microsoft Visual Basic 2008 Express per creare un’applicazione client che, come ricordiamo, può essere sia Windows (Console, Windows Forms, WPF) che Web (Web application, Silverlight, Ajax). Volendo riprodurre quanto indicato nel secondo articolo, ossia un interessante client realizzato in Windows Presentation Foundation, creiamo un nuovo progetto di applicazione WPF e, quando il nuovo progetto è pronto, selezioniamo il comando Project|Add service reference per aggiungere un riferimento al servizio. Nella finestra di aggiunta va scritto l’URL del servizio, che è lo stesso che abbiamo digitato nel browser per verificare la pubblicazione:

 

 

La creazione dell’applicazione client WPF può poi procedere riutilizzando lo stesso codice illustrato nel secondo articolo sugli ADO.NET Data Services.

 

Anche in questo caso abbiamo quindi visto come le edizioni Express di Visual Studio 2008 siano uno strumento molto valido anche nell’utilizzo di tecnologie recenti e piuttosto avanzate.

 

Alessandro

Print | posted on lunedì 5 gennaio 2009 21:42 | Filed Under [ .NET Framework Visual Basic Visual Studio Express Editions Windows Communication Foundation ]

Powered by:
Powered By Subtext Powered By ASP.NET