Título de SD da Imagine Cup Brasil 2008 vem para Pernambuco

Pessoal, após ser avisado por nosso amigo Lucas Mello, que estava assistindo ao vivo a transmissão da final da Imagine Cup, entrei em contato com Renato Ferreira, da equipe Ecologix, finalista da Imagine Cup, e confirmei: a equipe de Renato, Carlos Eduardo ambos estudantes aqui do CIn, e dos irmãos Roberto e Eduardo Sonnino de São Paulo foi a campeã nacional com o projeto Ecologger. Eles irão para a França, no período de 3 a 8 de julho, representar nosso país nas finais mundiais. Acabou de sair notícia no Pernambuco.com também: http://www.pernambuco.com/ultimas/nota.asp?materia=2008528171602&assunto=196&onde=1 . Pelo que eu soube por Lucas também, a equipe de Daniel Ferreira, líder de nossa célula, ficou em terceiro lugar, um ótimo resultado!

Parabéns a todos, e lembrando que para que esta hegemonia do CIn e de Pernambuco permaneça, nós devemos nos espelhar nestas equipes e também nos dedicar muito para botarmos mais gente lá nos próximos anos!

Resta saber quando vai ser aquela festinha legal que rola no CIn em homenagem ao pessoal (aka Boca Livre!!!) ;)

UPDATE: notícia saiu no O Globo online, com foto do pessoal:

http://oglobo.globo.com/tecnologia/mat/2008/05/29/equipe_de_estudantes_ecologix_vence_etapa_brasileira_da_imagine_cup_2008-546555774.asp

Acessando dados com .NET

Primeiramente, gostaria de parabenizar todas as equipes pernambucanas que marcarão presença na final brasileira da Imagine Cup 2008, enfatizando o time Try IT no qual Daniel (líder da CIN.NET) faz parte!

Pois bem, meu principal objetivo nesse post é esclarecer como se faz acesso a dados com a plataforma .NET. E, para tal assunto, nada mais que conviniente tratar das tecnologias ADO.NET e LINQ.

O ADO.NET é um conjunto de classes que reúnem serviços de acesso a dados para a plataforma .NET. Ele é uma evolução do ADO(ActiveX Data Object). Sua integração com o Microsoft Visual Studio é total e também é acessível de qualquer linguagem da plataforma .NET.

Sua arquitetura é baseda na figura abaixo, na qual explicarei cada camada :

  • Providers do ADO.NET

Os provedores do ADO.NET são todos aqueles que estão no retângulo esquerdo da figura acima(.NET Framework Data Providers). Essa camada possui provedores especializados para acessar banco de dados de diferentes fornecedores, isso para garantir o melhor proveito da base em que se está trabalhando. Alguns dos providers que estão disponíveis são:

  • Provedor do SQL Server (System.Data.SqlClient)
  • Provedor do Oracle (System.Data.OracleCliente)
  • Provedor do OLEDB (System.Data.OleDb)
  • Connection

Essa é a camada que garante a conexão com o banco de dados. Sua principal propriedade é a string de conexão, que especifica a localização da fonte de dados; e seus principais métodos são Open e Close, usandos para abrir e fechar conexões, respectivamente. É nessa camanda que também ocorre todo o controle de transação. Alguns dos objetos de conexão são:

  • SQLConnection – Do provedor para o SQL Server
  • OracleConnection – Do provedor para o Oracle
  • OleDbConnection – Do provedor para o OleDb
  • Command

Essa camada é a responsável por receber instruções SQL e/ou Store Procedures. Assim como na camada connection, há um objeto command para cada provedor(SQLCommand, OracleCommand,etc) nessa camada. Seus principais métodos são:

  • ExecuteReader: retorna um DataReader, objeto usado para leitura de uma consulta feita na fonte de dados.
  • ExecuteScalar: usado quando o comando SQL retorna um único valor (Ex.: Quantidade de alunos de uma instituição)
  • ExecuteNonQuery: usado quando o comando SQL não retorna nenhum tipo de dado (Ex.: Atualizar os dados do aluno que possui número de cpf igual a 123456789-0). Além de aparentemente não retornar nada, esse método retorna a quantidade de linhas afetadas.
  • DataReader

