Arquivo

Arquivo da Categoria ‘.NET’

.NET Architects Day 2011

26 de maio de 2011

Nos dias 3 e 4 de junho vai o rolar o .NET Architects Day 2011, uma conferência nacional sem fins lucrativos focada em arquitetura de software na plataforma .NET.

O evento é organizado pelo grupo de discussão sobre arquitetura de software .NET Architects e contará com a presença de palestrantes como Alexandre Porcelli, Fabio Akita, Giovanni Bassi, Gleicon Moraes, Otavio Pecego, Waldemir Cambiucci, entre outros.

Mas o que um desenvolvedor que trabalha o dia inteiro com Ruby on Rails irá fazer em um evento de .NET?

Antes de mais nada, “abra sua mente”. Não seja radical em suas opiniões, por mais que você não goste da Microsoft, do Windows ou do Internet Explorer.

O foco do evento é sobre arquitetura de software e não exclusivamente .NET. Tenho certeza que nenhum palestrante irá mostrar como usar o Visual Studio para “arrastar e soltar”.

Por exemplo, a palestra de Alexandre Porcelli e Gleicon Moraes, “A importância dos dados em sua arquitetura… uma visão muito além do SQL Server”, discutirá sobre noSQL e opções ao modelo da dados relacional. Já o Fabio Akita estará palestrando sobre o uso de Ruby além do Rails e traçando um paralelo com a plataforma .NET.

Para ver a programação completa do evento, use o link abaixo:
http://dnad.dotnetarchitects.net/dnad/2011/programacao/

.NET, Arquitetura, Eventos , , ,

2010 em livros

5 de janeiro de 2011

Estou a “plagiando” uma idéia de Phillip Calçado que fez um post em seu blog mostrando os livros lidos no ano de 2010, com um pequeno comentário sobre cada um.

Com certeza minha lista é muito mais modesta e curta, mas a idéia de compartilhar conhecimento é a mesma.

Esse post também serve para me alertar a ler mais, mesmo com toda a correria de trabalho, família, estudo e prática de esportes, gostaria de ter lido mais que 7 livros durante 2010.

Os livros são apresentados na ordem que foram lidos:

Clean Code: A Handbook of Agile Software Craftsmanship

Clean Code: A Handbook of Agile Software Craftsmanship

Robert C. Martin
Prentice Hall
August 2008

Muito bom

Todo programador deveria ler. Uncle Bob nos concede um pouco de sua vasta experiência em desenvolvimento de software, mostrando como deixar seu código mais enxuto, legível e simples. Esse livro serviu de inspiração para várias palestras e apresentações por aí sobre como escrever código de melhor qualidade.

The RSpec Book: Behaviour-Driven Development with RSpec, Cucumber, and Friends

The RSpec Book: Behaviour-Driven Development with RSpec, Cucumber, and Friends

David Chelimsky, Dave Astels, Zach Dennis, Aslak Hellesøy, Bryan Helmkamp, Dan North
The Pragmatic Programmers
December 2010

Ótimo

Essencial para quem quer aprender RSpec. Explica como seria o ciclo ideal de BDD. Também traz exemplos práticos de utilização de RSpec e Cucumber com Ruby e Ruby on Rails.

JavaScript: The Good Parts

JavaScript: The Good Parts

Douglas Crockford
O’Reilly
May 2008

Muito bom

Quem curte JavaScript irá gostar bastante. Fiz anotações sobre esse livro nesse post.

Design Patterns in Ruby

Design Patterns in Ruby

Russ Olsen
Addison-Wesley Professional
December 2007

Bom

Traz uma boa parte dos design patterns apresentados pela GoF utilizando Ruby. O que eu achei mais interessante foi a abordagem utilizada pelo autor: dado um design pattern, o mesmo é implementado de uma maneira clássica e depois reimplementado usando os recursos que o Ruby oferece, como por exemplo, metaprogramação, tornando alguns patterns totalmente diferentes de sua implementação original.

Professional ASP.NET MVC 2

Professional ASP.NET MVC 2

Jon Galloway, Scott Hanselman, Phil Haack, Scott Guthrie, Rob Conery
Wrox
June 2010

Muito bom

Sempre gostei da séria Professional da Wrox e esse livro mantém a linha de qualidade. Logo no primeiro capítulo tem um passo a passo da construção de uma pequena, mas completa, aplicação ASP.NET MVC 2. Os demais capítulos cobrem os demais recursos do framework. Só pelos autores já vale a leitura.

