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.
»Jon Galloway, Damian Edwards and Scott Hanselman provides now 8 hours of free ASP.NET training videos.
»The final release is here 🙂
»SvcPerf is an End-to-End ETW trace viewer for manifest based traces.
»One of the new features on Visual Studio 2012, is the ability to integrate a social login (Facebook, Twitter, etc) in our web applications.
»So, what is Twitter Bootstrap?
»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.
»ApĂłs o HTML 5 Microsoft WebCamp Portugal, surgiu-me algum interesse em explorar o plugin Menubar.
»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”.
»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.
»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”.
»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:
»Uma forma rápida de criarmos um ficheiro Zip, Ă© recorrendo Ă classe ZipPackage do WindowsBase.dll.
»
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.
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.
»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.
»