É a camada usada para representar um conjunto de resultados SQL. Sua vantagem é a extrema rapidez de leitura de dados, porém não podemos modificar os resultados de uma consulta. E, como é uma camada pertencente aos providers, existe um objeto diferente para cada fonte de dados(SQLDataReader, OracleDataReader,etc). Seu principal método é o Read, usado para navegar no resultado da consuta.

Lembrando que até agora estamos trabalhando de forma conectada com o banco de dados. Para não ficar só na teoria, vai um exemplo de código:

  • DataAdapter

É a camada especializada em intermediar as requisições de acesso a dados da aplicação e o banco de dados. Ele encapsula comandos SQL e/ou Store Procedures para tal. Seus principais métodos são Fill e Update, responsáveis por preencher o DataSet(veremos no próximo tópico) e atualizar o banco de dados a partir de um DataSet, respectivamente.

  • DataSet

É a camada responsável por gerenciar dados previamente adquiridos por acesso a bancos de dados e/ou arquivos XML. Nessa camada há disposição de objetos que trabalham de forma desconectada ao banco. O resultado de um DataSet fica guardado na memória principal do sistema. A partir daí, podemos navegar, atualizar dados de uma consulta(ainda na mémoria) e, posteriormente, atualizar os dados no banco de dados. Um grande avanço nessa camada é a existência do DataSet Tipado. Através dele podemos detectar erros de nome em tempo de compilação. Segue dois exemplo de cógigo:

Usando DataSet Não Tipado:

SqlConnection conexao = new SqlConnection(“Data Source=MACEIO\\SQLEXPRESS”);
SqlCommand comando = new SqlCommand(“SELECT * FROM Cliente WHERE nome LIKE ‘l%’”,conexao);
conexao.Open();
SqlDataAdapter adaptador = new SqlDataAdapter(comando);
DataSet bancoDataSet = new DataSet(“Banco DataSet”);
adaptador.Fill(bancoDataSet,”Banco DataSet”);
foreach(DataRow row in bancoDataSet.Tables["Cliente"].Rows)
{
int id = Convert.ToInt32(row["id"]);
string nome = Convert.ToString(row["nome"]);
Console.WriteLine(“Cliente com id {0} e nome {1}”,id,nome);
}

Usando DataSet Tipado:


SqlConnection conexao = new SqlConnection(“Data Source=MACEIO\\SQLEXPRESS”);
SqlCommand comando = new SqlCommand(“SELECT * FROM Cliente”,conexao);
conexao.Open();
BancoDataSet bancoDados = new BancoDataSet();
int idCliente = bancoDados.Cliente.idColumn;
string nomeCliente = bancoDados.Cliente.nomeColumn;
Console.WriteLine(“Cliente com id {0} e nome {1}”, idCliente, nomeCliente);

Notem que o objeto BancoDataSet é um DataSet Tipado que representa meu banco de dados, por isso através dele podemos extrair sua tabela Cliente (bancoDados.Cliente). E quando estamos na tabela Cliente podemos extrair suas colunas(id e nome). Observem que essas extrações são feitas usando propriedades, podendo assim que erros de nome sejam detectados em tempo de compilação.

Bem, foram descritos os principais componentes na tecnologia ADO.NET.

Além do ADO.NET, existe outra nova tecnologia para acesso a dados, falo do LINQ (Language Integrated Query). Ele permite que os desenvolvedores enderecem consultas[à fonte de dados] usando a sintaxe de uma linguagem de programação gerenciada, como C# ou VB.NET, ao invés das declarações SQL. O LINQ trabalha de forma similar ao Hibernate, fazendo um mapeamento objeto-relacional. Segue um exemplo que usa tal tecnologia:

BancoLINQDataContext banco = new BancoLINQDataContext();

Table<Cliente> clientes = banco.Clientes;

var consulta = from cliente in clientes
where cliente.nome == “Lucas”
select cliente;

Antes de chegar nesse código ocorreram os seguintes passos:

1) Tinhamos uma tabela Cliente na base de dados
2) O LINQ criou um objeto na minha aplicação que representa a base de dados (BancoLINQDataContext )
3) O LINQ automaticamente criou a classe básica Cliente em minha aplicação C#
4) O LINQ automaticamente fez o mapeamento objeto-relacional (meu objeto Cliente à tabela Cliente)

