felipefurlan

Desenvolvimento em ASP.NET, C#(.NET) e Sharepoint..

[Sharepoint 2013] Configuração de Propriedades em Serviço de User Profile

Recentemente precisei efetuar um estudo de configuração do serviço de User Profile do Sharepoint para um cliente, visando assegurar o funcionamento do mesmo em suas configurações.

Como não temos muitos artigos sobre este tema (especialmente em português), acho interessante compartilhar o conhecimento adquirido e, caso alguém possua algo a acrescentar, assegurar a troca de conhecimento.

Objetivos:

  • Consumir informações cadastradas no AD em perfis de usuários Sharepoint.
  • Atualizar informações no AD após a inclusão destas informações em perfis de usuários no Sharepoint.

Fora de Escopo:

  • Configuração do Serviço de Perfil de Usuário;
  • Serviço de Sincronização de Perfil de Usuário em Execução;
  • Configuração de Site Pessoal;
  • Configuração da Conexão entre AD e Sharepoint;

É pré-requisito que todos os itens acima estejam corretamente configurados em sua FARM. Pretendo disponibilizar em breve materiais sobre estes assuntos. Contudo, já existe muito conteúdo bom sobre eles!

Definições Iniciais:

O serviço de profile do Sharepoint permite que efetuemos mapas em propriedades:

        Importação: As propriedades são obtidas a partir do AD e disponibilizadas no perfil do usuário no Sharepoint.

        Exportação: As propriedades são alteradas no Sharepoint e disponibilizadas no AD.

Apesar de ser possível ambos os comportamentos, não é possível realizar o “two-binding”, ou seja, importar e exportar à mesma propriedade, ao mesmo tempo.

Abaixo, vamos ilustrar ambos os procedimentos:

Importando dados do AD

Vamos considerar um cenário no qual é necessário adicionar o campo “Telephone Number” (que encontra-se cadastrado no AD da empresa) nas propriedades do perfil do usuário no Sharepoint.

Observe abaixo a propriedade definida no perfil do usuário no AD da empresa:

O primeiro passo é realizar o mapeamento da propriedade do AD no serviço do profile do Sharepoint.

Para isto, acessar a opção “Gerenciar Propriedade de Usuários” e localizar a propriedade desejada e editá-la.

 


Adicionar a propriedade mapeada como “Import“, para que os dados sejam enviados do AD para o Sharepoint.

Após adicionar:

Ao salvar este novo mapeamento, basta iniciar a sincronização do perfil:

 


 


 

Quando acessamos as propriedades do usuário, temos o número do telefone disponível:

 


 

Importante destacar que apesar de ser possível alterar esta propriedade no Sharepoint, caso um novo sync de profile seja executado, ela será sobrescrita e a alteração realizada no Sharepoint será perdida.

 

Exportando Dados para o AD

 

Vamos considerar um cenário no qual é necessário replicar o conteúdo do campo “Department” (que encontra-se vazio no AD da empresa) a partir das alterações realizadas no perfil do usuário no Sharepoint.

 

Observe que o AD não possui nenhuma informação:

BlogUserProfile14

Para tal configuração, vamos novamente repetir os passos anteriores e acessar as propriedades de perfil. Desta vez, no entanto, adicionaremos o atributo com a direção “Export”, para que seja replicado do Sharepoint para o AD.

 


Após adicionar:

 

Após salvar este novo mapeamento, vamos forçar um valor no perfil do usuário para testarmos o funcionamento. Para isso, acessar a opção “Perfis de Usuário” e buscar o usuário desejado para configurar o valor da propriedade “Department” no Sharepoint.

 


 


 


 


 

Com isto, vamos iniciar a sincronização do perfil, conforme descrito anteriormente. Ao acessarmos os atributos do usuário no AD, podemos verificar o atributo “Department” devidamente preenchido:

BlogUserProfile15

Finalizamos assim as duas configurações! Pode-se notar que podemos realizar inúmeros cenários:

  • Executar uma sincronização inicial e centralizar as informações somente no Sharepoint.
  • Executar sincronizações incrementais diárias, mantendo como base de informações somente o AD.
  • Manter algumas propriedades gerenciadas no Sharepoint e outras no AD, de forma que ambos estejam sempre sincronizados.
  • Não sincronizar, deixando que ambos os lados sejam atualizados sem persistência.

 

