Domanda

Da Posso creare 2 o più DLL dal progetto C # in Visual Studio 2008? , ho un'altra idea di creare solo 1 grande progetto. Successivamente, separo una DLL di progetto (che contiene molte classi.) In 1 DLL per classe utilizzando l'evento post-build per chiamare il progetto di app Win (per separare una grande dll). Come fare questo?

Inoltre, devo gestire anche i file allegati in una grande dll.

Aggiorna Ho trovato qualche trucco che potrebbe guidarmi a risolvere questo problema con build personalizzata ? Inoltre, penso di poter creare un gestore personalizzato che generi un file assembly dinamico usando un modulo module separato & amp; Al.exe. Ma questa funzionalità è al di sopra delle mie aspettative e inconsapevole (il codice sorgente viene raramente modificato).

Assiemi multi-file: cosa e come

Come: creare un assieme a più file

Assemblaggio multiplo personalizzato POCO e ReSharper

Grazie,

È stato utile?

Soluzione 3

Questo problema è risolto dallo script personalizzato per MSBuild che è stato spiegato in un'altra domanda.

<ItemGroup> 
  <Compile Include="Class1.cs"> 
    <Plugin>true</Plugin> 
  </Compile> 
  <Compile Include="Class2.cs" /> 
  <Compile Include="Class3.cs"> 
    <Plugin>true</Plugin> 
  </Compile> 
  <Compile Include="Program.cs" /> 
  <Compile Include="Properties\AssemblyInfo.cs" /> 
</ItemGroup> 

Progetto Visual Studio un con diverse DLL come output?

Grazie a @franko_camron per il suggerimento.

Altri suggerimenti

Solo ... perché? Avere molte DLL può avere un impatto sulle prestazioni all'avvio dell'app (a causa di "fusione"). Praticamente anche immediatamente soffrirà di riferimenti circolari, il che è una brutta cosa .

Poiché il codice .NET (per impostazione predefinita) viene JITted al primo utilizzo, non vi è un enorme impatto sull'avere classi extra in una dll che non vengono utilizzate in tale applicazione. Si siedono lì, in silenzio, senza disturbare nessuno.

Il semplice costo di gestione di avere una dll per classe renderà la distribuzione ecc atroce .

Tutto sommato, non riesco a pensare a una ragione ragionevole per farlo ...

La risposta che otterrai qui non è diversa dalla risposta nell'altra domanda: inserisce un progetto separato per ogni dll separata .

Quello che voglio chiederti è quale sia la tua comprensione della definizione di una "classe" è. Una classe per DLL probabilmente significa che non hai molta familiarità con il funzionamento di assembly, spazi dei nomi e classi.

Dicci, cosa vuoi davvero fare? Perché ciò che pensi di dover fare per risolvere quel problema (ad esempio, creare una DLL per classe) non è pratico.

Aggiorna

Considerando il contesto delle vostre esigenze (ad es. applicazione Web Silverlight), la mia conclusione è che suddividere le classi in più DLL non comporterà un miglioramento delle prestazioni in una pagina Web ASP.NET perché:

  • Le DLL sono utilizzate solo dal server, non sono non scaricate via HTTP sul browser
  • Una volta che una DLL viene caricata da un'applicazione Web, non la ricaricherà più, indipendentemente dal numero di utenti che utilizzano il tuo sito contemporaneamente. Un'istanza DLL per server.
  • Quando avvii la tua applicazione web caricherà tutte le DLL da cui dipendeva per la compilazione, indipendentemente dal fatto che la utilizzerai o meno.

Quindi, con le tue esigenze, probabilmente è meglio NON usare Silverlight per la tua applicazione, considerando il limite di larghezza di banda. I viali che puoi esplorare sono:

  • Apprendimento delle tecniche AJAX, in particolare JSON, (e probabilmente non ASP.NET AJAX e il suo UpdatePanel di facile utilizzo)
  • Imparare jQuery per trovare i controlli che implementeranno in JavaScript ciò che vuoi fare usando Silverlight
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top