ASP.NET MVC 2 in Action

ASP.NET MVC 2 in Action

Jeffrey Palermo, Ben Scheirman, Jimmy Bogard, Eric Hexter, Matthew Hinze
Manning
June 2010

Regular

Talvez se eu não tivesse lido o livro da Wrox antes teria classificado melhor este. Em algumas vezes os autores focam demais no uso de ferramentas extras, auxiliares ao desenvolvimento de aplicações ASP.NET MVC 2. Isso é bom para quando você já tem conhecimento e/ou vivência do framework.

Test-Drive ASP.NET MVC

Test-Drive ASP.NET MVC

Jonathan McCracken
The Pragmatic Programmers
June 2010

Regular

Eu esperava bem mais desse livro por se tratar de TDD. Havia imaginado vários passos práticos de desenvolvimento orientado a testes no melhor estilo Kent Beck ou Uncle Bob. Para quem já conhece TDD, não irá ver grandes novidades.

Eu uso o Shelfari como prateleira virtual para organizar os livros que li, estou lendo e pretendo ler.
É bem legal e tem vários recursos. Por exemplo, esse endereço lista os livros que li no ano de 2010.

.NET, Arquitetura, JavaScript, Livros, Ruby, TDD , , , , , , , , , , , ,

[InfoQ] Dicas para configurar uma aplicação ASP.NET segura

8 de dezembro de 2010

O .NET Framework vem com uma série de recursos para você configurar uma aplicação ASP.NET de forma segura, evitando e/ou dificultando que alguém mal intencionado burle seu sistema. Algumas dessas configurações são ativadas por padrão, porém algumas vezes elas são alteradas em ambiente de desenvolvimento e acabam sendo utilizadas também no ambiente de produção.

Vamos dar uma olhada em algumas dicas de configuração que podem melhorar a segurança de sua aplicação ASP.NET. Algumas dessas configurações são bem simples e muitas vezes passam despercebidas pelos desenvolvedores.

Veja o artigo completo na InfoQ Brasil:
http://www.infoq.com/br/articles/dicas-aplicacao-dot-net-segura

Veja também outras notícias e artigos sobre .NET na InfoQ Brasil:
http://www.infoq.com/br/dotnet

.NET , , , , ,

[InfoQ] Lançado o ASP.NET MVC 3 Release Candidate

10 de novembro de 2010

Acaba de ser lançada a Versão 3 Release Candidate do ASP.NET MVC, o framework Model-View-Controller de .NET, trazendo uma série de novos recursos, melhorias em ferramentas e correções de bugs.

Vamos ver alguns recursos inclusos no ASP.NET MVC 3 RC.

Veja a notícia completa na InfoQ Brasil:
http://www.infoq.com/br/news/2010/11/aspnet-mvc-rc

Veja também outras notícias e artigos sobre .NET na InfoQ Brasil:
http://www.infoq.com/br/dotnet

.NET , ,

[InfoQ] C# 5.0 terá sintax sugar para operações assíncronas

4 de novembro de 2010

O time de desenvolvimento de .NET da Microsoft anunciou nessa última semana que a próxima versão da linguagem C# terá uma nova sintaxe, mais enxuta, para realizar operações assíncronas.

Atualmente, para realizar uma tarefa assíncrona é necessário utlizar callbacks, seja declarando métodos separados ou utilizar métodos anônimos.

No C# 5.0, com a utilização dos novos comandos async e await, essa tarefa ficará muito mais fácil de escrever.

Veja a notícia completa na InfoQ Brasil:
http://www.infoq.com/br/news/2010/11/csharp-5-sintax-sugar

Veja também outras notícias e artigos sobre .NET na InfoQ Brasil:
http://www.infoq.com/br/dotnet

.NET , , , ,

[InfoQ] Livro grátis: Moving to Microsoft Visual Studio 2010

4 de novembro de 2010

A Microsoft Press está disponibilizando um livro grátis chamado “Moving to Microsoft Visual Studio 2010″, dos autores Patrice Pelland, Pascal Paré e Ken Haines. O objetivo desse livro é ajudar os desenvolvedores .NET na transição de versões anteriores do Visual Studio para a última versão, o Microsoft Visual Studio 2010.

