May 3, 2011

Trabalhando com Session e Request ( POST / GET ) no C#Working with Session and Request ( POST / GET ) in C#Lavorare con Session e Request (POST / GET) in C #Работа с Session и Request (POST / GET) в C #

Request

Obtendo IP do Visitante/Usuário

Request.UserHostAddress.ToString();

Obtendo o valor de um item enviado via GET

Request.QueryString["ItemGET"];

Obtendo o valor de um item enviado via POST

Request.Form["ItemPOST"];

Dica:

Use .ToString(); no final do Request para poder usar o valor para uma String. Exemplo String strValorPost = Request.Form["ItemPOST"].ToString();

Session

Criando uma Session:

 Session["nomeSession"] = "valorSession"; 

Lendo uma Session:

 String strValorSession = Session["nomeSession"]; 

Exibindo o Timeout da Session:

 Response.Write(Session.Timeout.ToString()); 

Definindo o Timeout:

 Session.Timeout = 5; 

Removendo:

 Session.Remove("nomeSession");

Request

Getting IP of User

Request.UserHostAddress.ToString();

Getting the value of an item sent via GET

Request.QueryString["ItemGET"];

Getting the value of an item sent via POST

Request.Form["ItemPOST"];

Tip:

Use .ToString(); the end of the Request in order to use the value to a String. Sample String strValorPost = Request.Form["ItemPOST"].ToString();

Session

Creating a Session

Session["nameSession"] = "amountSession";

Reading a Session

 String strValorSession = Session["nameSession"]; 

View Timeout of Session:

 Response.Write(Session.Timeout.ToString()); 

Setting the TimeOut:

 Session.Timeout = 5; 

Removing:

 Session.Remove("nomeSession");

Request

Ottenere IP del visitatore

Request.UserHostAddress.ToString();

Ottenere il valore di un element inviato tramite GET

Request.QueryString["ItemGET"];

Ottenere il valore di un element inviato tramite POST

Request.Form["ItemPOST"];

Suggerimento:

Usa .ToString(); il fine della richiesta al fine di utilizzare il valore in una stringa. Esempio String strValorPost = Request.Form["ItemPOST"].ToString();

Session

Creazione di una Session:

 Session["nomeSession"] = "valorSession"; 

Lettura di una Session:

 String strValorSession = Session["nomeSession"]; 

Lettura di Timeout di Session:

 Response.Write(Session.Timeout.ToString()); 

Impostazione del Timeout:

 Session.Timeout = 5; 

Rimozione:

 Session.Remove("nomeSession");

Request

Получение IP посетителя

Request.UserHostAddress.ToString();

Получение значения пункта отправлено через GET

Request.QueryString["ItemGET"];

Получение значения пункта отправлено по почте

Request.Form["ItemPOST"];

Совет:

Использование .ToString(); конце запроса, чтобы использовать значение в строку. Пример String strValorPost = Request.Form["ItemPOST"].ToString();

Session

Создание сессии:

 Session["nomeSession"] = "valorSession"; 

Чтение сессии:

 String strValorSession = Session["nomeSession"]; 

Просмотр сессии вышло:

 Response.Write(Session.Timeout.ToString()); 

Настройка вышло:

 Session.Timeout = 5; 

Удаление:

 Session.Remove("nomeSession");

May 2, 2011

Trabalhando com Cookies no C#

Metodo Fácil:

Criando

private void CriarCookie(string texto)
{
HttpCookie cookie = new HttpCookie(“SITE”);

cookie.Values.Add(“IP”, this.Page.Request.UserHostAddress.ToString());
cookie.Values.Add(“USERNAME”, texto);

cookie.Expires = DateTime.Now.AddDays(365);
this.Page.Response.AppendCookie(cookie);
}

Lendo

private HttpCookie ReadCookie()
{
try
{
return this.Page.Request.Cookies["SITE"];
}
catch
{
return null;
}
}

 

A classe HttpCookie possui algumas propriedades avançadas:

Propriedade Descrição
Domain Configura o dominío ao qual pertence este cookie. Se utilizado, ele restringe o acesso ao cookie a servidores do domínio espeficicado, como mycompany.com.
Path 

Configura o caminho ao qual o pertence este cookie. Se utilizado, restringe o acesso ao cookie a páginas localizadas no caminho especificado.
Secure 

Configura a flag que determina se o cookie deve ser transmitido de forma segura para o browser do usuário, utilizando o protocolo HTTPS. Seu servidor web deve ter HTTPS configurado para que esta opção funcione.
HasKeys Informe se o cookie é composto de uma coleção de strings

Advanced Properties of the HttpCookie Class

April 18, 2011

Como configurar a reciclagem periódica de um pool de aplicativos no iis7

