02/05/2013

Javascript para tratamento de erros ajax no Asp.Net

Exemplo de como tratar erros ocorridos em postbacks assíncronos em asp.net

 

Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);

function EndRequestHandler(sender, args) {
    if (args.get_error() != undefined && args.get_error().httpStatusCode == '500') {
        var errorMessage = args.get_error().message
        args.set_errorHandled(true);
        alert('"' + errorMessage + '" '); //Tratar o erro aqui, para exemplo é exibido apenas um alert
    }

}
.

15/04/2013

Exibir solution Visual Studio

Como exibir icone solution Visual Studio:

 

Criptografia usando 3DES em C# e VB.Net

Exemplo de criptografia usando 3DES em C# e VB.Net
 


  Const passphrase As String = "2C446B15-732344-4234239-93234456-C1BC52F50478"

        Public Shared Function Criptografar(Message As String) As String
            Dim Results As Byte()
            Dim UTF8 As New System.Text.UTF8Encoding()
            Dim HashProvider As New MD5CryptoServiceProvider()
            Dim TDESKey As Byte() = HashProvider.ComputeHash(UTF8.GetBytes(passphrase))
            Dim TDESAlgorithm As New TripleDESCryptoServiceProvider()
            TDESAlgorithm.Key = TDESKey
            TDESAlgorithm.Mode = CipherMode.ECB
            TDESAlgorithm.Padding = PaddingMode.PKCS7
            Dim DataToEncrypt As Byte() = UTF8.GetBytes(Message)
            Try
                Dim Encryptor As ICryptoTransform = TDESAlgorithm.CreateEncryptor()
                Results = Encryptor.TransformFinalBlock(DataToEncrypt, 0, DataToEncrypt.Length)
            Finally
                TDESAlgorithm.Clear()
                HashProvider.Clear()
            End Try
            Return Convert.ToBase64String(Results)
        End Function


        Public Shared Function Descriptografar(Message As String) As String
            Dim Results As Byte()
            Dim UTF8 As New System.Text.UTF8Encoding()
            Dim HashProvider As New MD5CryptoServiceProvider()
            Dim TDESKey As Byte() = HashProvider.ComputeHash(UTF8.GetBytes(passphrase))
            Dim TDESAlgorithm As New TripleDESCryptoServiceProvider()
            TDESAlgorithm.Key = TDESKey
            TDESAlgorithm.Mode = CipherMode.ECB
            TDESAlgorithm.Padding = PaddingMode.PKCS7
            Dim DataToDecrypt As Byte() = Convert.FromBase64String(Message)
            Try
                Dim Decryptor As ICryptoTransform = TDESAlgorithm.CreateDecryptor()
                Results = Decryptor.TransformFinalBlock(DataToDecrypt, 0, DataToDecrypt.Length)
            Finally
                TDESAlgorithm.Clear()
                HashProvider.Clear()
            End Try
            Return UTF8.GetString(Results)
        End Function


 


const string passphrase = "2CDD6B23-7345-45789-93565-C3453345345G43453F38";
    public static string Criptografar(string Message)
    {
        byte[] Results = null;
        System.Text.UTF8Encoding UTF8 = new System.Text.UTF8Encoding();
        MD5CryptoServiceProvider HashProvider = new MD5CryptoServiceProvider();
        byte[] TDESKey = HashProvider.ComputeHash(UTF8.GetBytes(passphrase));
        TripleDESCryptoServiceProvider TDESAlgorithm = new TripleDESCryptoServiceProvider();
        TDESAlgorithm.Key = TDESKey;
        TDESAlgorithm.Mode = CipherMode.ECB;
        TDESAlgorithm.Padding = PaddingMode.PKCS7;
        byte[] DataToEncrypt = UTF8.GetBytes(Message);
        try
        {
            ICryptoTransform Encryptor = TDESAlgorithm.CreateEncryptor();
            Results = Encryptor.TransformFinalBlock(DataToEncrypt, 0, DataToEncrypt.Length);
        }
        finally
        {
            TDESAlgorithm.Clear();
            HashProvider.Clear();
        }
        return Convert.ToBase64String(Results);
    }


    public static string Descriptografar(string Message)
    {
        byte[] Results = null;
        System.Text.UTF8Encoding UTF8 = new System.Text.UTF8Encoding();
        MD5CryptoServiceProvider HashProvider = new MD5CryptoServiceProvider();
        byte[] TDESKey = HashProvider.ComputeHash(UTF8.GetBytes(passphrase));
        TripleDESCryptoServiceProvider TDESAlgorithm = new TripleDESCryptoServiceProvider();
        TDESAlgorithm.Key = TDESKey;
        TDESAlgorithm.Mode = CipherMode.ECB;
        TDESAlgorithm.Padding = PaddingMode.PKCS7;
        byte[] DataToDecrypt = Convert.FromBase64String(Message);
        try
        {
            ICryptoTransform Decryptor = TDESAlgorithm.CreateDecryptor();
            Results = Decryptor.TransformFinalBlock(DataToDecrypt, 0, DataToDecrypt.Length);
        }
        finally
        {
            TDESAlgorithm.Clear();
            HashProvider.Clear();
        }
        return UTF8.GetString(Results);
    }


09/11/2012

Ferramenta para monitorar métricas do projeto

SourceMonitor ótima ferramenta para monitorar métricas do projeto. Ele gera uma grande quantidade de informações como: Complexidade, % de comentários, % de documentação, quantidade de linhas e etc. Além disso é possível ver estas estatísticas por classe, método ou de todo o projeto.

Ele está disponível para C++, C, C#, VB.NET, Java, Delphi, Visual Basic (VB6) e HTML.

Abaixo segue algumas telas do programa:

Exibição de métricas para cada snapshot gerado.

 Exibição de métricas de cada arquivo. Também é possível ver os dados de cada método da classe.

 Resumo do snapshot.

Evolução da quantidade de linhas do projeto.

28/10/2012

Como corrigir problemas de encode de acentos no html no Asp.Net

Como corrigir problemas de encode de acentos no html no Asp.Net. Basta alterar o web.config:


<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <system.web>
        <globalization
             fileEncoding="iso-8859-1"
             requestEncoding="iso-8859-1"
             responseEncoding="iso-8859-1"
             culture="pt-BR"
             uiCulture="pt-BR"
        />
    </system.web>
</configuration>

24/10/2012

Registrar javascript em uma página independente da URL

Já ví várias gambiarras soluções mirabolantes para registrar um arquivo javascript em uma página Asp.Net, de forma que ele funcione em qualquer url que o cliente esteja.

Segue um exemplo da forma mais simples que eu já encontrei:


    <asp:ScriptManager ID="ScriptManager1" runat="server">
        <Scripts>
            <asp:ScriptReference Path="~/Js/jquery.js" />
            <asp:ScriptReference Path="~/Js/custon.js" />
        </Scripts>
    </asp:ScriptManager>

02/10/2012

Pastas no SQL Management Studio

Depois de anos sonhando com essa feature, finalmente há alguns meses atrás me indicaram o SQLTreeo um plugin que cria pastas no SQL Management Studio.

Se você tem um banco que tem centenas de tabelas/procedures, com certeza vai se familiarizar com a penosa tarefa encontrar à tabela/procedure específica que você precisa à cada 5 minutos.

O que o plugin faz é criar pastas virtuais, usando as propriedades extendidas dos elementos do banco. Assim você pode navegar e organizar as tabelas, procedures, views e etc da mesma maneira que organiza as pastas de um diretório.

Abaixo está um exemplo de como ficou meu banco:
Antes
Depois