Depois se fez um código que retorna todos os clientes com o nome “Lucas”. Percebe-se o uso da sintaxe do C# para tal, ao invés do comum SQL. Se bem que essa sintaxe se transformará em SQL depois! Notem também que fazemos consultas em nossos objetos, abstraindo, assim, o banco de dados.

Vale ressaltar que se fez uso na sintaxe do C# 3.0.

O objetivo desse artigo não é detalhar o LINQ, em próximas aulas/posts detalharei um pouco mais dessa nova tecnologia. Então fico por aqui e até a próxima aula!

Mix Essentials.

Acontecerá em São Paulo na próxima semana, um evento show de bola para quem gosta de desenvolvimento web! Trata-se do MIX Essentials. Como o nome sugere, é um evento que vai direto ao assunto, como se fosse uma peneira, trazendo algumas das melhores palestras que aconteceram no MIX Las Vegas para o Brasil. O foco do evento é mostrar as grandes novidades da Microsoft em relação a experiência do usuário na web. É uma ótima oportunidade para se atualizar e interagir com os principais nomes na área.

Dias 29 e 30 de maio de 2008
Local: Auditório Microsoft
Av. Nações Unidas, 12.901- Torre Norte – 31º andar
Horário: 8:30 às 18:30hs

Estarei em SP na semana que vem participando da final nacional da Imagine Cup. Se derem uma brechinha, farei de tudo para estar presente no evento e trazer as novidades para a célula! =)

Mais informações: http://www.msdnbrasil.com.br/mixessentials/

[]’s

Escolha o Design da Imagine Cup 2009!

Pois é, a Imagine Cup 2009 mostra mais uma vez que já está no ar! Depois de anunciado que a final da próxima edição da competição será no Egito (ver post), a organização lanca uma enquete para nós escolhermos qual será o próximo design da competição. São estilos bem diferentes mas gostei de todos, nem sei em qual votar… =P

Ouvi especulações que o tema da Imagine Cup 2009 será livre. Com essa agora do design ser “livre”, deixandando para nós escolhermos, acho que o tema será este mesmo :D

Votem vôce também!
Link:
http://www.mondorobot.com/microsoft/IC2009/

Finalistas Imagine Cup Brasil – SD

Ontem através de e-mail, a Microsoft anunciou as 8 equipes finalistas que irão disputar uma vaga para representar o Brasil na grande final da Imagine Cup em Paris, na França, pela categoria Software Design. Mais uma vez Pernambuco não deixou a desejar e manda 3 equipes para a final brasileira, que ocorrerá ainda este mês na sede em São Paulo.

Estou muito feliz por Pernambuco e mais ainda este ano por estar entre as equipes finalistas com a equipe Try IT. Agradeço em especial a força e ao incentivo que Fabiano, também da equipe, nos deu para continuar nosso projeto, acreditando sempre que iríamos conseguir. Valeu Fabiano!! Agradeço também a todos os colegas que convivo diariamente por terem dado uma força também. \o/ Ah, já ia esquecendo… Abraço especial também para o Sr. José Ferreira, o qual trabalhou 36 anos na Compesa e nos ajudou com bastante informações.

Agora é torcer pelas equipes pernambucanas para representarem nosso estado e nosso país lá na França! Aguardem mais novidades!

Equipes Finalistas Imagine Cup 2008 – SD Brasil

Learn Smart – Unesp
Ecologix – UFPE+USP+Unicamp
Synergy – FIAP
SSL – FIAP
Oysterix – UPE
The Utopians – Univ de BH+ITA
Try IT – UFPE+Salg.Oliveira
Ondine.Net – Ufscar

vEye contrata!

Você quer trabalhar com a equipe do projeto de tecnologia pernambucano mais premiado da dos últimos anos?
 
Quer ajudar a transformar em realidade o vEye, o sistema de navegação para deficientes visuais vencedor da Imagine Cup 2006, testado e aprovado pessoalmente por Bill Gates?
 