A Reciclagem de um pool instrui o IIS a retirar qualquer processo de trabalho atual automaticamente após ele ter executado as solicitações existentes. O benefício é que os usuários não verão uma interrupção nos serviços em seu computador, mas o processo de trabalho será substituído por um novo o mais rápido possível. Geralmente a reciclagem de pools de aplicativos é executada quando problemas como vazamentos na memória ou consumo de recursos tendem a aumentar significativamente com o tempo. Quase sempre, a causa dessa disfunção é um defeito ou outro problema no código do aplicativo. A solução ideal é corrigir o problema no aplicativo subjacente. No entanto, é possível resolver pelo menos os sintomas usando a Reciclagem.

Em alguns casos é possível reciclar automaticamente processos de trabalho com base no uso de recursos ou em momentos específicos. Você pode acessar essas opções conforme o tutorial abaixo.

1. Abra o IIS 7/7.5

2. No Painel selecione “Application Pools” (ou Pools de Aplicativos em pt-br)

3. Em Application Pools selecione o Pools desejado e clique com o botão direito e clique em Recycling (ou Reciclagem em pt-br)

4. Na janela Recycling Conditions (ou “Condições de Reciclagem”) do Edit Application Pool Reciclagem Settings Wizard ( ou Assistente de Configurações da Reciclagem do Pool de Aplicativos), seleciona-se pelo menos uma das opções na seção intervalos fixos, digite os valores nas caixas de texto apropriado, e então clique em Avançar, conforme imagem abaixo:

As principais opções de configurações de reciclagem são Fixed Intervals (que é baseada em momentos específicos ou após uma quantidade fixa de solicitações serem processadas) ou Memory Based Maximums. As opções mais apropriadas dependerão dos problemas específicos que você estiver tentando solucionar ou evitar. Em geral a reciclagem de pools de aplicativos pode reduzir o desempenho muito rapidamente. No entando, quando um aplicativo Web tem problemas sérios, é preferível resolvê-los através da reciclagem de processos de trabalho antes que os usuários percebam demoras ou erros no site.

5.  (Opcional) No Log de eventos de reciclagem você seleciona quais os eventos devem ser registrados no log, e, em seguida, clique em Concluir.

O registro de eventos de reciclagem de pool de aplicativos também é uma parte importante do processo para assegurar que o servidor Web e seus aplicativos sejam executados como esperado. Por exemplo, se você configurar os limites máximos de memória provavalmente vai querer saber a freuência com que o pool de aplicativos foi reciclado.

Também é possível fazer a configuração da reciclagem através do arquivo ApplicationHost.config usando o elemento <recycling>, estarei abordando em um futuro artigo.

 

January 24, 2011

Alterando o endereço IP do servidor usando asp.net

Alterando o endereço IP do computador que automaticamente é muito fácil. Microsoft Trickily Microsoft armazena as informações de IP no registro Consulte abaixo o código que muda o endereço IP do servidor host. Isso pode ser usado em janelas de aplicativos ou serviços do Windows para alterar o endereço IP do computador local e também pode ser usada em asp.net para alterar o endereço IP do servidor que hospeda sua aplicação asp.net. Certifique-se que namespace Microsoft.Win32 é visível para o código abaixo onde ele é colocado porque Win32 é necessária para manipular o registro do Windows. Reinicialização do servidor é necessária para os novos endereços IP para entrar em efeito.

 

RegistryKey key = Registry.LocalMachine.OpenSubKey(“SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters\\Interfaces”, true);
// Registry key where IP information is stored.

foreach (string s in key.GetSubKeyNames())
{
RegistryKey rk = Registry.LocalMachine.OpenSubKey(“SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters\\Interfaces\\” + s, true);
if (rk.ValueCount >= 12) // In general, active network card will have more than 12 setting values
{

try
{

string[] s1 = { “12.24.36.48″, “13.26.39.64″ }; // Array of IP addresses to set.
rk.SetValue(“IPAddress”, s1);

}
catch (Exception exc)
{
// Error message logic here.
}

}
rk.Close();
}

Obs: Tente Não usar use este código antieticamente.

“O Código requer um nível de confiança total habilitado para o site ASP.NET para executar código acima, caso contrário não vai funcionar.”

October 25, 2010

URL Rewrite no IIS 7.0/7.5

Com o URL Rewrite é possivel interceptar qualquer tipo de requisição seja ela ASP, ASP.NET ou HTML, e reescrever a URL antes que ela seja processada pelo IIS. A configuração é feita de forma fácil e intuitiva, atendendo tanto usuários experientes quanto os mais iniciantes.

..

Instalação:

Para instalação do URL Rewrite você pode usar o Microsoft Web Platform Installer ( http://www.microsoft.com/web/downloads/platform.aspx ), ou fazer o download do pacote em (  http://download.microsoft.com/download/6/7/D/67D80164-7DD0-48AF-86E3-DE7A182D6815/rewrite_amd64_en-US.msi )

Uso do URL Rewrite

1) Entre no IIS e clique no URL Rewrite, conforme imagem abaixo:

No Recurso URL Rewrite, clique em “Add Rules(s)…”, conforme imagem abaixo:

Selecione o Tipo de Regra que deseja Criar.. (Em nosso Exemplo usamos o User-friendly URL)

Agora entre com os dados da URL Q você deseja fazer o URL Write, conforme exemplo abaixo:

Usando o exemplo acima, Ao acessar o endereco fernandomaritni.com/PAGINA vai ser aberto internamente a pagina do /motor.asp?p=PAGINA

Pronto….

October 24, 2010

Adicionando um site no IIS 7.5

Simples, Fácil e rápido…

1) Após a instalação, Clique em Iniciar / Ferramentas Administrativas / Gerenciador de Serviços de Informação da Internet (IIS), conforme a imagem abaixo:

 

2) No IIS, Clique em Sites. Você tem duas opções para adicionar um novo website. Conforme imagem abaixo:

a) Na Aba a Direita (Ações) Clique em Adicionar Site.

b) Clique com o Botão direito em Sites e clique em Adicionar Site…

3) Na Tela de “Adicionar Site”, informe:
Nome do site (Nome que você vai identificar-lo no IIS),
Caminho físico (Local físico aonde se encontra o website – Ex: C:\inetpub\site\)
Endereço IP (Endereço IP do IIS usado por esse Website – Normalmente usado “Todos os Não atribuídos”)
Tipo (Tipo de Protocolo – Ex. HTTP/HTTPS/etc..)
Porta (Porta do Website – Padrão 80)
Nome do host (Hostname do website, exemplo www.fernandomartini.com ),
conforme imagem (Exemplo) abaixo

4) Clique em OK para Terminar.

5) Pronto, seu site ja foi adicionado com sucesso ao IIS.

Se você desejar adicionar mais Hostnames nesse website. Clique em Ligações (que fica na barra de “Ações” à direita), conforme imagem abaixo.

A seguinte tela será exibida:

Na Tela de Ligações do Site, clique em Adicionar, selecione o tipo de protocolo, o endereço ip e a porta (padrão 80) entre com o nome do host que o IIS vai servir para esse site (Por exemplo fernandomartini.com). Clique em OK para Adicionar e Fechar na Tela de Ligações

Pronto. Boa Sorte.. Qualquer dúvida, fique a vontade

May 6, 2010

Otimização do mecanismo de pesquisa com o ASP.NET 4.0, o Visual Studio 2010 e o IIS7

Qualquer pessoa com um site público sabe que mecanismos de pesquisa desempenham um papel chave no trazendo os visitantes do site. É importante seja visto pelos mecanismos de pesquisa e classificação altamente nos seus resultados de consulta. Classificações superiores podem trazer os visitantes do mais, que podem levar a mais clientes pague e maior receita de anúncio. Otimização do mecanismo de pesquisa (SEO) é a prática de ajuste fino um site para obter maiores classificações nos resultados da pesquisa. Neste artigo, vamos dar uma olhada SEO práticas que você pode aplicar ao usar as tecnologias da Microsoft mais recentes.

Noções básicas SEO

Há muitos fatores em jogo quando um mecanismo de pesquisa Formula a posição relativa de seu site e alguns dos fatores mais importantes não estão sob seu controle direto. Por exemplo, sabemos que mecanismos de pesquisa estão atentos a links de entrada para seu site. Uma conexão de entrada é um hiperlink em um domínio externo que aponta para o seu domínio. Quando um mecanismo de pesquisa vê muitos links de entrada para um site, ele supõe que o site tem conteúdo interessante ou importante e classifica o site adequadamente. A comunidade SEO descreve esse fenômeno usando termos técnicos como “jiuce link” e “love link.” Quanto mais “jiuce link” possui um site, melhor será a classificação nos resultados da pesquisa.

Se seu site for interessante, em seguida, o resto do mundo naturalmente iniciará adicionar links ao seu site. Como o Visual Studio não vem com um botão “tornar meu site mais interessante”, você finalmente terá que trabalhar muito no fornecimento de conteúdo atrativo para a Web.

Depois de excelente conteúdo no local, você desejará Verifique se os mecanismos de pesquisa podem localizar e processar seu conteúdo. Não sabemos os exatos algoritmos usados pelos mecanismos de pesquisa como Bing.com e Google. No entanto, a maioria dos mecanismos de pesquisa publicou as diretrizes de design e conteúdo que você pode seguir para ajudar a aumentar sua classificação. Comunidade da Internet também compilou uma ampla quantidade de conhecimento adquirido através de experimentos, tentativa e erro.

Aqui é a chave: você deseja pensar como um mecanismo de pesquisa. Mecanismos de pesquisa não executar scripts ou reconhecer as formas as imagens no seu site. Em vez disso, eles metodicamente siga links para analisar, indexar e classificar o conteúdo que localizar no HTML. Quando pensar como um mecanismo de pesquisa, você irá focalizar seu HTML.

HTML válido e rápida

O Visual Studio tem um histórico longo no desenvolvimento WYSIWYG para a área de trabalho e a Web. O Web Forms designer permite que você arrastar e soltar controles de servidor na superfície de design e conjunto de valores para controles na janela Properties. Você pode criar rapidamente uma página da Web sem vejam em HTML. Se você estiver concentrado em HTML, no entanto, você deseja trabalhar na janela de modo de exibição de fonte. A boa notícia é que você pode trabalhar no modo Source sem sacrificar a velocidade ou precisão no Visual Studio 2010.

