web 2.0

Roadshow: A Microsoft passa pela sua cidade!

O Roadshow é um evento presencial diferenciado, onde durante um dia inteiro serão apresentadas sessões técnicas com demonstrações ao vivo, utilizando um ambiente com os últimos lançamentos da Microsoft. Há apenas uma breve introdução teórica, para entendimento do cenário e depois, o time de Especialistas da Microsoft apresenta ao vivo, na prática, toda a solução sendo implementada passo a passo. Neste evento será apresentado um caso fictício de uma empresa que possui vários desafios de TI (desenvolvimento de software e infraestrutura de TI), e como os novos produtos e tecnologias da Microsoft podem torná-la mais competitiva, com gerenciamento, segurança, escalabilidade e performance. ASP.NET MVC e Web forms, HTML 5, IE9, Silverlight, Windows Phone 7, SharePoint e desenvolvimento para Windows, sendo tudo integrado com Windows Azure, são os principais temas a serem tratados durante as apresentações. Soluções de arquitetura, web services e Azure serão explorados também, pois o futuro é a nuvem e suas aplicações precisam estar prontas para essa nova geração de soluções baseadas em cloud computing. Ao termino do evento você aprenderá como tirar melhor proveito de tais tecnologias, tornando-se um profissional com diferencial competitivo. Clique, inscreva-se e participe do Road Show 2011!

Belo Horizonte - 31/03
Hotel Mercure Lourdes
Inscrições disponíveis:
Profissionais de TI
Desenvolvedores

Tags:

Asp .Net | Desenvolvimento

Super promoção “Windows 7 salvando a sua vida”

A galera do 100loop é realmente muito empolgada! Essa semana produziram mais um super vídeo para participarem do “Desenvolvedor Windows”. Dessa vez o pessoal se superou com atuações hollywoodianas, originalidade e improviso. Falando nisso não podemos deixar de lembrar dos participantes, Luciano Lima, André Paulovich, André Castro e eu João Paulo, parabéns galera, o resultado foi muito bom.

Como foi a produção:

Depoimento de João Ferreira

Começamos tarde, já passava das 20h30m quando resolvemos testar a funcionalidade e para ser sincero… apanhamos um pouco do inglês, quando estávamos a beira de desistir da ideia o Luciano Lima finalmente conseguiu acionar o primeiro “switch Windows Messenger”, aí foi aquela alegria, com tudo funcionando perfeitamente partimos para produção. Como vocês viram o André Paulovich usou toda sua malandragem adquirida durante a adolescência com os manos da ZN e o grande André Castro mostrou que realmente é um menino bom, não leva jeito pra ladrão. Eu tentei ser o mocinho, que chegava e salvava todo mundo, tipo o Stalone nos filmes do Rambo… o máximo que consegui foi me aproximar do Fucker and Sucker.

E para quem quiser curtir, segue o vídeo.

Parabéns a todos, vocês foram demais!

Agora é torcer e acessar, vamos juntos conquistar mais essa vitória.

Tags:

Desenvolvimento | C# | General

WCF–Parte II

Dando continuidade ao post anterior “Iniciando com WCF”, vamos ver hoje um pouco sobre a arquitetura WCF.

A figura 1 mostra a arquitetura principal do Windows Communication Foundation. Vamos ver cada item par que você possa começar a se familiarizar com o WCF.

 

wcf_02

Figura 1 – Arquitetura WCF

 

Contracts

O contrato expõe quais membros de uma classe serão visíveis. Através de interfaces podemos definir um contrato entre um serviço e as aplicações que irão consumí-lo, expondo somente os métodos desejados.

O WCF conta com os seguintes tipos de contratos:

  • Service Contract - Um contrato para um serviço. Define os detalhes do serviço, e será utilizado na interface de contrato.
  • Operational Contract - Define uma operação individual, e será aplicado na assinatura dos métodos da interface de contrato.
  • Data Contract - Define a serialização para objetos complexos. Esta propriedade necessita da inclusão do namespace System.Runtime.Serialization.
  • Message Contract - Este contrato descreve a mensagem SOAP completa.
  • Fault Contract - Utilizado para documentar erros no WCF.

Policies and Binding - Especifica as condições que serão requeridas para a comunicação, como exemplo podemos destacar os requisitos de segurança a serem utilizados na comunicação com o serviço.

Os contratos do WCF são utilizados como propriedades, podendo ser atribuído a classes e interfaces.

 

Service Runtime

Ele contém os comportamentos que ocorrem durante a execução do serviço.

- Throttling Behavior: controla quantas mensagens são processadas.
- Error Behavior: especifica um erro interno ocorrido no serviço.
- Metadata Behavior: informa como e se os metadados estarão disponíveis.
- Instance Behavior: especifica quantas instâncias do serviço deverão ser criadas durante a execução do serviço.
- Transaction Behavior: permite a reversão de operações caso uma falha venha a ocorrer.
- Dispatch Behavior: controla como uma mensagem é processada pela infra-estrutura do WCF

 

Messaging

A camada Message é composta de Canais. Canais são componentes que fazem o processamento das mensagens, por exemplo, autenticando uma mensagem.