O vEye foi inicialmente concebido pela equipe Trivial, formada pelos ex-alunos do Centro de Informática da UFPE Carlos Rodrigues, Ivan Cardim e Madson Menezes, e será desenvolvido em parceria com a Inove Informática*, com financiamento do Programa de Subvenção Econômica da FINEP.

Existem vagas disponíveis para Engenheiros de Software (full-time e part-time) e Designers. Inicialmente, serão desenvolvidos produtos na área de sistemas de localização e reconhecimento de voz, sobretudo com a utilização de dispositivos móveis. O candidato irá participar de todas as etapas de desenvolvimento de novos produtos, passando pela  concepção, modelagem, implementação e, finalmente, pelos testes.

A equipe busca candidatos criativos, que saibam trabalhar em equipe e que possuam capacidade de abstração. Pró-atividade, paixão por tecnologia e domínio de inglês são imprescindíveis. Adicionalmente, espera-se dos candidatos para vagas técnicas experiência com programação orientada a objetos, ao passo que dos candidatos para as vagas de Design experiência com design para web e design da informação. Experiência com metodologias ágeis de desenvolvimento são diferenciais.

Os interessados devem submeter o seu currículo através do site da Inove , acessando a seção “Currículos” na parte superior. É ESSENCIAL que seja selecionada a opção “vEye/FINEP” na hora da submissão para que o seu currículo seja recebido pela equipe. Dúvidas devem ser encaminhadas para o email carlos@inoveinformatica.net, com o subject “VEYE-SELECAO”.

Prazo de submissão: 16/05/2008

* A Inove Informática é uma empresa Microsoft Certified Partner na competência Custom Development Solutions, sendo também a única empresa na América Latina a participar do Conselho Mundial de Parceiros Microsoft (Microsoft Partners Advisory Council). A empresa também é membro do Porto Digital e atua prestando serviços nas três principais vertentes da tecnologia em informática: treinamento, consultoria e desenvolvimento de soluções.

Introdução ao ASP.NET

O que é?

ASP.NET é uma tecnologia da Microsoft para a criação de aplicações dinâmicas para a Web. Com ele pode ser feito desde websites dinâmicos até aplicações complexas; além Web Services.

ASP.NET não é uma linguagem de programação, como o ASP, e sim uma plataforma de desenvolvimento. Nele pode-se utilizar linguagens como C#, VB.NET, J# e Python para a construção das aplicações. Isso devido a ele utilizar o Common Language Runtime (CLR) da plataforma .NET da Microsoft. Com o CLR o desenvolvedor terá, além da possibilidade de ter várias linguagens a sua disposição, recursos como garbage collection e o debugger funcionando com qualquer uma dessas linguagens.

Controles

Um dos recursos do ASP.NET são os controles. Com eles o programador consegue ter acesso aos elementos HTML diretamente na linguagem de programação. Podendo acessar, por exemplo, um TextBox de um formulário e alterar suas propriedades. Uma vantagem evidente nesse recurso é facilidade de criar uma aplicação web, pois o desenvolvedor precisa apenas ter uma boa familiaridade com uma linguagem de programação, como o C#, para poder fazer aplicações ricas e interessantes.

Alguns tipos de controle

Nos guiando pelos exemplos que foram dados em aula da célula CIN.NET, onde falamos um pouco sobre controles que são freqüentemente usados, vejamos um exemplo de uso:
Um dos mais simples é o button:

Localização do Button no VS
Fica do lado esquerdo do visual web developer, na caixa Toolbox. Para utiliza-lo basta clicar nele e arrastar. Pronto. já está disponível para uso. E para ter acesso a ele basta especificar um ID na caixa de propriedades. Com esse ID você já poderá acessa-lo na linguagem de programação, como no exemplo abaixo:
(eu coloquei o ID do Button como sendo testeButton)

using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

public partial class _Default : System.Web.UI.Page
{
/**
* sempre que essa página for carregada no navegador do usuário
* esse evento será chamado.
*/
protected void Page_Load(object sender, EventArgs e)
{
//O texto que aparecerá no Button ao inciar a página
testeButton.Text = “Testando os elementos html do ASP.NET”;
}
/**
* Quando o testeButton for clicado, esse evento será chamado
*/
protected void testeButton_Click(object sender, EventArgs e)
{
// muda o texto do botão para “Teste feito, funciona?”
testeButton.Text = “Teste feito, funciona?”;
}
}

