ASP.NET 4.0 – Melhorias para SEO parte 1

3 Comments

Uma das grandes novidades do ASP.NET 4.0, é a possibilidade do desenvolvedor poder criar parâmetros básicos de SEO
As novidades São:

  • Novas propriedades: Page.MetaDescription e Page.MetaKeywords
  • Suporte para URL’s amigáveis
  • Novo método Response.RedirectPermanent()

Page.MetaDescription e Page.MetaKeywords

Essas duas propriedades são usadas para facilitar a otimização individual para cada pagina exemplo no Page_Load:

void Page_Load(object sender, EventArgs e){
Page.Title = "Título Otimizado da Página";
Page.MetaDescription = "Campo para meta description específica de uma página";
Page.MetaKeywords = "insira,as,keywords,relevantes,da,página,aqui";
}

E é possível também colocar no código fonte do arquivo .aspx:

<%@ Page Title = "Título Otimizado da Página" Description = "Campo para meta description específica de uma página" Keywords = "insira,as,keywords,relevantes,da,página.aqui" MasterPageFile = "~/Site.Master" CodeBehind = "paginaX.aspx.cs" Inherits = "WebApplication1.pagina" %>

Isso já adianta muito a vida de um programador .NET que quer aplicar técnicas de SEO no site

Até a próxima

Criptografando a QueryString

2 Comments

Muito de nós usamos parametros QueryString para passar informações de uma pagina para outra como por exemplo um produto selecionado:http://localhost:1234/DadosProduto.aspx?id=10

O problema de fazer assim é que os dados ficam viziveis ao usuario, e se ele for um usuario mais avançado tentará acessar informações que talvez não poderia ser vizualizado por ele, então neste caso faremos um exemplo de como criptografar a QueryString asssim:http://localhost:1234/DadosProduto.aspx?id=03EscXnBsci=

Desta maneira o id do produto está criptografado, no nosso exemplo iremos precisar apenas de dois metodos um de criptografar e outro para descriptografar vamos lá

Criaremos uma classe chamada Encryption64:


using
System; 

using System.Linq;

using System.Text;

using System.IO;

using System.Security.Cryptography;

 

More

CRUD com ADO.NET Entity Framework

9 Comments

Hoje iremos ver um pouco sobre como fazer operações basicas com o Entity Framework

Criação

Para criar o registro é bem simples basta utilizar apenas duas chamadas ObjectContext: adição e salvamento dos dados.


using
(NorthwindEntities db = new NorthwindEntities())
{
Products products = new Products();
products.ProductName = “Teste”;
products.QuantityPerUnit = “10″;
products.UnitsInStock = 10;
db.AddToProducts(products);
db.SaveChanges();
}

Consulta

A coleção de objetos persistidos pode ser obtida acessando o ObjectContext. Para cada tabela mapeada, existe uma coleção de objetos no ObjectContext correspondente, que pode ser utilizada para realizar consultas. Na implementação destas coleções, os dados não estão disponíveis em memória. Eles só são recuperados do banco quando requisitados, conforme critérios de seleção e junção.

A recuperação de dados pode ser realizada utilizando LINQ. No entanto, diferentemente do LINQ-To-SQL, somente são recuperados dados explicitamente requisitados, isto é, entidades associadas não são recuperadas automaticamente por lazy load (será abordado mais adiante). Assim, para recuperar o produto de ID 2, basta executar:

Products products = db.Products.First(p => p.ProductID == 2);

(Apesar da função “Single” ser mais apropriada, ela não é suportada pelo Entity Framework, cuja utilização dispara uma exceção.)

No modelo, região possui relacionamento de 1 para N com territórios, podendo navegar pela propriedade Territories. No entanto, a coleção vem inicialmente vazia, sendo necessária, para recuperar as associações, executar o lazy load da coleção, ou definir a carga por eager load.

Atualização

