Pergunta

A partir posso construir 2 ou mais dlls de projeto C # no Visual Studio 2008? , tenho outra idéia para criar apenas um grande projeto. Depois disso, eu separar uma dll projeto (que contém muitas classes.) Em 1 dll por classe usando evento pós-compilação para chamar projeto de aplicativo Win (para separar uma grande dll). Como fazer isso?

Além disso, eu preciso gerenciar arquivo anexado em um grande dll também.

Atualizar Eu encontrei algum truque que poderia orientar-me para resolver este problema através da compilação personalizada ? Além disso, eu acho que pode criar manipulador personalizado que geram arquivo de montagem dinâmica usando arquivo de módulo separado e Al.exe. Mas esse recurso é sobre o meu esperar e unnessary (código fonte raramente é alterado).

Assembléias Multi-arquivo: O que e como

Como: Construir uma Assembléia Multifile

POCO Assembléia Multifile personalizado e ReSharper

Obrigado,

Foi útil?

Solução 3

Este problema é resolvido pelo script personalizado para MSBuild que foi explicado em outra pergunta.

<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> 

projeto estúdio um visual com várias dlls como saída?

Graças @franko_camron para a sugestão.

Outras dicas

Apenas ... por quê? Tendo lotes de DLLs pode ter um impacto no desempenho inicialização do aplicativo (devido a "fusão"). Será também muito-muito imediatamente sofrem de referências circulares, que é um coisa ruim .

Uma vez que o código .NET (por padrão) recebe JITted quando usado pela primeira vez, não há uma quantidade enorme de impacto em ter aulas extras em uma dll que não se acostumar nessa aplicação. Eles apenas sentar lá, em silêncio, não sendo incomodar a ninguém.

O custo de gestão pura de ter uma dll por classe fará implantação etc excruciante .

Em suma, eu não posso pensar em uma razão sensata a fazer isso ...

A resposta que você vai chegar aqui não é diferente da resposta na outra pergunta: colocar em um projeto separado para cada dll separado.

O que eu quero lhe perguntar é o que sua compreensão da definição de uma "classe" é. Uma classe por DLL provavelmente significa que você não está muito familiarizado com a forma como assembléias, namespaces e classes de trabalho.

Diga-nos, o que você realmente quer ser capaz de fazer? Porque o que você acha que deve ser feito para resolver o problema (por exemplo, a criação de uma DLL por classe) não é prático.

Atualizar

Considerando o contexto de sua exigência (por exemplo, a aplicação web Silverlight), minha conclusão é que dividir suas classes para várias DLLs não vai resultar em uma melhoria de desempenho em uma página web ASP.NET porque:

  • DLLs são utilizados apenas pelo servidor, eles são não baixado via HTTP no navegador
  • Uma vez que uma DLL é carregada por uma aplicação web não irá carregá-lo novamente - independentemente de quantos usuários estão usando seu site ao mesmo tempo. exemplo, uma DLL por servidor.
  • Quando você iniciar seu aplicativo web que irá carregar todas DLLs que dependiam de compilação, se você vai ou não usá-lo.

Assim, com suas necessidades, provavelmente é melhor não usar o Silverlight para a sua aplicação, tendo em conta o limite de largura de banda. As avenidas que você pode explorar são:

  • técnicas de aprendizagem AJAX, especificamente JSON, (e provavelmente não ASP.NET AJAX e seu fácil de uso indevido UpdatePanel)
  • Aprendizagem jQuery para encontrar controles que irá implementar em JavaScript o que você quer fazer usando o Silverlight
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top