o resultado desse pequeno teste deve ser esse:
Exemplo com o button

Abaixo está uma tabela com alguns controles:

Função Nome
Mostrar texto Label
Edição de texto TextBox
Selecionar de uma lista DropDownList
ListBox
Exibir elemento gráfico Image
AdRotator
Seleção de valores em um formulário CheckBox
RadioButton
Seleção de data Calendar
Botões Button
LinkButton
ImageButton
Controle de navegação HyperLink
Controles para tabelas Table
TableCell
TableRow
Controles para fazer o agrupamento de outros controles CheckBoxList
Panel
RadioButtonList
Controles para fazer listagens Repeater
DataList
DataGrid

Além desses controles que servem HTML, há outros controles como os de validação de formulário; que são utilizados para informar ao usuário quando um elemento do formulário é de preenchimento obrigatório. Para informações mais elaboradas como um email, pode-se usar expressões regulares para definir como é o formato da informação que será válida.

Master Pages

Controles são muito interessantes, mas além desse tipo de recurso, o ASP.NET provê também ferramentas para o aumento da produtividade e reuso de código; Como as master pages, utilizadas quando tem-se uma parte do site que é repetida em várias vezes, como um menu estático ou um cabeçalho ou rodapé.
Para criar uma master page cliqua-se em “File >> New File >> Master Page”.
Ela vem, basicamente, em branco e com um campo chamado ContentPlaceHolder. Esse campo será onde o conteúdo que muda em cada página vai ficar. Todo o resto da página vai ser mantido para todas as páginas que utilizam essa master page. Então, para criar um cabeçalho, por exemplo, basta cria-lo em cima do ContentPlaceHolder, como abaixo

Exemplo com master page

Web.Config

O web.config é um arquivo XML usado para definir preferências e configurações de cada aplicação ASP.NET. Há uma interface gráfica para manipular esse arquivo e ele é acessível também para ser alterado em qualquer editor de texto. configurações de autenticação, acesso, compilação, erros, conexão, email… E é estruturado de forma hierárquica, possibilitando ao desenvolvedor aplicar também configurações a um subdiretório específico.

Para acessar a interface gráfica para essas configurações clique em “Website >> ASP.NET Configuration”, e abrirá uma página que nela você pode navegar e editar suas preferências.

Introdução ao SQL Server 2005

Olá pessoal!

Primeiramente, parabéns Bel [Lucas] por mais essa conquista, você merece… Sucesso! 

Agora, voltando ao assunto… Este artigo abordará alguns dos principais conceitos do SQL Server 2005 e apresentará ao usuário iniciante os ambientes de Banco de Dados (BD), Sistema de Gerenciamento de Banco de Dados (SGBD) e linguagem de definição/manipulação/consulta a dados (SQL).

Para baixar a apresentação em PowerPoint 2007 da última reunião da Célula CIN.NET (29/04) sobre o tema deste artigo clique aqui!

O que é persistência de dados? E, por que queremos persistir?
Quando o domínio é a computação, persistência de dados refere-se ao armazenamento destes em algum meio físico visando a sua disponibilização para acesso futuro. Por exemplo, quando inicializamos um array de inteiros com uma sequência de números, “alguém” [compilador + sistema operacional] se encarrega de armazenar estes dados numa partição da memória RAM. Esta é considerada um meio físico rápido, caro e volátil (quando o programa for encerrado os dados serão perdidos). Ou seja, memória RAM não resolve nosso problema [de persistência], quando pensamos em dados que precisem estar disponíveis mesmo após o reinício das aplicações. Uma alternativa seria o uso de arquivos, no entanto esta solução é um pouco tediosa, uma vez que manipular arquivos pode requerer muito esforço de programação. Para aplicações que utilizam grande quantidade de dados o uso de arquivos torna-se inviável por uma série de motivos: replicação, isolamento e falta de estruturação de dados, dificuldade em controlar acesso concorrente, uso de algoritmos complexos para se conseguir bom desempenho, etc.

Então o que precisamos é de um Banco de Dados!
Banco de dados
Figura 1 Banco de Dados!

