.NET Framework, ASP.NET MVC, ASP.NET Web Forms, C#, Evento, Java x .NET, Microsoft, Visual Studio, WF, WPF

Minha palestra sobre educação e certificação na Plataforma .NET no evento Java x .NET SP 2010

No dia 15 de outubro de 2010 (sexta-feira), eu apresentei a minha palestra de fechamento dia dia 1 de 2 no evento Plataforma Java x Plataforma .NET – Edição SP 2010.

Na palestra, eu abordei uma série de recursos disponíveis para estudo da plataforma .NET, principalmente recursos fornecidos pela Microsoft Brasil, gratuitos e em idioma portugês brasileiro. Também são apresentadas as novas certificações disponíveis atualmente e voltadas para a plataforma .NET 4 e para o Visual Studio 2010.

Os seguintes tópicos foram apresentados:

  • Introdução à Plataforma Microsoft
  • Capacitação gratuita
  • Aprendizado para iniciantes
  • Videocasts
  • Biblioteca MSDN
  • Centro de avaliação de software
  • Eventos e Webcasts
  • Fóruns MSDN
  • Channel 9 Brasil
  • Galeria de códigos (em inglês)
  • CodePlex (em inglês)
  • Galeria do Visual Studio
  • MSDN Media Center
  • MSDN Newslettter
  • MSDN Blogs
  • MSDN Magazine
  • DevLabs (time dos EUA)
  • MSDN no mundo
  • eBooks gratuitos
  • Microsoft Learning
  • Revistas e grupos de usuários
  • Microsoft Developer Network
  • MCTS em .NET 4 e Visual Studio 2010
  • MCPD em .NET 4 e Visual Studio 2010
  • Atualização do .NET 3.5 e VS 2008
  • Materiais de estudo recomendados
  • Exame relacionado de TFS 2010

Os slides da apresentação estão disponibilizados abaixo.

Anúncios
C#, Evento, Java x .NET, Microsoft

Minha palestra sobre a linguagem C# 4 e 5 no evento Java x .NET SP 2010

No dia 15 de outubro de 2010 (sexta-feira), eu apresentei a minha palestra sobre a Linguagem de programação C# no evento Plataforma Java x Plataforma .NET – Edição SP 2010.

Inicialmente, a minha ideia era abordar as capacidades atuais da linguagem C# 4 e comentar sobre uma novidade proposta publicamente pelo time de desenvolvimento do C# na Microsoft para a versão 5.

Devido ao perfil heterogêneo do público do evento, composto também por desenvolvedores da plataforma Java, eu resolvi apresentar a evolução da linguagem C# desde a versão 1.0 até a proposta de evolução da próxima versão, ou seja, a linguagem C# 5.

Em resumo, eu apresentei algumas das principais características incorporadas à linguagem C# desde a versão 1.0. A evolução da linguagem foi apresentada como descrita a seguir.

  • C# 1.0 (Fev 2002):
    Código gerenciado, linguagem de POO, suporte nativo a propriedades e eventos, documentação XML, exceções, segurança de tipos, delegates, sobrecarga de operadores, dentre outros recursos.
  • C# 2.0 (Nov 2005):
    Generics, Iterators, tipos parciais, tipos anuláveis, métodos anônimos, qualificador de apelidos de namespace, classes estáticas, níveis de acesso distintos nos acessores de uma propriedade, covariância e contravariância em delegates, dentre outros recursos.
  • C# 3.0 (Nov 2007):
    Propriedades implementadas automaticamente, iniciadores de objetos, iniciadores de coleções, variáveis locais e arrays com tipos deduzidos implicitamente, métodos de extensão, expressões lambda, árvores de expressão, tipos anônimos, expressões de consulta, métodos parciais, LINQ (Language INtegrated Query), dentre outros recursos.
  • C# 4 (Abr 2010):
    Objetos tipados dinamicamente, parâmetros opcionais e nomeados, melhorias na interoperabilidade com COM, covariância e contravariância em tipos genéricos, dentre outros recursos.
  • C# 5 (provavelmente final de 2012 ou início de 2013):
    Compilador como um serviço, dentre outros recursos.

Abaixo, seguem os slides da palestra apresentada no evento.

Durante a apresentação, eu fiz uma demontração do zero de como usar os conhecimentos de SQL para criar consultas com LINQ (Language INtegrated Query) na linguagem C# 3.0 ou superior. Eu consultei um conjunto de arquivos numa pasta fazendo operações de projeção, filtragem, ordenação, agrupamento e agregação. Foi usado o LINQ to Objects que permite consultar uma sequência enumerável de objetos.

Abaixo, segue o projeto da aplicação Console do Visual Studio 2010 exatamente como foi realizado durante o evento.

DemoLinq.zip

Rogério Moraes de Carvalho
Twitter: @rogeriomc

