Revista e-magazine - O SharePoint está lento?

Transcrição

Revista e-magazine - O SharePoint está lento?
Sumário
03 :. Editorial
Edição 19 Número 19 Ano 04 10/11
EDITOR RESPONSÁVEL
Cleber Dantas
REVISÃO
Sara Barbosa
Sergio Gonçalves (Ganso)
Erick Lopes
EDITORAÇÃO E DIAGRAMAÇÃO
Sara Barbosa
Sergio Gonçalves (Ganso)
CAPA
Edjan Santos
COLUNISTAS
Alexandre Tarifa
Luciano Palma
COLABORADORES
Aline Maia
Elemar Júnior
Fabian André Gehrke
Fernanda Saraiva
Pablo Hadler
Sara Barbosa
IDEALIZADORES
Alexandre Tarifa
Diego Nogare
Por:
Cleber Dantas
04 :. Coluna: Cultura XXI
Por: Luciano Palma
07 :. O SharePoint está lento. O que eu faço?
Por: Aline Maia
13 :. Como criar e gerenciar usuários na Central de
Administração do Microsoft Online Services
Por: Sara Barbosa
16 :. Habilitando PDF com Ifilter no SharePoint Server 2010
Por: Fernanda Saraiva
20 :. Como funciona o Windows Azure – O Hypervisor
Por: Elemar Júnior
28 :. SharePoint 2010 - Administração Avançada com
PowerShell
Por: Fabian André Gehrke
Fale com Editor
É muito importante para a equipe
saber a sua opinião sobre a
revista, caso tenha alguma critica,
sugestão, ou elogio entre em
contato.
Caso tenha interesse em publicar
um artigo na revista envie o título
e um resumo do tema em formato
Word.
[email protected]
Produzido por:
www.codificando.net
35 :. Ferramenta de desenvolvimento auxilia o
programador .NET
Por: Pablo Hadler
40 :. Coluna: .Close()
Por: Alexandre Tarifa
Edição 19 Número 19 Ano 04 2010
Editorial
Caro leitor é com muito orgulho e entusiasmo que escrevo este editorial.
EDITORIAL
Estou orgulhoso por ter sido convidado pelo time do Codificando.Net para estar | frente de um projeto
como a revista Codificando e-Magazine e ao lado de um time fant{stico que faz a revista acontecer a cada
edição.
O entusiasmo é grande pois sei de todo o potêncial da revista e do seu alcance junto a comunidade de
desenvolvedores brasileiros, é uma grande responsabilidade e um grande desafio, a Codificando eMagazine é uma revista feita pela comunidade para comunidade e estar participando de um projeto como
este me deixa realmente muito feliz.
Meu nome é Cleber Dantas atuo no mercado de TI a mais de 7 anos e sou especialista em tecnologias de
desenvolvimento Web, ministro palestras e mini-cursos dentro das comunidades Microsoft, j{ escrevi
artigos para portais como Imasters, DevMedia e LinhaDeCodigo. Possuo algumas certificações como
MCAD e MCTS. Hoje trabalho como coordenador de desenvolvimento do maior portal de Saúde e Bemestar da internet brasileira, o portal Minha Vida (http://www.minhavida.com.br) e agora tenho o orgulho de
também ser o Editor da revista Codificando.Net e-Magazine.
Começamos o ano anunciando um novo time de colunistas, além do Alexandre Tarifa e sua coluna .Close()
teremos nesta edição Luciano Palma com sua coluna Cultura XXI e para as próximas edições mais dois
grandes nomes da comunidade estarão conosco, são eles: Emerson Facunte e Rodolfo Roim. fantastico!
Também quero deixar um recado para você leitor que tem interesse de colaborar com a revista de alguma
forma, seja escrevendo artigos, nos ajudando com revisões técnicas, diagramações, arte, divulgação e etc.
Por favor entre em contato através do email [email protected], a comunidade agradece!
Que todos tenham um ótimo 2011 repleto de desafios e conquistas, agora apreciem o conteúdo desta edição
que foi feita com muito carinho e dedicação pelo nosso time.
Abraços,
Cleber Dantas
Editor Respons{vel
Email: [email protected]
Twitter: @cleberdantas
e-magazine
Coluna: Cultura XXI
Luciano Palma é Palestrante e
Consultor Estratégico de Redes
Sociais, Novas Mídias e
Tecnologia.
Trabalhou mais de 8 anos na
Microsoft do Brasil como
Consultor e Evangelista
Técnico, com a função de manter
uma Comunidade de
Influenciadores energizada e
atualizada sobre as últimas
tecnologias. Desde 2006 foi
palestrante do Tech Ed Brasil,
tendo realizado 9 palestras em 4
edições.
Você pode acompanhar suas
atividades pelo Blog (http://
lpalma.com) ou pelo
Twitter (@lucianopalma)
O convite do Tarifa para escrever esta coluna me pegou de
surpresa. Depois vieram os sentimentos de felicidade, honra,
orgulho e agradecimento. Agradecimento a ele pelo convite,
mas também a toda a equipe que mantém a revista, com
empenho e zelo em cada detalhe, para levar até você
informação atual com qualidade - sem esquecer daqueles que
contribuíram no passado para tornar a Codificando.Net eMagazine o que ela é hoje.
Nesta coluna, Cultura XXI, discutiremos mudanças
comportamentais que estão acontecendo no Século XXI,
grande parte delas decorrentes dos incríveis avanços da
tecnologia.
Quando eu era criança (não vou entrar no mérito de datas), o
desenho "Os Jetsons" era pura ficção. Os carros voavam,
robôs substituíam humanos em tarefas repetitivas, e a
videoconferência era coisa dos sonhos - ainda mais quando
acontecia no relógio do George.
Codificando.net e-magazine
Ok, nossos carros ainda não voam (felizmente - imagine a
sombra causada pelos congestionamentos), mas j{ podemos
carregar
no
bolso
aparelhos
capazes
de
fazer
videoconferência. E muito ainda est{ por vir!
Com os novos recursos e - principalmente - com novos meios
de conexão que eliminam a vari{vel "espaço" entre as pessoas,
relacionamentos e comportamentos estão em fase de ajustes.
Essa mudança est{ sendo introduzida em nossa cultura, e este
ser{ o assunto principal desta coluna.
www.codificandomagazine.com.br
Dez / Jan - 10/11
|
4
e-magazine
Coluna: Cultura XXI
A evolução comportamental não se restringe aos relacionamentos pessoais. As
empresas, e até os governos, estão tendo que se adaptar. Adotar novos canais e novas
formas de comunicação não é mais opcional, e tudo indica que nas 9 décadas que
restam do século, as relações profissionais tendem a mudar muito, tornando obsoleto o
modelo hier{rquico atual, baseado em comando em controle. A interconexão entre
pessoas criar{ uma força "anti-hierarquias", e a informação, assim como a ação,
passarão a fluir em Rede.
É nesse contexto de informação livre que convido você a participar desta coluna. Entre
em contato com a revista e comigo através do canal que preferir, e exponha sua opinião,
discorde, complemente, aprofunde. Essa é a din}mica do "socialcast", que deve servir
de base para esta coluna e para os novos canais digitais. Ela avança sobre o modelo de
"broadcast", onde um emissor gera a mensagem e os receptores a consomem
passivamente.
Em outras palavras, esta coluna também é sua, pois ela deve refletir a transformação da
forma de se comunicar, de interagir e também de fazer negócios no século XXI.
Sejamos todos bem-vindos!
Codificando.net e-magazine
Mais sobre o colunista:
Professor do curso de pós-graduação do SENAC (Web: Estratégias de Inovação
e Tecnologia), ministra disciplinas envolvendo Hipermídia, Sistemas Virtuais e
Comércio Eletrônico.
Ministrou também a disciplina "Redes Sociais, a Inovação Digital e suas Mídias" no
curso de MBA da Faculdade Impacta: Planejamento e Estratégia de Negócios com
Suporte da TI.
Com 22 anos de experiência, é co-autor do “Guia de Consulta R{pida de TCP/IP”
(Novatec, 2000) e do “Livro Intercon 2009” (Clube de Autores, 2009).
www.codificandomagazine.com.br
Dez / Jan - 10/11
|
5
e-magazine
Codificando.net e-magazine
www.codificandomagazine.com.br
Dez / Jan - 10/11
|
6
e-magazine
O SharePoint está lento. O que
eu faço?
Por: Aline Maia
Introdução: Cenário do Caso
O cliente implantou o Microsoft Office
SharePoint Server 2007 SP2 para a criação
de um portal intranet de colaboração e
publicação de conteúdo. O portal consite
de uma única Web Application, com uma
única site collection definida e diversos
subsites/webs. E quando digo “diversos”,
falo de algo em torno de centenas de sites
só no primeiro nível de subsites “filhos”
do top-level na raiz da site collection.
Por ser composto de uma única site
collection, h{ também um único content
database para todos os subsites (cerca de
60 GB no lançamento do portal).
A empresa contratou um fornecedor
para implementar o projeto, o que
envolvia não só a adequação do padrão
visual do portal (que usa template de
publicação), como o desenvolvimento de
novos componentes (webparts, controles
de exibição de conteúdo e um novo
menu de navegação) e o “design” do site
principal, ou seja: edição das p{ginas e
adição de webparts (não somente, mas
inclusive usando “Content Web Parts”
para escrita livre de conteúdo HTML).
Como trata-se de um template de
publicação, cada nova alteração gerava
uma nova versão das p{ginas editadas
no banco de dados de conteúdo; afinal,
uma p{gina nada mais é que um item de
uma biblioteca de p{ginas (a “Pages”,
por padrão) neste tipo de template.
Codificando.net e-magazine
Como engenheira do suporte Premier
Microsoft com foco em soluções
SharePoint, não é tão incomum que eu
receba esse tipo de questionamento. O
artigo que escrevo nesta edição é inspirado
justamente em um caso recente que vivi,
em que o cliente estava insatisfeito por ter
implantado um portal intranet
desenvolvido com o SharePoint como
plataforma (para substituir uma antiga
solução feita em ASP), mas que estava
“mais lento” que o site antigo! Era “mais
bonito” e tinha “mais funcionalidades”
mas, segundo a {rea de marketing
(patrocinadora do projeto e cliente da {rea
de TI - respons{vel pela implantação) ,
“invi{vel de ser utilizado pelos cerca de
3.000 funcion{rios da empresa pela
lentidão ao carregar a p{gina principal”.
Qual ser{ o problema?
Resumindo: algumas customizações
precisavam ser distribuídas como
bin{rios (como as dlls do novo menu),
outras foram incluídas direto no banco
de dados de conteúdo (via browser e
www.codificandomagazine.com.br
Dez / Jan - 10/11
|
7
O SharePoint está lento. O que eu faço?
SharePoint
Designer).
E
o
desenvolvimento era feito em um
ambiente diferente do de produção, na
empresa fornecedora, que necessitava
entregar conteúdos (leia-se: backup do
banco de dados de conteúdo) e códigofonte de bin{rios para o cliente.
Como a data de lançamento do portal j{
havia sido definida, o prazo final de
entrega estava próximo e ainda havia
muitas atividades a cumprir, o Teste de
Estresse foi sendo adiado. Quando foi
finalmente executado, eis a surpresa: “o
site estava lento”. O projeto foi para
produção mesmo assim, mas decidiu-se
de última hora adicionar dois novos
servidores de Web Front End na farm
para minimizar a percepção de lentidão
pelos usu{rios.
e-magazine
para “levar a culpa”, mas realizar um
trabalho científico para RESOLVER a
situação (aqui, nenhuma vida est{ em
risco). Se o “culpado” do problema é,
por exemplo, uma DLL com memory
leak, não podemos “apontar dedos” para
o desenvolvedor. A capacidade de
gerenciar conflitos e expectativas (ou
seja, lidar com as pessoas) é muito
importante nestes casos. Pra deixar bem
claro: nesta analogia, o foco não é o
“C” (de “Crime”), mas o “I” (de
“Investigation”), ok?
É claro que por questões de
confidencialidade o nome do cliente est{
omitido, bem como todos os demais
detalhes tanto do projeto como do meu
trabalho na an{lise e correção dos
problemas. Por isso mesmo este artigo
Análise do Caso (ou “Brincando
de CSI: Crime Scene
Investigation”)
não pode ser seguido “ao pé da letra”
Como ajudar a identificar problemas,
oportunidades de melhoria e agir em um
caso como este? Costumo comparar o
trabalho de suporte reativo ao realizado
pelos personagens do seriado “CSI:
Crime Scene Investigation”: chegamos |
“cena do crime” para encontrar “o(s)
culpado(s)” através da an{lise de
“evidências
e
provas”,
listando
primeiramento os principais “suspeitos”
que tenham “motivo e oportunidade”
para agir.
dar subsídios a vocês, leitores, para suas
problema de lentidão, mas o objetivo é
próprias investigações no estilo “CSI”.
Reproduzindo o Problema
Codificando.net e-magazine
Mas, bem diferente do CSI, aqui os
“culpados e suspeitos” NÃO são as
pessoas, e sim itens de software e é
muito importante que isso fique bem
claro: não se trata de buscar pessoas
como fonte de solução para qualquer
A primeira ação foi, junto com o cliente,
navegar pelo portal e procurar
reproduzir o problema (ou, no estilo CSI,
“visitar a cena do crime e refazer os
passos da vítima”). Por GPO, o portal é a
home page obrigatória de todos os
usu{rios que abrem o browser e a
navegação, para todos eles, sempre
ficava “bloqueada” por alguns segundos
até que o menu expansível customizado
fosse montado e fechado (ele é montado
todo “expandido” e fechava no final da
montagem). Notei ainda que as
webparts da content page j{ estavam
www.codificandomagazine.com.br
Dez / Jan - 10/11
|
8
O SharePoint está lento. O que eu faço?
sendo carregadas de forma assíncrona.
Esse comportamento do menu se repetia
para os demais acessos e não apenas
para o carregamento da home page.
Utilizei o PerfMon para criar os counters
(tenha “templates” | mão) e o PAL para
an{lise de threshoulds. Antes mesmo de
obter esses resultados, usando o Taks
Manager/Process Explorer, j{ podia
observar que o processo w3wp.exe
referente ao application pool do portal j{
ficava constantemente entre 80% e 100%
de utilização (comportamento muito
anormal) em todas as m{quinas. O uso
de memória era também era alto.
O
ideal
seria
também
utilizar
ferramentas como o Fiddler (http://
www.fiddler2.com/fiddler2) ou outro
monitor HTTP para tem o tempo real de
loading da p{gina (e voltar a medir
quando eventuais mudanças com foco
em melhorias fossem feitas), mas fui
direto ao assunto: procurar a DLL do
menu e, usando o “SPDisposeCheck” http://code.msdn.microsoft.com/
SPDisposeCheck
procurar
por
possíveis evidências de memory leaks.
No modelo de objetos do SharePoint,
objetos
como
Microsoft.SharePoint.SPSite
e
Microsoft.SharePoint.SPWeb
são
criados em código gerenciado como um
pequeno wrapper (de aproximadamente
2KB). Este wrapper então cria objetos
não-gerenciados de aproximadamente 12MB que, por não serem removidos
automaticamente da memória pelo
garbage
collector,
precisam
ser
explicitamente marcados para “dispose”.
Para mais informações recomendo a
leitura
dos
artigos
http://
msdn.microsoft.com/library/
bb687949.aspx
e
http://
msdn.microsoft.com/library/
aa973248.aspx. O fato é que o
SPDisposeCheck listou v{rios pontos
com lógicas “suspeitas”. Por exemplo:
Codificando.net e-magazine
Eu j{ tinha um primeiro suspeito: o
controle (customizado) de menu.
Precisava saber mais sobre ele e recolher
evidências de sua “participação” no
processo. Liguei então contadores de
performance, para coleta por um ciclo
completo de 24h, para todos os
servidores, considerando os 4 principais
“sinais vitais” de um server: CPU,
memória, disco e rede. Uma dica é fazer
a coleta no formato .csv e analis{-los
utilizando
o
PAL
(“Performance
Analysis of Logs”) disponível em http://
pal.codeplex.com ou ainda utilizar uma
ferramenta Enterprise e proativa de
monitoramento (como o Microsoft
Operations Manager – SCOM – que j{
possui pacotes de gerenciamento
específicos para servidores SharePoint e
que vão além dos sinais vitais b{sicos,
pois monitoram os serviços específicos
como Timer e Search – leia mais em
http://bit.ly/9Xpany).
e-magazine
ID: SPDisposeCheckID_XX
Module: [NomedoAssembly].dll
Method: [Namespace].[ClasseMenu]
DisplayClass1.OnLoad
Statement: this.myRoot.{System.Xml.Linq.XContainer}
Add(this.<>4__this.{ [Namespace].[ClasseMenu] }
BuildMap(local0.{Microsoft.SharePoint.SPSite}
OpenWeb(), 0))
Pelos resultados obtidos e trechos dos
métodos exibidos, desconfiei não
somente que tivéssemos problemas de
memory leak por esquecimento de
“dispose”: a lógica de “loop” usada para
montar o menu não me parecia a mais
otimizada (se considerarmos pr{tica de
www.codificandomagazine.com.br
Dez / Jan - 10/11
|
9
O SharePoint está lento. O que eu faço?
programação
.NET
convencional,
mesmo). Pra ser mais clara: não estava
sendo usado com o controle nenhuma
das
classes
do
namespace
“Microsoft.SharePoint.Publishing.Navig
ation”
(veja
em
http://
msdn.microsoft.com/en-us/library/
microsoft.sharepoint.publishing.navigati
on(v=office.12).aspx – versão 2007 – e
http://msdn.microsoft.com/en-us/library/
microsoft.sharepoint.publishing.navigati
on.aspx - versão 2010) como fonte de
dados, nem mesmo um data source
customizado
herdando
de
“HierarchicalDataBoundControl”.
Ou
seja, o menu era montado a partir de
loops no objeto SPSite, todas as vezes
que a p{gina era carregada. E sem uso
de cache, ou seja: cada request HTTP, de
cada um dos 3.000 usu{rios, gerava uma
chamada
de
c{lculo
de
menu.
Considerando a rotina para validar
permissão de acesso, tínhamos aí um
ponto de melhoria.
técnicos (de administração, performance,
suportabilidade, futuras migrações de
versão) de uma decisão como essa
podem ser grandes. Para mais sobre o
assunto “Navegação Customizada”,
recomendo este ótimo post: http://
blogs.msdn.com/b/modonovan/
archive/2008/05/30/custom-navigation-in
-sharepoint-the-full-monty.aspx
Pronto! J{ havíamos identificado um
fator importantíssimo de ação pra
melhoria da performance! E, como
tínhamos acesso ao código-fonte, bastou
uma r{pida verificação na lógica usada
para comprovar as suspeitas. Os
próximos passos seriam um code review
mais completo, considerando não só as
melhores pr{ticas de desenvolvimento
para SharePoint como de aplicações
ASP.NET mesmo.
Observamos também que o Application
Lifecycle Management tinha muitas
oportunidades de melhoria! Não havia
builds, o capacity planning e diversos
tipos de testes não estavam sendo feitos,
não havia gestão de builds/releases e,
pior: as customizações estavam sendo
copiadas para produção sem o uso de
pacotes .WSP/features e também via
restauração de backups de bancos. Eu
poderia escrever muitos outros artigos
sobre cada um destes itens, mas ao invés
disso recomendo a leitura atenta do
Resource Center de melhores pr{ticas
SharePoint no MSDN (para v3, o
endereço é: http://msdn.microsoft.com/
en-us/sharepoint/dd367963.aspx) e os
livros de download gratuito dos
“patterns & practices”.
Codificando.net e-magazine
Nota: O namespace
“Microsoft.SharePoint.Publishing.Navig
ation” j{ possui uma série de classes
otimizadas que levam em consideração a
hierarquia dos objetos SPSite / SPWeb,
bem como permissão e cache. Procure
utilizar sempre que possível o que o
SharePoint j{ oferece nativamente: no
caso acima, o desenvolvedor até me
disse que os objetos nativos “não
atendiam os requisitos de negócio”, mas
vejo muitas vezes o escopo do projeto e
as exigências das {reas usu{rias sendo
utilizados como “palavra final
inquestion{vel” para partirmos para
desenvolvimento customizado. Às vezes
falta um pouco mais de argumentação
técnica que mostre que os impactos
e-magazine
Mais sugestões de leitura:
www.codificandomagazine.com.br
Dez / Jan - 10/11
|
10
O SharePoint está lento. O que eu faço?
“Estimate performance and capacity
requirements for Windows SharePoint
Services collaboration environments
(Office SharePoint Server)” - http://
technet.microsoft.com/en-us/library/
cc261795(office.12).aspx
“Tools for performance and capacity
planning”
–
http://
technet.microsoft.com/en-us/library/
cc288064(office.12).aspx
Sugestões de Arquitetura e
Topologia
Se você é um profissional SharePoint um
pouco mais experiente provavelmente
identificou, na minha descrição do caso
(em “Introdução: Cen{rio do Caso”)
ainda outros fatores que merecem a
nossa atenção.
Vale avaliar também o uso de compressão
HTTP e blob cache, o desenho da
autorização, a topologia dos servidores por
serviço eque features/conte types usar...
(mais outros vários tópicos para novos
artigos!). Caso você, leitor, tenha dúvidas
quanto a estes tópicos, sugiro continuar
consultando os documento de planejamento
disponíveis no TechNet, para 2007 e também
versão 2010.
E como terminou esse chamado? Bom,
tivemos reuniões com todos os envolvidos (marketing, TI, fornecedores),
montamos um plano de ação, dividimos
as responsabilidades e todos estavam
“juntos” em prol de resolver os problemas. O clima, que no começo era de
insatisfação com o SharePoint e desconfiança quanto | plataforma escolhida, mudou e recuperamos a credibilidade com
o cliente. Tivemos muito cuidado em
abordar os problemas de forma séria,
porém positiva, de forma que mesmo as
“falhas de execução” foram entendidas
como fruto das “pressões de entrega” e
vistas como oportunidade de , daqui pra
frente, buscar melhorias não só técnicas
como de processos. Como todo projeto
de TI deve ser.
Abraços a todos e até o próximo artigo!
Codificando.net e-magazine
A estrutura “1 Web Application + 1 Site
Collection + 1 Content Database”, em
princípio mais simples pra instalar e
configurar, implica em uma arquitetura
mais complexa de gerenciar ao longo do
tempo.
Pensando
em
fatores
operacionais (como tempo de backup e
restore, política de cotas de uso por site
collection, retenção e arquivamento de
itens) um número número maior de site
collections (com um banco de dados de
conteúdo para cada) pode trazer mais
benefícios ao longo do tempo. A questão
é que, em se tratando de desenho de
solução SharePoint, muitas vezes não é
questão de “Certo” ou “Errado”, mas de
“Prós” e “Contras”. Precisa se listar as
implicações de cada decisão de forma
abrangente.
e-magazine
Aline Maia
Trabalha na Microsoft como Premier
Field Engineer, com foco em
atendimentos de casos SharePoint.
Com experiência em desenvolvimento
e suporte a sistemas, é pós-graduada em Engenharia
de Software, foi recentemente aprovada nas provas
beta de SharePoint 2010 (Configuração e
Administração), além de ser Microsoft Certified
Technical Specialist (MCTS) em WSS 3.0 e MOSS
2007 (infra e dev) e Microsoft Certified Solution
Developer (MCSD), com provas que incluem desde
VB 6.0 às diversas versões do .NET Framework.
Acredita que um bom desenvolvedor deve estar
preocupado com os aspectos relacionados à
administração do ambiente SharePoint, e vice-versa.
Blog: http://alinefmrk.spaces.live.com (não muito
atualizado, mas ainda ativo) e Twitter: @alinefmaia.
www.codificandomagazine.com.br
Dez / Jan - 10/11
|
11
e-magazine
Codificando.net e-magazine
www.codificandomagazine.com.br
Dez / Jan - 10/11
|
12
e-magazine
Como criar e gerenciar usuários na
Central de Administração do
Microsoft Online Services
Por: Sara Barbosa
Nesse artigo, vou detalhar um pouco sobre
a administração dos serviços do online
services,
inicialmente
partindo
dos
usu{rios que irão aproveitar os serviços na
nuvem.
Para
que
você
consiga
acompanhar o artigo, indico a leitura e o
vídeo de como ativar sua conta de
avaliação dos serviços, sendo assim fica
mais f{cil compreender e j{ exercitar o
aprendizado que é muito simples.
Então, vamos ao que interessa: Como criar
e gerenciar usu{rio na Central de
Administração do Microsoft Online
Services, que é o foco dessa leitura.
No primeiro contato com a central
administrativa, são solicitadas algumas
tarefas, a central j{ deixa explicito que para
garantir os serviços 5 tarefas devem ser
feitas, veja na figura: “Tarefas que preciso
executar”:
Nesse caso vou pular duas delas (vou
detalhar nos próximos artigos/posts no
blog) e ir para a criação de usu{rios, que
para mim é essencial, até mesmo deixar
de usar o admin da central, criar como se
fosse um backup dele e conceder as
permissões de admin.
Codificando.net e-magazine
Para aprender como ativar sua conta de
avaliação:
http://azureservicesbr.ning.com/profiles/
blogs/avaliacao-gratuita-microsoft
Figura 1 - Central de Administração
Para criar esse novo usu{rio, clique em
adicionar usu{rio:
Figura 2 - Adicionar Usuário
Preencha os dados do novo usu{rio e
clique em próxima:
www.codificandomagazine.com.br
Dez / Jan - 10/11
|
13
Como criar e gerenciar usuários na Central de Administração
e-magazine
administrador na central, não quer dizer
que no site do SharePoint ele ter{
automaticamente perfil de controle total,
as
permissões
da
central
são
independentes dos serviços.
Figura 3 - Preencha os campos com
informações do usuário
Codificando.net e-magazine
Nessa parte você vai definir se seu
usu{rio deve ter permissões de
administrador
da
central
de
administração, a senha tempor{ria que
ser{ gerada, se você deseja habilitar a
conta do usu{rio para os serviços que
você contratou e onde esse usu{rio est{
localizado.
No meu caso, selecionei “Sim” na
permissão de administrador e selecionei
“Sim” para habilitar a conta do usu{rio,
depois disso é só clicar em próxima:
Nota: Você defnir o usu{rio como
Próxima etapa, você tem acesso a data da
compra, serviços que o usu{rio ter{
disponível,
número
de
licenças
disponíveis no seu pacote, no meu caso
tem 20 licenças, pois estou usando a
versão trial. Também consegue visualizar
a quantidade de espaço destinado a caixa
de correio, como são 20 licenças para
caixa de correio, você tem 20 Licenças x
25 GB = Total: 500 GB de espaço. Você
define nessa etapa entre 256 MB a 25GB
qual o tamanho da MailBox do usu{rio
que você est{ criando. Escolha o tamanho
e clique em concluir:
Última etapa, defina o e-mail para onde o
Figura 5 - Serviços Ativos
usu{rio vai receber seu user e password
para o primeiro acesso, digite o endereço
de e-mail clique em enviar e depois em
concluir:
Figura 4 - Configurações
Figura 6 - Confirmação
www.codificandomagazine.com.br
Dez / Jan - 10/11
|
14
Como criar e gerenciar usuários na Central de Administração
Pronto. Seu novo usu{rio vai receber um
e-mail com as orientações, basta seguir,
trocar a senha e começar a usar os
serviços que contratou e ativou.
Para administrar e gerenciar esse
usu{rio, depois de criado, você ser{
direcionado a lista de usu{rios
habilitados, note que o campo ações est{
com v{rias opções desabilitadas:
Figura 7 - Modo de exibição todos os usuários
Selecione o usu{rio, veja que no campo
“Ações, você tem opção de editar
informações do usu{rio, redefinir senha,
excluir usu{rio:
usu{rio a trocar a senha a cada 90 dias,
pois é o tempo m{ximo que a senha dele
ser{ valida, caso ele não troque ela expira,
e você ter{ que gerar uma nova senha. Se
você orientar o usu{rio, você poupa o
trabalho de fazer isso e ele consegue
trocar sem que ela expire.
Excluir usu{rio:
Para casos que é necess{rio tirar da sua
base de usu{rio um em especifico, fique
atento ao número de licenças que
contratou e no seu contrato de 12 meses
para não gerar cobranças fora do
esperado.
O Microsoft Online Services, segue a
linha dos recursos que a maioria dos
usu{rios j{ estão familiarizados, por isso é
utilizado o Live ID para criar uma conta
de avaliação e os recursos para gerenciar
serviços e usu{rios na central de
administração também são bem intuitivos
e com v{rios fontes de ajuda sendo
sinalizados para facilitar o uso dos
serviços. A ideia é essa, disponibilizar os
serviços com total simplicidade e
facilidade. Espero que tenham gostado,
até os próximos.
Codificando.net e-magazine
Figura 8 - Status dos usuários criados
e-magazine
Sara Barbosa
Editar propriedades:
Você
pode
alterar
endereço,
departamento, sobrenome, nome, alterar
permissão, desabilitar conta, definir alias
de e-mail caso tenha outros domínios ou
tenha modificado o user do endereço de
e-mail, etc.
Redefinir senha:
Você altera a senha atual do usu{rio e
envia para o endereço de e-mail que ele
ter{ acesso a trocar a senha padrão por
uma de sua preferência.
Nota: Para evitar transtornos, oriente seu
MSP, revisa artigos para revista
Codificando.NET e-Magazine,
membro do conselho da comunidade WININFO. Co-Leader da
Comunidade AzureServicesBr
(azureservicesbr.ning.com). Moderadora
TechNetBrasil no fórum de BPOS. Faz parte
do time PensouNET (www.pensou.net)
empresa Gold Certified Partner em Goi{s.
Mais sobre no blog:
www.sarajbarbosa.wordpress.com e twitter:
@sarabarbosa
www.codificandomagazine.com.br
Dez / Jan - 10/11
|
15
e-magazine
Habilitando PDF com Ifilter no
SharePoint Server 2010
Por: Fernanda Saraiva
O IFilter é uma ferramenta que
combinada com o Search do SharePoint,
permite uma busca mais refinada para
arquivos de extensão .PDF, incluindo na
busca
o
conteúdo
interno
dos
documentos.
A extensao .PDF (third-part) não faz parte
da lista de extensões OOTb, embora sejam
indexadas como outros documentos, não
apresentam formatação adequada.
Vamos habilitar essa funcionalidade!!
Muito bem, mãos a obra:
O primeiro passo é exibir o ícone PDF nos
arquivos carregados no portal:
Faça o download do ícone PDF aqui:
http://www.actonguides.org/images/
icons/pdf_icon.gif.
Se optar por outra imagem para o PDF,
edite o seu tamanho para 16px X 16px
Figura 2 - Inclua a entrada no arquivo DOCICON.XML
Salve o arquivo. E em seguida Reinicie o
IIS (Start > Run > IISReset).
Se você tiver algum arquivo salvo na sua
document librarie do SharePoint, j{ vai
conseguir visualizar o ícone PDF onde
antes estava o ícone de uma folha branca.
Figura 3 - O ícone PDF j{ aparece associado ao documento
J{ informamos ao SharePoint qual o
ícone correto para a extensão PDF, mas
se realizarmos a busca por "PDF", o
arquivo retornar{ com o ícone incorreto,
precisamos então incluir a extensão PDF
na rastreabilidade do engine de busca.
Figura 4 - Veja na imagem que o engine de busca não associou a imagem
Figura 1 - Grave o ícone na pasta ...\images
2. Insira a entrada para o ícone PDF no
arquivo DOCICON.XML
Utilize o notepad pra abrir o arquivo
DOCICON.XML localizado no caminho:
3. Inclusão da extensão .PDF na busca
do Sharepoint
A partir da Administração Central, clique
em "Manage Service applications",
www.codificandomagazine.com.br
Dez / Jan - 10/11
Codificando.net e-magazine
1. Grave o ícone PDF na pasta de
imagens:
“C:\Program
Files\Common
Files\Microsoft
Shared\Web
Server
Extensions\14\TEMPLATE\IMAGES”
“C:\Program
Files\Common
Files\Microsoft Shared\Web Server
Extensions\14\TEMPLATE\XML”
Insira uma entrada "ByExtension"
conforme a imagem abaixo:
|
16
Habilitando PDF com Ifilter no SharePoint Server 2010
e-magazine
O IFilter é uma ferramenta que combinada
com o Search do SharePoint, permite uma
Figura 8 - Clique em Manage
Figura 5 - Localize o serviço de busca
busca mais refinada para arquivos de
extensão .PDF, incluindo na busca o
conteúdo interno dos documentos.
A extensao .PDF (third-part) não faz parte
Faça o download do ícone PDF aqui:
http://www.actonguides.org/images/icons/
pdf_icon.gif.
Se optar por outra imagem para o PDF,
Figura 9 - Clique em content Sources.
Figura 6 - Insira a extensão PDF na lista de extensões suportadas
da lista de extensões OOTb, embora sejam
indexadas como outros documentos, não
apresentam formatação adequada.
Vamos habilitar essa funcionalidade!!
Muito bem, mãos a obra:
O
Figura 11 - O ícone PDF est{ indexado corretamente
edite o seu tamanho para 16px X 16px
Figura 7 - Clique em Manage Service Application, no grupo
"Application Management"
1. Grave o ícone PDF na pasta de imagens:
“C:\Program
Files\Common
Files\Microsoft
Shared\Web
Server
Extensions\14\TEMPLATE\IMAGES”
primeiro passo é exibir o ícone PDF nos
arquivos carregados no portal:
www.codificandomagazine.com.br
Dez / Jan - 10/11
Codificando.net e-magazine
Figura 10 - Clique na flecha para expandir o menu. Selecione "Start Full
crawl".
|
17
Habilitando PDF com Ifilter no SharePoint Server 2010
O IFilter é uma ferramenta que combinada
com o Search do SharePoint, permite uma
busca mais refinada para arquivos de
extensão .PDF, incluindo na busca o
conteúdo interno dos documentos.
A extensao .PDF (third-part) não faz parte
da lista de extensões OOTb, embora sejam
indexadas como outros documentos, não
apresentam formatação adequada.
Vamos habilitar essa funcionalidade!!
Muito bem, mãos a obra:
e-magazine
Extensions\14\TEMPLATE\IMAGES”
Figura 14 - Execute um novo crawling completo da busca
O primeiro passo é exibir o ícone PDF nos
arquivos carregados no portal:
2.
Figura 15 - Realize uma nova busca. O ícone est{ indexado corretamente
Figura 12 - Configure o Path do IFilter
Insira a entrada para o ícone PDF no
arquivo DOCICON.XML
Faça o download do ícone PDF aqui:
http://www.actonguides.org/images/
icons/pdf_icon.gif.
Se optar por outra imagem para o PDF,
edite o seu tamanho para 16px X 16px
Figura 13 - Reinicie o serviço de busca através do prompt
de comando
Files\Microsoft
Shared\Web
Server
www.codificandomagazine.com.br
Dez / Jan - 10/11
Codificando.net e-magazine
1. Grave o ícone PDF na pasta de
imagens:
“C:\Program
Files\Common
Fernanda Saraiva.
Analista de Sistemas, com foco em
ambientes colaborativos de gestão,
liderando equipes de desenvolvimento em SharePoint, WSS e Project.
MCTS e membro do MCPBrasil.com,
parceira da Microsoft, como Gerente de Projetos.
Organizadora do evento e mantenedora do site
www.MSTECHDAY.com, participa também como palestrante de tecnologias da plataforma Microsoft, com foco EPM e Sharepoint. Atua em
treinamentos empresariais e consultoria em portais
colaborativos.
Membro da Comunidade MCPBrasil.com e influenciadora Microsoft, colabora regularmente com
fóruns como Technet e MSDN (Sharepoint / EPM).
Mantém o site www.fernandasaraiva.com.br e
pode ser encontrada no twitter @fefesaraiva.
|
18
e-magazine
Codificando.net e-magazine
www.codificandomagazine.com.br
Dez / Jan - 10/11
|
19
e-magazine
Como funciona o Windows Azure
– O Hypervisor
Por: Elemar Júnior
Introdução
Windows
Azure
representa
uma
alternativa
bastante
vi{vel
para
desenvolvimento para Cloud. Se você
ainda não sabe nada sobre o assunto, não
perca tempo!
Este artigo trata dos internals do Windows
Azure. Isso significa que não pretendo
demonstrar como escrever código para ele.
Este artigo dever{ ser apenas o primeiro
de muitos que pretendo escrever sobre este
tema. Especificamente nesse artigo, quero
falar sobre um dos elementos mais
importantes da arquitetura do Windows
Azure: o Hypervisor.


Boa parte do que você vai ler aqui vêm
dessas fontes. Obviamente, adiciono
minhas considerações (e é nesses pontos
que devem estar os prov{veis desvios
que você encontrar{ aqui).
Codificando.net e-magazine
Por onde eu comecei e o caminho que
percorri…
O Windows Azure é uma tecnologia
inteiramente nova. Consequentemente,
poucas pessoas fora da Microsoft possuem
conhecimento
sólido
de
seu
funcionamento. Definitivamente não estou
entre elas! Sou um estudante e como tal
utilizo diversos recursos para aprender.
Dentre os recursos que recomendo estão:

partida o do Ot{vio Pecego.
Site do Azure: www.azure.com
Livros

Pro Azure Services Platform

Developing Applications for
the Cloud

Programming Windows Azure

Windows Azure Platform

Building applications in the
Cloud: Concepts, Patterns
and Projects
Por que considero importante saber
como o Azure Funciona?
Sempre que me deparo com uma nova
tecnologia, considero importante separar
seu estudo em três partes. Observe:
Blogs

H{ v{rios, mas gostaria de
recomendar como ponto de
Figura 1 - Espaços de estudo para
www.codificandomagazine.com.br
Dez / Jan - 10/11
|
20
Como funciona o Windows Azure – O Hypervisor
H{, obviamente, o estudo de como
escrever código usando a nova
tecnologia. Com relação ao Windows
Azure, h{ um grande número de fontes
que podem mostrar como isso funciona.
Em outro extremo, estão |s informações
sobre como a tecnologia funciona, os
internals.
Penso que usar uma tecnologia sem
entender como ela funciona é como lutar
sem conhecer o campo de batalha. Se
você quer construir uma aplicação com
performance superior ou deseja entender
um
comportamento
estranho,
compreender como as coisas funcionam
por baixo do capô pode ser a diferença
entre vencer ou perder a batalha.
Penso que mesmo que não tenha uso
direto para uma tecnologia, ter algum
conhecimento sobre como as coisas
funcionam pode ser divertido. Para um
bom arquiteto, pode representar insights
interessantes.
Nessa representação, as camadas mais
externas são aquelas com as quais temos
mais contato quando codificamos. J{ as
mais internas são aquelas mantidas sob
controle mais rígido da Microsoft. Com
mais detalhes, percebemos que:




Figura 2 - Organização do Azure
O hardware, no centro da
representação acima, é mantido pela
Microsoft em diversos data centers
espalhados em todo o mundo.
Alguns desses data centers “rodam”
o Azure;
Cada m{quina do datacenter
executa um hypervisor otimizado e
ajustado para seu datacenter, bem
como para o hardware que formam
essas m{quinas. O hypervisor não
tem um nome oficial (até onde eu
saiba). Entretanto, é prov{vel que
você o veja com o nome Windows
Azure Hypervisor. A coisa mais
importante para lembrar aqui é que
não se trata do Hyper-V.
O agrupamento das m{quinas nos
data centers para o Azure é
gerenciado por uma aplicação
massivamente distribuída chamada
“Fabric”. O Fabric gerencia o
hardware, os sistemas operacionais
nos computadores e as aplicações
rodando nessas m{quinas. Essas
aplicações, por sua vez, podem
utilizar todos os serviços que o
Windows Azure oferece;
H{ muitos desses Fabrics rodando
em
diferentes
localizações
geogr{ficas. Quando distribuímos
uma aplicação, ou quando criamos
uma conta de armazenamento,
escolhemos
quais
dessas
localizações desejam que seja a
hospedeira.
www.codificandomagazine.com.br
Dez / Jan - 10/11
Codificando.net e-magazine
O que h{ para ser visto?
Windows Azure é uma plataforma
complexa e multicamada. É uma
combinação de hardware e software,
separados em diversas camadas lógicas,
instalados fisicamente em datacenters
presentes em diferentes localidades.
Passei a entender melhor o Windows
Azure a partir de uma representação
proposta
no
livro
Programming
Windows Azure. Observe:
e-magazine
|
21
Como funciona o Windows Azure – O Hypervisor
Como j{ foi dito, meu foco principal hoje
é o Windows Azure Hypervisor.
poder computacional. Ainda assim,
penso que a analogia com SO seja um
pouco forçada.
Uma palavra sobre os datacenters
Os datacenters são os “palcos” onde toda
a ação Azure acontece. Windows Azure é
executado em diversos datacenters da
Microsoft ao redor do mundo. Como
qualquer outra grande companhia que
mantém datacenters, a Microsoft mantém
certo mistério sobre eles.
O primeiro Datacenter da Microsoft foi
montado em setembro de 1989.
Localizado no campus da Microsoft, em
Redmond, est{ muito abaixo dos
datacenters que rodam os serviços online
da Microsoft hoje em dia.
A Microsoft não revela o número exato de
datacenters que possuí (brincam dizendo
algo em torno de 10 e 100). Além disso, a
Microsoft não fala sobre a localização
exata desses datacenters.
Até onde se sabe, esses datacenters
atendem a uma diversidade de propósitos
e não somente rodar o Azure.
Cada um dos datacenters é escal{vel,
mas, ao mesmo tempo, são montados
para serem ecologicamente corretos.
Quase toda energia consumida provem
de hidroelétricas o cooling quase sempre
ocorre com {gua recicl{vel.
Codificando.net e-magazine
Afinal, o Windows Azure é um sistema
operacional?
Ouvi dezenas de vezes a afirmação de
que o Windows Azure é o sistema
operacional
para
nuvem
da
Microsoft. Essa analogia é útil para
explicar a coisa para pessoas não
técnicas.
Entretanto,
confunde
desenvolvedores que imaginam que h{
um
novo
sistema
operacional
espalhando nos datacenters da Microsoft
executando seus aplicativos.
É importante destacar que essa analogia
é um pouco forçada. Se nós
conceituarmos um sistema operacional,
veremos que uma de suas tarefas mais
importantes é gerar alguma abstração do
hardware para os aplicativos que
executa. Ou seja, no lugar do
desenvolvedor ficar preocupado com
especificações do hardware, pode
escrever código para uma API genérica e
deixar o sistema cuidar dos detalhes.
Nesse sentido, o Azure é um sistema
operacional, pois ele abstrai o hardware
do datacenter.
Entretanto, a analogia acaba aqui.
Windows Azure não é um sistema
operacional de verdade. O Sistema
operacional que roda nossos códigos no
nuvem (diretamente) é o Windows
Server 2008 (ou melhor, algo bem
parecido).
Importante: Sim, a infraestrutura do
Azure orquestra a execução de
aplicativos (Azure não é apenas
armazenamento). As roles funcionam
como agentes operativos que permitem
a execução de atividades complexas de
forma paralela resultando em grande
e-magazine
Por que um Hypervisor?
Sabendo sobre os datacenters que fazem a
m{gica do Azure acontecer, a próxima
questão obviamente recai sobre como os
sistemas operacionais executam nas
m{quinas<
Uma an{lise mais simples poderia
conduzir a ideia de instalar uma inst}ncia
do Windows Server 2008 diretamente em
cada computador. A propósito, esta é a
www.codificandomagazine.com.br
Dez / Jan - 10/11
|
22
e-magazine
Como funciona o Windows Azure – O Hypervisor
Figura 3 - Hypervisor coordena as
VMs
Para criar e manter diversas m{quinas
virtuais em uma única m{quina física, um
pequeno software chamado hypervisor é
usado. Esse software é respons{vel pela
alocação justa de recursos entre as
m{quinas virtuais. É o hypervisor que
agenda o tempo da CPU e as requisições
de I/O, além de prover isolamento entre
as diversas m{quinas virtuais.
Na representação acima, o Hypervisor
opera como uma balança que equilibra os
recursos entre diversas m{quinas virtuais.
Como programas Hypervisor interferem
na execução dos sistemas operacionais
convidados
Para executar suas atividades de forma
eficiente, o hypervisor precisa contar com
o suporte do hardware.
Um processador x86/x64 oferece quatro
níveis de privilégio chamados Rings,
sendo o Ring 0 o mais poderoso e o Ring
3 o mais restrito.
Todos os sistemas operacionais modernos
utilizam esse conceito rodando o kernel
(coração do sistema operacional) em Ring
0, e todos os demais aplicativos no Ring 3.
Por exemplo, no Windows, o ntoskrnl.exe
(o “Sistema” no TaskManager) executa no
Ring 0 junto com todos os drivers.
Quando um código executando em Ring 3
precisa executar uma operação com alto
privilégio, precisa executar uma transição
www.codificandomagazine.com.br
Dez / Jan - 10/11
Codificando.net e-magazine
forma como muitas empresas executam
aplicativos em seus datacenters hoje em
dia. Entretanto, h{ pelo menos dois
problemas com essa abordagem:
1.
Compartilhamento de recursos
2.
Migração de cargas de trabalho
Executar
sistemas
operacionais
diretamente sobre o hardware implica
em esse ter o controle total da m{quina.
Em outras palavras, para cada aplicação
rodando no datacenter, um computador.
Isso faz pouco sentido se pensarmos que
poderemos estar dedicando m{quinas
potentes com muitos gigabytes de RAM
para websites com quase nenhum
acesso.
Outra implicação é a impossibilidade de
mover aplicações e cargas de trabalho
facilmente. Se um Website A estivesse
com baixa demanda e um Website B
estivesse sob stress, não seria f{cil, nem
r{pido,
dar
parte
do
poder
computacional da m{quina que est{
hospedando o Website A para o Website
B.
A solução que vem sendo repetidamente
apontada para esses problemas é a
virtualização. Ou seja, a capacidade de
manter diversos sistemas operacionais
convidados rodando simultaneamente
em um mesmo computador, sob o
controle de um sistema operacional
hospedeiro. Cada sistema operacional
convidado vê uma m{quina inteira
(chamada m{quina virtual), e é
completamente desinformado quanto |
existência
de
outros
sistemas
operacionais. Estas m{quinas virtuais
compartilham os recursos da m{quina
real.
|
23
Como funciona o Windows Azure – O Hypervisor
para o Ring 0.
e-magazine
sejam executada de forma “justa e
equilibrada”.
Figura 4 - Código execut{vel e o
processador
Os Rings 1 e 2 geralmente não são
utilizados.
Todo o cen{rio que descrevi ocorre na
execução de sistemas operacionais que
rodam diretamente na m{quina. Agora,
onde executaria o hypervisor se o Ring 0
j{ est{ comprometido com o sistema
operacional? Este problema foi resolvido
pela Intel e pela AMD pela inclusão de
um nível de privilégio inteiramente
novo chamado de “Root mode”, ou Ring
–1.
Assim,
todos
os
sistemas
operacionais podem operar de forma
normal entre os Rings 0 e 3.
Quando o processador reconhece que
uma instrução executada em uma
m{quina virtual precisa de um privilégio
maior para executar, transfere a
execução para o Hypervisor. Uma vez
que o hypervisor tem conhecimento de
todas as m{quinas virtuais (e seus
respectivos
sistemas
operacionais)
consegue garantir que essas operações
Codificando.net e-magazine
Figura 5 - Nível adicional de
permissão para o Hypervisor
Conversando
com
o
Hypervisor:
Hypercalls e Enlightenments
Sabemos como um sistema operacional
normal roda sob o hypervisor. Entretanto,
digamos que os criadores de sistemas
operacionais soubessem dessa condição
antes de funcionar.
Sistemas operacionais convidados podem
se comunicar com o hypervisor onde
estão sendo executados através de um
mecanismo chamado hypercall. A relação
entre o sistema operacional convidado e o
hypervisor é bem semelhante ao que
ocorre entre código em user-mode e
kernel. Da mesma forma que um processo
pode chamar uma API para conseguir
acesso direto para algum recurso, o kernel
de um sistema operacional convidado
pode invocar um “hypercall” que
resultar{ em alguma execução no
Hypervisor.
Um enlightened kernel é aquele que usa
hypercalls para se comunicar com o
Hypervisor de forma a obter algum
ganho de performance. Esses kernels
conseguem desempenho superior a
outros que não contam com esse recurso.
O Hypervisor do Windows Azure
O que foi tido até aqui é verdadeiro para
todos os hypervisors presentes no
mercado hoje. O hypervisor do Windows
Azure foi projetado por Dave Cutler (um
dos pais do Windows NT). O hypervisor
do Azure foi projetado com três
princípios em mente: Ser r{pido, pequeno
e fortemente integrado com o kernel.
Projetado para ser o mais eficiente
possível, foi desenvolvido de forma
otimizada primando por execução em
www.codificandomagazine.com.br
Dez / Jan - 10/11
|
24
Como funciona o Windows Azure – O Hypervisor
Como o Windows Azure Hypervisor
funciona?
O Hypervisor divide o sistema em
múltiplas
m{quinas
virtuais
ou
partições. Aplicações executam sempre
em partições, cada uma delas executando
uma inst}ncia independente de um
sistema operacional. Uma partição tem
visibilidade apenas sobre um espaço de
endereçamento, mas não possui acesso
direto para o hardware.
Quando o sistema inicia uma partição
especial é iniciada, a host partition. Esta
partição é especial de diversas formas. É
ela que tem acesso completo a operações
de I/O, memória física, e todo o hardware.
Ela executa operações criticas e é usada
para executar todos os acessos a
dispositivos usando drivers padrões do
Windows.
No Windows Azure Hypervisor todos os
dispositivos tratados pelas partições são
interceptados
pelo
hypervisor
e
encaminhados para a host partition. Em
grande parte, é assim para que não seja
necess{ria nenhuma escrita de driver
especial para o Hypervisor.
Codificando.net e-magazine
hardware sempre que possível. Por estar
rodando em ambientes controlados, é
otimizado para o hardware presente nos
datacenters da Microsoft.
No Windows Azure, o kernel dos
sistemas operacionais convidados são
claramente
otimizados
para
o
hypervisor. Isso significa que eles
contem dezenas de enlightenments.
Windows Azure Hypervisor e o HyperV não são a mesma coisa
A Microsoft lançou um Hypervisor,
chamado Hyper-V, com o Windows
Server 2008. H{, frequentemente,
confusão sobre as diferenças do Hyper-V
e o Windows Azure Hypervisor, sendo
que alguns artigos assumem que eles
sejam o mesmo.
Na verdade, ambos foram construídos
com propósitos bem diferentes. HyperV é distribuído como parte do Windows,
por isso, precisa ser suportado por uma
ampla variedade de hardware e
necessidades. O Windows Azure
Hypervisor executam somente nos
datacenters da Microsoft e são
otimizados especificamente para o
hardware onde o Windows Azure
funciona.
Como esperado, dois produtos similares
de
uma
mesma
companhia
compartilham código e design. Acredito
que no futuro novas funcionalidades
incluídas
no
Windows
Azure
Hypervisor serão implementadas no
Hyper-V, e vice-versa.
e-magazine
Figura 6 - Hypervisor usa uma VM para
operações de IO
O “routing” das chamadas de I/O
ocorrem através da Virtual Machine Bus
(VMBus). Um sistema operacional
convidado, sem enlightenments, poderia
ingenuamente
executar
diversas
operações de acesso a hardware para
execução de uma única operação lógica.
Isso envolveria muitas transições entre o
convidado e o hypervisor e, finalmente a
partição host. Para evitar esse problema,
cada sistema operacional convidado no
Windows Azure tem uma pilha, que pega
algumas operações dos device drivers nos
www.codificandomagazine.com.br
Dez / Jan - 10/11
|
25
Como funciona o Windows Azure – O Hypervisor
guest e encaminha pela VMBus para o
sistema operacional host. Isso garante
ganho de performance.
Qual sistema operacional executa nosso
código no Windows Azure?
Mesmo com toda essa discussão sobre
sistemas
operacionais
com
enlightenments e integração com o
Hypervisor, muitos desenvolvedores
estão apenas interessados em saber
sobre qual é o sistema operacional onde
seu código executar{. A resposta é
simples. Aplicações rodam no Windows
Server 2008 x64 Enterprise Edition. Bem,
quase isso<
A Microsoft chama de “Windows Server
2008-compatible”, pois esse sistema é
Windows Server em quase todos os
sentidos, exceto pelo fato de que
ocorreram alterações de baixo nível para
aperfeiçoar o funcionamento com o
Hypervisor. Entretanto, aplicações não
conseguem perceber isso.
e-magazine
Elemar Rodrigues Severo Júnior,
31
anos
(@elemarjr).
Arquiteto-chefe e Pesquisadorchefe
na
Procad
(www.procad.net
/
http://
galeria.promob.com.br
).
Gerente
de
P&D.
Est{
nessa
empresa
h{
13
anos.
Começou a estudar computação aos 9 anos,
aos 13 começou a ministrar cursos de programação. Programou com linguagens como:
Basic, C, Assembly, C++, Java, C#.
Destacado como autoridade em Computação
Gr{fica, sobretudo OpenGL. Fez parte do
time de desenvolvimento de produtos de larga distribuição (Promob tem mais de 60mil
licenças em 35 países). Seus interesses atuais
Concluindo
Codificando.net e-magazine
O Windows Azure é uma robusta
plataforma de hardware e software
capaz de prover uma real alternativa de
PaaS.
A forma como as m{quinas virtuais
operam, bem como a estrutura de seu
hypervisor
deixam evidente o
compromisso da Microsoft com a
escalabilidade e confiabilidade. Além do
Hypervisor, h{ toda a estrutura do
Windows Fabric. Entretanto, esse é um
bom tema para um próximo artigo.
www.codificandomagazine.com.br
Dez / Jan - 10/11
|
26
e-magazine
Codificando.net e-magazine
www.codificandomagazine.com.br
Dez / Jan - 10/11
|
27
e-magazine
SharePoint 2010 - Administração Avançada com
PowerShell
Por: Fabian André Gehrke
Introdução
O Windows PowerShell™ é um shell
de linha de comando e linguagem de
script, baseado em tarefas, criado
especialmente para a administração de
sistemas. Criado em uma estrutura .NET,
o Windows PowerShell™ ajuda os
profissionais de TI a controlar e
automatizar a administração do sistema
operacional Windows e de v{rias
tecnologias Microsoft que são executados
em Windows, como: Microsoft SharePoint
2010,
Active
Directory,
Microsoft
Exchange Server e outros diversos
produtos da Microsoft.
Objetivos da administração por script:

Importante: grande parte dos novos
recursos do SharePoint 2010 não possui
suporte ao STSADM.EXE, essas tarefas
devem ser feita via PowerShell. A
tendência é a descontinuação do
STSADM e centralização das funções no
PowerShell.
Por
enquanto
o
STSADM.EXE continua funcionando para manter a compatibilidade com versões
anteriores do SharePoint.
De qualquer maneira, todos os
recursos que j{ eram feitos no
STSADM.EXE, continuam funcionando
no SharePoint 2010.
O PowerShell 2.0 e os CMDLETS do
SharePoint j{ são ativados/instalados
durante a instalação dos pré-requisitos
do SharePoint 2010, por isso não é
necess{rio se preocupar com essa etapa.
www.codificandomagazine.com.br
Dez / Jan - 10/11
Codificando.net e-magazine
Nem todas as funções estão
implementadas na interface, por isso
muitas vezes é necess{rio o
agendamento por script, j{ que
algumas
dessas
funções
não
possuem
agendamento
pela
interface;

Possibilidade de gerenciar serviços
remotamente;

E a gravação de funções prédefinidas, ou seja utilização de
comandos em lote. Ao invés de
utilizar v{rias tarefas pela interface
podemos criar um script que
executa v{rias tarefas de uma vez.
O Microsoft SharePoint não foge dessa
regra, nas versões anteriores ele possuía
um utilit{rio de linha de comando, o
STSADM.EXE, que é utilizado para a
administração do servidor SharePoint e
da Farm. Com ele tarefas de
administração poderiam ser executadas e
agendadas em v{rios servidores.
Com a evolução da tecnologia,
principalmente do PowerShell, v{rios
produtos da Microsoft estão vindo com
suporte cada vez maior em relação |
administração via script. O Microsoft
SharePoint não poderia ser diferente, na
versão 2010 veio com uma Shell de
gerenciamento exclusiva para ele.
|
28
SharePoint 2010 - Administração Avançada com PowerShell
Curiosidade: Somente na versão 2007
que o SharePoint passou a contar com
administração via linha de comando, ele
introduziu o STSADM.EXE.
No decorrer do artigo vou mostrar
v{rios exemplos de scripts que podem ser
feitos para a administração do ambiente
SharePoint 2010.
Get-Help GetSPManagedAccount
Exibe o resumo do commando
Get-SPManagedAccount
Get-Help GetSPManagedAccount –
examples
Exibe exemplos do commando
Get-SPManagedAccount
Get-Help GetSPManagedAccount –detailed
Exibe informações detalhadas
sobre o comando GetSPManagedAccount
Get-Help GetSPManagedAccount –full
Exibe toda informação
disponível sobre o commando
Get-Help *ManagedAccount*
Exibe todos os commandos que
contém o conteúdo
“ManagedAccount” no nome.
O asterisco serve como coringa
indicando que deve procurar
comandos que possuem
“ManagedAccount” em
qualquer posição.
Introdução ao PowerShell
Get-Command: Exibe os cmdlets
Get-Command –Module Microsoft.SharePoint.PowerShell
Get-Command –Module Microsoft.SharePoint.PowerShell
().Count
Get-Command *
Exibe todos os
commandos do assembly
definido
Exibe o total de comandos
existentes no assembly. O
método Count retorna o
número de registros
retornados.
Traz todos os commandos
disponíveis.
Pipe “|”: O pipe é o agregador de
comandos, com ele podemos fazer
composições e executar um comando sobre
o resultado de outro comando, e assim
aninhar v{rios comandos. Como o
PowerShell retorna objetos nos comandos,
esses retornos podem ser utilizados para
outros procedimentos. Este é um recurso
fundamental para se ter produtividade com
PowerShell, é muito importante entender o
seu funcionamento.
Get-SPSite | Where {$_.Url –like
“*evento*”}
Get-SPWeb "http://
evento.azeroth.com" | Select Expand Lists | Select Title
Codificando.net e-magazine
Com
comandos
do
Windows
PowerShell, chamados de CMDLETS,
você
pode
executar
tarefas
de
gerenciamento da linha de comando. Com
provedores do Windows PowerShell, é
possível acessar armazenamentos de
dados, tais como o registro e o
armazenamento de certificados, tão
facilmente como são acessados arquivos
do sistema opercional. Além disso, o
Windows
PowerShell
possui
um
analisador de expressões rico e uma
linguagem
de
scripts
totalmente
desenvolvida.
Os CMDLETS seguem o mesmo padrão
de nomenclatura, formados por verbosubstantivo, também conhecidos como
formato ação-objeto. O substantivo é
sempre no singular.
Antes de iniciar os exemplos vamos
explicar alguns comandos b{sicos do
PowerShell que vão nos ajudar nos scripts
do SharePoint.
Get-Help: Exibe informações sobre comandos Windows PowerShell. Exemplos:
e-magazine
O comando Get-SPSite
retorna todos os sites do
servidor, utilizando o pipe
e o Where, retorna apenas
os sites que contém
“evento” na url.
Seleciona o site de
eventos e exibe o título de
todas as listas
Variáveis: as vari{veis no PowerShell
www.codificandomagazine.com.br
Dez / Jan - 10/11
|
29
SharePoint 2010 - Administração Avançada com PowerShell
não são fortemente tipadas, todos os
tipos são definidos em tempo de execução.
Para definir o tipo é preciso informar o
mesmo na atribuição do valor assim como
nos exemplos:
[string] $nome =
“Fabian”
$nome = “Fabian”
[int] $valor = 200
[double] $media =
$valor / 5
e-magazine
para administração do SharePoint.
Iniciando o PowerShell do SharePoint:
Variável do tipo string.
Variável com tipo dinâmico, ela se
ajusta conforme o conteúdo que lhe
form atribuída. Esta forma de
declaração de variáveis é muito
comum, já que muitas vezes nãos
nos preocupamos com o tipo de
retorno dos comandos.
Variável do tipo inteito, se definir
um valor tipo string irá retornar
erro.
Variável do tipo double
PowerShell no SharePoint 2010
Figura 2. Janela do Shell de Gerenciamento do SharePoint 2010.
Gerenciamento de aplicativos Web
Podemos gerenciar Web Applications utilizando PowerShell. Nos exemplos abaixo
temos dois cmdlets importantes para esta
tarefa.
Codificando.net e-magazine
Para fazer a administração do
SharePoint 2010 podemos utilizar o
PowerShell de duas maneiras, uma delas é
utilizando o PowerShell padrão do
Windows e chamando os objetos do
SharePoint – no SharePoint 2007 j{ era
possível fazer dessa forma, mas é
necess{rio carregar todos os assemblies do
SharePoint manualmente. E temos a outra
maneira que é utilizando a Management
Shell do SharePoint 2010, que facilita e
agiliza a vida do administrador. Neste
artigo iremos falar apenas do novo
mecanismo do SharePoint 2010.
Ao ser carregado o Management Shell j{
carrega tudo que é necess{rio para o
usu{rio executar scripts na farm do
SharePoint. Ele carrega um arquivo que
fica
no
diretório
do
SharePoint
(sharepointroot\config\powershell\registr
ation\sharepoint.ps1), sendo que este
mesmo arquivo é respons{vel por montar
o ambiente que j{ traz uma “conexão”
com a farm e carrega todos os CMDLETS
Figura 1. Abrindo o Shel de Gerenciamento do SharePoint 2010.
$nomeWebApp = "Site Artigo"
$nomePool = "Site Artigo"
$nomeServidorBanco = "add-cecred\sqlexpress"
$nomeBanco = "SiteArtigo"
$hostHeader = "evento.azeroth.com"
#Obtém a conta gerenciada configurada na Administração Central
$contaPool = Get-SPManagedAccount
"azeroth\sp_farm"
#Cria o web application com base nos par}metros
New-SPWebApplication -Name $nomeWebApp ApplicationPool $nomePool -ApplicationPoolAccount
$contaPool -DatabaseServer $nomeServidorBanco DatabaseName $nomeBanco -Hostheader $hostHeader
www.codificandomagazine.com.br
Dez / Jan - 10/11
|
30
SharePoint 2010 - Administração Avançada com PowerShell
O comando Get-SPManagedAccount
obtém a conta gerenciada configurada no
SharePoint.
O comando New-SPWebApplication é
respons{vel pela criação do Web Application, recebendo como par}metro as mesmas informações utilizadas na interface.
e-magazine
O comando Remove-SPSite é o respons{vel
pela exclusão da Site Collection.
Remove-SPSite -Identity http://
evento.azeroth.com -Confirm:$False
E para obter todas as Site Collections:
Get-SPSite
Para excluir uma Web Application:
Remove-SPWebApplication http://
evento.azeroth.com -Confirm:$False DeleteIISSite -RemoveContentDatabases
O comando Remove-SPWebApplication é
o respons{vel pela exclusão do WebApplication. Possui dois par}metros opcionais,
que definem se o site no IIS e a Content
Database serão excluídos. O PowerShell
possui duas constantes para definir os
valores true e false, são $true e $false respectivamente.
Para obter a lista de todos os Web Application o comando Get-SPWebApplication
pode ser utilizado. Se informarmos a Url
do site, apenas o site que corresponde a
ela ser{ retornado, conforme Fig. 03.
Figura 04: Listagem de todas as Site Collections da Farm.
Trabalhando com sites
Para criar um site dentro de uma Site Collection utilizamos o comando New-SPWeb:
#Template STS#0 é o templade de site de
equipe
New-SPWeb http://evento.azeroth.com/
PowerShell -template "STS#0" -Name "Site
criado pelo PowerShell" -AddToTopNav
O comando Remove-SPWeb é utilizado para remover o site, notem que primeiramente
Get-SPWeb http://evento.azeroth.com/
PowerShell | Remove-SPWeb confirm:$False
o site é obtido e em seguida é removido:
Método Get-SPSite lista todos os sites ex-
Codificando.net e-magazine
Get-SPSite http://evento.azeroth.com
| Select –Expand AllWebs
Figura 03: Listando os Web Application.
Gerenciamento de Site Collections
Este exemplo é utilizado para criar um novo Site Collection utilizando o comando
New-SPSite e informando os par}metros
url, name, owner e o template.
istentes no Site Collections.
Figura 05: Listagem de todos os sites da Site Collection
de Eventos.
$tituloSite = "Site Artigo"
$administrador = "azeroth\sp_farm"
#Templa de site em branco
$template = "STS#1"
$url = "http://evento.azeroth.com"
New-SPSite $url -OwnerAlias $administrador Template $template
www.codificandomagazine.com.br
Dez / Jan - 10/11
|
31
SharePoint 2010 - Administração Avançada com PowerShell
Gerenciamento de listas
Para exibir todas as listas que existem é
muito simples, basta obter o site e listar
todas as listas utilizando utilizando o comando Foreach.
(Get-SPWeb
evento.azeroth.com).Lists
{write-host $_.title}
|
http://
ForEach
e-magazine
(Get-SPWeb http://
evento.azeroth.com/).Lists
["Palestrantes"].Delete()
Gerenciamento de Conteúdo
A sequência de comandos abaixo é utilizada para listar os itens de uma lista. Ele utiliza v{rios pipes para simplificar sua utilização. Primeiro obtém o site, depois expande para o nível de listas, seleciona a lista
que tenha o título Palestrantes, expande para o nível de itens e exibe o título de todos
os itens.
Get-SPWeb http://evento.azeroth.com |
Select -expand Lists | Where{$_.Title eq "Palestrantes"} | Select -expand
Items | Select Title
Figura 06: Criação da lista.
Para criar uma lista customizada, o
script abaixo pode ser utilizado:
$web = Get-SPWeb "http://
evento.azeroth.com/"
$template = $web.ListTemplates["Custom
List"];
$listaGuid = $web.Lists.Add("Palestrantes",
"Lista de cadastro de palestrantes", $template);
$lista = $web.Lists.GetList($listaGuid,
$true);
$lista.OnQuickLaunch = $true;
$lista.Update()
$web.Lists | ForEach {write-host $_.title}
$web.Dispose()
Para excluir uma lista:
$conteudo = "O conteúdo deste documento foi
preenchido pelo PowerShell"
$stream = new-object System.IO.MemoryStream
$writer = new-object System.IO.StreamWriter
($stream)
$writer.Write($conteudo)
$writer.Flush()
$webUrl = "http://evento.azeroth.com"
$listaDocumentos = Get-SPWeb http://
evento.azeroth.com | Select -expand Lists |
Where {$_.Title -eq "Documentos Compartilhados"}
$listaDocumentos.RootFolder.Files.Add
("DOcumento PowerShell.txt", $stream, $true)
Codificando.net e-magazine
Ao colocar o Get-SPWeb entre parênteses, podemos chamar métodos ou propriedades do objeto SPWeb. No exemplo est{
sendo utilizada a propriedade lists, que
retorna todas as listas do site. Com a ajuda
do pipe o comando foreach é utilizando
sobre a coleção de listas do site, depois exibe o título de todas as listas. Esse é um
dos grandes poderes do pipe, executar
v{rios comandos a partir de uma linha de
script.
Para adicionar um documento a uma biblioteca de documento podemos utilizar o
script abaixo. Ele cria um documento tipo
texto, escreve o conteúdo e carrega no site.
Para editar um item específico de uma lista:
$listaDocumentos = Get-SPWeb http://
evento.azeroth.com | Select -expand Lists |
Where {$_.Title -eq "Palestrantes"}
$item = $listaDocumentos.GetItemByID(2)
$item["Title"] = $item["Title"] + " alterado
pelo PowerShell"
$item.Update()
Backup
O SharePoint 2010 possui v{rias formas de
fazer backup, entre elas estão: backup pela
Administração Central, STSADM, SQL
Server e pelo PowerShell – o qual iremos
www.codificandomagazine.com.br
Dez / Jan - 10/11
|
32
SharePoint 2010 - Administração Avançada com PowerShell
mostrar em seguida.
Para listar todos os itens que estão No
backup da farm usamos o comando Backup-SPFarm com o par}metro –ShowTree:
e-magazine
é o Path, que é o endereço do arquivo em
que o backup ser{ armazenado.
Figura 08: Execução do Backup
Para ver o histórico do backup é usado o
comando Get-SPBackupHistory passando o
diretório dos backups.
Figura 07: Mostra o conteúdo do backup da farm.
Backup-SPFarm -BackupMethod Full directory "C:\Backup SharePoint\" BackupThreads 3 –Verbose
Para fazer o backup de um site collection podemos utilizar o comando BackupSPSite, um dos par}metros obrigatório é o
Identity, que é a Url da Site Collection.
Mas se utilizarmos o Get-SPSite em conjunto com o pipe não precisamos passar o
par}metro. O outro par}metro obrigatório
Trabalhando com a Lixeira
Para exibir todos os itens da lixeira do site
é necess{rio obter a coleção de sites com o
comando Get-SPSite e depois chamar o objeto da lixeira RecycleBin. No exemplo abaixo
somente o ID e o título dos itens são exibidos:
(Get-SPSite http://evento.azeroth.com).RecycleBin
Select ID, Title
|
Codificando.net e-magazine
O comando Backup-SPFarm é utilizado
para executar o backup completo da Farm, alguns parâmetros que podem ser utilizados:

BackupMethod permite selecionar o tipo
de backup, que pode ser completo ou
diferencial;

Directory: é o local onde o backup será
salvo;

BackupThread: é o número de threads
que serão utilizadas para fazer o backup
e passando o parâmetro. Quanto mais
threads utilizadas mais bancos estão sob
backup ao mesmo tempo. Máximo de 10
threads.

Verbose: o log do backup será exibido na
tela, se esse parâmetro não for passado o
backup será feito e o usuário não poderá
ver o progresso do mesmo.
Figura 09: Histórico do backup
Figura 10: Visualização da RecycleBin do site.
Para restaurar algum item da lixeira o commando Restore pode ser executado a partir
do objeto RecycleBin passando por par}metro o ID do item excluído.
(Get-SPWeb http://
evento.azeroth.com).RecycleBin.Restore
("3cfd8f67-8457-491d-af0a-ecec3b635c0c")
Para acessar a lixeira da Site Collection é
necess{rio substituir o comando Get-SPWeb
por Get-SPSite, os outros métodos e
par}metros são os mesmos.
www.codificandomagazine.com.br
Dez / Jan - 10/11
|
33
e-magazine
SharePoint 2010 - Administração Avançada com PowerShell
Outras tarefas administrativas
O comando Get-SPAlternateUrl retorna
todos os mapeamentos do Web Application:
Get-SPAlternateUrl http://evento.azeroth.com
Para mudar a porta da Administração
Central,
o
comando
SetSPCentralAdministration pode ser utilizado, para isso é necess{rio passar o
par}metro “Port” com o número da porta:
Agora, com o Management Shell que j{
vem na instalação do SharePoint 2010, a execução de scripts ficou muito melhor com
recursos como execução de tarefas em lote,
agendamento de tarefas, reaproveitamento
de funções – visto que o script feito uma vez
pode ser reutilizados v{rias vezes, ao invés
do administrador precisar utilizar a interface repetidamente.
Referências
SharePoint 2010 Products administration by
Set-SPCentralAdministration
Confirm:$False
-Port
5555
-
using Windows PowerShell
http://technet.microsoft.com/en-us/library/ee806878.aspx
O comando Get-SPDatabase retorna todas
as bases de conteúdo da farm:
About Windows PowerShell
http://technet.microsoft.com/en-us/library/dd315275.aspx
Install SharePoint Foundation 2010 by using Windows
PowerShell
http://technet.microsoft.com/en-us/library/cc752946.aspx
A guide to PowerShell’s Advanced Functions
Figura 11: Visualização de databases da farm
Utilizando o comando Get-SPProduct
mostra detalhes sobre qual produto SharePoint est{ sendo utilizado, no caso o
SharePoint Foundation:
http://huddledmasses.org/a-guide-to-advanced-functions/
SharePoint 2010 PowerShell Cmdlets Reference
http://dmitrysotnikov.wordpress.com/2009/10/19/
sharepoint-2010-cmdlet-reference/
Codificando.net e-magazine
Figura 12: Produto SharePoint instalado
Considerações Finais
O PowerShell é a solução de administração de ambiente com scripts que est{
evoluindo cada vez mais na plataforma
Microsoft, ele torna a tarefa de administrar ambientes muito mais produtiva. O
seu uso no SharePoint trouxe novas possibilidades que até antes do SharePoint 2010
não existiam.
Fabian André Gehrke
([email protected]):
Graduado em Sistemas de
Informação e pós-graduado
em Gestão de Desenvolvimento de Software. Atua em desenvolvimento de sistema h{ 10 anos e a 2 se
dedica a implementação e customizações de portais corporativos com
SharePoint. É MCTS em WSS 3.0, MOSS
www.codificandomagazine.com.br
Dez / Jan - 10/11
|
34
e-magazine
Ferramenta de desenvolvimento
auxilia o programador .NET
Por: Pablo Hadler
Introdução
Figura 1 - Tela Inicial de Solução do GASweb
Vamos montar um pequeno exemplo de
aplicação CRUD neste artigo usando um
banco de dados j{ existente que pode ser
baixado
do
CodePlex
http://
chinookdatabase.codeplex.com/
este
banco serve como alternativa ao famoso
Northwind para demonstrações.
Veja na figura 2 a tela de importação de
banco de dados no GASweb.
Codificando.net e-magazine
Todo programador .NET usa e abusa do
Visual Studio como sua IDE principal, e
todos sabemos das inúmeras vantagens de
usar esta IDE.
Porém existem algumas coisas que uma
boa ferramenta para desenvolvimento de
aplicativos pode ajudar e muito. E é sobre
isso que vamos tratar neste artigo.
O GASweb é uma IDE de desenvolvimento que pode ser utilizada em conjunto
com o Visual Studio e que vai aumentar
bastante a produtividade dos programadores .NET , aplicações com CRUD,
SITES, INTRANET podem ser desenvolvidas rapidamente usando esta ferramenta.
Ao criar uma nova solução no GASweb
você ver{ uma tela como mostra na figura
1.
No lado direito mostramos a {rvore da
solução que mostra os módulos que você
incluiu no lado esquerdo você tem algumas abas de controles como: Banco de dados, componentes, imagens etc..
Figura 2 - Importando um Banco j{ Existente para o GASweb.
www.codificandomagazine.com.br
Dez / Jan - 10/11
|
35
e-magazine
Ferramenta de desenvolvimento auxilia o programador .NET
Após importar um banco de dados para
dentro da IDE do GASweb você pode
manipular os objetos deste banco dentro
da própria ferramenta. Figura 3.
O interessante neste cen{rio também é
que caso você modifique algum campo
na IDE a ferramenta j{ identifica a mu-
Na p{gina principal podemos ver como
ficaria nossa pagina default. Figura 5,
veja que j{ foi criado automaticamente
alguns controles nesta p{gina como
menu, toolbar, e foi aplicado um template
que pode ser customizado pelo desenvolvedor.
dança e propõe um script para corrigir/
atualizar o seu modelo físico no banco
existente aproveitando os dados j{ cadastrados.
Figura 5 - Página Principal
Vamos arrastar um modulo de p{gina de
dados para a nossa solução, uma pagina
de dados é um modelo de CRUD que o
desenvolvedor pode customizar e colocar
regras de negócio de forma muito simples, aumentando a produtividade em
situações rotineiras.
Figura 3 - Objetos do banco de dados
Codificando.net e-magazine
Na parte de módulos vemos que a ferramenta j{ criou alguns módulos padrões
que podem ser manipulados pelo desenvolvedor.
Figura 6
Ao criar o modulo de p{gina de dados,
você deve clicar para abrir na parte central as propriedades deste módulo, e assim definir as informações necess{rias para o funcionamento da p{gina. Você define, por exemplo, o nome da p{gina
Figura 4 - Pagina Principal
(ASPX), qual a tabela do banco de dados
ser{ usada e outras informações pertinentes ao módulo como mostra na figura 7.
www.codificandomagazine.com.br
Dez / Jan - 10/11
|
36
Ferramenta de desenvolvimento auxilia o programador .NET
e-magazine
Figura 7(propriedades de uma p{gina de dados)
Vamos agora definir o design desta pagina, você ter{ duas formas de fazer isso,
usar o modo autom{tico ou arrastar os
controles e definir suas propriedades.
No nosso caso eu usarei a forma autom{tica (CTRL+T) para criar esta tela,
baseada na tabela de banco de dados
definida para o modulo.
Clicando em qualquer controle você
Figura 9 (Regras de Negócio)
Depois de criar a p{gina de dados vamos
abrir nossa pagina principal e colocar
uma chamada no menu para a p{gina que
acabamos de criar.
pode ver as propriedades e redefinir
qualquer uma deles como: cores, fontes,
comportamentos.
Figura 10
Codificando.net e-magazine
Na aba eventos vamos fazer a chamada da página.
É possível ainda customizar comportamentos específicos criando seus próprios
códigos. Isso deixa o usu{rio totalmente
livre pra criar aplicações poderosas
usando a ferramenta.
Nesta mesma tela você define também
algumas regras de negócio como: validações, processos e lançamentos em
Figura 11
tabelas auxiliares.
www.codificandomagazine.com.br
Dez / Jan - 10/11
|
37
e-magazine
Ferramenta de desenvolvimento auxilia o programador .NET
Basicamente é isso que precisamos pra
gerar uma aplicação com CRUD usando
o GASweb, vamos gerar o código, abrir
no Visual Studio 2010 para rodar a nossa
aplicação.
mostrar como uma boa ferramenta de
geração de código pode ajudar você a
construir aplicações poderosas de forma
r{pida e usando o melhor da tecnologia
ASP.NET.
Você pode encontrar mais informações
em www.gasweb.com.br.
Pablo Hadler é analista programador da Gas Tecnologia,
graduado pela unisul em web
e programação, desenvolve aplicações
em ASP.NET , WPF, Silverlight , é
Na figura 13 visualizamos o código
MCP ASP.NET 3.5 e atua ativamente
gerado no Visual Studio.
na comunidade Microsoft no
@brasildotnet , @devbrasil e
@devgoias.
Codificando.net e-magazine
Vamos rodar essa aplicação agora e abrir
a nossa p{gina customer que criamos.
Bom a ferramenta tem inúmeros recursos que não seria possível descrever em
um único artigo, mas a ideia aqui foi
www.codificandomagazine.com.br
Dez / Jan - 10/11
|
38
e-magazine
Codificando.net e-magazine
www.codificandomagazine.com.br
Dez / Jan - 10/11
|
39
e-magazine
O que será de 2011?
Por: Alexandre Tarifa
Estamos acostumados aqui no
Brasil nesta época de começo
de ano a ver na TV, jornais,
sites, etc diversas pessoas
tentando adivinhar o futuro de diversas
formas... fé, milagre, crença, etc etc... Eu
particularmente não acredito muito nessas
teorias, mas respeito e muito quem acredita.
Mas o que isso tem a ver? Nesta coluna
pretendo “adivinhar” as tendências e
situações de 2011... Claro que é uma
brincadeira baseada em palpite e sorte
mesmo... Daqui um ano, veremos se fui
bem :)
Para mim 2011 ser{ um ano do “apagão” do
profissional de TI. O Brasil est{ crescendo
muito e o ano passado começou cheio de
dúvidas... Com isso os projetos começaram
com o freio de mão puxado e tenho certeza
que muitos projetos do ano passado
“sobraram” para este ano... Com isso, além
do amplo crescimento dos projetos em 2011,
teremos uma grande sobra de 2010.
Naturalmente a {rea de TI que j{ é
totalmente carente, ficar{ mais e mais... O
que acontecer{?


Contratação
de
profissionais
qualificados a preço de ouro ou
diamante
Contratação
de
profissionais


desqualificados com bons sal{rios (risco
da bolha)
Consultorias
“especializadas”
aparecendo a cada dia
Problemas, problemas e mais problemas
para contratar profissionais.
Arrisco-me a dizer então que é o ano de
investir nos profissionais atuais e na sua
“categoria de base”... Invista em programas de
est{gio, contrate garotos, arrisque com a
geração que est{ entrando ou prestes a entrar
na universidade.
Valorize os seus profissionais e os reconheça...
Se não alguém far{ isso por você. Se inspire
nas empresas de fora do Brasil que as pessoas
gostam de trabalhar como Google, Facebook,
Microsoft, etc e pare com essa besteira de
formalidades,
ambiente
de
trabalho
“ultrapassado”, etc.
Também acredito que 2011 ser{ o ano do
empreendedorismo entre os profissionais de
TI... Esse efeito ser{ causado principalmente
pelo grande crescimento do potencial de
negócio na internet... Lembre-se que aqui no
Brasil ainda engatinhamos e o potencial é
assustador.
www.codificando.net
Dez//Maio
Jan -2009
10/11
Abril
||
40
e-magazine
Os profissionais de TI vão se inspirar em
“Mark Zuckerber´s” e conseguirão ver que
conseguem usar o seu conhecimento para
gerar e criar negócios, startups, etc... E
muitos ganharão muito dinheiro com isso.
Claro que a formação de TI nossa é muito
deficiente no aspecto de negócio e
administração... Mas é para isso que existem
os grupos de investidores por ai para dar
essa possibilidade.
Para os profissionais de desenvolvimento,
eu acredito que este ano é o de investir
muito em conhecimento de internet... Tem
uma frase que repito a cada entrevista que
faço: “trabalhar com internet usa o mesmo
ASP.NET, o mesmo C#, o mesmo .Net
Framework... porém é um mundo 100%
novo”. Temos pouquíssimos profissionais
de desenvolvimento .Net preparados para
desenvolver sites... parece ridículo! Mas
desenvolver uma aplicação que milhares de
pessoas acessam, de diversos tipos de
navegadores, cidades, estados, países,
internet, etc etc etc pode ser muito mais
difícil do que sistemas com regras ultra
complexas.
nem ser{ o presente tão cedo, pois os preços
de devices e serviços como 3G por exemplo,
são dos mais caros do mundo... por isso uma
popularidade tão baixa.
2011 é o ano da oportunidade... o ano de
crescer, de pensar grande, de acreditar em
grandes ideias e projetos! Chega de pensar
pequeno, de trocar de emprego por R$ 500,00 e
deixar um sonho para tr{s! É o ano de arriscar!
De não desperdiçar ideias, de executar as
ideias... arregaçar as mangas e por no ar!
Nos momentos de lazer, o kinect est{ ai
como um device totalmente inovador, com um
custo acessível e com uma evolução muito
grande que pode ser aproveitada por nós
desenvolvedores... não pense no kinect só
como um vídeo game... pense grande! Por que
não usar a API dele e criar algo inovador?
Conclusão: 2011 é o ano de inovar! Apostar!
Colocar na pr{tica todas as ideias que j{
tivemos e deixamos no papel ou nos nossos
sonhos.
Feliz 2011
Acredito que também este ano ser{ um ano
para criarmos novas soluções pensando em
plataformas... twitter, facebook, kinect, etc...
em 2010 j{ vimos muitas coisas, mas creio
que este ano essa necessidade crescer{
muito... aquela frase conhecida “inicie uma
aplicação integrada ao Facebook e tenha 500
milhões de usu{rios”.
Em tecnologia, este ano de 2011
continuaremos dizendo que o celular é o
futuro... infelizmente aqui no Brasil não é
www.codificando.net
Dez//Maio
Jan -2009
10/11
Abril
||
41

Documentos relacionados