Voltando ao CEFET

27 de Agosto de 2008

Esse semestre já começa bem: só tenho duas cadeiras para pagar e obrigatoriamente deverei ir ao CEFET duas vezes na semana. Na verdade deveria ir três vezes, mas como um dos dias da semana só tem duas aulas, eu vou faltar esse dia e ainda assim terei o limite mínimo de presenças para terminar o semestre.

Na terça-feira eu estive por lá para a primeira aula de Programação de Sistemas Distribuídos. Foi aquela lenga-lenga de leitura de ementa, coisas que estão na ementa mas que talvez não sejam ensinadas e finalmente as viagens que sempre ocorrem com os professores. De cara, essa semana não haverá aula de PSD na quinta-feira porque Marília vai a Brasília fazer não-sei-o-quê.

Na quarta-feira a mesma coisa com Teoria dos Grafos, leitura de ementa e definição da forma de fazer as provas e trabalhos.

E fim-de-semana apartir da quarta-feira às 10h30. Estou me sentindo um deputado sem salário, hehehe.

Mudança de Endereço

10 de Agosto de 2008

Agora o blog responde também em http://cefet.sandromucio.com e dentro de algum tempo (ainda não resolvi quanto…) ele deve deixar de responder pelo http://tads.sandromucio.com. É uma questão de arrumação da casa, estou arrumando o servidor dos meus sites e achei mais conveniente que minhas coisas do CEFET fossem publicadas no nome da instituição e não no nome o curso. Dessa forma posso falar de mais pontos além do próprio curso.

Basicamente uma vontade de mudar, e mudanças já estão sendo feitas e não são somente no template do blog…

Instalando e usando o IIS com webservice em .Net

24 de Julho de 2008

*algumas imagens parecem distorcidas, mas click com o botão direito sobre a mesma e salve-a no seu computador. Elas estão assim porque o CSS do site obriga as mesmas a uma largura máxima para não destruir o layout do site, ok?

Atendendo ao pedido do mininu Geyson:

Vamos aos passos de instalação do IIS no windows XP (a versão home não funciona mesmo, mas da professional para frente, tudo beleza, ok?).

Primeiro precisamos ter o CD de instalação do XP. Vamos em adicionar e remover programas e clicamos em adicionar componentes na barra do lado esquerdo:

Adicionar componentes do windows XP

Dentro do assistente, é só marcar o “Internet Information Services” que ele fica semi-selecionado como na figura abaixo:

Componentes do Windows XP

Daí para o final da instalação é só ir apertando “Next” (Avançar) e o servidor começa a funcionar logo depois da instalação.

Bom, foi fácil até aqui e daqui até o final não vai ter muito o que se fazer também…

Temos o IIS instalado e se abrirmos o Internet Explorer ele vai responder facilmente ao endereço: “http://localhost/”. Para o FireFox você vai ter mais um trabalhinho porque ele não está integrado com o windows e o IIS vai dizer que você não está autorizado para ver as páginas. Bom, isso vai ficar para um outro texto, ok? Vamos em frente…

IIS instalado, vamos criar um diretório virtual. Vá em Iniciar, Configurações, Painel de Controle, Ferramentas Administrativas, Internet Information Services para poder abrir o acesso ao IIS.

Na árvore de diretórios do IIS, click com o botão direito em site da web Padrão, Novo, Diretório Virtual…

Diretório Virtual

Dê um nome para o diretório e escolha uma pasta no seu computador. Durante a criação, o IIS quer saber as permissões do diretório. Eu seleciono somente leituras e execuções de scripts de acordo com a imagem abaixo, mas se você vai fazer upload de arquivos no servidor deve permitir gravação também. Isso é uma brecha de segurança porque alguém pode enviar vírus pelo upload de arquivos se você não tratar o arquivo que vai chegar, mas para os projetos é necessário permitir upload, infelizmente.

Permissões de Acesso

Depois disso, seu diretório virtual passa a figurar na árvore do IIS. Click com o botão direito sobre seu diretório virtual e vá em propriedades:

Propriedades do diretório virtual

Vá na aba ASP.NET e selecione a versão 2.0 do .NetFramework.

versão do DotNet

Agora temos o IIS instalado, o diretório virtual criado e a versão do .Netframework definido. Precisamos registrar o usuário do ASP.NET no servidor IIS. Para isso vamos abrir o prompt de comando (Inciar;Executar;digitar ‘cmd’ e clicar Enter) e executar e registrador do usuário. Isso se faz necessário porque se você está instalando o IIS agora, provavelmente é porque já tem o Visual Studio instalado e descobriu agora que o IIS não está funcionando. Bom, estando no prompt de comando vamos entrar na pasta do Framework e executar o arquivo de registro do usuário no servidor:

registro de usuario no IIS

Agora já temos tudo funcionando? Falta publicar o site no diretório virtual.

Abra o Visual Studio e vamos abrir a solução do projeto. Solução aberta, click sobre a solução (ou sobre o projeto web) e escolha publish site. depois disso escolha Local IIS para abrir o assistente que vai lhe direcionar ao seu diretório virtual.

Local IIS

Pronto, o site está publicado e deve ficar acessível pelo endereço http://localhost/seudiretoriovirtual/

O Projeto Integrador

1 de Julho de 2008

Pessoal, estou escrendo aqui para explicar como eu pensei em fazer com o projeto integrador.

Seguindo os preceitos de usar camadas numa descrição de baixo para cima:

[Persistência] -> [Controle] -> [WebService] -> [Interface com o Usuário]

Teremos então:

[Banco] -> SQLServer 2005: Nice e Eliane estão fazendo mudanças na estrutura do banco para se adequar às necessidades delas. Acredito que vá funcionar para todos, mas estou esperando essa mudança (de acara achei muito valiosa as alterações).

[Controle] -> Classes em C#: Fiz o básico nas classes que eu criei com o banco que tínhamos até aqui. Listar dados, inserir dado, alterar dado e excluir dados. Claro que em todos os casos vamos precisar de mais que isso para fazermos nossos casos de uso, mas pelo menos isso já está feito de exemplo.

[WebService] -> Serviço em C#: Estou implementando apenas um Webservice para servir de exemplo. Sofri prá burro tentando usar os dados no consumidor do webservice, mas agora à noite consegui receber os dados e manipular sem problemas. Esse era meu maior problema, mas agora está sanado.

[Interface web com o usuario] -> ASP.Net com C#: Fiz um template seguindo o padrão que Eliane desenhou e implementou em html com css. Desse template criei uma página principal.Master que serve de modelo para todas as páginas que a gente precise usar. Depois, quando formos implementar a segurança do sistema, vamos criar outra página master com restrição de acesso para as páginas que precisarmos proibir acessos. Aí é só trocar o master das páginas que a gente precisar.

Bom, finalmente, vamos entender como a coisa funciona:

1 - Criei uma Solução com o Visual Studio e depois, dentro dessa solução, criei um projeto ‘class library’ que chamei de modelo.

2 - Na mesma solução, criei outro projeto ‘class library’ que chamei de Controle.

3 - Na mesma solução, criei um outro projeto ‘webservice’ e chamei de WebService.

4 - Finalmente criei outro projeto na mesma solução para um website dinâmico.

Assim, a solução ficou com essa árvore de diretórios:

Solution Explorer

No projeto Modelo eu criei as entidades com os Gets e Sets normais de qualquer atributo de uma classe. Vejam o modelo de Nivel:

Modelo Nível

Observem que criei duas classes no mesmo arquivo: uma class nivel e outra classe Niveis. Niveis é somente uma coleção de Nivel, ok?

Agora, eu criei a mesma class nivel no Projeto Controle para conter as regras de negócio, o controle da classe e as formas de salvar os dados no banco de dados. Vejam como ficou a classe dentro do projeto Controle:

Controle - Nivel

Primeira coisa que a gente observa é que o controle herda do modelo e assim a gente tem todos os métodos contidos no modelo. No início da classe eu criei uma string que vai funcionar em toda classe para acessar o banco de dados. Observe que ela não contém a string de conexão, mas uma referência para um registro no arquivo de configurações do projeto. Assim, eu nem preciso recompilar o projeto caso queira trocar o mesmo de banco de dados. Basta ir no XML de configurações do projeto e alterar a linha do arquivo que traz essa informação.

Depois eu declaro as ações necessárias ao CRUD. As outras ações necessárias podem ser acrescentadas criando novos métodos nessa classe de controle.

No WebService eu crio aquilo que eu quero que os clientes (programas que vão acessar o webservice) precisem para funcionar. Eu posso criar um webservice só para todo o sistema, mas é interessante que a gente publique cada caso de uso em um webservice diferente até porque aí a gente pode modificar somente o webservice que a gente quiser sem interferir nos demais.

Pronto, até aqui a gente fez a cozinha do sistema. Tudo bonito e funcional mas sem cara para o cliente.