Um banco de dados é uma coleção de dados inter-relacionados, estruturados, confiáveis, coerentes e compartilhados por diversos usuários. Vamos entender cada um dos conceitos empregados: inter-relacionados, porque não é útil se ter ilha de dados, é o conjunto de vários dados correlacionados que, quando manipulados, traduzem informação relevante; dados estruturados indicam que o mecanismo de acesso as dados é bem definido e o resultado obtido a partir de uma consulta possui uma estrutura previsível; é fundamental que os dados armazenados permaneçam coerentes e confiáveis enquanto durar a persistência, ou seja, os dados inseridos estarão disponíveis e não serão alterados, desde que explicitamente solicitado pelo usuário; além disso, outra grande característica dos bancos de dados é o compartilhamento de informações que ocorre, muitas vezes, entre pessoas que estão a milhares de quilômetros de distância, e ainda, acessando simultaneamente.

Para prover estes e outros serviços aos bancos de dados foram desenvolvidos poderosos Sistemas de Gerenciamento de Banco de Dados (SGBD’s). São softwares que se utilizam de complexos algoritmos para garantir máxima eficiência nos processos de armazenagem, recuperação e garantia da qualidade das operações sobre os dados. Os principais objetivos dos SGBD’s são eliminar ou reduzir:
• Redundância e inconsistência de dados;
• Dificuldade no acesso aos dados;
• Isolamento dos dados;
• Anomalias de acesso concorrente;
• Problemas de segurança;
• O entrelaçamento entre dados e a aplicação.

Vale mencionar alguns modelos de SGBD’s desenvolvidos e aprimorados ao longo dos [o leitor pode encontrar mais detalhes nas referências]: hierárquico, em rede, relacional, orientado a objetos, etc. Em geral, um SGBD possui 4 linguagens, que acabam por se “fundirem” numa só:
Data Definition Language (DDL), Data Manipulation Language (DML), Query Language (QL) e uma Linguagem de 4ª geração, que é a linguagem nativa ao SGBD. Alguns dos SGBD’s mais conhecidos: Microsoft SQL Server, Oracle, IBM DB2, MySQL e PostgreSQL.

É impossível num artigo introdutório no assunto de banco de dados não se falar na linguagem SQL, contudo não vou escrever muitas linhas sobre tal tópico, devido ao abundante material disponível na Web a esse respeito, além do artigo do meu amigo Lucas introduzindo a linguagem SQL.

A linguagem SQL (Structured Query Language) foi desenvolvida para o propósito do modelo relacional que trata a disposição lógica dos dados como tabelas. A SQL define métodos de definição e manipulação dos dados, além de mecanismos para administração de bancos de dados. Sua primeira versão foi desenvolvida na IBM na década de 70 e chamava-se SEQUEL, nos anos seguintes passou a se chamar SQL por questões legais. Foi padronizada pelas instituições ANSI e ISO como padrão oficial de linguagem em ambiente relacional. Alguns dos principais comandos da SQL são: Create, Drop, Alter, Select, Insert, Delete e Update.

Para maiores informações sobre banco de dados, SGBD’s e SQL, visite:
• Site da disciplina GDI: http://www.cin.ufpe.br/~if685/  
• Site oficial da linguagem SQL: http://www.sql.org/  
• Portal Macoratti: http://www.macoratti.net/indsql.htm
• Linguagem SQL: http://pt.wikipedia.org/wiki/Sql  
• Noções da linguagem SQL para consultas: http://www.linhadecodigo.com.br/Artigo.aspx?id=165  
• Principais comandos SQL: http://www.sqlmagazine.com.br/Artigos/sqlserver/02_Comandos_SQL.asp 

O SQL Server 2005
O Microsoft SQL Server é uma família de produtos que atende aos requisitos de armazenamento de dados dos ambientes OLTP (Online Transaction Processing) e OLAP (Online Analytical Processing), é um sistema de gerenciamento de bancos de dados relacional (RDBMS – Relational Database Management System). O SQL Server possui flexibilidade para suportar às várias necessidades de dados das aplicações e com níveis de banco de dados de tamanhos variando entre megabytes e terabytes, além de disponibilizar versões tanto para servidores móveis como de grande porte, trabalhando em conjunto com os serviços de Windows Clustering.

