Introdução

Periodicamente vamos publicar este tipo de post para responder a algumas questões que surgem no nosso dia-a-dia, nos nossos treinamentos ou mesmo, ao conversar com profissionais de diferentes áreas de conhecimento.

Neste post vamos falar sobre como é trabalhar com .NET. Você saberá o que é preciso para começar a aprender, caminhos de aprendizado, tendências, comparação com outros frameworks concorrentes, ferramentas e dicas diversas. Vamos lá!

1. O que é a plataforma .NET?

Falando de forma resumida, a plataforma .NET é um conjunto de ferramentas e infraestrutura para executar código geralmente escrito em C# ou Visual Basic.NET. Na prática, usa-se .NET em vários contextos, como Websites dinâmicos, programas para Windows Forms e aparelhos móveis como celulares e dispositivos móveis diversos que contenham sistemas embarcados.

2. Qual é a linguagem de programação para usar com .NET?

Basicamente, temos o C# e o VB.NET. O C# é a linguagem com o maior suporte na comunidade e com a maior quantidade de exemplos. Sua sintaxe é limpa, absorvendo a parte boa de linguagens Java e C++ e até mesmo, absorve conceitos de linguagens mais modernas. A linguagem VB.NET possui compatibilidade total em termos de funcionalidade com a linguagem C#. Ela é usada normalmente por empresas que já utilizavam alguma tecnologia baseada em VB6. No Brasil seu uso é muito difundido e em projetos de migração de ASP 3.0 para ASP.NET, por exemplo, em quase 100% dos casos a migração termina com VB.NET. Como nossa opinião , recomenda-se o uso do C#, pois o mesmo nasceu para a plataforma .NET e a Microsoft jamais a tirará do mainstream. A maioria das consultorias que usam o C# como linguagem padrão e até mesmo, impedem formalmente o uso de VB.NET. O mercado também, embora de forma velada, demonstra certo preconceito contra programadores de VB/VB.NET, já que é possível programar sem regras tão rígidas como as do C#.

3. O que é preciso para começar a aprender .NET?

Na prática, todos nós aprendemos .NET e tecnologias correlatas, como Javascript e linguagem SQL para conseguir criar aplicações que acessam dados. Para se trabalhar com .NET é preciso utilizar ferramentas que não são gratuitas. Embora seja possível trabalhar com ferramentas gratuitas, na prática, as ferramentas gratuitas não permitem que você crie aplicações profissionais como por exemplo, aplicações de várias camadas no mesmo projeto. Os investimentos da Microsoft são realizados apenas para o Visual Studio e todos os fabricantes de plugins só consideram a existência do Visual Studio.

Para começar o ideal é conseguir uma versão trial tanto do Visual Studio como uma versão trial do SQL Server 2005/2008. Com isso o aprendiz já tem a capacidade de criar coisas profissionais e já tem a visão de como se trabalha no dia-a-dia com .NET e SQL Server. Outra opção é conseguir uma máquina virtual configurada. Isso isola completamente o ambiente de desenvolvimento, mas em compensação, há o custo de HD, CPU e memória extra a ser considerado nesta opção. Para usar tranquilamente uma máquina virtual recomenda-se 4GB de memória e CPU de 2 ou mais núcleos.

Porém, além das ferramentas acima, não é preciso mais nada. Não é preciso conseguir plugins, componentes de terceiros ou nada a mais em especial para começar a desenvolver aplicações comuns, diferentemente de Java, que obriga o desenvolvedor a ter que procurar ferramentas diferentes para tipos diferentes de projeto – ou pior(?!) – permite que o mesmo trabalho seja feito com diferentes ferramentas. Entretanto, com o passar do tempo você poderá instalar algumas extensões para o Visual Studio, como por exemplo, um conjunto de controles visuais profissional, como o oferecido pelo Telerik.

4. Quais são os tipos mais importantes de aplicações .NET?

