Domanda

Non si utilizza strato di architettura d'impresa per la creazione di soluzioni di SharePoint? Mi può dare un progetto di sito codeplex.com/other come esempio, dove posso trovare un design a strati? (Interfaccia / BL / DAL)

È stato utile?

Soluzione

Io uso architettura a livelli in tutte le mie soluzioni SharePoint e SharePoint trattare in generale come lo strato di interfaccia utente, mantenendolo molto sottile. Qualsiasi logica va nel modello di business e ho involucri DAL a astrarre la Lista infrastrutture (che aiuta anche con la prova).

Per una buona lettura su architettura a strati in ASP.NET leggi questo articolo qui . E 'ASP.NET e NHibernate, ma i principi sono gli stessi. C'è anche un'architettura campione stratificato in .NET qui su CodePlex. Anche in questo caso, non SharePoint specifico, ma i principi sono gli stessi.

Mantenere utente di SharePoint sottile e resistere alla tentazione di iniziare la lettura / scrittura di liste nel codice web part. Trattarlo come un database (perché è!)

Altri suggerimenti

D'accordo con Bil.

parti Web, controlli web, pagine di applicazione ecc dovrebbero essere solo lo strato di interfaccia utente che le chiamate in uno strato che è agnostico del contesto di chiamata originale; chiamando contesto potrebbe essere un ricevitore di eventi, un'applicazione console, processo timer, flusso di lavoro, ecc sempre assicurare che questo livello condiviso si chiama in non ha una dipendenza da SPContext.Current in quanto non è sempre lì! Accetta SPWebs, SPLists, SPLisItems ecc come parametri del metodo e parametri del costruttore. In un contesto web è possibile passare questi dal SPContext.Current, ma in un'applicazione console si sarebbe costruire questi stessi.

Per migliorare la facilità di debug (solo premere F5) e abbreviare il ciclo di feedback sviluppatore, spesso cominciare crei una semplice applicazione console che chiama nello strato che conterrà la logica di base, passando in uno SPWeb che ho costruito nel Applicazione console. Una volta logica di nucleo è finito, scrivo un WebControl sottile o WebPart per sostituire l'applicazione console, leggere la SPWeb dal contesto, invece di costruire, impostare i gestori di eventi ecc.

Per Bil e Jaap (o chiunque altro),

mi chiedo che tipo di oggetti / interfacce si passa tra gli strati? Non si passa indietro uno SPListItem o non si passa di nuovo qualche tipo di interfaccia che rappresenta la SPListItem?

SharePoint è una bestia strana perché l'utente ha effettivamente la capacità di cambiare la struttura dei dati tramite l'interfaccia web (possono aggiungere / rimuovere / modificare le colonne in una lista). Se si passa indietro un oggetto / interfaccia, ogni volta che una lista viene modificato da un utente, il codice dovrebbe essere ricompilato (e distribuito) per accogliere la nuova colonna (proprietà). Se si passa indietro lo SPListItem, è in effetti rompere lo strato consentendo l'accesso diretto alla fonte di dati (SharePoint).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a sharepoint.stackexchange
scroll top