Domanda

voglio sviluppare un'applicazione enterprise che comprende uno strato WindowsForms di presentazione, i componenti di livello intermedio per la logica di business e l'accesso ai dati, e un database MSSQL Server. componenti di livello intermedio dovrebbero contenere alcuni oggetti di business e saranno chiamati da parte di presentazione usando .NET Remoting. Whitch è il modo migliore (e perché) per fare riferimento a questi oggetti business dal livello di presentazione?

  • A) Creare progetto libreria di classi, implementando gli oggetti di business. Riferimento a questo progetto dal livello di presentazione e lo strato di livello intermedio.
  • B) Crea progetto libreria di interfaccia che definisce gli oggetti di business. Creare progetto di libreria di classi interfacce di attuazione. classe di riferimento del progetto biblioteca dallo strato di livello intermedio. progetto di libreria di interfaccia di riferimento dal livello di presentazione.
  • C) Creare progetti libreria di classi separate per livello intermedio e livello di presentazione. Riferimento progetto corrispondente dal livello di presentazione.
È stato utile?

Soluzione

Non c'è probabilmente nessun taglio chiaro e risposta definitiva a questo, dipende da cosa si sta facendo.

  • A sarà spesso abbastanza buono in molti casi. Per i progetti di piccole dimensioni '' singola applicazione in realtà non c'è alcuna ragione per cui non si può semplicemente fare riferimento alla libreria di oggetti di business direttamente da entrambi gli strati di interfaccia utente e BL. E 'sicuramente il più semplice, e, a volte la semplicità è la cosa migliore.

  • B è probabilmente il "migliore", Ti verrà astraendo implementazioni reale via modifiche in modo future sono possibili senza contratti di rottura, e test di unità è più facile se si dispone di interfacce. L'altro vantaggio di questo è che non si trovano troppo difficile per passare da B a C in futuro, se si ritiene necessario.

  • C è probabilmente eccessivo nella maggior parte dei casi. Detto questo, su progetti di grandi dimensioni che si potrebbe essere necessario. Ho lavorato su grandi applicazioni n-tier client-server che hanno avuto ben tre gruppi indipendenti di oggetti dati. Un set utilizzato nello strato DA per mappare e memorizzare nel database. Una seconda serie negli strati logici e di rete commerciali per l'elaborazione e passando attraverso la rete, e il terzo set nel client per il legame con l'interfaccia utente. Vale la pena di considerare l'uso di interfacce per la C, nonché a causa dei vantaggi di astrazione.

Tutto sommato, senza conoscere esattamente il vostro dominio di applicazione o entità -. B è un buon punto di partenza

Altri suggerimenti

Ho visto tutti e tre gli approcci funzionano bene.

Che cosa può a volte essere buono è quello di iniziare con una, poi con l'aumentare della complessità si muovono a B, quindi C.

Nei progetti semplici "oggetti di business" possono essere inclusi nello stesso progetto come la presentazione e la persistenza piani - anche se può sembrare un'eresia, che definisce gli oggetti utilizzando diversi spazi dei nomi in grado di fornire sufficiente separazione tra i "livelli".

Si potrebbe voler riconsiderare l'uso di .NET Remoting - WCF è di gran lunga una tecnologia migliore e più facile da usare.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top