MSDN Webcast: Visualização de códigos, UML, e DSLs

by Felipe Lambert 12. March 2010 16:43

MSDN Webcast: Desvendando o WCF RIA Services: explorando o que está por vir com Visual Studio 2010

Visão geral: O Microsoft Visual Studio Ultimate 2010 introduz um conjunto completo de novas ferramentas de design e modelagem para ajudar as empresas e equipes na criação de softwares. Os Diagramas UML e o Diagrama de Camadas podem ser usados para planejar e projetar os ativos que sua equipe produzirá e para promover a comunicação efetiva a respeito das criações durante todo o ciclo de vida do desenvolvimento. O Architecture Explorer e Graphs ajudam você a investigar e compreender melhor seus ativos, permitindo planejamento e tomada de decisões mais efetivos. Saiba como é possível usar todas essas ferramentas para investigar seus ativos atuais e planejar e projetar os futuros trabalhos.

Ajudando na Divulgação dos WebCasts Microsoft..

Hoje termino o Curso official 2957 - Advanced Foundations of MS .NET 2.0 Development, Rumo ao MCP! finalmente tomei vergonha na cara.. to iniciando o processo de certificações MS

Improving Web Services Security

by Felipe Lambert 11. March 2010 10:29

Conteudo retirado de MSDN Patterns and Pratices:

Acesso o link em inglês para artigo completo

Improving Web Services Security: Scenarios and Implementation Guidance for WCF

Este guia mostra como aproveitar ao máximo o Microsoft ® Windows Communication Foundation (WCF). WCF é a solução da Microsoft para o desenvolvimento de aplicações baseadas em uma arquitetura orientada a serviços (SOA metodologia). O guia contém práticas comprovadas, end-to-end de aplicações de cenários, diretrizes, Q & A, e baseado em artigos "how-to".

Boa Leitura e Bons Estudos

 


A Guide to Claims–based Identity and Access Control

by Felipe Lambert 11. March 2010 10:16

Conteudo retirado de MSDN Patterns and Pratices:

Acesso o link em inglês para artigo completo

Imagine um mundo onde você não precisa se preocupar com autenticação. Imagine vez que todas as solicitações para seu aplicativo já incluem a informação que você precisa para tomar decisões de controle de acesso e para personalizar o aplicativo para o usuário.

Neste mundo, suas aplicações podem confiar em um outro componente do sistema de segurança de informação do usuário, como nome do usuário ou endereço de e-mail, um gerenciador de e-mail, ou até um limite de autorização de compra. As informações do usuário chega sempre no mesmo formato simples, independentemente do mecanismo de autenticação, se é o Microsoft ® Windows ® integrado autenticação, autenticação baseada em formulários em um navegador da Web, um certificado de cliente X.509, ou algo mais exótico. Mesmo se alguém responsável por alterações de segurança da empresa como a política autenticar usuários, você ainda receber a informação, e é sempre no mesmo formato.

Esta é a utopia de identidade baseada em declarações de que A Guide to Claims–based Identity and Access Control descreve. Como você verá, afirma fornecer uma abordagem inovadora para criar aplicações que autenticar e autorizar usuários.

Links para Downloado do Book, Code Samples e Overview  estão no site Patterns e Pratices

Boa Leitura e Bons Estudos

Pro ASP.NET Extensibility

by Admin 9. March 2010 23:03

Procurando algo sobre a classe PageStateProvider no google encontrei o link para o Pro Asp.Net Extensibility livro da Editora Apress:

GoogleBooks

Pro ASP.NET Extensibility dá aos leitores uma visão em profundidade no modelo novo idioma no ASP.NET, indo além do tratamento do tema introdutório disponível em outro lugar, cheio de dicas práticas e truques de um desenvolvedor experiente. Saiba mais sobre a extensibilidade e modelos disponíveis com tanto tempo de execução. NET 3.5 e 4.0, o Windows Server 2003 e 2008 e Internet Information Services (IIS) 6.0 e 7.0. O livro explica não só como as coisas funcionam, mas também o porquê.

Abaixo o link do Amazon:

Amazon.com Pro ASP.NET Extensibility (Expert's Voice in .Net) (Paperback)

Removing Special Characters from .NET Strings

by Felipe Lambert 18. February 2010 17:45

Removendo Caracteres Especiais de String no .NET

Artigo Original

A necessidade de Remover os caracteres especiais varia de acordo com a situação, arquivos, formatação de campos etc.

Utilizamos aqui a função Split(char[]) da classe string para remover os caracteres do texto _displayText retornando assim um string[] que é novamente concatenado para retornar.

Abaixo o código:

 

public override string ToString(string _displayText)
{
string junk = "~!@#$%^&*<()+=`',.?>/\\\"";
string[] ret = _displayText.Split(junk.ToCharArray());

return string.Concat(ret);
}

UrlRewrite em ASP.NET 2.0

by Felipe Lambert 10. February 2010 09:03

Para quem que assim como eu, fui "obrigado" a desenvolver a aplicação em 2.0 e um dos requisitos era a url amigável

seguindo um tweet do @RamonDuraes

O componente responde pelo namespace UrlRewritingNet.UrlRewrite, desenvolvido em código aberto pode ser encontrado em  http://www.urlrewriting.net/149/en/home.html possui o download da documentação, binários, exemplo e fonte,

fazendo uso de configurações no webConfig, e possivel reescrever a url exibida para o usuário e realmente acessar outra url no servidor, assim uma url de servidor com querystring como http://www.urlrewriting.net/149/en/home.html facilmente é transformada em: http://www.urlrewriting.net/149/en/home.html.

Várias soluções para reescrever urls com o ASP.NET possui disvantagens, como perder o suporte a Themes e Master Pages, alem de precisar de direitos de Administrador para instalar a Extensão ISAPI no servidor.

Mas nem tudo é maravilha, você so pode reescrever requisições tratadas pelo ISAP no servidor, ou seja extensões .aspx, para outras extensões deve ser feita uma configuração adicional no IIS ISAP. (disponivel na pagina 14 da documentação), pelo mesmo motivo pode não ser possivel a url sem extensão (faça um teste, aqui funcionou), e requests crossPage (este não funcionou... só com segurança desabilitada =/).

O navegador pode se perder com as imagens e a url da página, sendo necessária a inclusão do root "~" e runat="server" nas imagens conforme <image src=“~/images/pictures.gif“ runat=“server“/>

 

A configuração do urlRewrite é feita no webconfig adcionando o codigo abaixo

 <add name="Rule1"  virtualUrl="^~/(.*)/Detail(.*).aspx"            
           rewriteUrlParameter="ExcludeFromClientQueryString" 
           destinationUrl="~/Default.aspx?language=$1&amp;id=$2"
           ignoreCase="true" />

Onde a virutalUrl é a url a ser redirecionada para a destinationUrl sendo facil identificar o (.*) da expressão regular sendo pasado para o $1 da segunda expressão regular em destinationUrl.

A documentação consta os demais parametros possíveis de serem utilizados.

 

Propagação de Transação entre Cliente e Serviço Asmx ou WCF basicHttpBinding

by Admin 11. December 2009 00:01

Faz um tempo que por aqui nao passo, vamos lá

Quando falamos de Serviço na plataforma .NET duas coisas

1- vem a cabeça o muito usado arquivo .asmx onde as mensagens eram enviadas por http serializado:

2- WCF (Windows Communication Foundation), tecnologia mais recente mas com grande aceitação por aceitar vários protocolos, tipos de mensagens, níveis de segurança,  e transação de forma automática ... menos no modo basicHttpBinding que simplesmente serializa e repasa por HTTP basicamente.

Se não possuem suporte .. entao como utilizar Transação iniciada no cliente e enviada ao Serviço,

A O namespace System.Transactions facilita nossa vida com as seguintes classes e métodos:

Dim propToken As Byte() = TransactionInterop.GetTransmiterPropagationToken(Transaction.Current)

No Cliente caso Alguma transação esteja Aberta, o método Transaction.Current retorna a mesma enquanto o Metodo GetTransmiterPropagationToken retorna um objeto do Tipo Byte() para ser passado ao Serviço.

Já no Serviço se pode ser executado os seguintes métodos

Dim trans As Transaction = TransactionInterop.GetTransactionFromTransmiterPropagationToken(propToken)

O objeto Byte() propToken é passado como parâmetro para o Serviço.

A instância da transaction pode ser feita da seguinte forma:

Using tranScope  As New TransactionScope(trans)

'Código a ser executado na Transação

tranScope.Complete()

End Using

 Dessa forma a transação pode ser propagada entre os serviços mesmo sendo basicHttpBinding.

 

 

Remover Acentos

by Felipe Lambert 18. September 2009 13:17

Função simples para remover o acento

Function removeAcentos(ByVal texto As String) As String
   Dim vPos As Byte
   'Constantes de caracteres para remover o acento
   Const vComAcento = "ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜàáâãäåçèéêëìíîïòóôõöùúûü"
   Const vSemAcento = "AAAAAACEEEEIIIIOOOOOUUUUaaaaaaceeeeiiiiooooouuuu"

   'Varre o texto para identificar os caracterres
   For i = 1 To Len(texto)
      vPos = InStr(1, vComAcento, Mid(texto, i, 1))   'identifica a posição do caractere a ser subistituido caso exista
      If vPos > 0 Then
         Mid(texto, i, 1) = Mid(vSemAcento, vPos, 1)   'substitui o caractere
      End If
   Next
   removeAcentos = texto 'retorna o item
End Function

O que não Fazer

by Admin 27. August 2009 10:03

Entao pessual...

Gostaria de apresenta-los aos padrões de linguagem que se encontra em produção em aplicações corporativas... como o exemplo abaixo de uso de

If InStr(ConfigurationSettings.AppSettings("PermissaoAcesso"), Session("cd_usuario")) Then

Session("tpUsers") = "Adm"
Session("NOME_USUARIO") = Session("NOME_USUARIO")
Session("e_mail_usuario") = Session("E_MAIL")

End If

 Na verdade o como não utilizar uma sessão.

 

'407 Proxy Authentication Required'

by Felipe Lambert 12. August 2009 08:38

O erro acima é diretamente encontrado quando se precisa da execução de uma chamada a internet via código dentro de uma rede que necessita de proxy como ocorreu comigo ontem.

Então vamos a solução Suponhamos que uma aplicação em C# com o seguinte código.

WebClient client = new WebClient();
Stream rssStream = client.OpenRead(Url); 
StreamReader textReader = new StreamReader(rssStream);
XmlTextReader xmlReader = new XmlTextReader(textReader);
XmlDocument xmlDoc= new XmlDocument();
xmlDoc.Load(xmlReader);

E a aplicação retorne o seguinte erro em Tempo de Execução:

An unhandled exception of type 'System.Net.WebException' occurred in system.dll

Additional information: The remote server returned an error: 407 Proxy Authentication Required.

E seja necessária a implantação da conexão utilizando algum proxy como vemos a seguir em um exemplo para WebClient.

   System.Net.WebProxy proxy = new System.Net.WebProxy(yourproxyserver);
   proxy.Credentials = CredentialCache.DefaultCredentials;
   //if there is username/password for your proxy server setting, uncomment the following statemtnt instead.
   //proxy.Credentials = new NetworkCredential(username, password);
   GlobalProxySelection.Select = proxy;

   WebClient client = new WebClient();
   Stream rssStream = client.OpenRead(Url); 
   StreamReader textReader = new StreamReader(rssStream);
   XmlTextReader xmlReader = new XmlTextReader(textReader);
   XmlDocument xmlDoc= new XmlDocument();
   xmlDoc.Load(xmlReader);

Ou um exemplo para WebRequest.

   System.Net.WebRequest req = System.Net.WebRequest.Create(Url);
   req.Proxy = new System.Net.WebProxy(yourproxyserver, true);
   req.Proxy.Credentials = CredentialCache.DefaultCredentials;
   System.Net.WebResponse resp = req.GetResponse();
   System.IO.StreamReader textReader = new System.IO.StreamReader(resp.GetResponseStream());
   XmlTextReader xmlReader = new XmlTextReader(textReader);
   XmlDocument xmlDoc= new XmlDocument();
   xmlDoc.Load(xmlReader);

Simples mas espero ter ajudado.

 Fonte GiCode

Sobre Mim

Felipe Augusto Silva Lambert - Analista de Sistemas, experiência em 3 anos desenvolvimento ASP.NET, utilizando tecnologias ServerSide (Design Patterns, Linq, WCF, SQL Server, C# e VB.NET) e ClientSide (JavaScript e Jquery). técnico em Mecatrônica e bacharel em Ciência da Computação.