Veja a notícia completa na InfoQ Brasil:
http://www.infoq.com/br/news/2010/11/livro-moving-visual-studio-2010

Veja também outras notícias e artigos sobre .NET na InfoQ Brasil:
http://www.infoq.com/br/dotnet

.NET, Livros , , ,

Novidades e artigos sobre .NET na InfoQ Brasil

4 de novembro de 2010

Desde que estive presente na QCon São Paulo 2010, notei que a publicação de conteúdo sobre .NET na InfoQ Brasil não estava muito frequente. Mesmo tendo no evento uma track de .NET bastante interessante, isso não era refletido no site da comunidade.

InfoQ.com (Fila de Informação) é uma comunidade online independente focada na mudança e inovação no desenvolvimento do software corporativo, almejando primariamente no arquiteto técnico, no líder técnico (desenvolvedor sênior) e no gerente de projeto. InfoQ dá assistência as comunidades de Java, .NET, Ruby, SOA, e Agile com notícias diárias escritas por experts, artigos, entrevistas em vídeo, apresentação de vídeo conferência e mini-books.

Há um tempo atrás havia conversado com o Pedro Mariano, quando ele estava iniciando como editor-chefe da InfoQ, a respeito de escrever sobre .NET. Nessa época, estava numa transição de projetos de .NET para Ruby no meu trabalho, o que acabou consumindo bastante meu tempo de estudo.

Agora que já aprendi um pouquinho de Ruby e trabalhando com Rails diariamente, consigo contribuir com alguns artigos e notícias de .NET para a InfoQ Brasil. Para mim acaba sendo uma oportunidade de me manter atualizado sobre .NET, plataforma com a qual trabalhei por mais de 6 anos e que atualmente não tenho contato diário. Além disso, é mais uma forma de compartilhar conhecimento.

Pretendo escrever no mínimo uma vez a cada 15 dias. Havendo possibilidade, escreverei com mais frequência.

Agradeço a InfoQ Brasil, que é mantida pela Caelum, pela oportunidade. Também agradeço ao Pedro Mariano e David Paniz, com os quais tive oportunidade de trabalhar junto, pelo incentivo.

.NET , ,

System.Net.WebException: The underlying connection was closed: An unexpected error occurred on a receive.

21 de junho de 2010

Na semana passada estávamos mexendo em uma aplicação desenvolvida em .NET 2.0. O objetivo era incluir uma nova funcionalidade que dependia de um Web Service SOAP de terceiros.

Para fazer a nova implementação o mais rápido possível, utilizamos o recurso “Add Web Reference…” do Visual Studio 2005 para criar um proxy para o Web Service que queríamos consumir.

Fazendo isso, o Visual Studio 2005 gera algumas classes no arquivo Reference.cs (para visualizá-lo é preciso estar com a opção “Show all files” habilitada na janela Solution Explorer).

A partir dessas classes você pode fazer a comunicação com o Web Service através de simples chamadas de métodos.

CalcPrecoPrazoWS proxy = new CalcPrecoPrazoWS();
Resultado resultado = proxy.Calcular("03478010", "13500313", "0,456");

O problema

Até aqui tudo certo, mas quando testamos a aplicação fazendo a chamada do Web Service, aconteceu o seguinte erro:

System.Net.WebException: The underlying connection was closed: An unexpected error occurred on a receive.
at System.Web.Services.Protocols.WebClientProtocol.Ge tWebResponse(WebRequest request)
at System.Web.Services.Protocols.HttpWebClientProtocol.GetWebResponse(WebRequest request)
at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)

Depois de pesquisarmos um pouco, descobrimos que as possíveis causas desse problema são:

  • Quando o servidor do Web Service inesperadamente fecha a conexão
  • O time out do servidor do Web Service é muito baixo
  • O servidor do Web Service “reseta” a conexão inesperadamente, algo como uma exceção não tratada

A solução

Quando você chama um método da classe proxy, no exemplo acima a classe CalcPrecoPrazoWS, internamente a classe SoapHttpClientProtocol, que é a classe base do nosso proxy, aciona seu método protegido GetWebRequest, que irá fazer um requisição Web através da classe WebRequest.

Para não mantermos a “conexão viva” na requisição Web, sobrescrevemos o método GetWebRequest da classe SoapHttpClientProtocol, convertendo um objeto WebRequest em um objeto HttpWebRequest e configurando a propriedade KeepAlive para false antes de acionar a requisição.