Espero que ajude e até a próxima!

[Sharepoint 2013] Carregando arquivos grandes em Biblioteca de Documentos

Bom dia!

Um cliente solicitou que fosse possível o carregamento de arquivos grandes em uma biblioteca de documentos em seu site Sharepoint.

Vale lembrar que por padrão, o máximo permitido por documento é 250MB.

Importante: Como os arquivos disponibilizados em bibliotecas de documentos são carregados diretamente na base de dados do site em questão, é preciso avaliar com cautela a execução deste procedimento. No caso de nosso cliente, foi criada uma FARM Sharepoint de porte média somente para esta finalidade.

Este tutorial visa descrever os passos necessários de configuração que devem ser seguidos em demandas similares a estas.

Passo 1: Configurar as propriedades “Tamanho Máximo de Upload” e “Tempo de Validação de Página Web” via Central de Administração

Este procedimento deve ser executado para evitar dois problemas clássicos:

1. Bloqueio do Arquivo por ser maior do que o permitido na política da Aplicação;

2. Erro de expiração de formulário ao efetuar o carregamento do arquivo via Biblioteca (botão “Novo Documento”). 

a. Como pode-se observar no título, esta etapa ocorre na Central de Administração do Sharepoint. Uma vez logado, é necessário acessar a opção “Application Management” – “Manage Web Applications”

CentralAdmin

b. Selecione a aplicação na qual a configuração será realizada e acesse a opção “General Settings” no menu superior.

CentralAdmin2

c. Localize a configuração “Maximum Upload Size” e altere seu valor para o máximo de tamanho desejado. No caso de meu cliente, alteramos a configuração para “2047 (2GB)”, que é o máximo permitido.

CentralAdmin3

d. Localize a configuração “Web Page Security Validation” e altere o tempo para o valor desejado. No nosso caso, este valor foi alterado para “180 minutes (3 horas)”.

CentralAdmin4

Nota: É importante considerar a qualidade da rede na qual os usuários estarão conectados para realização do Upload dos arquivos. Dependendo do local, é possível que demore horas para que seja possível efetuar o carregamento de um arquivo com 2GB.

Passo 2: Aumentar o tempo de Timeout de conexão no IIS

Esta etapa é necessário para evitar o desagradável erro de Timeout após o upload do arquivo.

1. Acessar o IIS Manager em todos os servidores Front-End da Farm no qual o site está inserido.

2. No site em questão, selecionar a opção “Manage WebSite” – “Advanced Settings”.

CentralAdmin5

3. Em “Connection Limits”, alterar o valor da propriedade “Connection Timeout(seconds)” conforme desejado.

CentralAdmin6

Passo 3: Aumentar o tempo de no Web.Config do Portal

Esta etapa consiste no aumento do tamanho máximo da requisição que será executada, bem como no aumento do Timeout desta requisição.

1. Acessar nos servidores Front-End o diretório “<Dir>\inetpub\wwwroot\wss\<<WebApp>>” e editar o arquivo “web.config”.

2. Localizar as seguintes instruções:

De:

“<httpRuntime maxRequestLength=”51200″ />”

Para:

“<httpRuntime maxRequestLength=”2097151″ executionTimeout=”999999″ />”

Passo 4: Aumentar o tempo de no arquivo web.config do “Hive”.

Esta etapa consiste no aumento do tamanho máximo da requisição que será executada, bem como no aumento do Timeout desta requisição. Sua execução é fundamental para que a funcionalidade de “Drag and Drop” funcione corretamente.

1. Acessar nos servidores Front-End o diretório “<Dir>\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\Template\Layouts” e editar o arquivo “web.config”.

2. Alterar a seguinte instrução:

De:

<location path=”upload.aspx”>

<system.web>

<httpRuntime maxRequestLength=”2097151″ executionTimeout=”1500″ />

<system.web>

</location>

Para:

<location path=”upload.aspx”>

<system.web>

