Realizzare un sito in Silverlight 2.0: frontend e animazioni
di Alessio Leoncini, Marco Leoncini, in Silverlight 2.0, 27 novembre 2008
Esposizione dei dati: ADO.NET Data Service
Coma accennato nell'articolo su ADO.Net Data Service è possibile utilizzare qualsiasi classe del CLR come storage del servizio, è necessario solo rispettare poche e semplici regole.
La prima è esporre l'entità attraverso proprietà del tipo IQueryable<T>, la seconda risulta indispensabile solo se, come nel nostro caso, si ha la necessità di rendere disponibile mediante REST operazioni di tipo CRUD.
Definiamo tre semplici entità: EasyShopGalleryDirectory, EasyShopGalleryChildDirectory e EasyShopGalleryFile; la prima la rappresenta nel nostro Domain Model le cartelle di primo livello, le altre due rispettivamente le sottocartelle ed i file.

EasyShopGalleryDirectory espone le proprietà Name, Path, Directories e Files, rispettivamente il nome, il percorso, le sottocartelle e i files contenuti nella cartella del File System rappresentato.
L'oggetto EasyShopGalleryDirectory ha tre costruttori pubblici, il primo senza parametri, mentre i due overload rimanenti ne accettano rispettivamente uno ciascuno, una stringa per il percorso fisico della cartella ed un oggetto DirectoryInfo.
public EasyShopGalleryDirectory(string path) { if (string.IsNullOrEmpty(path)) throw new DataServiceException("Percorso non valido"); if (!path.StartsWith(FileManager.GalleryRootDirectory)) throw new DataServiceException("Percorso non valido"); try { _directoryInfo = new DirectoryInfo(path); } catch (Exception ex) { throw new DataServiceException("Impossibile portare a termine l'inizializzazione", ex); } } public EasyShopGalleryDirectory(DirectoryInfo directoryInfo) { if (directoryInfo == null) throw new DataServiceException("directoryInfo non può essere nullo"); if (!directoryInfo.FullName.StartsWith(FileManager.GalleryRootDirectory)) throw new DataServiceException("Percorso non valido"); _directoryInfo = directoryInfo; }
È possibile enumerare le sottocartelle di un'istanza di EasyShopGalleryDirectory semplicemente accedendo alla proprietà Directories.
public IQueryable<EasyShopGalleryChildDirectory> Directories { get { if (_directoryInfo == null) { return new List<EasyShopGalleryChildDirectory>().AsQueryable(); } else { List<EasyShopGalleryChildDirectory> _directories = new List<EasyShopGalleryChildDirectory>(); DirectoryInfo[] _directoriesInfo = _directoryInfo.GetDirectories(); for (int i = 0; i < _directoriesInfo.Length; i++) { _directories.Add(new EasyShopGalleryChildDirectory(_directoriesInfo[i])); } return _directories.AsQueryable(); } } }
Il tipo EasyShopGalleryChildDirectory è del tutto analogo a EasyShopGalleryDirectory solo che il primo non espone la proprietà Directories, così da limitare la possibilità di creare e di conseguenza visualizzare un solo sottolivello di cartelle.
Attenzione: Questo articolo contiene un allegato
Contenuti dell'articolo
Sullo stesso argomento
-
Applicazioni Silverlight con il cloud computing su Windows Azure
-
Aggiungere interattività al controllo Chart di Silverlight 3.0
-
Realizzare un sito completo in Silverlight: una galleria fotografica
-
Supporto audio e video in Silverlight 3.0
-
Effetti speciali sulle immagini in Silverlight 3.0
-
Anteprima di Expression Blend 3.0
-
Le novità di Silverlight 3.0 beta 1
-
Realizzare un menu riutilizzabile utilizzando DataTemplate e DataBinding
-
Un tocco di stile alle applicazioni Silverlight: style e template
-
Multithreading in Silverlight 2.0

















Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.