my.ASPItalia.com
ASP.NET
HTML5
LINQ e Entity Framework
Silverlight
Windows Phone
.NET Framework
Windows 8
Libri Espresso
Corso ASP.NET MVC
Iscriviti
Login
Newsletter
Home
Articoli
Script
Notizie
FORUM
Blogs
Media
Tutorials
Corsi
Libri
Eventi
Tags
Tutti i forum
Ricerca
FAQ
Fai una domanda
consiglio su architettura dell'applicazione
in
.NET Framework
>
ASP.NET 4.0
Ultimo messaggio
fra_76r
il 21 febbraio alle 09:49
2 messaggi
dal 29 luglio 2009
Ciao a tutti,
vorrei un parere/consiglio da voi su come ho deciso di strutturare la mia prossima applicazione. Sto iniziando infatti lo sviluppo di un sito ecommerce di grandi dimensioni che sarà realizzato in ASP.NET (HTML5 e CSS3) su .NET Framework 4.0. Io avrei deciso di creare una classica applicazione a tre livelli per cui avrò:
progetto USER_INTERFACE
(le pagine asp.net, questo progetto referenzia solo i progetti COMMON e BUSINESS_OBJECTS
progetto BUSINESS_OBJECTS(libreria di classi che gestirà la logica dello scambio di dati tra interfaccia utente e database, questo progetto referenzia solo i progetti COMMON e DATA_ACCESS)
progetto DATA_ACCESS (libreria di classi che si occuperanno delle operazioni CRUD sul DB, questo progetto referenzia solo il progetto COMMON)
progetto COMMON (libreira di classi che conterrà le classi di MAPPING delle tabelle del DB + altre funzioni di utilita)
Tutta l'applicazione utilizzarà ADO.NET quindi ad esempio, per quanto riguarda la gestione delle categorie dei prodotti avrò:
una tabella nel DB denominata "CATEGORIE":
ID_CATEGORIA (int)
ID_MACROCATEGORIA (int)
DESCRIZIONE (varchar)
una classe nel progetto COMMON denominata "CATEGORIA":
public class ENT_CATEGORIA
{
public int ID_CATEGORIA { get; set; }
public int ID_MACROCATEGORIA { get; set; }
public string DESCRIZIONE { get; set; }
}
una classe nel progetto BUSINESS_OBJECTS denominata "BO_CATEGORIE":
public class BO_CATEGORIE
{
public DataTable LEGGI_CATEGORIE()
{
DA_CATEGORIE categorie = new DA_CATEGORIE();
SqlConnection connection = new SqlConnection(Configurazione.StringaConnessioneSito());
connection.Open();
DataTable dtRitorno = categorie.LEGGI_CATEGORIE(connection, null);
connection.Close();
return dtRitorno;
}
}
una classe nel progetto DATA_ACCESS denominata "DA_CATEGORIE":
public class DA_CATEGORIE
{
public DataTable LEGGI_CATEGORIE(SqlConnection connection, SqlTransaction transaction)
{
SqlCommand command = new SqlCommand("SELECT * FROM CATEGORIE ORDER BY DESCRIZIONE", connection);
if (transaction != null)
{
command.Transaction = transaction;
}
SqlDataReader reader = command.ExecuteReader();
DataTable dt = new DataTable();
dt.Load(reader);
return dt;
}
}
Spero di essere stato chiaro e di non avervi annoiato troppo :-). Avete commenti o suggerimenti da darmi in merito?
Grazie mille per l'attenzione
Rispondi
Quoting
nostromo
il 21 febbraio alle 14:45
14.775 messaggi
dal 18 febbraio 2004
Contributi
www.soluzioni4d.it
|
Blog
ti consiglio di leggere questo articolo:
http://www.aspitalia.com/articoli/architettura/object-model.aspx
ciao marco
Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio
http://nostromo.spaces.live.com/default.aspx
Rispondi
Quoting
fra_76r
il 24 febbraio alle 09:33
2 messaggi
dal 29 luglio 2009
ciao Marco,
grazie per la segnalazione dell'articolo. Ho appena finito di leggerlo. In effetti avevo già optato per EF e LINQ to Entities per creare i layer dell'applicazione (linq to sql come scritto nell'articolo andrà a morire) anche perchè l'anno scorso mi sono studiato EF e con un paio di colleghi abbiamo realizzato una piccola applicazione basata su di esso per prenderci la mano. Purtroppo però sia io che gli altri colleghi non ne abbiamo tratto una buona impressione (forse a causa della nostra mancanza di esperienza o forse perchè EF è ancora "giovane") lo abbiamo ritenuto un po' troppo macchinoso da utilizzare, abbiamo avuto molte difficoltà per fare alcune interrogazioni complesse al db, inoltre avevo letto un articolo che parlava di performance e EF ne usciva "distrutto". Per questo motivo ho deciso di utilizzare la struttura basata su entitià da me create e con i layer strutturati in quel modo. In effetti nell'esempio che ho riportato sotto ho mostrato solo le classi di lettura che ritornano un datatable e in cui la classe di mapping non viene utilizzata, avrei dovuto riportare l'esempio di scrittura, lettura e cancellazione di un solo record in cui per eseguire le singole operazioni deve essere valorizzata e passata agli strati sottostanti sempre la classe di mapping. Secondo te faccio male ad utilizzare una struttura del genere?
Grazie
Rispondi
Quoting
Salto rapido
Ultimi messaggi
Tutti i forum
Ricerca
Utenti online
ASP.NET
ASP.NET 2.0
ASP.NET 3.5
ASP.NET 4.0
.NET Framework
Silverlight
Windows Phone
Windows Presentation Foundation e WinForms
Windows Communication e Workflow
ASP - avanzato
ASP - base
SQL Server e MySQL
E-commerce
Hosting
Altri linguaggi e tecnologie
Windows Server, IIS & Security
Libri
OT
Commenti: blogs e notizie
Eventi
Torna al forum
| Feed
RSS
ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.
Community
Effettua il login!
Hai dimenticato la password?
Ultimi messaggi
accesso automatico a sito protetto
(6)
CMS .NET
(2)
LINQ let exthension method
(1)
percorso script mvc
(3)
Condizionare un controllo nell'ItemTemplate di un Repeater in base all'Entity
(4)
web.config su più virtual folder
(3)
il repeater non rinomina il CLientID per gli ajaxRating
(1)
UTENTI ONLINE
In primo piano
Annunciate le versioni ufficiali di Visual Studio 11
Rilasciato Visual Studio 11 Beta: scopri tutte le novità!
Windows 8 Consumer Preview: segui con noi la diretta
I più letti di oggi
Sviluppare applicazioni web mobile con HTML5 e jQuery mobile
Introduzione a LINQ, LINQ to XML, Object e DataSet
Applicazioni Metro con XAML: cosa cambia per lo sviluppatore .NET con Windows 8
Web Camp - ASP.NET MVC 3 (Community Days 2012)
Screencast 'Primi passi con Windows Workflow Foundation'
Windows 8: introduzione allo sviluppo
Metro Style App per Windows 8 con HTML e Javascript
Migliorare le prestazioni di Entity Framework limitando l'uso del metodo Include
Annunciate le versioni ufficiali di Visual Studio 11
WhyMCA - Bologna
Media
Sviluppare applicazioni web mobile con HTML5 e jQuery mobile
Metro Style App per Windows 8 con HTML e Javascript
Tutti i media
In evidenza
Il meglio della settimana
Dal 29 febbraio arriva WinRTItalia.com: tutto sullo sviluppo per Windows 8 e Metro
Migliorare le prestazioni di Entity Framework limitando l'uso del metodo Include
Aprire una popup in Silverlight
Sviluppare applicazioni web mobile con HTML5 e jQuery mobile
Disegnare un'applicazione a servizi con Entity Framework e WCF
Il nuovo tag time in HTML5
Salvare e leggere rapidamente le impostazioni di un'applicazione Windows Phone
MISC
I nostri autori
Collabora con noi!
Media Kit - Pubblicità sul nostro network