Visual Studio 2010 será fornecido com um número de trechos de código HTML IntelliSense para criar marcas HTML comuns e controles do lado do servidor usando um número mínimo de pressionamentos de teclas. Por exemplo, quando você estiver no modo de origem de um arquivo .aspx, digite img e pressione a tecla TAB para gerar a marcação mostrada na Figura 1. Apenas quatro pressionamentos de teclas dar a você mais de 20 de caracteres necessários para digite!

Observe como o editor realça os valores de alt e src em Figura 1. Quando você usar trechos de código, você pode guia entre áreas realçadas e comece a digitar para substituir os valores dentro. Esse recurso é outro extra de produtividade que economiza o esforço de navegar para o ponto de inserção correta e excluir manualmente o valor existente.

Projetos ASP.NET Web Forms e ASP.NET MVC terão trechos de código HTML disponíveis no Visual Studio 2010 para criar tudo de ActionLinks para declarações XHTML DOCTYPE. Os trechos estão extensível, personalizável e com base no mesmo mecanismo de trecho de código está disponível desde Visual Studio 2005. Artigo do MSDN de consulte Lorenzo Minore para obter mais detalhes em trechos de código (msdn.microsoft.com/en-us/magazine/cc188694.aspx).


Figura 2 Configurações de validação

Validação

Criar HTML válido é essencial se você desejar mecanismos de pesquisa para indexar seu site. Os navegadores da Web são complacente e tentarão processar uma página com HTML malformado da melhor maneira podem, mas se um mecanismo de pesquisa vê HTML inválido, pode ignorar conteúdo importante ou rejeitar a página inteira.

Como existem diferentes versões das especificações de HTML disponíveis, cada página que entregar do seu aplicativo deve incluir um elemento DOCTYPE. O elemento DOCTYPE especifica a versão do HTML a página está usando. Web navegadores, mecanismos de pesquisa e outras ferramentas examinará o DOCTYPE para que eles saibam como interpretar sua marcação. O Visual Studio colocará um DOCTYPE nos locais apropriados quando você cria novas páginas de formulário da Web e páginas mestras. O padrão DOCTPYE, conforme mostrado no trecho de código a seguir, especifica que a página será estejam em conformidade com a especificação XHTML 1.0:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Embora você não precisar conhecer todas as diferenças sutis entre as especificações de HTML, é preciso saber se sua página em conformidade com um DOCTYPE específico. O Visual Studio tem incluído recursos de validação de HTML desde o lançamento de 2005 e validação está ativada por padrão. Você pode controlar configurações de validação e destino de validação de tipo navegando para as Ferramentas | Opções | Editor de texto | HTML | configurações de validação, conforme mostrado no Figura 2).

“Como avisos”configuração significa problemas de validação de HTML não irão parar sua compilação, mas mostrarão como avisos na janela de erros do Visual Studio. No modo de exibição fonte para formulários da Web, o editor de texto será atenção para erros de validação de HTML usando linhas onduladas. Você pode passa o mouse sobre o elemento para ver a exata mensagem de erro, como nós consulte Figura 3.

HTML descritivo

A marca img em Figura 3 é um bom exemplo de como você precisa pensar como um mecanismo de pesquisa. Como disse anteriormente, um mecanismo de pesquisa não consulte ou interpretar as formas e palavras em uma imagem, mas é possível fornecer o mecanismo de pesquisa algumas informações adicionais sobre o conteúdo gráfico usando o atributo alt. Se a imagem for um logotipo da empresa, o texto alt pode ser “logotipo da empresa”mas seria melhor incluir o nome da empresa no texto alt do logotipo. Um mecanismo de pesquisa usará o texto alt como outra dica em Noções básicas sobre o tema e a essência da página.

Mecanismos de pesquisa estão sempre procurando esses tipos de dicas e para o mecanismo de pesquisa algumas dicas são mais importantes do que outros. Por exemplo, nós normalmente usar cabeçalho marcas, como marcas h1, para fazer determinadas partes de conteúdo standout em uma página. Mecanismos de pesquisa geralmente dará mais peso para uma palavra-chave dentro de uma marca h1 que se a palavra-chave mesma fosse dentro de um parágrafo normal. Você desejará verificar seu conteúdo h1 está descritivo e usa palavras-chave relacionadas para o tema da página. Uma prática recomendada para o trabalho SEO é sempre incluir pelo menos uma marca de H1 em cada página.

Se você olhar a cabeçalhos que escolhi para este artigo novamente, você verá que eles giram em torno frases como “HTML válido”"SEO Noções básicas”e assim por diante. Esses são descritivas todas as frases que dará o leitor e o mecanismo de pesquisa uma boa idéia do que é o artigo sobre.

Títulos descritivos e metadados

Outra área importante para palavras-chave descritivas é dentro da marca head. A seção cabeçalho de uma das páginas do download do código associado é mostrada aqui:

<head runat="server">
<title>Programming meta tags in ASP.NET 4.0</title>
<meta name="keywords" content="ASP.NET, ASP.NET 4.0, SEO, meta" />
<meta name="description" content=
"How to use Page.MetaKeywords and Page.MetaDescription in ASP.NET" />
</head>

As palavras na marca de título de página são muito ponderadas, portanto, você vai querer escolher um título de BOM. A marca principal também pode colocar marcas meta. Você vai querer usar duas marcas meta para SEO trabalho–um para definir palavras-chave associada da página e outro para definir a descrição da página. Os visitantes geralmente não verá essas informações de meta, mas alguns mecanismos de pesquisa exibe a descrição de meta de uma página nos resultados da pesquisa. As palavras-chave meta são outro lugar para anunciar o real significado da sua página por alimentação a pesquisa de palavras importante mecanismo para associar com a página.

Se você estiver criando conteúdo dinâmico, ou alterar os dados de título e meta em uma base freqüente, em seguida, você não deseja rígido código esse conteúdo em um arquivo.aspx. Felizmente, o Web Forms no ASP.NET 4.0 facilita manipular o título, palavras-chave e a descrição de uma página de code-behind:

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Page.Title = "Programming meta tags in ASP.NET 4.0";
Page.MetaKeywords = "ASP.NET 4.0, meta, SEO, keywords";
Page.MetaDescription =
"How to use Page.Keywords and Page.Description in ASP.NET";
}
}
SEO No-Nos

Alguns sites tentarão para os mecanismos de pesquisa da Internet do jogo por preencher as páginas com irrelevantes palavras-chave, muitas palavras-chave, ou por repetidamente palavras-chave duplicação. Esta prática (conhecida como “cartas de palavra-chave”) é uma tentativa de obter uma classificação do mecanismo de pesquisa alta para termos de pesquisa específicos sem fornecer conteúdo útil para os visitantes reais. Os visitantes infeliz que parar em um site são invariavelmente desapontados porque eles não encontrar qualquer conteúdo do conteúdo, mas a visita ainda conta como uma ocorrência quando o site totais sua receita de anúncios.

Mecanismos de pesquisa tentam detectar comportamento enganoso como palavra-chave cartas para proteger a qualidade dos seus resultados da pesquisa. Você não quer um mecanismo de pesquisa para acidentalmente categorizar o site como equivocado porque você já usou muitas palavras-chave em muitos locais. Penalidades de mecanismo de pesquisa podem variar de diminuir a importância relativa de uma página de resultados da pesquisa, para descartar o conteúdo de um site do índice de pesquisa inteiramente.

Outra prática para evitar está servindo um conteúdo diferente para um rastreador de mecanismo de pesquisa que você teria servem para um visitante regular. Alguns sites fará isso por rastreamento o cabeçalho de agente do usuário ou o endereço IP de uma solicitação de entrada. Embora você possa estar consiga pensar em alguns recursos úteis para este tipo de comportamento, muitos sites usou essa técnica para ocultar malware conhecido e conteúdo de phishing de mecanismos de pesquisa. Se um mecanismo de pesquisa detecta esse comportamento (conhecido como cloaking (disfarce)), você vai ser penalizados. Permanecer honesto, fornecer conteúdo boa e não tenta jogo ou manipular os resultados do mecanismo de pesquisa.

Você pode ver como usar propriedades de título, MetaKeywords e MetaDescription da página durante o evento Page_Load. A propriedade Title foi no ASP.NET desde a versão 2.0, mas MetaKeywords e MetaDescription são novos no ASP.NET 4.0. Embora ainda estamos usando seqüências de caracteres embutida, você pode carregar esses valores de propriedade de qualquer fonte de dados. Você, em seguida, pode permitir a pessoa encarregada do site para ajustar os metadados para os melhores resultados de mecanismo de pesquisa de marketing e eles não precisará editar o código-fonte para a página.

Embora descrições e palavras-chave eficaz podem dar você um pouco de uma borda nos resultados do mecanismo de pesquisa, conteúdos é Rei ainda. Nós irá retornar para ver mais dicas HTML mais adiante neste artigo, mas as próximas seções veremos como URLs podem desempenham um papel importante em como o conteúdo está localizado e classificado.

URLs canônicos

Conteúdo duplicado geralmente apresenta um problema para mecanismos de pesquisa. Por exemplo, digamos que o mecanismo de pesquisa vê uma receita para seus famosas pizz@s em duas diferentes URLs. A URL que deve o mecanismo de pesquisa preferir e fornecer um link nos resultados da pesquisa? Conteúdo duplicado é ainda mais de um problema de otimização quando se trata de links de entrada. Se “link amor”para o taco receita é distribuída entre dois diferentes URLs, sua receita taco famoso talvez não tenha a classificação do mecanismo de pesquisa que ele merece.