<httpRuntime maxRequestLength=”2097151″ executionTimeout=”999999″ />

<system.web>

</location>

Nota: Quando esta configuração não é realizada, é possível encontrar o seguinte erro no Log do Sharepoint: Application Error when access /_layouts/15/upload.aspx

E assim encerramos mais uma configuração!

Um abraço e até a próxima.

[Sharepoint] Recriando Central de Administração

Boa tarde!!

Na dica de hoje, um problema um tanto quanto peculiar.

Ao acessar a Central de Administração de um servidor, verificou-se um erro de “Invalid Configuration”, indicando que o arquivo de configuração “web.config” estava com algum problema na sua estruturação.

Ao acessar o diretório: “DIR:\inetpub\wwroot\wss\<<Porta>>”,  notei um arquivo web.config vazio. Questionando a área de infraestrutura, me informaram que alguns arquivos deste diretório haviam sido excluídos com a execução de um script. Bem estranho!

Nestes casos, o trabalho a ser realizado é a recriação da Central de Administração para uma nova porta e validar todos os sites já disponibilizados.

Para recriar a central de administração, deve-se executar o seguinte comando:

New-SPCentralAdministration -Port <<Novo Número>> -WindowsAuthProvider <<Provedor>>(no nosso caso, “NTLM”).

O tempo de execução deste comando é relacionado com o ambiente (processamento, memória, network)!

Um abraço e até a próxima!

 

[Sharepoint 2013] Problemas ao Instalar Cumulative Updates (CU)

Muito boa tarde!

Hoje é dia de dica de Infraestrutura Sharepoint 2013!

Estamos atualizando a FARM de nosso cliente, que atualmente encontra-se na versão “Service Pack 1”.

Versao

 

O trabalho iniciou-se com o download do seguinte pacote: http://support2.microsoft.com/default.aspx?scid=kb;EN-US;2878240

Ao abrir a janela de downloads, é muito comum que seja cometido um equívoco. Ao contrário de downloads nos quais escolhemos em qual fonte vamos conectar para obter os arquivos, no caso de um Hotfix devemos selecionar todos os disponíveis.

Versao2

Você receberá um e-mail contendo os links para download. Certifique-se de salvar e extrair todos os arquivos na mesma pasta física em seu servidor que será atualizado.

Caso você não realize este processo, receberá o seguinte erro: “The installation of this package failed

Versao3

Portanto, fica a dica:

1. Sempre que for instalar um Hotfix, lembre-se de efetuar o download de todos os pacotes disponibilizados!

2. Ao receber o link para download, disponibilizar e extrair todos em uma mesma pasta!

É isso ai! Bom final de dia a todos!

Felipe Furlan da Silva

Processo Excel (Excel.exe) não é Excluido – Excel Interop

Hoje precisei desenvolver um WebService que via Interop inseria dados em uma planilha Excel e retornava valores calculados com fórmulas desta planilha. Ao concluir o desenvolvimento, observei algo muito interessante. O processo aberto (Excel.exe) não era encerrado ao término da aplicação, mesmo quando utilizamos os métodos de Marshalling:

clip_image001

Observem abaixo, que interessante:

1) Não há nenhum processo criado ainda, pois não chamamos o WebService.

clip_image002

2) Ao chamarmos o WebService, verifique que dois processos Excel são criados (isto ocorre por uma regra interna da aplicação, fora do escopo deste artigo).

clip_image003

3) Mesmo com o processo terminado, isto é, com a execução dos métodos descritos acima, os processos continuam ativos.

clip_image003[1]

Após longa busca em diversos artigos na internet, finalmente encontrei a solução para este problema.

Adicione o seguinte método externo na classe na qual você está trabalhando com o Excel:

clip_image005

Feito isto, adicione o seguinte comando no método após encerrar os objetos do Interop:

clip_image006

Pronto, observe abaixo o resultado:

clip_image003[2]

clip_image002[1]

Por hoje é isso!

Espero que ajude.

Abraços.

Felipe Furlan da Silva

Conceitos de Cominicação WEB.

Dúvido que exista nos dias de hoje um desenvolvedor que nunca ouviu uma das seguintes frases:

· “Desenvolver ficou fácil”;

