Domanda

Mi chiedevo che esistono casi limite che potrebbe fare Common Language Specification conformità accettabile. Anche quando non hanno intenzione di accedere da altre lingue, penso che i principi esercitati, anche per il CLSCompliantAttribute sono buone buone pratiche.

Avete incontrato / a conoscenza di casi in cui YAGNI supera le migliori pratiche?

È stato utile?

Soluzione

"[sic] A che serve è lì per essere compatibile con CLS?"

attendibilità media , ClickOnce , in esecuzione da un'unità di rete condivisa, profili degli ospiti in un ambiente di dominio, ecc ci sono un sacco di situazioni di sicurezza in cui il vostro il codice non può essere eseguito se si rompe la conformità CLS.

Personalmente ho visto un sacco di situazioni in cui gli utenti tentano di eseguire l'applicazione da un'unità di rete condivisa e non possono perché l'amministratore locale ha ucciso le applicazioni non-CLS compliant nel profilo della sicurezza.

In generale, ci sono di solito modi per risolvere il problema in ogni caso. Vorrei prendere l'approccio opposto alle osservazioni di cui sopra, perché romperlo? Si sta scrivendo il codice gestito, perché si vuole limitare l'applicazione di proposito?

Direi che se si sta costruendo un insieme di API o un componente, si deve sempre aderire a loro. Troppi componenti di terze parti prendono la via più facile e appena li segnala come rotto quando si tenta di eseguire da medie fiducia. In alcuni casi, questa è l'unica ragione per cui non può essere eseguito. Se avessero preso un po 'più di tempo per aderire alle linee guida, gli utenti non sarebbero limitati su come possono usare la loro componente.

Altri suggerimenti

Bene, gli array "params" a attributi sono a volte solo così allettante (ma non conforme). Ma mi consiglia di utilizzare approcci CLS-compliant, quando possibile.

Credo che sia accettabile per la libreria interna di un prodotto quando si lavora con i livelli precedenti che richiedono questo tipo di funzionalità o per motivi di prestazioni.

Ma queste interfacce non conformi dovrebbero poi essere reencapsulated a un livello superiore.

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