Um conjunto de Canais é conhecido como Channel Stack. Os canais são o núcleo para o envio e recebimento de mensagens para um EndPoint.

Existem dois tipos de canais:

- Transport Channels: realiza o envio/ recebimento de mensagens pela rede. Ex.: HTTP, TCP e MSMQ.

- Protocol Channels: implementa o protocolo SOAP possibilitando a modificação da mensagem. Ex.: WS-Security e WS-Reliability.

 

Activation and Hosting

Para que um serviço possa ser consumido ele deve estar ativado e hospedado. No caso do WCF, este pode ser hospedado de diversas formas como:

  • IIS – Internet Information Service: provê várias vantagens como controle do serviço. Porém só pode ser utilizado o protocolo HTTP para o tráfego de informações.
  • Windows Activation Service  - (WAS)
    É uma forma mais atual de ser ativar um serviço, foi incorporado ao IIS 7. Trabalha com os seguinte protocolos: TCP e Named Pipes.
  • Self-Hosting

    WCF Service pode ser hospedado também em um aplicativo do tipo Console Application, Windows Form ou aplicações gráficas WPF.

  • Windows Service

    WCF também pode ser hospedado em um Serviço do Windows onde você pode ter o controle do aplicativo pelo Service Control  Manager (SCM).

Como podem ver o WCF nos dá uma flexibilidade muito grande quanto a forma de hospedagem o que nos abre um enorme leque de possibilidades.

 

Aguardo vocês no próximo post!!

 

Enjoy!

Tags:

WCF | Desenvolvimento

C# Extension Methods

Outro dia estava trabalhando em um projeto onde precisava criar alguns métodos a mais para uma dll que havia sido gerada para um outro aplicativo. Porém, como não tinha o código fonte dela estava prestes a escrever uma nova classe e implementar os métodos que estava precisando, mas antes de começar a codificar, me lembrei que a partir da versão 3.0 do Net Framework, a Microsoft incluiu uma funcionalidade muito bacana chamada Extension Methods.

Mas o que são Extension Methods?

Basicamente é uma forma de você “inserir” código em classes já compiladas mesmo que estas sejam seladas (sealed) como a maioria das classes do .Net. Desta forma podemos incrementar nossas classes com métodos que criamos sem a necessidade de realizar uma recompilação da mesma.

Mas para que isso fique mais claro, vamos ao exemplo.

Crie um projeto do tipo C# -> Console Application, dê o nome de “ExtensionMethods”.

Agora crie um novo projeto do tipo C# –> Class Library, e dê o nome dele de MyClass. Agora renomeie a Class1.cs para Client.cs. Seu projeto deverá estar como na figura 01.

extension_01
Figura 01 – Solution Explorer

 

Agora, abra o arquivo Client.cs e adicione o código da listagem 01.

Listagem 01 – class Client.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace MyClass
{
    public sealed class Client
    {
        public string Name { get; set; }
        public string Email { get; set; }

        public bool EmailIsValid()
        {
            return !string.IsNullOrEmpty(Email);
        }
    }
}

Observem que criamos duas propriedades e um método que “valida” o email do cliente.

Vamos criar nossa chamada à classe Client. Abra o arquivo Program.cs e insira o código da listagem 02 no método Main da classe.

Listagem 02 – chamada a classe Cliente

var cl = new Client
              {
                 Email = "lima@lucianolima.com.br",
                 Name = "Luciano Lima"
              };

    Console.WriteLine( cl.EmailIsValid() ? "Email Válido" : "Email Inválido" );
    Console.ReadLine();

 

Ao executar este código ele irá apenas escrever Email Válido porque a propriedade Email está preenchida.

Bem, digamos que você precise realizar a validação do Nome do Cliente, mas sem ter que mexer na classe Client, é ai que Extension Methods entra em ação.

Adicione uma nova classe no projeto ExtensionMethods, dê o nome a ela de “ClientExtension.cs” e insira o código da listagem 03.

Listagem 03 – class extension

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MyClass;

namespace ExtensionMethods
{
    public static class ClientExtension
    {
        public static bool NameIsValid(this Client client)
        {
            return !string.IsNullOrEmpty(client.Name);
        }
    }
}

O importante nessa classe é a forma como criamos o método, observem que o segredo para a funcionalidade de extensão é a palavra “this” que faz referencia à classe que queremos agregar valor, o restante é código puro e simples.

Agora quando for utilizar a funcionalidade, o Visual Studio irá detectar que este método é uma extensão para a classe Client, conforme figura 02 e figura 03.

extension_02

Figura 02 – método estendido na classe Client

extension_03

Figura 03 – ToolTip mostrando que o método é uma extensão.

 

Extension Methods como falei acima pode ser aplicado a todas as classes do dot Net, então caso precise de um método exclusivo para trabalhar com string basta criar sua classe de extensão e implementar o método que achar necessário. Mas cuidado, a manutenção deste tipo de código pode ser um pouco árdua por isso, pense bem antes de sair criando extension methods.

 

Enjoy!!

Tags:

C# | Desenvolvimento