· “Queria ver se você tivesse que escrever este mesmo código com Cobol”;

· “Ah se precisássemos desenvolver isto em VB4”;

· “Hoje está tudo pronto, é só chamar os métodos que o .NET cuida de tudo”;

Realmente todas as afirmativas acima são verdadeiras. Vários métodos que hoje são “nativos”, antigamente precisavam ser codificados. Por um lado, isto é muito bom, pois reduz o tempo gasto pelos programadores na escrita de códigos complexos que realizam tarefas cotidianas (como envio de e-mails, por exemplo). Por outro lado, porém, faz com que os novos programadores consigam iniciar suas carreiras e construir grandes aplicações mesmo sem entender alguns conceitos básicos.

A idéia deste artigo é explicar o que ocorre em uma comunicação WEB. Para isto, vamos propor o seguinte cenário:

O usuário abre um browser (Internet Explorer, Chrome, Firefox) e digita um endereço qualquer (www.google.com.br). Uma página então é exibida ao usuário. Esta página pode ser a ferramenta de busca mundialmente conhecida, uma página de erro, uma página de indisponibilidade momentânea. Ora, como que este processo ocorre?

Devemos ter em mente que uma aplicação WEB é uma aplicação Cliente – Servidor e, consequentemente, possui dois componentes:

1. Cliente: Responsável por apresentar a interface ao usuário, permitir que o usuário digite informações e enviar estas informações para processamento no servidor;

2. Servidor: Recebe e responde a requisições feitas pelos cliente. Geralmente, esta resposta é feita com uma página HTML, responsável pela geração da interface solicitada;

Mas afinal, como que o nosso cliente conversa com os servidores?

Através de um protocólo denominado HTTP (Hypertext Transfer Protocol), assinalado a porta TCP 80. Caso o servidor possua uma certificado de segurança (caso do acesso externo da Iteris), pode-se utilizar o protocolo HTTPS (HTTP Secure) para autenticar o servidor e encriptar a comunicação. O HTTPS é assinalado na porta 443.

Vamos então estudar separadamente cada um dos termos definidos acima (Cliente, Servidor e o protocolo HTTP).

Servidor

Quando recebe uma requisição de um cliente, o servidor toma determinada ação. Dentre estas, destacamos as seguintes:

· Verificar se a requisição esta corretamente estruturada: Ignorar requisições maliciosas que visem prejudicar o servidor;

· Autenticar o usuário: caso a autenticação seja necessária. Verifica se as credenciais do usuário foram enviadas corretamente na requisição;

· Autorizar o usuário: verifica se o usuário previamente autenticado possui acesso na funcionalidade desejada pela requisição;

· Tratar a requisição;

· Tratar eventuais erros;

· Autenticar-se: caso a requisição seja feita via HTTPS;

Cliente (Browser)

No caso dos clientes, destacamos as seguintes ações:

· Enviar requisições ao servidor;

· Autenticar o servidor (caso a requisição seja feita via HTTPS);

· Processar a resposta;

· Exibir o conteúdo HTML;

· Executar Scripts: Scripts escritos em JavaScript, jQuery que permitem respostas sem a necessidade de recarregar a página;

HTTP

Conforme vimos acima, representa o protocolo responsável por requisitar as páginas no servidor e enviar a resposta obtida para o cliente reponsável pela requisição. Um exemplo de requisição é o seguinte:

GET /default.aspx HTTP/1.1

Host: http://www.bing.com

A palavra GET representa o método. A seguir, temos a URI (Uniform Resource Identifier) do recurso que será solicitado. No nosso exemplo, “/default.aspx”. Por fim, temos a versão do protocolo HTTP que será utilizado (neste caso, HTTP/1.1). Na segunda linha encontra-se o HOST que determina o nome do website que será buscado no servidor.

Abaixo, uma lista com os métodos mais utilizados do HTTP/1.1.

Método Descrição
GET Obtém um objeto (como uma webpage) do servidor.
POST Envia data ao servidor para processamento. É o comando utilizado quando um usuário preenche dados em um formulário e envia para processamento.
PUT Permite que a aplicação crie um recurso em uma determinada URL.
DELETE Exclui um recurso no servidor.
TRACE Utilizado para testes e identificação de problemas.
DEBUG Inicia o debbug do ASP.NET. Informa ao VS o processo ao qual o debbuger será atachado.

