2010-06-15 11 views
5

Mi è stato rilasciato un problema con la sicurezza. Una banca non consentirà l'uso di DLL nel progetto. Quale tipo di struttura sarebbe necessaria per consentire DataAccess eo l'uso di servizi esterni (come un client di posta elettronica mailchimp, icontct)..NET senza uso di DLL

qualcun altro ha già riscontrato questo tipo di problema? Se hanno come dovrebbe essere strutturato il progetto (.net 3.5+).

Grazie, KJ

+1

farò anche accettare le persone che mi dicono questa è una domanda ritardato perché penso che il concetto di develping senza DLL è anche un po 'strano – Kieran

+4

Non penso che sia possibile utilizzare .Net * a tutti * senza utilizzare DLL, il framework si basa su di essi (System.dll, ad esempio). Del resto, non è possibile utilizzare * Windows * senza utilizzare DLL (kernel32.dll, ad esempio). –

+1

La persona che ha preso questa decisione cerebrale ha mai dato un'occhiata alla cartella di sistema di Windows? –

risposta

5

Significa che non è possibile utilizzare DLL esterne? .NET è fondamentalmente una serie di DLL (il BCL) + il runtime. Tuttavia, posso immaginare che questa banca voglia essere in grado di ispezionare il codice dell'applicazione senza dover ispezionare alcun assembly esterno utilizzando .NET Reflector. In questo scenario anche l'uso di ILMerge non farà il trucco, perché questo non fa andare via il problema di sicurezza. Nasconde semplicemente gli assembly esterni all'interno degli assembly dell'applicazione e rende tutto ancora più difficile da ispezionare.

Penso che l'unica opzione possibile sia utilizzare il minor numero possibile di framework esterni e, se li si utilizza, consentire alla banca di controllarli con .NET Reflector e mostrare esattamente la configurazione che si utilizza.

Per essere onesti, penso che sia piuttosto difficile essere molto produttivi senza l'uso di librerie esterne. Prendiamo ad esempio un quadro di registrazione. Anche l'applicazione più semplice trae vantaggio dall'avere un framework di registrazione.


Mentre non è raro che questi tipi di organizzazioni siano molto prudenti, non è possibile utilizzare alcuna dll esterna. Queste organizzazioni di solito hanno una lista bianca di versioni di particolari framework di cui si fidano. Dovresti chiedere quella lista. Dovrebbero averne uno.

+0

Dopo aver ricevuto qualche informazione in più sul problema, questo è il più vicino che otterrò. Uso minimo di DLL esterne che consentono loro di ispezionare il codice.(La parte peggiore è che non ha nulla a che fare con i loro sistemi ospitati esternamente e nessuna condivisione di dati sono semplicemente rigorosi !!) ... – Kieran

15

io credo che si possa fare questo con ILMerge. Fondamentalmente, si uniscono tutte le DLL necessarie nel file EXE principale.

+0

Molto interessante. Puoi unirmi alle DLL del framework? –

+2

Con alcuni strumenti è possibile compilare anche nel framework .net come –

+0

mentre questo è fantastico, ma non riuscirebbe a risolvere il problema che mi hanno posto. Penso che la mia domanda fosse un po 'imperfetta. Grazie per la risposta =) – Kieran

4

Si potrebbe voler chiarire il loro requisito. Sospetto che quando la banca dice "no dll" intendano davvero "nessuna dll personalizzata in system32". Se questo è veramente ciò che intendono dire, dovresti stare bene usando dll nella cartella dell'app (o se si tratta di una web app - nella sua cartella bin).

Se ciò risulta non essere il caso, e proibiscono davvero l'utilizzo di qualsiasi DLL non già preinstallata nei loro sistemi, si dovrebbe comunque essere in grado di utilizzare .Net framework lo stesso. Gli assembly CLR/BCL sono caricati dal GAC e sono preinstallati su qualsiasi macchina che abbia .Net.

Naturalmente, se non hanno .Net installato sulle loro macchine ... :-)

+0

+1 per la risposta ma Steven ha praticamente coperto ciò che hai detto. – Kieran