O Microsoft SQL Server 2005 redefine completamente a plataforma de bancos de dados SQL Server fornecendo a melhor tecnologia adequada ao porte da organização, seja ela pequena, média ou grande. Ele é o sucessor do SQL Server 2000, sua linguagem nativa é Transact-SQL, inclui suporte nativo para gerenciamento de dados XML, suporta acesso a databases através de web services por requisições SOAP, além da integração com o. NET Framework. 

Componentes do SQL Server 2005

Figura 2 Principais componentes do SQL Server 2005

Vejamos a seguir alguns dos novos recursos e estrutura do conjunto de serviços existentes no SQL Server 2005. Para ter acesso à lista completa de serviços, visite: http://www.microsoft.com/brasil/servidores/sql/prodinfo/top30features.mspx  

• Relacional Database – Inclui os componentes: o banco de dados básico e a pesquisa de texto integral. O banco de dados básico, e o Database Engine, são considerados o coração do SQL Server. A pesquisa de texto integral permite consultas em linguagem simples de dados armazenados em tabelas do SQL Server.

• Replication Services – A replicação aumenta a disponibilidade de dados distribuindo dados entre múltiplos bancos de dados, o que permite um aumento de carga de trabalho de leitura entre os servidores de banco de dados designados.

• Notification Services – Inclui um mecanismo de notificação e componentes de cliente para gerar e enviar mensagens sincronizadas e personalizadas para usuários quando um evento desencadeante ocorre. As notificações podem ser enviadas para dispositivos sem fio, como telefones celulares e PDAs, contas do Windows Messenger e contas de correio eletrônico.

• Integration Services – Fornece uma solução para transformação e integração de dados corporativos a fim de extrair e transformar dados de múltipas origens de dados e movê-los para uma ou mais fontes de destino. Isso permite mesclar dados de origens de dados heterogêneas, carregas dados em data warehouse e data marts etc.

• Analysis Services – Oferece o Online Analytical Processing (OLAP) e a funcionalidade de exploração de dados para aplicações de inteligência de negócio (Business Intelligence + Data Mining ). O Analysis Services permite que sua organização agregue dados das múltiplas origens de dados, como bancos de dados relacionais, e trabalhe com esses dados em uma ampla variedade de maneiras.

• Reporting Services – Inclui o Report Manager e o Report Server a fim de fornecer plataforma baseada em servidor completo para criar, gerenciar e distribuir relatórios. O Report Server é construído com base na tecnologia padrão do IIS e do .Net Framework, permitindo combinar os benefícios do SQL Server e do IIS para hospedar e processar relatórios.

• Espelhamento de Bases de Dados – Aumentar a disponibilidade de seus sistemas SQL Server configurando o failover automático para um servidor standby.

• Restauração Online – Apenas os dados sendo restaurados estarão indisponíveis, o resto da base de dados permanecerá online e disponível.

• Novo SQL Server Management Studio – Novo conjunto de ferramentas de gerenciamento.

• Hospedagem do .NET Framework – Criar objetos do banco de dados usando linguagens familiares como o Microsoft Visual C# .NET e Microsoft Visual Basic .NET.

• Tecnologias XML – O SQL Server 2005 suporta nativamente o armazenamento e a consulta de documentos XML.

• Web Services – Criar Web Services na camada de banco de dados, tornando o SQL Server um “escutador” HTTP e fornecendo um novo tipo de aceso a dados via Web Services.

• Service Broker – Fornece sistemas confiáveis de enfileiramento de tarefas e troca de mensagens como parte básica do banco de dados. As filas podem ser utilizadas para empilhar tarefas, como consultas e outras solicitações e processar conforme os recursos permitem. O sistema de troca de mensagens permite que aplicações de bancos de dados realizem comunicação entre si.

• Data Mining – Quatro novos algoritmos de data mining foram introduzidos, assim como ferramentas melhoradas e assistentes que facilitarão a mineração de dados para empresas de qualquer porte.

• Integração com o Microsoft Office System – Os relatórios que são fornecidos pelo Report Server do Reporting Services pode ser executado no contexto do Microsoft SharePoint Portal Server e aplicações Microsoft Office System como o Microsoft Word e Microsoft Excel.