Evento, Java x .NET, Linguagem Java, Plataforma Java

Minha palestra sobre Linguagem Java 6, 7 e 8 no evento Java x .NET SP 2010

No dia 15 de outubro de 2010 (sexta-feira), eu apresentei a minha palestra sobre a Linguagem de programação Java no evento Plataforma Java x Plataforma .NET – Edição SP 2010.

Inicialmente, a minha ideia era abordar as capacidades atuais da linguagem Java 6 e focar nas novidades propostas pela Oracle para as duas próximas versões: 7 e 8.

Devido ao perfil heterogêneo do público do evento, composto também por desenvolvedores da plataforma .NET, eu resolvi apresentar a evolução da linguagem Java desde a versão 1.0 até o plano "B", que tinha sido recém anunciado pela Oracle, para as versões 7 e 8.

Em resumo, eu apresentei algumas das principais características incorporadas à linguagem Java desde a versão 1.0. A evolução da linguagem foi apresentada como descrita a seguir.

  • Java 1.0 (Jan 1996):
    Introdução da linguagem de programação orientada a objetos projetada para ter o mínimo de dependência de implementação.
  • Java 1.1 (Fev 1997):
    Suporte a classes internas (classes aninhadas)
  • Java 1.1 (Fev 1997):
    Suporte a classes internas (classes aninhadas).
  • Java 1.2 (Dez 1998):
    Acréscimo da palavra-chave strictfp para garantir a portabilidade em cálculos com ponto flutuante.
  • Java 1.4 (Fev 2002):
    A evolução da linguagem Java passou a ser governada pelo Java Community Process (JCP) no JSR 901 e acréscimo da palavra-chave assert.
  • Java 5.0 (Set 2004):
    Maior evolução da linguagem desde a sua criação: generics, anotações (metadados), autoboxing/unboxing, enumerações, varargs, laço for avançado e static import.
  • Java 7 (prevista para o meio de 2011):
    Suporte a linguagens tipadas dinamicamente, strings em switch, try-with-resources, inferência melhorada na criação de instâncias genéricas (diamond), invocação simplificada com varargs, literais binários e sublinhado para literais inteiros e multi-catch, dentre outros recursos.
  • Java 8 (prevista para o final de 2012):
    Modularidade (superpacotes), projeto Lambda (tipos funções e expressões Lambda), extensão da sintaxe de anotações, expressões literais para listas, conjuntos e mapas, acesso com sintaxe de índices para listas e mapas.

Seguem, abaixo, os slides da palestra apresentada no evento.

No slide 32, é interessante observar o descontraído diálogo que eu tive pelo Twitter com um dos engenheiros da Oracle sobre o título do anúncio que ele fez no blog dele sobre a parceria da Oracle com a IBM na evolução do OpenJDK.

Rogério Moraes de Carvalho
Twitter: @rogeriomc

Evento, Java x .NET, Microsoft, Plataforma Java

Minha palestra de abertura no evento Java x .NET SP 2010

No dia 15 de outubro de 2010 (sexta-feira), eu apresentei a minha palestra de abertura no evento Plataforma Java x Plataforma .NET – Edição SP 2010.

Todo dinheiro arrecadado com as inscrições foi doado para a Associação de Pais e Amigos da Criança com Câncer e Hemopatias (APACC).

A palestra de abertura do evento abordou os seguintes tópicos:

  • Descrição do evento
  • O trabalho da APACC
  • Inscrições como doações para a APACC
  • Apoio técnico
  • Apoio na organização
  • Apoio com infraestrutura
  • Apoio na divulgação
  • Agradecimentos pessoais e especiais
  • Mudança do nome do evento
  • Boas-vindas

Os slides da palestra de abertura estão disponíveis abaixo.

Evento, Java x .NET, Microsoft, Plataforma Java

Evento “Plataforma Java x Plataforma .NET – Edição SP 2010”

Quinta edição do evento e pela primeira vez em São Paulo

O evento Plataforma Java x Plataforma .NET será realizado em São Paulo-SP pela primeira vez, uma vez que as quatro edições anteriores foram realizadas no Distrito Federal.

O que NÃO É o evento?
Uma disputa para demonstrar qual é a melhor das plataformas: Java ou .NET.

O que É o evento?
Um conjunto de palestras técnicas de Java e .NET, apresentadas por especialistas nos temas abordados, seguidas por debates motivados por perguntas dos participantes.

Vejam informações detalhadas sobre o evento no site: http://www.javaversusdotnet.com.br/sp2010/.

Temas do evento Plataforma Java x Plataforma .NET - Edição SP 2010
Informações detalhadas da programação: http://www.javaversusdotnet.com.br/sp2010/Programacao.aspx.

Inscrições