protected override WebRequest GetWebRequest(Uri uri)
{
    HttpWebRequest webRequest = (HttpWebRequest)base.GetWebRequest(uri);
    webRequest.KeepAlive = false;
    webRequest.ProtocolVersion = HttpVersion.Version10;

    return webRequest;
}

Isso pode ser feito no próprio arquivo Reference.cs, dentro da classe proxy que foi gerada pelo Visual Studio 2005. Mas qualquer alteração na referência Web, o Visual Studio 2005 irá gerar novamente o código do arquivo Reference.cs e seu código será apagado.

Então a melhor maneira de fazer isso é utilizar os recursos de classes parciais do .NET e separar seu código em um arquivo separado, como mostrado no exemplo abaixo:

public partial class CalcPrecoPrazoWS
{
    protected override WebRequest GetWebRequest(Uri uri)
    {
        HttpWebRequest webRequest = (HttpWebRequest)base.GetWebRequest(uri);
        webRequest.KeepAlive = false;
        webRequest.ProtocolVersion = HttpVersion.Version10;

        return webRequest;
    }
}

Mas não é só isso

Há também um série de outras causas para esse problema, bem como outras possíveis soluções, inclusive quando você está usando WCF no .NET 3.5.

A solução que apresentei funcionou no meu caso. Se ela não resolver seu problema, vale a pena investigar nesse artigo do suporte da Microsoft que lista possíveis causas e soluções:

You receive one or more error messages when you try to make an HTTP request in an application that is built on the .NET Framework 1.1 Service Pack 1
http://support.microsoft.com/kb/915599

Esse artigo é um tanto confuso e mal organizado, mas já é um bom começo.

.NET , , , , , ,

Enterprise Library 5.0 release final liberada para download

26 de abril de 2010

Microsoft Enterprise Library é uma coleção de blocos de código desenhados para auxiliar desenvolvedores .NET com tarefas comuns de desenvolvimento.

Esta versão inclui:

  • Caching Block
  • Cryptography Block
  • Data Access Block
  • Exception Handling Block
  • Logging Block
  • Policy Injection Block
  • Security Block
  • Validation Block
  • Unity

A melhor versão da Enterprise Library contém novas características e atualizações que irão deixar os desenvolvedores .NET mais produtivos. Entre elas estão:

  • Refatoração da arquitetura que provê testabilidade e manutenabilidade através de um completo suporte à injeção de dependência
  • Contêiner de injeção de dependência independente (Unity é entregue com Enterprise Library, mas você pode substituí-lo por um outro contêiner de sua preferência)
  • Suporte à configuração programática, incluindo uma interface de configuração fluente e um esquema XSD para permitir IntelliSense
  • Reformulação da ferramenta de configuração
  • Processamento de resultados de consultas de dados mais intuitivo
  • Suporte a acesso de dados assíncrono
  • Atributos de validação entre Validation Application Block e DataAnnotations
  • Integração com mecanismos de validação do Windows Presentation Foundation (WPF)
  • Suporte a cenários de configuração complexos, o que inclui mesclagem de múltiplos arquivos de configuração
  • Liberação de cachê otimizada
  • Melhor performance para operações de log
  • Redução do número de assemblies
  • Suporte ao .NET Framework 4.0 e integração com Visual Studio 2010
  • Melhorias no Unity

Para fazer o download da Enterprise Library 5.0, bem como documentação, detalhes da versão, extensões e vídeos, acesse o link abaixo:
http://msdn.microsoft.com/en-us/library/ff632023.aspx

.NET, Arquitetura , , , , , , ,

A promoção Segunda Chance de certificações Microsoft voltou

5 de fevereiro de 2010

A promoção Segunda Chance (”Second Shot”, em inglês) voltou para lhe ajudar a passar em seu próximo exame de certificação Microsoft. Essa promoção lhe dá o direito de refazer um exame caso você não consiga passar na primeira tentativa.

Você deve realizar tanto o primeiro e o segundo exame (se necessário) antes de 30 de junho de 2010. A promoção é valida para todos os exames de certificações Microsoft Learning IT professional, developer, project management, e Microsoft Dynamics.

Para se cadastrar na promoção Segunda Chance, siga as instruções dessa página:
http://www.microsoft.com/learning/Career/en/us/career-offer.aspx#certification

.NET , , , ,