Edições do SQL Server 2005
As edições do SQL Server 2005, são: Express, Workgroup, Standard e Enterprise, Compact Edition, Developer Edition e Evaluation Edition. As duas últimas têm o mesmo conjunto de recursos que a Enterprise Edition a única diferença entre elas está nas políticas de licenciamento.

É possível obter o SQL Server 2005 Express gratuitamente, em:
http://www.microsoft.com/downloads/details.aspx?FamilyID=220549b5-0b07-4448-8848-dcc397514b41&displaylang=en

Para ter acesso ao detalhamento comparativo entre as edições do SQL Server 2005, visite: http://www.microsoft.com/brasil/servidores/sql/prodinfo/features/compare-features.mspx

Manipulando o SQL Server no VS 2008 – Vamos praticar?!
Aqui segue um roteiro para manipulação do SQL Server no Visual Studio 2008, não estou entrando em detalhes de como fazer o quê, vimos isso durante a aula, mas no caso de possíveis dúvidas pode entrar em contato!

O objetivo é criar tabelas, consultas, stored procedures e relacionamento entre tabelas, apenas usando a interface do Visual Studio 2008 (também vale para o Visual Studio 2005).

• Abrir o Visual Studio 2008;
• Localizar o ‘Server Explorer’;
• Adicionar uma nova conexão;
• Criar as tabelas abaixo:

Tabelas Exemplo

• Exemplo de Stored Procedure***:

CREATE PROCEDURE ClientesDaAgencia
@codAgencia int

AS
Select Cliente.pk_cpf_cliente, Cliente.fk_codigo_agencia, Cliente.fk_numero_conta, Cliente.nome_cliente
From Agencia, Cliente, Conta
Where Agencia.pk_codigo_agencia = @codAgencia 
    and Cliente.fk_codigo_agencia = Agencia.pk_codigo_agencia
    and Cliente.fk_numero_conta = Conta.pk_numero_conta

*** Esta SP seleciona todos os clientes de uma determinada agência, exibindo o cpf, a agência, a conta e o nome do cliente.

E, agora, é só “brincar” com essas coisinhas e numa próxima reunião entrarmos em mais detalhes sobre algum dos assuntos abordados como a linguagem T-SQL, por exemplo!

É isso, obrigado!!!

Para maiores informações sobre SQL Server 2005, visite:
• Site Oficial do SQL Server (em português): http://www.microsoft.com/brasil/servidores/sql/default.mspx  
• SQL Server no MSDN: http://www.microsoft.com/brasil/msdn/sql/default.mspx  
• SQL Server no TechNet: http://www.microsoft.com/brasil/technet/prodtechnol/sql/default.mspx
• Criando objetos SQL com .NET (CLR – Managed Code): http://www.linhadecodigo.com.br/Artigo.aspx?id=594
• Portal Macoratti: http://www.macoratti.net/indsql.htm

Anunciados os novos MSPs de Pernambuco

Depois de um grande e demorado processo de seleção, a Microsoft anunciou os novos integrantes do programa Student Partners! Todos aqui em PE estavam um pouco apreensivos pela quantidade expressiva de MSPs que o estado já possuía. Achávamos (ou pelo menos eu achava) que era mais fácil alguém daqui sair do programa do que entrar alguém novo, mas no final o resultado foi excelente e as pessoas que realmente mereciam este reconhecimento foram contempladas! Todos os selecionados foram aprovados pelos atuais MSPs e eles já vêem se destacando há algum tempo pelos ótimos trabalhos realizados. Tenho certeza que agora, continuarão ainda mais a compartilhar a tecnologia com todos por todo lugar!

NOVOS MPSs de PE:

- Thomas de Almeida Rabelo (FACAP)
- Reinaldo Araujo Albuquerque (FSM – Faculdade Santa Maria)
- José Ferreira da Silva Junior (UPE - Célula POLI.NET)
- Lucas Araújo Mello Soares (UFPE - Líder da CIN.NET) **
- Rodrigo Araújo Lobo (UFPE)

Parabéns especial a Lucas Mello pela grande conquista! Mais um trabalho com êxito da nossa célula que só me estimula ainda mais a continuar com este trabalho que, como podem ver, realmente dá resultados.

Abraços!