sexta-feira, novembro 17, 2006 

Executando aplicativos/bibliotecas .Net através de um endereço de rede

O .Net Framework possui recursos de segurança que bloqueiam a execução de aplicativos/bibliotecas quando estes estão hospedados em um endereço remoto, como por exemplo, um compartilhamento de rede que não seja a máquina local. Na tentativa de execução é disparada uma SecurityException.

Para contornar este problema é possível configurar facilmente o .Net Framework da máquina local para permitir a execução de aplicativos de um determinado endereço de rede. Esta configuração se dá através do CasPol.exe (Codde Acess Security Policy Tool) um utilitário que é instalado juntamente com o .Net Framework (estou usando o 2.0).

A seguir os procedimentos:
1) Acessar o prompt de comando do windows [Menu Iniciar | Programas | Acessórios | Prompt de comando]
2) Acessar a pasta do .Net Framework, por exemplo, "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727>"
3) Digitar: ''caspol -m -ag LocalIntranet_Zone -url \\<servername>\<foldername>\* FullTrust -n "<name>" -d "<description>"''
4) Pronto! A partir deste momento deve ser possível executar os aplicativos .Net.
Observação: Se a máquina do endereço compartilhado estiver configurado como site confiável na máquina local, a configuração deverá ser feita em Trusted_zone e não LocalIntranet_zone.


Considerações
  • Endereço de compatilhamento: o endereço a ser informado no local "\\\\" deve ser exatamente o endereço compartilhado, ignorando toda e qualquer subpasta que por ventura seja o local correto de onde estará o aplicativo.
    Por exemplo:


    • *o aplicativo ABC está no endereço de rede "\\servidor\pastacompartilhada\repositorio\ABC.exe";

    • o endereço a ser informado no caspol.exe é apenas "\\servidor\pastacompartilhada\*" pois a pasta configurada como compartilhada no servidor é apenas "pastacompartilhada"


  • Sendo feito a configuração via caspol.exe nada mais é necessário. Ou seja, não é necessário utilizar os atributos AllowPartiallyTrustedCallers ou mesmo SuppressUnmanagedCodeSecurity;

  • Não é necessário que o aplicativo/biblioteca estejam assinados (.snk);

  • A exceção "System.Security.SecurityException: That assembly does not allow partially trusted callers" é uma das mais comuns mensagens de erro que ocorrem quando é iniciado a execução de um aplicativo/biblioteca em um endereço remoto e que não possui permissão "FullTrust".


Observação:além do caspol.exe, é possível efetuar esta configuração visualmente utilizando o utilitário disponível em [Menu Iniciar | Configurações | Ferramentas Administrativas | Microsoft .NET Framework 2.0 Configuration], selecionar [Runtime Security Policy | Machine | Code Groups | All code | LocalIntranet_zone] e então adicionar um novo grupo do tipo url e informar o endereço de rede.