No Brasil, a maioria esmagadora de vagas exige o conhecimento de ASP.NET, que é a criação de páginas dinâmicas com .NET. A construção de páginas em ASP.NET na prática exige mais do desenvolvedor, como conhecimento em SQL Server, ADO.NET, Javascript, CSS e mais recentemente, tecnologias Ajax. Nas exigências de conhecimento em banco de dados, as empresas exigem que o desenvolvedor saiba criar procedures, functions, triggers e views. Logo, para quem está querendo lugar no mercado de desenvolvimento, basicamente é preciso que se saiba apenas a parte Web. Pode ser necessário também conhecer o desenvolvimento de Webservices e mais recentemente, serviços do WCF.

Entretanto, há muitas empresas que desenvolvem para Windows Forms e também, desenvolvem Windows Services. Este conhecimento é importante mas não é tão necessário para o mercado, embora os mesmos sejam até mais simples para se trabalhar.

Outro ramo que surge com crescente interesse é o desenvolvimento de aplicações para celulares e dispositivos móveis, tanto para Windows (aplicações para um celular como por exemplo um gerenciador de contatos comum) como para ASP.NET (por exemplo, um site de banco).

As áreas de desenvolvimento para Office e Sharepoint estão crescendo mas ainda não são tão importantes como o desenvolvimento Web. O .NET só ganhou grande importância e grande quantidade de usuários devido ao seu modelo de programação para aplicações Web.

5. Comparação de .NET com PHP e Java (J2EE)

O PHP possui também um grande mercado e grande parte de suas ferramentas são livres. O Java também. Entretanto, o PHP é uma tecnologia exclusivamente desenhada para sites Web (por favor me corrijam se eu estiver errado neste ponto!) e não serve para aplicações desktop ou de outros tipos comuns. Logo, não se usa PHP para aplicações empresariais complexas. O .NET foi criado pela Microsoft para concorrer com a Sun no disputado mercado de linguagens de programação.

Após ambas tecnologias chegarem à maturidade atual, é difícil apontar algo que não seja possível criar com as versões máximas de cada tecnologia, com qualquer tipo de ferramenta a disposição e com orçamento ilimitado. Quem trabalha com .NET poderá ter dificuldade de criar aplicações modernas para Linux, já que é preciso utilizar o Mono para compilar o código. Já quem utiliza Java poderá ter dificuldade de conseguir criar os designs estonteantes que o WPF (Windows Presentation Foundation) permite criar.

Na prática, aplicações empresariais são criadas hoje em dia apenas com Java (J2EE) ou com .NET. A escolha da tecnologia é geralmente moldada pelas necessidades do cliente final, como a hospedagem, licenças disponíveis e etc. Quanto aos custos de aprendizado, ambos são similares. Quanto aos custos de se usar tais tecnologias, o custo tanto dos desenvolvedores como os de software podem variar muito. Muitas vezes a variável que acrescenta custo ao projeto é externa, como por exemplo, o custo maior do banco de dados Oracle em relação ao SQL Server. O .NET segue mainstream na Microsoft e o Java pertence à Sun, que até o momento da escrita deste post está para ser comprada pela Oracle. Acreditamentos que o desenvolvimento de melhorias para as tecnologias baseadas em Java continuarão a todo vapor.

Para quem está começando, recomendamos o uso do .NET atual, que está muito maduro, possui uma excelente linguagem de programação, excelente suporte e principalmente, um ecossistema de tecnologias e fornecedores muito simplificado. É sempre o mesmo servidor web, sempre a mesma forma de instalar, sempre a mesma forma de desenvolver a aplicação web – sem grandes dificuldades em termos de infraestrutura. Para quem está na faculdade ou numa empresa de desenvolvimento, há chances de haver uma chance de parceria com a Microsoft para fornecimento de sistemas operacionais e ferramentas de desenvolvimento, tornando o custo inicial de adoção e aprendizado menor. Por exemplo, a Accendis conta parceria da Microsoft tendo acesso a grande parte dos seus produtos para desenvolvimento de aplicações.

