Monthly Archives: April 2011

Silverlight Out-of-Browser

Hoje eu estava lendo um artigo do Rodrigo Sendin na revista .Net Magazine nº 76, onde ele fala da possibilidade de aplicações do Silverlight rodarem fora do Browser, ou seja, Out-of-Browser também conhecido pela sigla OOB.

Ao rodar uma aplicação Silverlight em Out-of-Browser temos duas vantagens:

  • Aplicação pode trabalhar desconectada da internet.
  • Pode trabalhar em modo elevado de confiança “Elevated Trust Mode”.

A segunda vantagem é bem atraente, pois teriamos acesso a Área de Transferência e poderiamos acessar arquivos no lado do cliente. Ao ativar essa opção no VS, quando sua aplicação estiver rodando ao ser clicado em qualquer parte da aplicação será solicitada a opção para a instalação, depois de ser instalada a aplicação passa a ter as características de uma aplicação Desktop.

Advertisements

Um pouco sobre Interfaces

Quando você criar uma interface, estará definindo um contrato com o que a classe pode fazer, sem mencionar nada sobre como a classe o fará. Uma interface é um contrato. Você poderia escrever uma interface Carro. Qualquer tipo de classe que implementar essa interface precisa concordar em escrever o código dos métodos Correr() e setCorrerFabrica().

As interfaces podem ser implementadas por qualquer classe, de qualquer árvore de herança. Isso permitirá que você use classes radicalmente diferentes e forneça a elas uma caracterisitica em comum.

Uma interface equivale a uma classe 100% abstrata e como uma classe abstrata a interface define métodos abstratos como a forma abaixo:

abstract void Carro();

Nas classes abstratas, você tanto pode definir métodos abstratos como métodos não abstratos, contudo na interface todos os métodos serão abstratos. Outro ponto em que diferem as classes abstratas das interfaces é quanto a flexibilidade em como os métodos e variáveis definidos na interface são declarados. Abaixo a lista de regras:

  • Todos os métodos de interface são implicitamente public e abstract. Em outras palavras, você não precisa digitar realmente os modificadores public e abstract.
  • Todas as variáveis definidas em uma interface devem ser public, static e final.
  • Os métodos de interface não podem ser estáticos.
  • Já que os métodos de interface são abstract não podem ser marcados como final.
  • Uma interface pode estenter uma ou mais interfaces diferentes.
  • Uma interface não pode estender nada que não seja outra interface.
  • Uma interface não pode implementar outra interface ou classe.
  • Uma interface deve ser declarada com a palavra chave Interface.
  • Os tipos de interface podem ser usados polimoficamente.

Digitar o modificador abstract é redundante, as duas situações abaixos são idênticas.

public abstract interface Carro{}

public interface Carro{}

 

Fonte: Guia de Estudo SCJP
Autor Kathy Sierra e Bert Bates