Segue abaixo um exemplo de resposta do servidor:

HTTP/1.1 200 OK

Server: Microsoft-IIS/6.0

Content-Type: text/html

Content-Length: 44

<html><body> Entendendo o HTTP </body><html>

Na primeira linha, encontra-se a versão do protocolo e a resposta enviada pelo servidor (neste caso, 200). Abaixo, um breve descritivo das possíveis respostas:

Status Descrição
1xx Informação: A requisição foi recebida e o servidor continua o processamento.
2xx Sucesso: A requisição foi recebida, entendida e aceita.
3xx Redirecionar: O cliente deve acessar um recurso diferente.
4xx Erro no Cliente: A requisição possui algum problema de sintaxe.
5xx Erro no Servidor: O servidor falhou ao receber a requisição.

A segunda linha indica o tipo do servidor (neste caso, Microsft IIS/6.0).

A terceira linha (Content-Type) representa o tipo do recurso que será enviado ao cliente.O indicador está no formato MIME (Multipurpose Internet Mail Extensions). O MIME é um designador que possui duas partes (tipo/subtipo). No nosso caso é text/html, ou seja, enviará um comando html no formato de texto.

Por fim, temos o tamanho do conteúdo e a mensagem de resposta. O cliente processará a resposta com base no tipo de seu MIME.

GET X POST

Estes dois comandos podem ser utizados para enviar dados de um formulário para o servidor.

Quando utilizamos o comando GET, devemos adicionar os dados que serão enviados na URL como parte de uma Query String.

Ex: http://www.bing.com/search?q=HTTP

Pontos negativos na utilização do método GET:

· Usuários podem mudar facilmente os parâmetros na querystring exibida;

· Em alguns casos é necessário enviar uma grande quantidade de dados ao servidor;

Quando utilizamos o comando POST, por sua vez, os dados são enviados dentro do corpo da mensagem, o que torna este comando a melhor opção para submissão de grande quantidade de dados. Quando os dados são enviados ao servidor como parte da requisição, temos o famoso PostBack, que estudaremos bastante nos próximos artigos.

Para finalizar, vamos citar dois objetos bem bacanas do nosso ASP.NET.

O ASP.NET prove os seguintes objetos para representar a comunicação entre o cliente e o servidor:

· Request: Representa a comunicação entre o cliente e o servidor. Utilizamos este objeto para verificar os cookies existentes, acessar parâmetros da Query String, entre outros.

· Response: Representa a comunicação entre o servidor e o cliente, isto é, a resposta. Utilizamos este objeto para setar cookies, definir cache, determinar o tempo de expiração de uma página, entre outros.

Bom, por hoje é só.

Espero que ajude!

Abraços,

Felipe Furlan da Silva

Introdução ao Sharepoint 2010

Para quem já trabalha / trabalhou com Sharepoint 2007, a primeira experiência com o Sharepoint 2010 pode ser um tanto quanto “traumática”. Não é raro escutarmos as famosas reclamações acentuadas sobre como tudo ficou diferente. Para quem não chegou a trabalhar com a versão 2007, imagine a sensação que você passou quando a Microsoft lançou o Office 2010. Pois é. Ficou diferente, muito diferente.

Bom, a ideia aqui é trabalharmos exclusivamente com o desenvolvimento. Não abordaremos quase nenhuma questão de infra durante nossa caminhada.

Portanto, partimos do princípio que você possui:

· Uma versão do Sharepoint 2010 instalada e configurada corretamente em sua máquina de desenvolvimento;

· Uma máquina que atenda aos requisitos mínimos especificados pela Microsoft:

o Sistema Operacional de 64 bits (Microsoft Windows Server 2008, Microsoft Windows Server 2008 R2, Microsoft Windows Vista SP1 (ou maior), Microsoft Windows 7).

o Mínimo de 4GB de memória RAM;

o Mínimo de 4GB de espaço livre em disco;