Referências
  • How to: Grant Permissions to Folders and Assemblies

  • Code Access Security Policy Tool (Caspol.exe)

  • Running .NET apps from a network share
  • quinta-feira, outubro 05, 2006 

    Visual Studio Tools for Applications (VSTA) X SharpDevelop for Applications (SDA)

    A Microsoft vem já há alguns anos desenvolvendo uma forma para que as empresas que criam sofwtares utilizem o Visual Studio de forma embutida em suas aplicações permitindo a customização do software. Desta forma, as empresas contariam com uma gama de recursos (Intelisense, debug, etc) para que usuários avançados de seus aplicativos pudessem escrever código customizado gerando novas funcionalidades ou mesmo adaptando rotinas para melhor atender a suas necessidades.

    Uma das primeiras ferramentas com este intuito foi o VBA, onde permitia a escrita de macros em uma linguagem muito próxima a do Visual Basic. O exemplo mais famoso de uso do VBA é o Miscrosoft Office, que permitia escrever macros nos documentos do Word, Excel entre outros.

    Com o surgimento do .Net, a Microsoft passou a trabalhar no VSTA, que a grosso modo é o VBA só que em linguagem e recursos .Net e a IDE do Visual Studio 2005.

    Um exemplo de programação .Net embutida em um aplicativo, não necessariamente VSTA, é o novo SqlServer, que permite escrever código .Net dentro do próprio banco de dados.

    Apesar da característica de permitir a customização de nossos aplicativos, a comunidade em geral não está demonstrando muito interesse na ferramenta, digo isto, pelo baixo movimento nos foruns, blogs e sites sobre o assunto. Desconfio que um dos motivos desta desinteresse está na cobrança de licença de uso, o que é compreensível, considerando que teríamos um "Visual Studio" dentro de nossos aplicativos.

    Porém para os descontentes com a licença de uso, a boa notícia é que surge um forte candidato a concorrente, e pior, é de graça e open-source! O nome dele é SharpDevelop for Applications (SDA).
    O SDA, é baseado na já conhecida IDE open-source SharpDevelop e terá o mesmo propósito do VSTA, ou seja, permitir embutir em um aplicativo uma IDE de desenvolvimento para a customização de rotinas.

    Essa briga promete! O que é ótimo para nós desenvolvedores.

    Links relacionados:
    - Visual Studio for Applications [http://msdn.microsoft.com/vstudio/extend/vsta/default.aspx]
    - SharpDevelop for Applications [http://community.sharpdevelop.net/tags/SDA/default.aspx]

    sexta-feira, agosto 18, 2006 

    Tecnologia Minority Report da Microsoft

    Pra quem gostou da ficção científica do filme Minority Report, onde o ator Tom Cruise utiliza uma tela de vidro como se fosse uma tela de computador, permitindo interagir como se fosse uma tela touchscreen avançada, não pode deixar de ver um vídeo disponível no YouTube sobre a tecnologia TouchLight 3D da Microsoft.

    Esta tecnologia está sendo desenvolvida pelo Microsoft Research e no vídeo, é demonstrado, a capa de uma revista sendo escaneada na tela e depois a interação com o usuário permitindo rotacionar a imagem, aproximar, afastar entre outros recursos.


    Para assistir ao vídeo, clique no Play da imagem abaixo.

    Como pode ser visto no vídeo, mais uma vez a ficção está se tornando realidade. Ponto pra MS!

    Links relacionados:

    - Microsoft Research

    - Andy Wilson (Pesquisador)

    terça-feira, agosto 15, 2006 

    Windows Live Writer

    Este é um post onde resolvi testar a ferramenta Windows Live Writer (Beta) da Microsoft para facilitar o trabalho de escrever e publicar em blogs. Sempre achei chato ter que acessar o blogger, fazer login, acessar a área de post e então escrever. Com esta ferramenta tudo fica mais rápido, fácil e produtivo.

    O que muito me surpreendeu foi a ferramenta funcionar em vários outros blogs que não o live.com, a MS parece que está se antenando no que os usuários desejam. Assim espero!

    A ferramenta tem tudo e mais um pouco do que acredito ser necessário para escrever em um blog. Recurso de preview, editar html puro, recursos de formatação, publicação, salvar rascunhos, corretor ortográfico (por enquanto somente em inglês), teclas de atalho entre outros.

    A inclusão de imagem também foi ótima, inclusive com a possibilidade de aplicar efeitos, como por exemplo, escala de cinza, bordas especiais, efeitos de sombra e marca d'agua.

    A ferramenta é de ótima usabilidade, fácil uso, além de um ambiente limpo e agradével. No geral gostei muito da ferramenta e pretendo adotá-la para escrever no blog.

    Parabéns à equipe do Live Writer, ferramenta como esta eu esperava do Google, nunca da Microsoft. Ponto pra MS!

    Abaixo, uma pequena screenshoot do Live Writer, e para quem quiser baixá-la para testar, acessem http://windowslivewriter.spaces.live.com/, e depois se quiserem, deixem aqui seus comentários sobre ela.

    Ops!!! Acordei pra realidade, depois de tudo pronto, a ferramenta não consegue fazer upload da imagem para o blogger.com. Então optei por não postar a imagem. Irei postar uma mensagem no blog do Live Writer para ver se eles arrumam esta funcionalidade, e quando fizerem eu aviso por aqui!

    Até o próximo post!

    quarta-feira, agosto 09, 2006 

    MSDN Wiki

    Para quem desenvolve sistemas com tecnologias Microsoft já conhece muito bem o site MSDN (http://www.msdn.com). Para quem não conhece, ele é um local centralizado onde está reunida quase que toda a documentação oficial da Microsoft sobre o desenvolvimento de sistemas utilizando ferramentas, produtos e/ou tecnologias Microsoft.

    Atualmente ela está testando uma novidade, o MSDN Wiki! Onde o termo "Wiki" se refere a um ambiente colaborativo de informação na internet, sistema no qual é mundialmente conhecido pelo seu "garoto propaganda", o Wikipedia (http://pt.wikipedia.com).

    No MSDN WIki, o objetivo será permitir que a comunidade participe na formação de documentação, permitindo por exemplo, adicionar e editar conteúdos de outros usuários. Pretendendo desta forma, expandir sua documentação com exemplos de códigos, dicas e outras informações que venham a ajudar no dia-a-dia dos desenvolvedores.Desta foram, a Microsoft estará agrupando em apenas dois locais, toda e qualquer informação possível sobre o processo de desenvolvimento no que se refere às suas ferramentas. Ou seja, no MSDN, fornecendo informações oficiais sem permitir alteração por parte da comunidade, e no MSDN Wiki com informações geradas/mantidas pela comunidade em geral e supervisionada por profissionais da Microsoft.

    Acredito que isto venha a ajudar muito, evitando o pula-pula de site em site a procura de informações relevantes e de qualidade.

    Para quem já quer dar uma espiada no site, visite http://msdnwiki.microsoft.com (em inglês).

    Façam bom proveito!