Infelizmente, você pode ser duplicar conteúdo sem perceber. Se os mecanismos de pesquisa podem ler seu site de uma URL com um prefixo de www e sem um prefixo www, eles verá os mesmos conteúdos em duas diferentes URLs. Desejar ambos os URLs de trabalho, mas você deseja que apenas um URL a ser a URL padrão ou canônica.

Como exemplo, considere o site Microsoft.com. Www.microsoft.com e microsoft.com levará você para o mesmo conteúdo. Mas, observe atentamente se você for para a home page usando microsoft.com. O site Microsoft redirecionará o navegador para www.microsoft.com. A Microsoft usa redirecionamento para impor www.microsoft.com como seu URL canônica.

Felizmente, redirecionar os visitantes do seu URL canônica é fácil com o ASP.NET. Tudo o que você precisa fazer é fornecer alguma lógica durante o evento BeginRequest do pipeline aplicativo. Você pode fazer isso implementando um módulo HTTP personalizado, ou usando um método Application_BeginRequest em global.asax. Figura 4 é a aparência a lógica para este recurso.

O código no Figura 4 está usando outro recurso novo no ASP.NET 4.0–o método RedirectPermanent do objeto HttpResponse. O método tradicional de redirecionamento no ASP.NET enviará um código de status HTTP de 302 de volta para o cliente. Um 302 informa o cliente que o recurso temporariamente movido para um novo URL e o cliente deve ir para a nova URL, apenas isso vez, para localizar o recurso. O método RedirectPermanent envia um código 301 para o cliente. O 301 informa o cliente que o recurso movido permanentemente, e ele deve procurar o recurso na nova URL para todas as solicitações futuras. Observe a chamada para RedirectPermanent também usa um novo recurso no translation from VPE for Csharp 4.0–a sintaxe de parâmetro nomeado. Embora essa sintaxe não é necessária para a chamada do método, a sintaxe de parâmetro nomeado faz a intenção do parâmetro explícito.

Com um redirecionamento no lugar, navegadores da Web e mecanismos de pesquisa devem ser usando apenas seu URL canônica. O “amor de link”serão consolidados e classificações de mecanismo de pesquisa devem melhorar.

URLs descritivos

Figura 4 RedirectPermanent método do objeto HttpResponse

void Application_BeginRequest(object sender, EventArgs e)
{
HttpApplication app = sender as HttpApplication;
if (app != null)
{
string domain = "www.odetocode.com";
string host = app.Request.Url.Host.ToLower();
string path = app.Request.Url.PathAndQuery;
if (!String.Equals(host, domain))
{
Uri newURL = new Uri(app.Request.Url.Scheme +
"://" + domain + path);
app.Context.Response.RedirectPermanent(
newURL.ToString(), endResponse: true);
}
}
}

Na edição de janeiro de 2009 da MSDN Magazine escrevi sobre como usar os recursos de roteamento do .NET 3.5 SP1 com Web Forms do ASP.NET (msdn.microsoft.com/en-us/magazine/2009.01.extremeaspnet.aspx). Como disse, as URLs limpas e descritivas, você pode obter com roteamento são importante para ambos os usuários e os mecanismos de pesquisa. Ambos encontrará significando mais em uma URL como /recipes/tacos que serão no /recipe.aspx?category=40&topic=32. No primeiro, o mecanismo de pesquisa irá considerar “receitas”e “pizz@s”como palavras-chave importantes para o recurso. O problema com a URL último é que muitos rastreadores de mecanismo de pesquisa não funcionam bem quando uma URL requer uma seqüência de consulta com vários parâmetros, e os números na seqüência de consulta são sem sentido fora do banco de dados de back-end do aplicativo.

A equipe do ASP.NET adicionou algumas classes adicionais para a versão 4.0 que tornam o roteamento com Web Forms fácil. No download do código para este artigo, eu já re-implemented demonstração site do janeiro com as novas classes no ASP.NET 4.0. Roteamento começa descrevendo as rotas que seu aplicativo processará durante o evento Application_Start. O código a seguir é um método RegisterRoutes que invoca o site durante o evento Application_Start em global.asax:

void RegisterRoutes()
{
RouteTable.Routes.Add(
"Recipe",
new Route("recipe/{name}",
new PageRouteHandler("~/RoutedForms/RecipeDisplay.aspx",
checkPhysicalUrlAccess:false)));
}
Regravação de URL por Carlos Aguilar Mares

Regravação de URL para o IIS 7.0 é uma ferramenta que a Microsoft disponibiliza para download a partir do iis. NET/extensões/URLRewrite. Essa ferramenta pode executar todo o trabalho de canonização URL para você sem necessitar nenhum código. A ferramenta fará hospedar normalização de cabeçalho, acordo e muito mais (conforme descrito nesta postagem de blog: ruslany.net/2009/04/10-url-rewriting-tips-and-tricks/). A ferramenta também pode ajudar você “corrigir”quebrado links por reconfiguração ou redirecionando o usando um mapa, portanto, você não precisará até mesmo alterar seu aplicativo/HTML. Consulte: blogs.msdn.com/carlosag/archive/2008/09/02/IIS7UrlRewriteSEO.aspx

