Uma das primeiras coisas que me intrigou no C# foi a funcionalidade das classes parciais.
Vindo do mundo do java lembro-me deste tema ter alimentado uma discussão de jantar com outro javardo sobre o prego a que isto podia levar.
Recordo-me em particular de ambos estarmos do mesmo lado na discussão, como que duas comadres a falarem da vida alheia.
O discurso punha de lado o jeito que as classes partiais dão para separar código gerado por uma ferramenta do código batido por um coder e centrava-se nesta inverdade:
Se se pretende decorar uma classe com lógica acrescida, extende-se a classe. Há o OOP e design patterns excelentes para diferenciar responsabilidade.
Hoje..amadureci :) Trabalho tanto com java como C# e aprendi a tirar o melhor de cada mundo (*) e para cada tarefa há uma ferramenta boa.
Recentemente precisei de separar numa classe facade a declaração de uma série de custom events e os respectivos eventhandlers e acabei por organizar a casa numa classe partial.
Feito isto rapidamente me apercebi de uma coisa. Não há forma de agrupar dois ficheiros no Visual Studio.
Em winforms ou WPF há aquele "+" mágico em que agrupa os dois ficheiros. E aqui? Cadê?
Há duas formas de agrupar ficheiros numa solução:
A forma ideial mas que não funciona no VS Express:
* Instalar o plugin VsCommands
A forma hardcore (aka dos pobres)
* Fechar o Visual Studio
* Editar o ficheiro de projecto (ex: myprojec.csproj)
* Procurar o elemento que se pretende agrupar no meio das tags
* Fazer o truque dos pézinhos com a tag
Ex: Agrupar o ficheiro Xpto.Events.cs dentro do Xpto.cs
<Compile Include="Xpto.cs" />
<Compile Include="Xpto.Events.cs">
<DependentUpon>Xpto.cs</DependentUpon>
</Compile>
* Gravar e arrancar o VS
E voila!
Espero que ajude :)
(*) PS: Um dia destes escrevo um artigo sobre a integração de Spring.NET e Ibatis numa aplicação C# :)



0 comentários: