Siamo nuovi in Glass mapper e volevamo utilizzarlo nel nostro progetto Sitecore. Guardando le esercitazioni abbiamo notato che non c'erano esempi profondi su come impostare l'eredità profonda che consente Sitecore. Durante la navigazione sul Web abbiamo notato che ci sono persone che lavorano con il posizionamento degli attributi sulle interfacce e dall'altra parte ci sono persone che posizionano gli attributi sulle classi concrete. Nessuno di questi esempi spiega la loro buona ragione per farlo, ma ci lascia con la domanda: che è l'uso corretto e qual è l'impatto di fare uno o l'altro?Sitecore Glass Mapper: attributi su interfacce o classi concrete?
Si consideri il seguente:
Template: Content (che è un modello di sezione campo aggiungendo 2 campi semplice: titolo, il corpo) Questo modello è direttamente e indirettamente ereditato da molti dei nostri modelli.
Ora in uno dei nostri sublayout usiamo solo questa sezione ed è una specie di controllo più generale, quindi dobbiamo fare: GetCurrentItem<Content>
o GetCurrentItem<IContent>
.
Personalmente trovo il GetCurrentItem<IContent>
più intuitivo in quanto mi sembra di chiedere: "Dammi l'elemento corrente se supporta la sezione del contenuto" dove l'altro sembra più "Dammi l'elemento corrente se si tratta di una sezione di contenuto" (che tecnicamente è impossibile dal momento che gli articoli del contenuto non vengono mai creati)
Grazie, questa era la spiegazione che stavo cercando. Spero che la funzionalità del tipo infer venga meglio documentata in futuro. – IvanL
È possibile aggiungere ulteriore logica alle interfacce utilizzando i metodi di estensione. Non è l'ideale, ovviamente. – Iucounu
Il primo collegamento è rotto, sai se esiste un nuovo collegamento? –