Agora eu crio no projeto ComcursoConsumo um webform (eu usei o nome do caso de uso) para consumir o webservice. Nas referências desse projeto eu adiciono uma ‘web reference’. Observe para não tentar usar uma ‘reference’ que não seja web, porque não vai funcionar direito.

Adicionando Web Reference

Escolha a primeira opção que aparece na janela seguinte. Ela diz: “WebServices in this solution’

services in this solution

Com isso o próprio visual studio executa o webservice, ler os parâmetros do serviço e seta todas as situações para você. Fica fácil depois porque vc só tem que escolher os métodos que quer usar e dar um nome para a referência.

add reference

Finalmente clique em Add reference (depois de dar um nome mais fácil de entender que ‘localhost’ ) e pronto. Seu webservice já está referenciado na sua aplicação consumidora.

Ainda não acabou. Vamos ao formulário que vai chamar o webservice, consumir o serviço e finalmente mostrar os dados do webservice na página.

Primeiro, vamos criar uma nova página seguindo o principal.Master. Clique com o botão direito no arquivo ‘principal.Master’ e em seguida em ‘add content page’ :

Add content page

O Visual Studio já cria a página com os elementos colocados e travados, você só tem que cuidar de fazer o conteúdo. E esse vai ser feito pelo webservice, legal, não?

Vá arrastando os controles da ToolBox e colocando no Content Holder (não se preocupe que você não vai conseguir soltar em outro canto mesmo). Eu coloquei 3 textbox e um botão porque meu caso de uso precisa de 3 parâmetros para funcionar. Ficou assim:

Content Holder

Depois eu troquei o Text de cada um para refletir o que deveria ser escrito em cada um dos 3 campos e troquei o text do botão para ficar mais amigável. Abaixo desses controles, eu inseri uma GridView. Ficou assim:

Content Holder Final
Agora vem a programação propriamente dita. Dê dois cliques no botão ‘Criar Relatório’ e ele vai abrir o ‘Code Behind’ que vai capturar o evento de click do botão. Nesse evento o site vai solicitar ao webservice os dados que eu programar e colocá-los no gridview. Assim:

Evento click no Botão

Ei, mas que nome esquisito é esse? ComcursosConsumo.RelatorioAnalitico.LerRelatorio ???

Foi que eu criei o Projeto com o Nome de ComcursosConsumo, depois fiz a referência ao webService chamar-se de RelatorioAnalitico e finalmente fiz o método remoto se chamar de LerRelatorio. explicado? Então pronto.

Web Reference

Agora é só definir que o arquivo ‘LerRelatorioAnalitico.aspx’ é o arquivo inicial do projeto ‘Comcursosconsumo’ e setar o projeto como Projeto inicial da solução:

StartUp Project Start page

Agora é botar o bicho para rodar e testar. Boa sorte. o código disso tudo?

Aqui. O Projeto Completo

Ilza, nervosa, nos apresentou os seguintes Slides

23 de Maio de 2008

Normalização

Karaokê para surdo-mudo

18 de Abril de 2008


Só prá lembrar de Tia Danny (que saudades, hein!?)

17 de Abril de 2008

Segue um link para vocês darem uma lida sobre padrões web e coisa e tal. estou sem tempo de ficar toda hora entrando aqui e postando novidades porque minha agenda está lotada pelo CEFET. Então, para quem quiser lembrar como se faz um site com padrões e porque isso deve ser feito: http://www.plasmadesign.com.br/stupidtables/everything.html

Homenagem São-Paulina ao Flamengo…

13 de Abril de 2008



Num parece o Luciano Hulk, não??? Ou seria o Gabriel?

Aulinha de Barão

8 de Abril de 2008

No arquivo ZIP em anexo tem os scripts de estruturação do banco de dados já comentando os trechos de código que faz o SQL criar pastas no seu computador. Tem também o script do banco que coloca dados no banco para que você possa ver dados nas consultas que vamos criar e finalmente tem um arquivo de sql com as questões passadas na aula e as respectivas consultas em sql feitas para resolver as questões.

Aula de 08-04-2008

Célula Acadêmica Dot Net

3 de Abril de 2008

Dia 04 de abril de 2008 (sexta-feira) teremos uma reunião com todos os interessados em .Net no Audio-Visual às 8:50h no CEFET/RN.

O motivo é a apresentação do novo presidente e vice da célula e também uma apresentação do que é a célula, o .Net e o Visual Studio (a ferramenta de programação da plataforma .Net).

Conto com a presença de todos os interessados. Se você quer aprender a programar nessa plataforma, seja bem vindo…