A regravação de URL também pode fazer o “descritivo”URLs para qualquer versão do ASP.NET e seu desempenho é muito superior a qualquer outra existente opção, incluindo ASP.NET roteamento, porque a ferramenta funciona com o cache do modo kernel.

Figura 5 Obter nome do parâmetro de RouteData para exibir informações sobre um receitas

private void DisplayRecipe()
{
var recipeName = RouteData.Values["name"] as string;
if (recipeName != null)
{
var recipe = new RecipeRepository().GetRecipe(recipeName);
if (recipe != null)
{
_name.Text = recipe.Name;
_ingredients.Text = recipe.Ingredients;
_instructions.Text = recipe.Instructions;
}
}
}

Se você examinar meu artigo de janeiro, você irá se lembrar de como cada rota deve especificar um manipulador de rotas. RegisterRoutes, está configurando o manipulador para “Receitas”Rotear para uma instância da classe PageRouteHandler nova no ASP.NET 4.0. O mecanismo de roteamento irá direcionar qualquer entrada solicitam URLs na forma de receita / {nome} para este manipulador de rotas, onde {name} representa um parâmetro de rota o roteamento do motor extrairá da URL.

Um formulário da Web tem acesso a todos os parâmetros rota que extrai o mecanismo de roteamento de URL, por meio de uma propriedade RouteData. Esta propriedade é nova para a classe Page no 4.0. O código no Figura 5 irá obter o parâmetro de nome de RouteData e usar o nome para pesquisar e exibir informações sobre uma receita:

Um dos excelentes recursos do mecanismo de roteamento é sua natureza bidirecional. Não apenas o mecanismo de roteamento é possível analisar URLs determinam as solicitações HTTP, mas ele também pode gerar URLs para acessar páginas específicas. Por exemplo, se você desejar criar um link que levará um visitante a receita para pizz@s, você pode usar o mecanismo de roteamento para gerar uma URL com base na configuração de roteamento (em vez de embutir em código o URL). ASP.NET 4.0 introduz um novo construtor de expressões você pode usar em sua marcação para gerar URLs da tabela de configuração de roteamento:

<asp:HyperLink NavigateUrl="<%$ RouteUrl:RouteName=recipe,name=tacos %>"
Text="Titillating Tacos" runat="server">
</asp:HyperLink>

O código anterior mostra o novo construtor de expressões RouteUrl em ação. Esse construtor de expressões irá informar o mecanismo de roteamento para gerar um link para a rota denominada “receita”e incluir um parâmetro de nome na URL com o valor “pizz@s”. A marcação anterior irá gerar HTML a seguir:

<a href="/recipe/tacos">Titillating Tacos</a>

A URL anterior é otimizado para um mecanismo de pesquisa, amigável e descritivo. No entanto, este exemplo exibe um problema maior com o ASP.NET. Controles de servidor para formulários da Web geralmente abstraem o HTML que produzem e nem todos os controles de servidor no ASP.NET são o mecanismo de pesquisa amigável. É hora de que retornamos para falar sobre HTML novamente.

Erros HTML

Se é criado um link para a receita de taco usando um LinkButton em vez de um hiperlink, foi seria localizar nós com marcação diferente no navegador. O código para o LinkButton e o HTML que ele gera é mostrado aqui:

<asp:LinkButton runat="server" Text="Tacos"
PostBackUrl="<%$ RouteUrl:RouteName=recipe,name=tacos %>">
</asp:LinkButton>
<!-- generates the following (excerpted): -->
<a href="javascript:WebForm_DoPostBackWithOptions(...)">Tacos</a>

Ainda temos uma marca de âncora para o usuário clique no, mas a marca de âncora usa JavaScript para forçar o navegador para postback para o servidor. No botão LinkButton processa a isso HTML para disparar um evento de clique do lado do servidor quando o usuário clica no link. Infelizmente, mecanismos de pesquisa e navegação de postback de JavaScript não funcionam juntos. O link é efetivamente invisível para mecanismos de pesquisa, e eles nunca podem encontrar a página de destino.


Figura 6 IIS 7 Gerenciador

Como o lado do servidor ASP.NET controla abstrata HTML ausente, você terá que escolher os controles de servidor com sabedoria. Se você quiser controle completo sobre marcação HTML em um ambiente do ASP.NET, você deve considerar usando a estrutura MVC do ASP.NET. Controles de servidor são verboten ao usar a estrutura MVC, e a infra-estrutura e as APIs de local para trabalhar com somente marcação HTML.

Se você estiver usando o Web Forms do ASP.NET e otimizar para mecanismos de pesquisa, você desejará exibir código fonte HTML produzido por controles de servidor. Cada navegador da Web dará a você essa opção. No Internet Explorer, use o modo de exibição – >Comando de origem. Tenha cuidado com qualquer controle que processa uma combinação de HTML e JavaScript em cenários de navegação. Por exemplo, com ao AutoPostBack de DropDownList propriedade definida como true irá exigir JavaScript trabalhar. Se você depende do postback automático para navegar até novo conteúdo, você vai estar fazendo o conteúdo invisível para mecanismos de pesquisa.

