[.NET] Replicação de projetos

JPgod

Moderador
Staff
boas

venho aqui pedir uma opinião.

Atualmente no meu emprego faço desenvolvimento de software a medida de uso interno em Windows forms/vb.net com VS 2012 e BD SQL SERVER Uma boa parte deste programas partilha um "core" comum com pequenas variações e funcionalidade específica implementada em classes separadas.

O que fazem é basicamente automatizar certos procedimentos online, ou seja são basicamente web bots (desde já aviso que não é para spam :P Mas coisas "chatas" que tem que repetir centenas ou até mesmo milhares de vezes no mesmo dia)

A estrutura é basicamente
* 3 forms comuns: principal, login, config
* pasta com forms específicos daquele projeto
* Pasta com classes comuns
* Pasta com classes específicas
* Imagens
* Pasta de DLL de plugins externos

Está previsto pro próximo mês uma "avalanche" de projetos todos com funcionamento parecido. O que tenho feito é simplesmente pegar num projeto existente, tipicamente o mais "afinado", copiar, apagar o específico e trabalhar nas novas funcionalidades, mas acho que isso é um pouco "martelada no joelho". O que posso fazer para não só facilitar a manutenção como o desenvolvimento e deploy rápido? Cada projeto deste só terei 3/4 dias para criar, testar e validar.

Consegue-se criar um projeto-modelo com todo a estrutura funcional e rapidamente fazer "clones"?

O que já apresentei è chefia é ter um projeto DLL de "library" com todas as funções auxiliares, de strings, consulta web,conexão BD, estas coisas), é uma ideia boa? Atualmente tem 2 DLL (uma para consulta web com o Web Browser) e outra com funções para conectar à BD via webservice)

É possivel ainda sobre as DLL's externas ter todos os projetos a busca-los num lugar comum, podendo ser mesmo no servidor de armazenamento/IIS local? É que ao fazer deploy são uns valentes megas que vai atrás :(
 
Utiliza Projectos templates ou item templates.

Projecto Template -> nao aconselho porque tens que criar um projecto com aquele template nao podes criar o teu a vontade e adicionar mais tarde.

Item Template -> Aconselho vivamente eu já fiz isto para a minha empresa pq por exemplo Projecto Repositorio tem sempre as mesmas classes (GenricRepository, etc etc) e assim podes ter 1 projecto ja criado e vais ao adicionar novo item e depois aparece te o Item Template que criaste ao adiconar copia logo todos os ficheiros para o projecto.


Vou te adicionar aqui uns links uteis:

http://reasoncodeexample.com/2013/06/09/creating-visual-studio-project-templates/

http://blogs.msdn.com/b/akirsman/archive/2012/10/11/creating-visual-studio-templates.aspx


Outra solução e teres em projectos separados e depois crias pacotes nuget com as tuas DLL.

Assim a empresa pode ter 1 servidor nuget com pacotes que todos utilizam...
 
Não percebi o problema de project templates.

Não posso ter o template, criar novo projeto e depois adicionar as novas classes/forms/dlls?
 
JPGod,

No cliente onde estou actualmente também temos uma série de classes/procedimentos que trabalham sobre a mesma BD. Como existem vários projectos para trabalhar em cima desta BD temos uma DLL própria que criamos que tratar de toda a camada acesso e ligação à BD, para ler, escrever, actualizar, juntar dados, etc..

Tipicamente, sempre que temos comportamentos semelhantes ou com acesso aos mesmos dados, criamos DLLs. Temos outras que têm outro tipo de funcionalidades e integradas em todos os projectos, mesmo que não utilizem todas as funcionalidades previstas na DLL.


No que toca à parte principal da tua pergunta, eu diria que o ideal é criar já uma espécie de template limpo, e depois simplesmente duplicar essa pasta/solução e começar a adicionar o que seja específico do projecto actual.
 
Não percebi o problema de project templates.

Não posso ter o template, criar novo projeto e depois adicionar as novas classes/forms/dlls?

Imagina que queres adicionar esses tais ficheiros a um projecto existente com o project template nao consegues. Isto a menos que cries um projecto apartir do project template e dps o teu projecto referencie o projecto template.

Mas o objectivo dos templates é copiar os ficheiros que queres e tens a vantagem de poderes alterar. Se partilhares as DLL's não podes alterar o codigo, se isso nao for problema acho que partilhar as DLL's atraves do nuget é uma boa solucao.
 
Back
Topo