54 messaggi dal 15 novembre 2003
Premessa: devo fare il porting di un vecchio applicativo Classic Asp ad Asp.Net, in questa prima fase il porting è senza modifica di logica ma solo cambio tecnologico (quindi data base e flussi rimangono uguali)

Il sito è composto "fisicamente" in questo modo:

CartellaA
CartellaB
CartellaC
CartellaD
default.asp
index.asp
....
Dentro alle cartelle sono presenti tante pagine asp.

Mentre "logicamente" è differente si arriva alla pagina default.asp e si può decidere se aprire:
Applicativo1
Applicativo2
Applicativo3

Applicativo1 è composto per esempio dalle pagine dento la CartellaA, di 3 pagine della CartellaB

Applicativo2 è composto per esempio dalle pagine dento la CartellaB, di 1 pagine della CartellaC e 5 della CartellaD

Applicativo3 è composto per esempio dalle pagine dento la CartellaC, di 6 pagine della CartellaD


Da che pagine è composto un applicativo è impostato d auna pagina di configurazione e vien scritto su db, quindi in pratica con tutto il sito finito e pubblicato un utente amministratore può creare un nuovo applicativo composto da pagine di varie cartelle. Ovviamente tutte le pagine sono "censite" nel db in modo che possano essere scelte per essere inserite in un applicativo.
Questo sistema deve rimanere anche in Asp.Net.

Fatta questa lunghissima premessa arrivo alla mia richiesta di aiuto, io non voglio creare un unico progetto contenente tutto queste pagine ma ho l'esigenza di creare una serie di progetti, uno per ogni cartella quindi ProgettoA, ProgettoB, ProgettoC, ProgettoD e magari un ProgettoMain che ha le pagine che in questo esempio semplificato ho chiamato default.asp e index.asp.

Il fatto che poi io scegliendo un Applicativo passerò da pagine di un progetto a quelle di un altro può creare problemi?
La Session deve essere unica e condivisa tra i vari progetti, è possibile?
La presenza di un Web.config dentro ad ogni cartella è problematico?

Pensate che ci sia una struttura preferibile a questa?

Grazie

--
Claudio P.
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao Claudio,

cldparisi ha scritto:

Pensate che ci sia una struttura preferibile a questa?

E' difficile dirlo senza conoscere approfonditamente scenario ma quello che percepisco è che l'applicazione è di una certa complessità e tu hai la necessità di partizionarla in più progetti.

Resisti alla tentazione di fare una "traduzione" pari pari dall'ASP Classico altrimenti non otterresti particolari benefici architetturali. Ad esempio, liberati del concetto di pagina e delle variabili di sessione perché molto probabilmente non ti servono.

L'approccio che ti consiglio è basato su ASP.NET MVC e prevede di creare un'unica soluzione che contiene il ProgettoMain di tipo web application. Al suo interno puoi creare quattro aree, che sono il modo di MVC di separare i contesti applicativi. In alternativa alle aree, se vuoi una separazione maggiore, puoi anche creare nella soluzione 4 altri progetti di tipo Class Library, ciascuno dei quali verrà compilato in un proprio assembly .dll. In quest'ultimo caso, ProgettoMain dovrà avere una dipendenza da ciascuno dei 4 progetti.

In un caso o nell'altro, la tua web application si comporterà come un tutt'uno e non avrai problemi nell'andare ad usare funzionalità provenienti dagli altri "progetti".

cldparisi ha scritto:

Da che pagine è composto un applicativo è impostato d auna pagina di configurazione e vien scritto su db

Questa logica di configurazione la puoi tenere e nel caso di ASP.NET MVC dovrai configurare delle routes opportunamente, in modo che ogni applicativo possa usare solo i controller configurati, e non altri.

Prima di prendere una soluzione definitiva, però, guardati un po' ASP.NET MVC e verifica se si adatta bene al tuo caso.

ciao,
Moreno

Enjoy learning and just keep making

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.