Para atualizar um item, basta modificar a propriedade da entidade recuperada pelo ObjectContext e chamar o método SaveChanges. Se o objeto a ser atualizado não foi fornecido pelo ObjectContext, como poderia acontecer numa recepção de dados via WCF, é necessário antes recuperar o objeto e repassar as alterações:

using (NorthwindEntities db = new NorthwindEntities())
{
Products products = new Products();
products.ProductName =
“Teste Alteracao” ;
products.QuantityPerUnit = 10 ;
products.ProductID = 79;
Products original = db.Products.First(p => p.ProductID == products.ProductID);db.ApplyPropertyChanges(“Products”, products);
db.SaveChanges();
}

Remoção

A remoção é uma operação bastante simples. Ela se resume a uma chamada do método DeleteObject:

db.DeleteObject(db.Products.First(p => p.ProductID == 79));
db.SaveChanges();

Simples e pratico agora é só estudar um pouquinho que dá para ir longe ;)

Até a próxima

Abs

Apostila Introdução ao Framework .NET (C# ou VB.NET)

No Comments

3 net logojpg Apostila Introdução ao Framework .NET (C# ou VB.NET)

Povo, ai vai uma apostila para quem quer iniciar com .NET C# ou VB.NET

Link para download: Clique Aqui

Até mais…

Microsoft lança o SP1 para Visual Studio 2008

No Comments

A Microsoft disponibilizou a versão final do SP1 do Visual Studio 2008, vale apena fazer a instalação , o site oficial é: http://msdn.microsoft.com/en-us/vstudio/products/cc533447.aspx

O Service Pack 1 do Visual Studio tras muitas novidades:

ASP.NET Dynamic Data Control

ADO.NET Entity Framework

ADO.NET Data Services

e melhorias de ferramentas

Caso tenha dificuldades com a instalação por ter o SP1 BETA já instalado, entre neste blog para suporte.

[]‘s,

Leonardo Moreno

C# 3.0+ – Extensions Methods

No Comments

C# – Extensions Methods

Uma funcionalidade muito interessante no C#
Com ela podemos extender tipos existentes (string, int, objects, etc…), objetos da framework (TextBox, String, Datetime…) e até mesmo classes criadas (Clientes, Pagamentos..) com MÉTODOS ADICIONAIS.

Eles são métodos estáticos e podem ser invocados com a mesma sintaxe que os métodos de instância. Ou seja, é um método estático que só pode ser usado quando referenciado.

Mas oque realmente são?
Você certamente deve ter vários métodos de validação em uma classe ‘Helper’ ou até mesmo em cada objeto fazer isso manualmente (O importante é validar ^^)
Oque você usaria assim:
bool CEPIsValid = ValidatorHelper.IsValidCEP(“12312-544″);
ou: bool CEPIsValid = usuario.ValidarCep(usuario.CEP.ToString());

Seguinte, através do extension, você adicionaria estes métodos direto no tipo que deverá ser feita a validação. E ainda mais, Todos os objetos deste tipo receberá o método, ou seja, em qualquer classe, sem precisar implementar manualmente em cada uma.
Exemplo:
String meuCep = “12312-544″;
bool CEPIsValid = meuCep.ValidarCEP();
bool CEPIsValid = TextBox1.Text.ValidarCEP();
ou até mesmo:
bool CEPIsValid = “12312-544″.ValidarCEP();
Note que o método ValidarCEP foi chamado diretamente do objeto string, e todas as strings obtiveram a funcionalidade.

Perfeito!!! A solução das validações de Case!!!
E ainda melhor! Observem a facilidade da implementação ao seu sistema!

using System.Text.RegularExpressions;

namespace SeuNamespace
{
public static class Extensions
{
public static bool ValidarCEP(this string p)
{
return Regex.Replace(p, “[\\d]{5}-[\\d]{3}”, “”).Equals(“”);
}
public static string ImparOuPar(this int n)
{
return (n % 2 == 0) ? “Par” : “Impar”;
}
}
}

Lembrando, esta é uma das muitas funcionalidades do Extends Methods… Basta usar a Criatividade…

Os métodos têm de ser criados obrigatóriamente dentro de classes estáticas, e têm também eles de serem estáticos. O primeiro argumento do método define o tipo de dados a extender, como podem reparar no exemplo anterior, extendemos o tipo string. Reparem também que precisamos de utilizar a palavra reservada this como modificador do primeiro argumento do método. Os Extension Methods podem receber mais argumentos, estando apenas o primeiro reservado para o tipo de dados a extender.
A utilização é bastante simples, basta importar as extensões criadas, através do respectivo using e depois utilizar em qualquer objecto do tipo string.

Funcionalidade extremamente poderosa, que pode ser usada por exemplo para extender uma camada de acesso a dados gerada automaticamente, em que o código gerado não deve ser alterado porque pode ter de ser regerado.

Galera, espero ter ajudado neste post, é realmente muito util.

Assim que souber de noticias como esta passo aqui para compartilhar.

(Agradecimentos ao meu professor Valter por ter me comunicado sobre. Daí que resolvi pesquisar)

Obrigado galera!
Abraços!

10 vantagens do ASP.NET 3.5

2 Comments

Com o lançamento do Visual Studio .NET 2008 e o ASP.NET 3.5, o desenvolvedor tem motivos de sobra para adotar imediatamente esta ferramenta. Quando a Microsoft lançou o VS.NET 2005 houve uma considerável mudança no ASP.NET 2.0, digamos 90% de controles novos com diversas funcionalidades encapsuladas para facilitar a vida do desenvolvedor. Agora com a versão ASP.NET 3.5 existem algumas melhorias e novas implementações, então, veja quais as melhores razões que fará você adotar o ASP.NET 3.5 e o VS.NET 2008.

  1. Gerenciamento de Styles Sheets CSS e HTML Designer – a criação de arquivos de estilos e as configurações dos elementos ficaram muito mais simples e fácil de entender. Já a aplicação de estilos nos controles nunca foi tão fácil, basta abrir a janela de aplicar estilos, selecionar o controle e o estilo a ser aplicado e pronto, com apenas um clique você aplica. Vale dizer que um formulário pode ter vários arquivos de estilos e a aplicação de diferentes estilos nos controles segue o mesmo esquema. Como a janela de aplicar estilo é uma janela como a Solution Explorer ou Propriedades, o desenvolvedor consegue visualmente ver todos os formatos do respectivo elemento antes de aplicar ao controle. Com isto, a produtividade tornou-se um fator chave neste ponto. Caso queira fazer download de templates de CSS disponíveis na internet, acesse www.openwebdesign.org, escolha o template a use na sua aplicação.
  2. Controle ListView e Data Pager – o controle GridView do ASP.NET 2.0 é sem dúvida um dos mais utilizados em todas as aplicações, e agora com o novo controle ListView, com certeza serão os dois mais abordados. O controle ListView permite vincular uma fonte de dados de qualquer tipo (XML, banco de dados, LINQ), contém diversos tipos de formatações prontas, modelos de exibição de dados, diversos tipos de eventos, e o melhor de tudo é que pode-se aplicar paginação. E por falar em paginação, o novo controle Data Pager pode ser entendido como um container de dados o qual ele é o responsável pela paginação. Isto significa dizer que toda a parte de ligação com a fonte de dados e o controle a serem exibidos estes dados, cabe ao Data Pager controlar. Para um melhor entendimento, imagine que o seu banco de dados ou o objeto de acesso a dados retorna uma quantidade de linhas e você gostaria de exibir estes dados em controles do tipo ListView, GridView, FormView, Datalist, etc, então basta vincular o Data Pager ao respectivo controle. Este recurso isola totalmente os controles de ter que ficar controlando a paginação, deixando a responsabilidade apenas para um único controle.
  3. Objeto LINQ – você já deve ter lido muitos artigos sobre o Language Integrated Query (LINQ) que é um modelo de coleções de entidades fortemente tipada. Isto quer dizer que você poderá ter um modelo de dados independente da fonte de dados de forma objeto-relacional. O LINQ pode usar como fonte de dados um banco de dados SQL Server (objeto LinqDataSource), criar classes (Linq to SQL Classes *.dbml), Datasets, arquivos XML (Linq to XML) e na versão final do VS.NET 2008, teremos o Linq to Entity, que permitirá criar um modelo de objetos com qualquer fonte de dados, por exemplo, Oracle. Na prática, o Linq significa que a maneira de você manipular qualquer conjunto de dados mudou radicalmente, nada de ficar usando o famoso SQL Statement (Select, Insert, Delete e Update). Com isto, os desenvolvedores terão que aprender uma nova maneira de lidar com objetos e coleções de dados, mas garanto que será um caminho sem volta, pois quem testou não quer mais saber de strings SQL. Além de tudo, lidar com objetos fortemente tipados e relacionais tratando-os como coleções é tudo o que o desenvolvedor precisa para programar com produtividade.
  4. Master-page aninhadas – este é um conceito fantástico que surgiu no ASP.NET 2.0 e sem nenhuma dúvida é um dos melhores recursos inventados até hoje no desenvolvimento WEB. No entanto, visualmente não era possível herdar uma Master-page de uma Master, apenas consumir a Master em páginas de formulários. Eu cheguei a usar Master encadeadas via programação, mas rezava para não ter que dar manutenção, pois não havia nenhum recurso visual. Agora na versão 3.5 do ASP.NET, temos o recurso visual de herança de Master dentro de outra Master. Isto significa dizer que você conseguirá usar Master-page encadeadas com todos os recursos visuais existentes. Em linhas gerais, na Master principal você define o ContentPlaceHolder que irá expor na Master filha, o qual deverá conter outros ContentPlaceHolder com layouts diferentes que serão expostos para os formulários consumirem. Com isto você poderá ter no projeto uma Master principal e diversas Master filhas herdando da principal, e, cabe aos formulários herdar tanto a Master principal quanto as filhas. Quero dizer que um formulário poderá herdar direto da Master principal, se for preciso.
  5. Split de tela – pense quantas vezes você alternou entre o código HTML e o Design (usando ou não o SHIFT + F7) numa aplicação? Com certeza foram infinitas vezes, principalmente porque o código HTML inserido na página expressa 100% o design criado ou vice-versa. Agora no ASP.NET 3.5 você tem o recurso de split de tela, ou seja, você consegue dividir a tela de forma a exibir o código HTML e o design na mesma tela. O melhor de tudo é que existe um sincronismo entre os mesmos, refletindo qualquer alteração feita. Para os desenvolvedores isto é um dos melhores recursos implementados nesta versão.
    More

Introduzindo TDD para .Net com NUnit

No Comments

Estava pensando em escrever um artigo sobre, no entanto, encontrei este, e percebi que se fosse criar, seria basicamente igual (Porém em C#) , então vou usar algo que já existe por não ter muito tempo livre.

Espero que gostem, é um ótimo artigo!

1) O que é TDD e por quê ele é uma boa idéia? O conceito de TDD vem crescendo muito com a adoção da metodologia “Extreme Programming” (XP), mas pode ser usado em separado, dentro de qualquer outra metodologia de desenvolvimento de software.

A grande vantagem de TDD é produzir código confiável em menos tempo, e com menos bugs. Entre outras coisas, essa técnica permite que você, após fazer uma determinada mudança (grande ou pequena) no seu sistema, possa testá-lo e ter certeza de que tudo ainda funciona, em questão de segundos. Certamente muito melhor do que ter que testar todo o sistema manualmente, tentando pensar em todo tipo de erro possível, ou ter que seguir uma checklist, não?

O processo de TDD é simples:

  1. Antes de começar a codificar uma determinada função, pense em testes que você poderia fazer pra ter certeza que ela funciona;
  2. Declare a sua função, mas apenas o “envelope”, não entre nenhum código propriamente dito;
  3. Crie os testes pra essa função: eles irão falhar, afinal, sua função ainda não faz nada;
  4. Escreva o código da função, e rode os testes; ajuste o código até que todos testes passem;
  5. Repita o passo 1 para a próxima função.

Como você pode ver, uma vantagem dessa metodologia é que ela é extremamente pragmática, e faz que você programe guiado por intenção, ou seja, primeiro você pensa qual o objetivo que você quer alcançar pra só então começar a escrever o código que alcance esses objetivos. Uma outra consequência interessante é que esse método reduz a possibilidade de que você sobrecarregue o código, ou seja, escreva código desnecessário: se você pensou em todos testes possíveis, e seu código passa em todos eles, é porque você terminou o seu trabalho.

2) Um exemplo prático

Vamos ver como isso funcionaria então, com um exemplo bem simples: suponha que eu precise criar uma função para cálculo de impostos sobre um valor, com as seguintes regras:

a) Caso o valor seja menor que 1.000, está isento de impostos;
b) Para valores entre 1.000 e 10.000 é cobrado 3% de imposto;
c) Para valores acima de 10.000 é cobrado 3% de imposto mais 250 reais de sobretaxa.