· Visual Studio 2010 instalado e configurado corretamente;

· Sharepoint Designer 2010 instalado e configurado corretamente;

Apesar de permitir a instalação do Sharepoint 2010 em um Sistema Operacional do tipo “cliente”, existem algumas ressalvas muito importantes:

· Este tipo de instalação é apenas para desenvolvimento.

· Caso seja necessário algum tipo de suporte por parte da Microsoft, é muito provável que você tenha que replicar sua aplicação para um ambiente produtivo (Windows Server);

· Você não consegue utilizar a configuração de Farm;

Não é possível. Deve haver alguma vantagem na utilização dos Sistemas Operacionais do tipo cliente. Bom, alguns exemplos:

· É inquestionável a diferença entre a utilização de um sistema operacional do tipo cliente em comparação a um do tipo servidor em nossa estação de trabalho;

· Permite utilizar algumas features interessantes (como hibernate e sleep);

Dito isto, vamos seguir com nosso estudo.

Neste primeiro momento, estudaremos os principais “conceitos” do Sharepoint, que são base para quem deseja ingressar neste universo de desenvolvimento.

Este artigo abordará os seguintes assuntos:

· Site Collection;

· Sites em um Site Collection;

Site Collection

Site Collection pode ser definido como um repositório que possui uma estrutura hierarquizada de sites, ou seja, a partir de um único site pai, podem existir diversos sites filhos, de modo que cada um destes sites filho também podem possuir filhos. Complexo né? Bem, nem tanto. Vamos ilustrar esta ideia com um desenho. Você com certeza já viu um deste, não viu?

clip_image001

Observando o desenho, o site pai de nosso Site Collection é o site denominado “A”. Ele possui dois filhos diretos (B e C). O site B possui um filho (D), e assim por diante.

Importante destacar que podemos criar mais de um Site Collection em um mesmo servidor. Desta maneira, podemos dividir os sites dos departamentos de uma empresa em diferentes Collections, de modo que cada um deles possua seus usuários e configurações específicas.

Quando instalamos o Sharepoint, um Site Collection padrão é criado automaticamente no endereço: http://<<NomeDaMaquina>&gt;. Abaixo, o resultado:

clip_image003

Note que está é a página pai que o Sharepoint cria para você no momento da instalação. Seguindo nosso desenho, este é o site A.

OBS: Dependendo do modo de instalação, o layout desta página pode ser diferente.

Para nosso estudo, vamos criar um novo Site Collection. O primeiro passo é acessar o site Central Administration. Para isto, no Windows, acesse “Start – All Programs – Microsoft Sharepoint 2010 Products – Sharepoint 2010 Central Administration”.

clip_image004

clip_image006

Com o site aberto, clique na opção em “Create site collections”.

clip_image008

clip_image010

Caso não consiga visualizar, segue as informações preenchidas:

Informação Significado
Title Site Exemplo
Web Site Adress http://<<nomeComputador>&gt;:<<Porta>>/sites/SiteExemplo)
Language English
Template Team Site
Primary Site Collection Administrator Administrator

Clique em OK para que a criação de nosso novo Site Collection seja efetuada. Ao término da criação, a seguinte tela será exibida:

clip_image012

Clique no link acima para visualizar o novo site criado. Pronto, vamos seguir em frente.

Sites

Vamos criar um novo site cujo pai será o site que acabamos de criar (Site Exemplo). Observe nosso site abaixo:

clip_image014

Na região superior esquerda de nossa página, verifique o menu “Site Actions”. Este menu é muito importante e possui diversas ações que podemos tomar diretamente da UI (User Interface).

Atenção: Este menu somente será visível para você caso o seu usuário possua as corretas permissões, isto é, faça parte de um grupo dentro do Sharepoint que possua esta permissão. Conforme dito anteriormente, não é escopo deste artigo discutir questões de configurações. Portanto, caso não consiga visualizar, contate o responsável pela administração do Sharepoint e solicite este acesso.

Vamos a criação:

1. Clique em Site Actions – New Site

clip_image016

2. Na janela exibida, você deverá selecionar um Template para o site que será criado. Além do Template, você deve atribuir um nome e uma URL para o novo site.