O evento tem caráter técnico e beneficente, sendo que todas as inscrições são realizadas como doações para a APACC (Associação de Pais e Amigos da Criança com Câncer e Hemopatias): http://www.apacc-sp.org.br/.

Mais informações

Rogério Moraes de Carvalho
Twitter: @rogeriomc

Evento, Java x .NET

Evento Plataforma Java x Plataforma .NET – Edição DF 2009

O evento Plataforma Java x Plataforma .NET – Edição DF 2009 conta com palestrantes de alto nível técnico para representarem tanto a plataforma Java quanto a plataforma .NET (http://www.javaversusdotnet.com.br/df2009/Palestrantes.aspx). A idéia do evento é promover um debate técnico abordando diversos temas.

Edições anteriores do evento já contaram com a participação da BEA Systems (adquirida pela Oracle), da Borland (adquirida pela Micro Focus), da IBM, do INdT (Instituto Nokia de Tecnologia), da Microsoft, da Oracle e da Sun Microsystems (adquirida pela Oracle), dentre outras empresas multinacionais de TI.

A edição DF 2009 do evento comta com a participação das seguintes empresas de TI: Borland, Embarcadero, Micro Focus, Microsoft e Red Hat, dentre várias outras.

Informações detalhadas sobre o evento podem ser encontradas no site: http://www.javaversusdotnet.com.br/df2009.

Abaixo, eu destaco algumas páginas do site com informações importantes sobre  o evento.

Rogério Moraes de Carvalho
Twitter: @rogeriomc

Evento, Java x .NET

Comentários técnicos de comparações entre as plataformas Java e .NET – Parte 2

Autor: Rogério Moraes de Carvalho
Data da publicação: 29/07/2009

Artigos da série Comentários técnicos de comparações entre as plataformas Java e .NET

Parte 2

Seguem mais algumas afirmações reais sobre as plataformas Java e .NET sem fundamentação e os meus comentários técnicos. As afirmações podem ter sido feitas em artigos, em comentários de artigos ou em debates de grupos de discussão.

AFIRMAÇÃO 4 (retirada de um artigo)

"Além disto, nada na Microsoft é open source."

COMENTÁRIOS TÉCNICOS DA AFIRMAÇÃO 4

A afirmação 4 foi feita no mesmo artigo de onde foram retiradas as afirmações 1 a 3.

A Microsoft não somente tem diversos projetos open source, como criou um Web Site para hospedar projetos open source denominado CodePlex. O site pode ser acessado no seguinte endereço: http://www.codeplex.com. Inclusive, diversos dos projetos open source hospedados no CodePlex têm participação do time de desenvolvimento da Microsoft. Seguem exemplos de alguns projetos open source importantes hospedados no CodePlex: ASP.NET MVC, AJAX Control Toolkit, Silverlight Toolkit, DotNetNuke, SQL Server 2008 Sample Databases e DotNetZip, isto somente para citar alguns.

AFIRMAÇÃO 5 (retirada de um artigo)

"A grande diferença entre o J2EE e o .NET é que desde que o .NET suporta apenas Win32, um número maior de máquinas se faz necessário, comparando ao J2EE, devido às limitações dos processadores."

COMENTÁRIOS TÉCNICOS DA AFIRMAÇÃO 5

A afirmação 5 foi feita no mesmo artigo de onde foram retiradas as afirmações 1 a 4.

A afirmação de que a plataforma .NET somente suporta Win32 (arquitetura 32-bit) é completamente errada.

Atualmente, a plataforma .NET está na versão 3.5 SP1.

O Microsoft .NET Framework 3.5 Service Pack 1 (SP1) suporta as seguintes arquiteturas de processador:

  • x86
  • x64
  • ia64 (64-bit Intel Itanium architecture) (somente suportada com o Windows Server 2008)

O Microsoft .NET Framework 3.5 Service Pack 1 (SP1) suporta os seguintes sistemas operacionais:

  • Microsoft Windows XP
  • Microsoft Windows Server 2003
  • Windows Vista
  • Windows Server 2008
  • Windows 7

Informações mais detalhadas podem ser encontradas no documento Microsoft .NET Framework 3.5 Service Pack 1 (SP1) Readme, disponível no seguinte endereço: http://download.microsoft.com/download/A/2/8/A2807F78-C861-4B66-9B31-9205C3F22252/dotNet35SP1Readme.htm.

AFIRMAÇÃO 6 (retirada de um artigo)

"Em um fator de extrema importância, como velocidade de desenvolvimento, o .NET leva grande vantagem. A sua IDE proprietária, o Visual Studio, é baseado em RAD (Rapid Application Development), aumentando a agilidade na construção de aplicações. O Visual Studio .NET inclui várias ferramentas interessantes em termos de produtividade, como por exemplo o Web Forms. Estima-se que um projeto criado do zero, leve-se de 10% a 20% menos tempo para entrar em produção quando desenvolvido em .NET."

COMENTÁRIOS TÉCNICOS DA AFIRMAÇÃO 6

A afirmação 6 foi feita no mesmo artigo de onde foram retiradas as afirmações 1 a 5.

Este trecho corresponde a uma opinião pessoal do autor sem nenhuma base técnica.

A questão de o Visual Studio ser mais produtivo que os IDEs de Java é bastante discutível. Na realidade, a discussão está bem longe de ser simples como sugere o autor. Qualquer estimativa que não leve em consideração as características do projeto de software a ser desenvolvido será uma mera especulação sem a menor credibilidade. Além disto, em comparações de produtividade entre IDEs deve-se isolar e comparar recursos equivalentes individualmente.

Somente para citar um recurso, a última versão do IDE NetBeans (6.7) tem um suporte muito maior a refactoring que a última versão do Visual Studio (2008 SP1). E a última versão do IDE do Eclipse (3.5.0 – Galileo) ainda supera o NetBeans 6.7 neste quesito. Certamente, refactoring é um recurso essencial para aumentar a produtividade em projetos corporativos com arquiteturas complexas. Além disto, os refactorings do Eclipse são projetados para sugerir melhores práticas de programação orientada a objetos, superando o Visual Studio em alguns refactorings individuais.

Observe que seria um absurdo eu concluir que os IDEs NetBeans 6.7 e Eclipse 3.5.0 são mais produtivos que o IDE Visual Studio 2008 SP1 pelo simples fato de terem um suporte muito superior ao recurso de refactoring. Assim como é mais absurdo ainda o autor concluir que o Visual Studio é mais produtivo, sem nem mesmo citar com que IDEs Java está comparando e nem as versões usadas na análise dele. Pior ainda, o autor ainda é capaz de deduzir uma redução de 10% a 20% no tempo gasto para um sistema entrar em produção quando desenvolvido em .NET, em relação à Java, sem nem sequer contextualizar o projeto a ser desenvolvido e nem os IDEs Java a serem utilizados. Ou seja, esta afirmação é completamente desprovida de significado técnico.

AFIRMAÇÃO 7 (retirada de um fórum)

"Se você considerar só a IDE realmente é de 10% a 20% a menos. Se considerar que no Java usam-se 300 frameworks para fazer uma coisa, e que cada vez que você contrata um desenvolvedor precisa ensinar ele a usar o framework que você utiliza, já perde mais uns 10%. Colocando outras possibilidades, como delegates, enums (que o Java só recebeu recentemente), LINQ, etc, vai mais uns 10%. Ou seja, dá uma produtividade de até 40% a mais… Ainda bem que desenvolvedor é barato, e que o caro é máquina, não é? Ops, acho que é o contrário…"

COMENTÁRIOS TÉCNICOS DA AFIRMAÇÃO 7

A afirmação 7 foi feita num fórum e corresponde a uma resposta à afirmação 6.

Na afirmação 6, o autor do artigo tirou uma conclusão sem o menor fundamento técnico e sem contextualização, chutando uma porcentagem de 10% a 20% no tempo gasto a menos para um sistema entrar em produção quando desenvolvido em .NET.

Porém, o comentário da afirmação 7 pode ser considerado até mesmo mais absurdo que o escrito na afirmação 6. Este tipo de comentário da afirmação 7 exemplifica, de forma bem clara, a idéia destacada no parágrafo abaixo.

Na maioria das vezes, estes debates deixam a parte técnica de lado e passam a conter disputas de ego. Neste cenário, a precisão técnica da informação passa a ser secundária, pois o mais importante é tentar convencer que uma das plataformas é superior à outra independente de contexto. Em geral, estes debates são carregados de ironias que não acrescentam nada, além de conter diversas informações erradas.

O parágrafo destacado acima foi retirado da introdução desta série de artigos.

Na afirmação 7, as porcentagens são chutadas exatamente como fez o autor do artigo original. Somente para destacar uma parte: "Colocando outras possibilidades, como delegates, enums (que o Java só recebeu recentemente), LINQ, etc, vai mais uns 10%.".

O radicalismo da afirmação 7 também fica claro na declaração de que muitas opções de frameworks para fazer a mesma coisa é prejudicial para a produtividade. Observem aqui uma inversão de valores, uma vez que ter muitas opções passou a ser uma desvantagem. Curiosamente, a própria plataforma .NET já tem diversos frameworks para fazer as mesmas coisas. Principalmente em projetos de frameworks open source com recursos similares aos fornecidos pela Microsoft no .NET Framework. Porém, o autor da afirmação 7 somente consegue enxergar este problema na plataforma Java.

Rogério Moraes de Carvalho
Twitter: @rogeriomc