Building Web Apps with ASP.NET Jump Start

Jon Galloway, Damian Edwards and Scott Hanselman provides now 8 hours of free ASP.NET training videos.

»
Author's profile picture Tiago Salgado on asp.net

ASP.NET and Web Tools 2012.2 Update

The final release is here 🙂

»
Author's profile picture Tiago Salgado on asp.net

SvcPerf – E2E ETW trace analysis tool

SvcPerf is an End-to-End ETW trace viewer for manifest based traces.

»
Author's profile picture Tiago Salgado on others

Facebook login in ASP.NET web application with Visual Studio 2012

One of the new features on Visual Studio 2012, is the ability to integrate a social login (Facebook, Twitter, etc) in our web applications.

»
Author's profile picture Tiago Salgado on asp.net

Add Twitter Bootstrap template to ASP.NET MVC Project

So, what is Twitter Bootstrap?

»
Author's profile picture Tiago Salgado on asp.net

OWASP Top 10 for .NET developers (ebook gratuito)

Para completar a série de artigos que o Troy Hunt foi disponibilizando desde 2010, deixa-nos agora com essa mesma compilação num ebook de 255 página e totalmente gratuito.

»
Author's profile picture Tiago Salgado on .net

jQuery Menubar e web.sitemap

ApĂłs o HTML 5 Microsoft WebCamp Portugal, surgiu-me algum interesse em explorar o plugin Menubar.

»
Author's profile picture Tiago Salgado on asp.net

ASP.NET Membership Lock User

Visto que não temos uma forma directa de indicar que determinado utilizador irá estar bloqueado, a única forma que arranjei para o fazer foi forçar o erro no login múltiplas vezes, até atingir o valor máximo de tentativas definidas no atributo “maxInvalidPasswordAttempts”.

»
Author's profile picture Tiago Salgado on asp.net

Controlar Menus visiveis com o web.sitemap

Uma maneira rápida de ter um menu a funcionar no nosso website, é recorrer ao controlo Menu e associá-lo a um web.sitemap usando o SiteMapDataSource.

»
Author's profile picture Tiago Salgado on c#

Encriptar e desencriptar um Stored Procedure

Quando não queremos que tenham acesso ao código dos Stored Procedures, Triggers ou Views, que implementamos numa base de dados, podemos criar e encriptar facilmente, bastando para isso adicionar um “WITH ENCRYPTION”.

»
Author's profile picture Tiago Salgado on others

GridView ShowHeaderWhenEmpty

Até à versão 3.5 da .NET Framework, para mostrarmos os cabeçalhos de uma gridview quando esta não iria conter qualquer resultado, teriamos que recorrer a soluções como esta por exemplo:

»
Author's profile picture Tiago Salgado on c#

Criar um ficheiro Zip em C#

Uma forma rápida de criarmos um ficheiro Zip, é recorrendo à classe ZipPackage do WindowsBase.dll.

»
Author's profile picture Tiago Salgado on c#

Converter dados de um SqlDataReader para uma List com LINQ

Recorrendo ao SqlDataReader, facilmente conseguimos retornar dados de uma BD para a nossa aplicação.
Um exemplo muito rápido da sua utilização poderia ser algo como:

public class Person
    {
        public string Nome { get; set; }
        public int Idade { get; set; }
    }
public List<Person> GetPersons()
        {
            List<Person> persons = new List<Person>();
            using (SqlCommand cmd = new SqlCommand("SELECT * FROM Persons", new SqlConnection("a_minha_connectionstring")))
            {
                cmd.Connection.Open();
                using (SqlDataReader dr = cmd.ExecuteReader())
                {
                    if (!dr.HasRows)
                        return null;
                    while (dr.Read())
                    {
                        persons.Add(new Person()
                        {
                            Nome = dr["Nome"].ToString(),
                            Idade = int.Parse(dr["Idade"].ToString())
                        });
                    }
                    return persons;
                }
            }
        }

Nada de mal com este código, pois criamos uma lista que vai ter o tipo Person, e vamos adicionando no ciclo while() várias instâncias da classe Person.

Mas podemos torna-lo muito mais simples recorrendo ao LINQ e à Interface IDataRecord. Assim, o método GetPersons() seria algo como:

public List<Person> GetPersons()
        {
            using (SqlCommand cmd = new SqlCommand("SELECT * FROM Persons", new SqlConnection("a_minha_connectionstring")))
            {
                cmd.Connection.Open();
                return (from IDataRecord p in cmd.ExecuteReader()
                        select new Person()
                        {
                            Nome = p["Nome"].ToString(),
                            Idade = int.Parse(p["Idade"].ToString())
                        }).ToList();
            }
        }

Muito mais claro, menos código, e o resultado será igual.

»
Author's profile picture Tiago Salgado on c#

Utilizar a API do bit.ly para gerar um url curto em C#

Hoje andei a dar uma olhadela à API do serviço bit.ly. Para utilizarmos basta mesmo criar uma conta, e com a key que gera para utilizarmos a API rapidamente fazemos qualquer brincadeira.

»
Author's profile picture Tiago Salgado on c#

Extrair texto entre tags HTML (LINQ+Regex)

Hoje o meu colega de trabalho pediu-me para o ajudar a extrair uma parte do texto de uma página p/ ser posteriormente enviado.

»
Author's profile picture Tiago Salgado on c#