6. Quem ganha mais? Um desenvolvedor Java ou .NET?

Essa questão é realmente complicada de responder. Mas conversando com os nossos colegas de mercado tanto de Java como .NET, vimos a notar que de fato, os salários são similares. Acredita-se que o mercado de desenvolvedores Web é maior para quem trabalhar com tecnologia .NET. Já para quem trabalha com Java, acredita-se que o mercado é maior para quem trabalha com aplicações empresariais ligadas a processos de negócio. Para vagas sênior de São Paulo, salários CLT tanto de .NET como Java pagam de 5.000 a 7000 reais, dependendo das necessidades de skill da vaga e se realmente, você for apenas programar e no máximo, liderar uma equipe – isto é – se você não for gerenciar projetos. Para vagas de pleno temos uma faixa de 3.000 a 5.000 reais e para júnior, até 3.000 reais. Os valores são válidos para São Paulo e região.

7. Em resumo, quais são as coisas que um desenvolvedor típico de .NET precisa saber?

Em resumo um desenvolvedor completo de .NET precisa saber:

  • C# ou VB.NET (orientação a objetos, construções, arquitetura de eventos, etc…)
  • ASP.NET (ciclo de uma páginas web, arquitetura cliente-servidor)
  • ASP.NET Ajax
  • HTML
  • Javascript
  • CSS
  • Webservices/WCF
  • SQL Server (linguagem T-SQL)
  • Criação de Windows Services
  • Noções de separação de camadas da aplicação
  • Compreensão de diagramas da UML

Outros tipos de skill podem ser cobrados de forma mais específica, com por exemplo, conhecimento em Business Intelligence, conhecimentos matemáticos, edição de imagens e conhecimento em design,  Windows Workflow Foundation, Sharepoint, Integração com Office e mais.  Porém o que as pessoas mais valorizam numa empresa comum (isto é, sem ser uma consultoria de software) é a capacidade de transformar regras de negócio em melhorias para a empresa. O desenvolvedor que aprende a regra de negócios, que consegue gerar documentos adequados e consegue fazer com que seu time gere valor com o software tem grandes chances de subir em sua carreira. Pessoas assim não são só apenas programadores, mas sim, analistas de sistemas e mais tarde, gerentes de equipe, gerentes de TI e eventualmente, assumem posições com capacidade de decidir sobre a evolução do business.

8. Ok! Como fazer para começar com o aprendizado?

Realmente, o melhor jeito de começar é lendo algum livro e começar pelo caminho do auto-aprendizado. As faculdades atualmente não ensinam o .NET na sala de aula e portanto é preciso procurar por tutoriais, livros, revistas e mesmo cursos. O importante é que você já precisa conhecer programação para começar a aprender .NET, Java ou demais tecnologias atuais.

Há inúmeras fontes de informação e após ler os conceitos básicos da linguagem, use seu tempo e crie por exemplo, um cadastro simples e depois um sistema completo um pouco menos simples – com essa experiência você conseguirá ter uma real noção dos problemas que acontecem como erros de todos os tipos.

Dependendo do projeto, das experiências vividas na empresa e aplicação do desenvolvedor, diz-se que é possível ver uma pessoa chegar a um nível pleno em 12 meses. E vale lembrar que mesmo que você já conheça alguma tecnologia, você sempre será iniciante em uma tecnologia mais nova. Por exemplo, se você já conhece ASP.NET não necessariamente será bom em Silverlight sem estudar, sem se aplicar e sem ter horas de vôo na tecnologia em questão. Evite estudar/adotar tecnologias muito novas que ainda não possuem o devido grau de suporte e aceitação no mercado.

Grande Abraço

Equipe Accendis.

,
Adicionar aos Favoritos BlogBlogs Adicionar esta notícia no Linkk