No Visual Studio 2008 pode-se usar um recurso para geração de código bastante interessante, T4 Templates, mais infos em http://www.pnpguidance.net/.
Irei explicar passo-a-passo como criar um exemplo inicial:
No visual studio 2008:
1- Crie uma console application com o nome "T4TemplateExemple"
2- Clique com o botão direito do mouse no nome do projeto: Add/New Item
3- Selecione um text file, mas renomeie a extenção de txt para tt. Use o nome "T4Template.tt"
4- Digite o seguinte código dentro do arquivo tt:
<#@ template language = "C#" #>
using System;
namespace T4TemplateExemple
{
class T4Example
{
public void ExibeNumeros()
{
<#
for(int i=0; i<6; i++)
{
#>
Console.WriteLine(<#= i#>);
Console.Read();
<#
}
#>
}
}
}
5- Salve o arquivo tt
6- Abra o arquivo ".cs" associado ao ".tt" e veja o resultado:
using System;
namespace T4TemplateExemple
{
class T4Example
{
public void ExibeNumeros()
{
Console.WriteLine(0);
Console.Read();
Console.WriteLine(1);
Console.Read();
Console.WriteLine(2);
Console.Read();
Console.WriteLine(3);
Console.Read();
Console.WriteLine(4);
Console.Read();
Console.WriteLine(5);
Console.Read();
}
}
}
Conclusão, todo o texto escrito no arquivo .tt é diretamente escrito no .cs. Todo texto escrito entre as tags <# #> do arquivo .tt é interpretado. Todo o texto escrito entre as tags <#= #> do arquivo .tt é interpretado como uma variável.
Já deu para entender o potencial desse recurso, né?
Download da solution: T4TemplateExemple.zip
Os profissionais da área de TI, principalmente os desenvolvedores de software, tem uma grande vantagem quando o assunto é internacionalizar a sua carreira. Desenvolver software aqui ou do outro lado do mundo é a mesma coisa, as ferramentas são exatamente as mesmas, o que mudam são mas metodologias e a cultura de cada empresa.
Por conta dessa facilidade, é frequente vermos brasileiros saindo do país e tendo sucesso lá fora. São histórias como essas que fomentam os sonhos da tão sonhada realização profissional e financeira.
Como esse tema é muito importante, entrevistei por e-mail um colega de trabalho, o Rodrigo Garcia, que saiu do país. Fiz apenas 5 perguntas e ele gentilmente respondeu.
Vamos iniciar com uma visão geral sobre o Rodrigo Garcia, conte-nos um pouco sobre sua experiência e trajetória profissional na área de TI.
Comecei a trabalhar com TI numa posição completamente contrária a que me encontro hoje, trabalhando com servidores Unix e segurança de redes (uma área que ainda gosto bastante porém sigo como hobby). Em 2003 comecei a trabalhar para uma empresa fábrica de software onde exercia o cargo de network admin, e daí o primeiro contato com desenvolvimento em plataforma Microsoft que dura continuamente até hoje. Além da facilidade que tive pois já trabalhava com TI, tive o privilégio de trabalhar com ótimos profissionais que já estavam desenvolvendo em .NET desde o framework beta (em 2001), o que me proporcionou um aprendizado rápido. De lá, passei por outras empresas (j-tech, Politec e Paradigma), até iniciar as atividades na Polimatica(Itália).
Além de sua experiência nos EUA trabalhando na área de infra-estrutura, recentemente você teve uma passagem pela Itália, onde atuou como desenvolvedor. Como é o mercado por lá ?
O mercado de TI é forte no mundo inteiro, principalmente desenvolvimento e na Europa não é diferente. A Itália não está entre os países mais fortes no desenvolvimento (como Irlanda, Inglaterra e Alemanha), porém nas cidades pólos como Turim, Milão e Roma, o déficit de profissionais continua alto.
O nível do desenvolvedor brasileiro não deixa a desejar em nada, muito pelo contrário, portanto as únicas possíveis barreiras ao desenvolvedor estrangeiro podem ser a lingüística (Italiano e Inglês devem estar afiados), e a documentação para trabalhar legalmente na Itália (se cidadão de qualquer país da comunidade européia não há problema algum, caso contrário necessita um visto de trabalho).
Um dos maiores medos dos imigrantes brasileiros é com o preconceito (xenofobia) por parte dos estrangeiros, você sofreu algum problema desse tipo com os italianos?
Felizmente nenhum. Este assunto é realmente muito polêmico e complexo em toda a Europa porém não só na Itália como em todos os outros países que visitei nunca sofri preconceito algum. O italiano é muito espontâneo e direto e isso as vezes soa como grosseria para algum estrangeiro mas depois de alguns dias lá, você verá que são "Tutti buona gente".
Rodrigo, agora a pergunta que não quer calar: Qual é a remuneração média de um desenvolvedor sênior na Europa?
Na Itália existem algumas formas de contrato (equivalentes a nossa CLT, PJ, etc), porém apenas a mérito informativo o valor bruto em um contrato equivalente a PJ dentre as 3 cidades citadas varia da seguinte forma:
Milão e Roma – 300 a 400 euros por dia.
Turim – 250 – 350 euros por dia.
Na Irlanda, Inglaterra e Alemanha a remuneração é consideravelmente melhor, e para aquele que almeja apenas guardar um dinheiro para posteriormente retornar o Brasil, é importante lembrar que o pagamento na Inglaterra é em Libras Esterlinas e que o câmbio para real é bem melhor.
Para finalizar, gostaria que você deixasse uma dica para os brasileiros que almejam uma carreira internacional.
A dica é planejamento. Escolha bem a cidade onde deseja trabalhar, estude bem o inglês pois você vai usar independente do pais escolhido, faça uma reserva econômica, tire seu visto (ficar ilegal é crime, você não vai conseguir um bom salário e se for deportado não poderá mais pisar lá por um bom tempo), e de preferência procure fazer contato com alguma empresa de lá antes mesmo de ir (existe um site para publicação de currículos que ajuda bastante – www.monster.it ). Esteja preparado pra agüentar a saudade do Brasil e então é só partir.
Rodrigo, muito obrigado por compartilhar sua experiência conosco.
Um grande abraço,
Fernando Vezzali.
O Visual Studio .Net, desde as primeiras versões, ofereceu a possibilidade de se trabalhar com templates de classes e páginas, a partir da versão 2005 a criação e uso ficou ainda melhor, com a possibilidade de se exportar o template baseado em uma classe ou página. A vantagem de se utilizar o template é evitar perda de tempo redigitando as mesmas linhas de código sempre que se inclui uma nova página ou classe no projeto.
O primeiro passo para se utilizar um template é adicionar a opção Export Template ao menu File caso a mesma ainda não esteja por lá, para isso clique em Tolls/Customize/Commands, selecione o menu file e arraste o item Export Template para ele.

Com a solução aberta, clique em File/Export Template. Selecione a opção
Item template, selecione o projeto no qual a classe ou página faz parte. Next.

Marque todas as classes e páginas que você pretende tornar template. Next.

Marque as referências que você quer usar. Next.

Na última tela defina um nome e uma descrição para o template e clique em Finish.

Agora o template já está instalado, para testá-lo clique com o botão direito do mouse em cima do projeto, selecione a opção Add New Item. Nessa tela você tem à disposição os itens do Visial Studio installed templates que são os já conhecidos: Web Form, Master Page, Web User Control, etc... Logo abaixo você tem à disposição os itens do My Templates, todos os templates que você criar ficarão nessa área. Basta selecionar o template e definir um nome.

Para um programador crescer profissionalmente, indiscutivelmente o trabalho em equipe é o melhor aprendizado, a troca de informações quando um profissional pede ajuda para o outro ou em uma conversa informal, é bastante enriquecedor. Porém nem todos os programadores trabalham em equipes, muitos codificam sozinhos (não é o meu caso), mas para esses pobres guerreiros solitários nem tudo está perdido.
Em muitos fóruns é possível obter aquela ajuda num momento de desespero e também ter uma conversa informal. Alguns fóruns se destacam pela eficiência na obtenção de respostas quase imediatas e de grande qualidade técnica: http://forums.asp.net/ e http://forums.microsoft.com/ Comecei a colaborar recentemente com o forums.asp.net e já solucionei o problema de três pessoas:
http://forums.asp.net/t/1313526.aspx
http://forums.asp.net/t/1314286.aspx
http://forums.asp.net/t/1313025.aspx
ajudando aos outros a gente também aprende!