Su un grande progetto, siamo riusciti abbastanza bene a isolare il codice ArcObjects dalla nostra logica aziendale. Questa è generalmente la strada da percorrere, direi, piuttosto che tentare di deridere tutto, anche se è possibile usare framework di derisione per ottenere un po 'di strada.
Chiediti, perché senti il bisogno di deridere. In genere, è a causa di un'astrazione mancante. Pensa alle piccole responsabilità e minimizza la superficie dell'enorme, brutto mostro ArcObject. Evita di trascinare i tipi di ArcObject solo perché alcuni aspetti di essi sono necessari da qualche parte.
Posso dare un esempio concreto dal nostro progetto. Una parte del codice sembrava dipendere da IMxDocument. Si è scoperto che l'unico motivo era che la vista attiva doveva essere aggiornata. Quindi abbiamo creato un'interfaccia IViewRefresher invece e ci abbiamo lavorato solo; facile da deridere e testare. Inoltre, rende l' intento del codice molto più chiaro e rimuove la tentazione che qualcuno inizi a fare cose divertenti con il documento IMx che non avrebbero dovuto fare perché tutto ciò che volevamo fare qui era aggiornare. Lo stesso esercizio può essere fatto con molto codice ArcObjects.
Inoltre, abbiamo avvolto tutti gli accessi alle classi di funzionalità in wrapper di tipo sicuro, fornendo nuovamente codice beffardo che protegge il codice aziendale da ArcObjects.
Abbiamo discusso nemmeno usando i tipi di geometria di ArcObjects, ma attualmente consentiamo che tali interfacce possano essere utilizzate direttamente nel nostro codice. (Tuttavia, è consentita solo la conoscenza dell'interfaccia e tutte le istanze di geometrie utilizzano la nostra fabbrica di geometrie.)
In sintesi, non sto disincoraggiando il beffardo ma incoraggerei il deridere a un diverso livello di astrazione rispetto ad ArcObjects.