Obviamente, aplicativos AJAX pesado podem apresentar um problema para mecanismos de pesquisa. O controle UpdatePanel e o conteúdo gerado por chamadas de serviço da Web de JavaScript não são amigáveis aos mecanismos de pesquisa. A abordagem mais segura para o trabalho SEO é colocar o conteúdo diretamente em seu HTML para torná-lo facilmente identificável.

Após você ter ajustado seu HTML, as palavras-chave e seus URLs, como medir os resultados? Embora sua classificação do mecanismo de pesquisa é o indicado final avaliar seu esforço SEO, seria bom se você pode encontrar problemas antes de um site vai ao vivo e um mecanismo de pesquisa rastreia suas páginas. Embora o Visual Studio pode informar sobre problemas de validação de HTML, ele não avisar você sobre falta de metadados e URLs canônicos. Esse é o trabalho de um novo produto–IIS SEO Toolkit.


Figura 7 Relatório resumo

O Toolkit SEO IIS

O IIS SEO Toolkit é um download gratuito para IIS 7 e disponível a partir de iis.net/extensions/SEOToolkit. O Toolkit inclui um mecanismo de rastreamento que será indexar seu aplicativo da Web local como um mecanismo de pesquisa e fornecer-lhe um relatório de análise detalhada do site. O Toolkit também pode gerenciar arquivos robots.txt e mapa de site. O arquivo de robôs usa um formato padronizado para informar os mecanismos de pesquisa que excluir da indexação, enquanto arquivos sitemap podem apontar os mecanismos de pesquisa para conteúdo que você deseja incluir. Você também pode usar arquivos de mapa de site para informar o mecanismo de pesquisa a prioridade, taxa de alteração e a data de um recurso alterado.

Para trabalho SEO, o relatório de análise de site é inestimável. O relatório dirá a você tudo sobre o seu site da perspectiva de um mecanismo de pesquisa. Depois de instalar o Toolkit, uma opção de análise de site será exibido para seus sites na janela Gerenciador de IIS 7, conforme mostrado no Figura 6.

Duas vezes no ícone levará você para uma lista de relatórios anteriormente execução, com uma opção de ação de executar uma nova análise. Executar uma análise é tão fácil como apontando a ferramenta para uma URL HTTP local e clicar em OK. Quando a análise for concluída, o Toolkit será aberto um relatório de resumo, como mostra a Figura 7.

O Toolkit se aplica a um número de regras e heurística conscientizá-lo dos problemas relacionados a SEO e desempenho. Você pode encontrar links desfeitos, faltando títulos, descrições são muito curtas, descrições são muito longos e um host de outros possíveis problemas. O Toolkit será analisar links e fornecer relatórios sobre as páginas mais vinculadas e os caminhos de que um visitante precisará seguir para acessar uma página específica. O Toolkit fornece até mesmo uma análise textual de conteúdo do cada página. Você pode usar essa análise para localizar as melhores palavras-chave para uma página.

O IIS SEO Toolkit permite que você descubra o trabalho SEO que você precisa executar e validar qualquer trabalho SEO que você já concluiu. No momento da escrita, o Toolkit está em uma versão beta 1. Você pode esperar que as futuras versões continuará a adicionar regras e recursos de análise, além de alguns inteligência pode corrigir automaticamente problemas específicos para você.

Fácil e efetiva

Mesmo se você tiver o maior conteúdo no mundo, você precisará tornar o conteúdo localizável para mecanismos de pesquisa para levam você aos visitantes. SEO é a prática de pensar como um mecanismo de pesquisa e fazer seu apelo de site dos rastreadores e algoritmos de classificação. Novos recursos para tornar mais fácil trabalhar no .NET 4.0, enquanto o IIS SEO Toolkit é uma ferramenta fantástica dedicada a tornar seu site melhor para mecanismos de pesquisa SEO apresentando o Visual Studio 2010 e ASP.NET 4.0. Usando as três ferramentas em combinação pode tornar seu trabalho SEO fácil e eficiente.

Baixar o código de exemplo

Fonte: Microsoft MSDN – Scot Allen

May 4, 2010

Como Alterar o Framework no iis7

Simples, porém escondido :)

1. Abra o IIS ( Saiba Como ? )

2. Clique em “Application Pools”, conforme imagem abaixo:

3. No Painel do lado (direito) clique no “Website” que você deseja alterar o Framework, conforme imagem abaixo:

4. Na Barra Lateral, Localize por “Edit Application Pool” e clique em Basic Settings, conforme imagem abaixo

5. Ao clicar em “Basic Settings…”, será exibido a seguinte tela de seleção de FrameWork:

6. Agora, selecione o FrameWork da sua preferencia clicando na listagem do “.Net FrameWork version”:, Conforme imagem abaixo:

7. Após selecionado clique em “OK”

8. Seja Feliz, A Versão que você selecionou do Framework já está funcionando \o/