clip_image018

Observações:

· O Template de um site possui as configurações que estarão disponíveis neste novo site.

· Conforme falamos anteriormente, este site será filho de nosso site recém-criado, portanto, sua url será: http://<<nomeComputador>>/sites/SiteExemplo/SiteFilhoExemplo.

3. Clique em “Create”.

clip_image020

Pronto, nosso site filho foi criado com sucesso.

Explorando o Conteúdo do Site

Novamente vamos clicar em “Site Actions”. Desta vez, porém, selecionaremos a opção “View All Site Content”.

clip_image021

clip_image023

Como escolhemos o template “Blank Site”, observe que não há nenhum conteúdo criado. Discutiremos estes conteúdos no decorrer de nossos artigos.

Bom, por hoje é só. No próximo artigo continuaremos com a visão geral do Sharepoint 2010.

Espero que ajude!

Abraços,

Felipe Furlan da Silva.

Jquery – Fundamentos Teóricos – Parte I

Jquery é sem sombra de dúvidas um dos assuntos mais comentados nos dias de hoje. O poder desta biblioteca e imenso e podemos criar aplicações com interfaces extremamente ricas, que garantem interatividade e facilidade ao usuário que a utilizará.

O que é Jquery?

É uma biblioteca JavaScript criada por John Resig, que pode ser utilizada gratuitamente para desenvolvimento de aplicações pessoais e comerciais. O foco de John na criação desta biblioteca foi permitir que os desenvolvedores criassem qualquer efeito em uma página sem a necessidade de implementação de códigos complexos. Se pudessemos resumir a utilização do Jquery em uma palavra, esta palavra seria “simplicidade”.

Bom, sendo assim, devemos dominar JavaScript antes de iniciar nossa jornada, certo?

Errado. É claro que o prévio conhecimento em JavaScript é um diferencial, mas não é pré-requisito para ingressar no universo Jquery.

Mas afinal, o que posso fazer com Jquery?

Em resumo, para adicionar interatividade e dinamismo em suas páginas, visando principalmente o enriquecimento da experiência de seus usuários. Com Jquery, podemos:

  • Criar efeitos visuais e animações;
  • Acessar e manipular o DOM;
  • Buscar Informações no servidor sem necessidade de recarregar a página;
  • Modificar a estilização;

E o mais importante: de maneira simples.

Chega de papo. Vamos instalar o Jquery!!

Até o momento venho falando que a palavra chave do Jquery é a simplicidade, certo? Sendo assim, a instalação não poderia ser diferente. A biblioteca nada mais é do que um arquivo JavaScript que será linkado em cada uma das páginas que receberão os efeitos, ou na Master Page, sendo extendido a todas as páginas que dela herdam. Podemos seguir duas opções:

  • Baixar o arquivo em nossa máquina (servidor);
  • Utilizar um servidor remoto que disponibiliza o arquivo (Google / Microsoft);

Neste artigo utilizaremos a primeira opção.

Vamos lá:

Entre no site oficial do Jquery (http://jquery.com/) e efetue o download, conforme imagem abaixo:

Observe que você pode selecionar as seguintes opções: Production / Development.

Escolha a opção Development e pressione o botão Download (jQuery).

Informe o diretório em que deseja salvar seu arquivo (no meu caso, escolhi o C:\Jquery).

Por fim, com o download concluído, verifique se o arquivo está salvo no endereço desejado.

 

E quanto ao arquivo Production?

A diferença entre os dois arquivos pode ser percebida pelo tamanho (31KB X 229KB). Basicamente,  o arquivo de Development, contém  diversos comentários que facilitam o entendimento de cada um dos scripts. Como o próprio nome diz, é recomendado para a utilização no ambiente de desenvolvimento. Já o arquivo production, não possu nenhum comentário nem espaçamento nas linhas dos scripts, voltado exclusivamente para utilização em produção.

Minha primeira aplicação com Jquery

Legal. Já falamos bastante, mas ainda não vimos nada prático. Para não sairmos de mão abanando, vamos criar nossa primeira aplicação utilizando a biblioteca. Obviamante, será uma aplicação bem simples e que dificilmente utilizaremos em um site comercial. Mas como nosso objetivo é o aprendizado,  vale a pena conferir. Caso não entenda a sintaxe, não se preocupe, teremos uma série de artigos futuros para discutir cada uma das funções desta grande biblioteca. Vamos lá, é só o início de um longo e, com toda certeza, proveitoso caminho.

A ideia desta aplicação é aumentarmos a fonte de um determinado parágrafo de acordo com o nível de visão do nosso usuário. Vamos lá:

No Visual Studio, crie uma nova aplicação do tipo ASP.NET Web Application.

Observe que com o VS2010, o arquivo do Jquery já vem por default na pasta Scripts:

Para melhor aproveitamento, vamos excluir estes arquivos e referenciar aquele que salvamos anteriormente. Lembre-se que no VS2008, este arquivo não vem por padrão.

Clique com o botão direito na pasta Scripts -> Add -> Existing Item

Selecione o arquivo que salvamos acima e pressione a opção Add. Pronto, já fizemos a referência em nosso projeto.

Na página Default.aspx, copie e cole o seguinte código:

<%@ Page Title=”Home Page” Language=”C#” MasterPageFile=”~/Site.master” AutoEventWireup=”true”

CodeBehind=”Default.aspx.cs” Inherits=”PrimeiroExemploJquery._Default” %>

<asp:Content ID=”HeaderContent” runat=”server” ContentPlaceHolderID=”HeadContent”>

<style type=”text/css” media=”all”>

h2 {font-size:14;}

</style>

<script type=”text/javascript” src=”Scripts/jquery-1.7.1.js”></script>

<script type=”text/javascript”>

$(document).ready(function() {

$(‘#btn-pequeno’).click(function () {

$(‘#cor’).css(‘font-size’,’8′);

});

$(‘#btn-medio’).click(function () {

$(‘#cor’).css(‘font-size’, ’16’);

});

$(‘#btn-grande’).click(function () {

$(‘#cor’).css(‘font-size’, ’36’);

});

$(‘#btn-enorme’).click(function () {

$(‘#cor’).css(‘font-size’, ’72’);

});

});

</script>

</asp:Content>

<asp:Content ID=”BodyContent” runat=”server” ContentPlaceHolderID=”MainContent”>

<h2 id=”cor”>Minha primeira aplicação Jquery!</h2>

<button type=”button” id=’btn-pequeno’>Visão Boa!</button>

<button type=”button” id=’btn-medio’>Visão Normal!</button>

<button type=”button” id=’btn-grande’>Praticamente Cego!</button>

<button type=”button” id=’btn-enorme’>Cego!</button>

</asp:Content>

Execute a aplicação e teste seu primeiro Script. O resultado deve ser o seguinte:

 Visão Normal:

 

Visão Péssima:

OBS: No código que criamos, observe que para linkar a biblioteca na página, foi necessário utilizar o seguinte comando:  <script type=”text/javascript” src=”Scripts/jquery-1.7.1.js”></script>

 

No próximo Post:

  • Fundamentos Jquery;
  • Funções Jquery;
  • Introdução aos Seletores Jquery;

É isso ai!

Espero que ajude.

Semana que vem tem mais!

Abraços!

Feipe Furlan da Silva.

Primeiro Post!!

Saudações!

É com grande satisfação que inicio este trabalho de divulgação de conhecimento.

Faz muito tempo que tenho interesse em criar um blog para compartilhar meus conhecimentos, mas durante muito tempo fui “deixando para depois”.

Finalmente chegou o dia.

Este blog será direcionado para:

  • Aqueles que desejam ingressar no mundo do desenvolvimento .NET, mas ainda não tem conhecimento na área;
  • Aqueles que já possuem algum conhecimento, mas querem apronfundá-lo;
  • Aqueles que atuam no mercado de trabalho e queiram trocar experiências;

Enfim, é um blog escrito e dedicado a todos os amantes da tecnologia.

Os posts estarão abertos para comentários, sugestões e correções. Ficarei muito feliz em respondê-los e aprender com a comunidade.

É isso ai. Teremos muito trabalho neste novo ano.

Abraços!

Felipe Furlan da Silva.