More

Continuous Integration

No Comments

Continuous Integration, ótima técnologia para grandes projetos, com ele, você terá a certeza de funcionamento, principalmente quando trabalhando em equipe, pois alteração em um método pode corrigir um bug e gerar outros 3, então no teste deste desenvolvedor, beleza, bug corrigido, mas ao perceber o procedimento do sistema, erros de business que não deveriam ter acontecidos…

Como funciona o Continuous Integration?

Continuous Integration, Você instala um servidor que automaticamente irá baixar a ultima versão de todos os arquivos do Source-Safe e irá compilar todo o projeto, caso aconteça um erro, ele lhe enviará um email com os erros e horários dos erros, ele também envia no email os arquivos que foram modificados, assim facilitando a analise para o concerto, quando passa o processo de compilação, você pode manda-lo fazer uma bateria de testes que você já havia feito no NUnit, assim ele também lhe enviará por email caso este de erro, quando compilado totalmente, envia um email dizendo o sucesso, com a estatística de arquivos que foram modificados e toda a analise do seu teste.

More

Um lado negro do XML

2 Comments

Olá pessoal,

Agora vamos falar um pouco sobre um dos pontos negativos ( assim como toda linguagem ) que existem no XML.

Hoje em dia o XML é muito usado como arquivo de configuração de sistemas, pois antigamente era usado aqueles arquivos binários que sempre tinha que ter aquele programinha dificil de encontrar para lê-lo, já o XML é um formato “texto” facil de ser editado até mesmo usando os editores de texto simples como o Bloco de Notas.

Recentemente tem havido uma gradativa migração para o XML em praticamente todos os tipos de aplicativos. Por exemplo, toda linha Office 2007 usa agora um formato baseado em XML para em seus arquivos de dados como planilhas e apresentações, sendo assim é só alterar o XML para automaticamente alterar um arquivo do Office 2007 sem se quer possuir o Office 2007

O Problema ocorre quando alguns programas usam arquivos XML, para seu funcionamento e ainda por cima exigem a edição desses arquivos para funcionar, mas não fornecem nenhum editor. Mas o que todo mundo diz é que: “como XML é texto, ele fica facil de alterar e não precisa de um editor específico”.

Isso não é realmente verdade.

” O FATO DE PODERMOS EDITAR COM O BLOCO DE NOTAS NÃO SIGNIFICA QUE DEVEMOS EDITAR COM O BLOCO DE NOTAS “

More

Older Entries

Blog WebMastered by All in One Webmaster.