E-Schooling. Disciplina de Opção III. Pedro Quinteiro Marques Rui Filipe Carvalho da Silva - PDF
E-Schooling. Disciplina de Opção III. Pedro Quinteiro Marques Rui Filipe Carvalho da Silva
Download "E-Schooling. Disciplina de Opção III. Pedro Quinteiro Marques Rui Filipe Carvalho da Silva"
Luiz Felipe Domingues Peixoto
1 Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia de Sistemas e Informática Disciplina de Opção III Ano Lectivo de 2004/2005 E-Schooling Pedro Quinteiro Marques Rui Filipe Carvalho da Silva Supervisão: Professor Nuno Rodrigues, Professor Pedro Rangel Henriques Janeiro de
2 Data de Recepção Responsável Avaliação Observações E-Schooling Pedro Quinteiro Marques, Nº Rui Filipe Carvalho da Silva, Nº Janeiro de
3 Agradecimentos Em primeiro lugar gostaríamos de endereçar os nossos sinceros agradecimentos ao Professor Nuno Rodrigues, nosso orientador, por ao longo de todo o semestre nos ter prestado auxílio nos momentos mais difíceis e ter demonstrado uma grande disponibilidade. Os seus conselhos foram bastante úteis no âmbito da realização do projecto e a experiência por si demonstrada deram-nos a confiança e vontade de procurar fazer sempre mais e melhor. Gostaríamos também de agradecer ao Professor Pedro Rangel Henriques, pois foi um dos elementos decisivos na escolha deste projecto. Agradecimentos aos nossos colegas de curso, em particular aqueles que também têm projectos relacionados com o nosso, dado que também conseguimos ultrapassarem dificuldades com a ajuda deles. Por fim, a todas aquelas pessoas que de alguma forma colaboraram e nos deram apoio durante a realização deste projecto. 3
4 Resumo Com o presente projecto, pretendeu-se desenvolver um novo modelo de ensino à distância para entidades sem recursos ou know-how específico, sem recursos humanos especializados na gestão deste tipo de oferta formativa e sem capacidade de produção de conteúdos específicos adequados. A adopção deste modelo altera o posicionamento clássico da oferta de ensino à distância que utiliza as tecnologias baseadas em Internet, atribuindo assim ao outsourcing um papel muito menos significativo na generalização do uso destes sistemas. Área de Aplicação: Desenho e arquitectura de Sistemas de Bases de Dados, Criação de aplicações para a Web, nomeadamente interface gráfica e da camada de código associada a sua funcionalidade. Palavras-Chave: Bases de Dados Relacionais, SQL Server 2000, C#, HTML, XML, ASP.NET, VISUAL STUDIO.NET. 4
5 Índice Resumo...4 Índice...5 Índice de Figuras Introdução Contextualização Apresentação do Caso de Estudo Motivação e Objectivos Estrutura do Relatório Fundamentos teóricos e ferramentas utilizadas Plataforma.NET O Starter Kit A Linguagem C# O SQL Server Detalhes de Implementação Base de Dados Stored Procedures desenvolvidas Replicação da Base de Dados Portal Replicação do Portal Funcionamento da Plataforma Obtida Gestão dos utilizadores do Portal Conclusões e Trabalho Futuro...38 Bibliografia...39 Referências 5
6 Índice de Figuras Figura 1 Interface do Portal Starter Kit...13 Figura 2 Administração do portal...14 Figura 3 Diagrama conceptual da Base de Dados Figura 4 Tabela Administrador Figura 5 Tabela Alunos...20 Figura 6 Tabela Disciplinas Figura 7 Tabela Docentes Figura 8 Tabela Escola...21 Figura 9 PonteDisciplinasDocentes...22 Figura 10 PonteTurmaDocente Figura 11 PonteCursoDisciplinas...22 Figura 12 Turmas
7 Figura 13 Cursos Figura 14 Localidades Figura 15 Encarregados de Educação Figura 16 Fase 1 (SQL Script)...29 Figura 17 Fase 2 (SQL Script)...30 Figura 18 Fase 3 (SQL Script)...30 Figura 19 Fase 1 (IIS)...33 Figura 20 Fase 2 (IIS)...34 Figura 21 Listagem de Docentes...35 Figura 22 Registo de Docente Figura 23 Registo de Docente
8 1. Introdução O presente relatório vai descrever todo o projecto realizado no âmbito da disciplina de OpçãoIII da Licenciatura em Engenharia de Sistemas e Informática, projecto esse que visa propor um novo modelo de implementação de uma plataforma de E-Schooling Contextualização O projecto que desenvolvemos engloba duas áreas muito importantes nos dias que correm: o ensino e as novas tecnologias, nomeadamente aquelas relacionadas com o uso da Internet. Se juntarmos estas duas áreas, ou seja, o uso da Internet para fins de aprendizagem à distância, obtemos um modelo de ensino à distância para entidades sem recursos ou knowhow específico. Vantagens desta abordagem são a possibilidade de cada pessoa poder aprender a um ritmo próprio, aprofundar os conteúdos, associar a teoria a múltiplas actividades práticas fazendo desaparecer custos e inconvenientes associados a deslocações aos locais onde seriam facultadas as matérias a aprender. Esta abordagem foi desenvolvida tendo em vista facilitar a vida apoiar o ensino tradicional. O E-Schooling pretende oferecer a possibilidade de ensino à distância e todas as vantagens inerentes ao seu uso, capaz de ser utilizada de forma totalmente personalizada por escolas e centros de formação. Esta filosofia permite ainda que toda a informação associada a cada uma destas entidades seja guardada de forma isolada para cada uma, não permitindo qualquer conflito de informação indesejado. Pode então dizer-se que o nosso projecto está englobado em projectos semelhantes a projectos de E-Learning, traçando no entanto uma filosofia mais orientada para beneficiar e facilitar os processos de aprendizagem nas escolas portuguesas. 8
9 1.2. Apresentação do Caso de Estudo Tendo em vista melhorar as formas de aprendizagem, e em particular das escolas em Portugal, o caso de estudo que nos propusemos estudar e desenvolver pretendia que fosse implementada uma nova plataforma que, embora assente em ideias de E-Learning, fosse capaz de permitir a todas as escolas do pais que o pretendessem, se inscreverem e passarem assim a ter um espaço seu. Cada escola teria então o seu próprio lugar electrónico onde poderia colocar toda a informação relativa as disciplinas leccionadas nela, bem como os mais variados assuntos relativos ao funcionamento da própria. Teria também, e a título de exemplo, a possibilidade de modificar e personalizar o seu perfil e a sua interface gráfica. Assim, todas as informações relativas a cada escola e aos seus alunos, docentes e de mais elementos intervenientes na sua estrutura activa seriam guardados em bases de dados próprias para cada escola. A implementação das bases de dados será feita em SQL Server, o tratamento estético será implementado recorrendo ao ASP.net e a parte funcional do nosso caso de estudo será tratada com recurso à linguagem C# Motivação e Objectivos Ainda antes do momento em que foi disponibilizada a listagem completa de todos os projectos que neste semestre seriam possíveis realizar, o nosso grupo, pelo facto de ter gostado bastante de ter trabalhado com bases de dados na disciplina do nosso curso que tem o mesmo nome e ainda por sentirmos a necessidade de aprender algo de novo que não tivesse sido abordado durante o nosso percurso académico, já tinha em mente aquilo em que gostaria de trabalhar. O presente projecto engloba a interacção com bases de dados, o que de facto é do nosso agrado. A componente nova que nós procurávamos é preenchida pelo uso de uma nova 9
10 linguagem, orientada aos objectos como a nossa conhecida JAVA que é o C# e ainda uma componente de elaboração de interfaces gráficas permitida pelo, para nós também novo ASP.NET. Relativamente a objectivos, o principal objectivo que nos propusemos desde o início alcançar foi o de nos familiarizarmos de uma forma mais consistente com a manipulação de bases de dados, bem como podermos alargar o leque de ferramentas e experiência adquirida pela sua utilização para que no futuro estejamos melhor preparados para as exigências da vida profissional Estrutura do Relatório A documentação que suporta este relatório está estruturada da seguinte forma. No próximo capítulo, intitulado de Fundamentos Teóricos e Ferramentas Utilizadas, iremos fazer uma pequena apresentação dos fundamentos teóricos sobre os quais nos apoiamos na realização do nosso trabalho, bem como apresentar uma breve introdução teórica sobre as áreas em que este trabalho se inseriu, sendo introduzidas as definições de plataforma.net, Visual Studio.NET, Portal Starter Kit, ASP.NET, C#, SQL SERVER Depois de introduzidos os conceitos teóricos iremos descrever todo o trabalho realizado, sendo esta descrição dividida por áreas de intervenção. Teremos então as descrições da replicação da Base de Dados, replicação do Portal, Stored Procedures desenvolvidas e as diversas funcionalidades do Portal. Espera-se desta forma, permitir uma melhor análise da concretização dos objectivos estipulados inicialmente. 10
11 2. Fundamentos teóricos e ferramentas utilizadas Neste primeiro ponto vamos fazer uma pequena apresentação dos fundamentos teóricos sobre os quais nos apoiamos na realização do nosso trabalho, bem como indicar quais as ferramentas por nós utilizadas Plataforma.NET A ferramenta mais robusta que tivemos que utilizar foi a plataforma.net onde se inclui o Visual Studio da Microsoft. Esta plataforma consiste num conjunto de tecnologias Microsoft desenhadas para simplificar o desenvolvimento para a Web. Disponibiliza novas formas de desenvolvimento de aplicações através de Web Services suportando totalmente a actual infra-estrutura da Internet, incluindo HTTP, XML e o SOAP. A plataforma.net engloba um conjunto de ferramentas de desenvolvimento e sistemas operativos para construir, expor e utilizar XML e Web services, possibilitando uma interacção pessoal e integrada com a Internet através de dispositivos inteligentes. Esta plataforma possui quatro componentes: NET Framework; Visual Studio.NET; infra-estrutura para servidor; building block services e software para dispositivos inteligentes. A.NET Framework possui ainda uma biblioteca que consiste num conjunto de classes distribuídas por Namespaces, que contemplam uma série vastíssima de funcionalidades. É a estas classes que se recorre para criar as aplicações em.net. 11
12 Outro dos aspectos a realçar é o facto de existir uma integração total e completa entre diversas linguagens, suporte para herança entre estas e tratamento de excepções. Neste espaço é feita uma gestão automática do tempo de vida dos objectos, sendo cada um deles garbage collected quando não usados não existindo a possibilidade de apontadores perdidos e referências circulares. A segurança é baseada em evidências, ou seja, na origem do código e da identidade do seu utilizador sendo a definição de permissões extensível. Esta plataforma permite liberdade de escolha no que diz respeito à linguagem a ser escolhida pelo programador. Assim sendo, possui uma série de compiladores disponíveis para linguagens como C++, C#, Visual Basic.NET, JScript e J# O Starter Kit No momento em que iniciamos este projecto, e querendo fazer algo que para projecto académico fosse já bastante apelativo e funcional a nível de interface gráfica e devido ainda ao facto de um semestre ser curto para aquilo que queríamos fazer, chegamos à conclusão que seria melhor partir de uma base pré-concebida. Posto isto, optamos por desenvolver o nosso projecto com base no Portal Starter Kit que a Microsoft disponibiliza na sua página dedicada ao ASP.NET. O Portal Starter Kit usa o ASP.NET juntamente com o Microsoft.NET Framework para construir uma aplicação para portais de Internet e intranet. 12
13 O portal usa uma arquitectura de aplicação multi-camadas. Contém duas fontes de dados. As definições de configuração são armazenadas no ficheiro PortalCFG.xml e o conteúdo da aplicação é armazenado numa Base de Dados em SQL Server Esta aplicação disponibiliza uma quantidade de ferramentas oferecidas pela tecnologia ASP.NET, entre as quais se destacam o suporte de aplicações associadas a browsers como o Netscape e o Internet Explorer e ainda a possibilidade de interacção com acessórios móveis que suportem WAP/WML. Neste portal, os módulos de html e de código relativo ao funcionamento dele, encontram-se separados, sendo as páginas construídas e executadas dinamicamente. O acesso às bases de dados e a manipulação destes dados para as quais o portal tem referências são efectuados usando as stored procedures desenvolvidas no SQL Server. A nível de segurança, este portal usa a Windows authentication com os respectivos username e password baseando-se ainda em papeis (Roles) que cada utilizador tem para controlar o acesso aos conteúdos do portal. O acesso aos dados é fornecido através de um assembly Microsoft.NET que dá acesso à informação através de procedimentos armazenados. Além disso, a estrutura do portal é construída através do uso de diversos assemblys que manipulam a segurança e a configuração do portal. Formulários web e controlos de utilizadores perfazem a camada de apresentação e manipulam a exibição e a gestão dos dados do portal para o utilizador. Dos módulos do portal provem o verdadeiro conteúdo do Portal Starter Kit. Os módulos herdam a classe de base PortalModuleControl, a qual estipula a comunicação necessária entre os módulos e a estrutura subjacente do portal. 13
14 O portal possui uma ferramenta de administração on-line que permite a um utilizador com funções de Administrador gerir a segurança, o layout e o conteúdo do portal. Os utilizadores que tenham a função de Administrador verão uma guia Admin que os conduzirá à ferramenta de administração. Esta ferramenta é mostrada na figura seguinte. Figura 2 Administração do portal A administração do portal permite ao utilizador realizar uma série de tarefas de gestão e configuração do site. É o local em que novos módulos podem ser adicionados, guias exibidas horizontalmente no topo do site podem ser configuradas e funções de segurança podem ser definidas. O portal foi construído com a ideia de expansibilidade em mente, de modo a oferecer aos programadores a facilidade de adição de módulos ao portal, que podem ser inseridos na estrutura. O portal demonstra as principais técnicas usadas para construir uma aplicação web para um portal usando o ASP.NET. Além da administração baseada na web e da gestão de conteúdos, o portal é também extremamente fácil de ser estendido. Este portal oferece uma óptima referência em termos de aprendizado de tecnologias.net, assim como uma poderosa estrutura que pode ser usada para portais de Internet ou intranet. 14
15 2.3. A Linguagem C# Nas últimas duas décadas, o C/C++ e o Java foram as linguagens mais amplamente usadas para o desenvolvimento de software comercial e de negócios. Embora as duas linguagens proporcionem ao programador uma quantidade enorme de controlo, esta flexibilidade possui um custo para a produtividade. Comparadas com uma linguagem como a Microsoft Visual Basic, aplicações realizadas em C/C++ equivalentes frequentemente demoram mais para serem desenvolvidas. Devido a complexidade e longos tempos de ciclo associados a essas linguagens, muitos programadores C/C++ têm vindo a procurar uma linguagem que ofereça um melhor balanceamento entre poder e produtividade. A solução ideal seria o desenvolvimento rápido combinado ao poder de acesso a funcionalidade total da plataforma básica. A solução que a Microsoft encontrou para este problema foi uma linguagem chamada C#. O C# é uma moderna linguagem orientada aos objectos que habilita os programadores a construir rapidamente uma ampla gama de aplicações para a nova plataforma Microsoft.NET, a qual proporciona ferramentas e serviços que exploram totalmente a computação e as comunicações. Devido ao seu elegante projecto orientado a objecto, o C# é uma escolha excelente para arquitectar uma ampla gama de componentes de objectos de negócio de alto nível a aplicações no nível do sistema. Temos assim que o C# é projectado para fazer desenvolvimento rápido de aplicações sem sacrificar o poder e o controle que têm sido a característica fundamental das linguagens C/C++. Devido a esta herança, o C# possui um alto grau de fidelidade com o C e o C++.Os programadores que estejam familiarizados com estas linguagens podem se tornar produtivos em C# rapidamente. A linguagem C# inclui suporte nativo para o Component Object Model (COM) e APIs baseadas em Windows contendo ainda uma série de vantagens tais como a utilização de um modelo de orientação aos objectos baseado em herança simples de classes e ainda Herança múltipla de interfaces. Com o C#, cada objecto é automaticamente um objecto COM. Assim, os programadores desta linguagem não têm mais que implementar explicitamente interfaces desconhecidas e outras interfaces COM. Ao invés disso, estes recursos são pré-construídos. De forma similar, programas C# podem usar de forma nativa objectos COM existentes, independente da linguagem usada para sua criação. O C# inclui ainda um recurso especial que habilita um programa a chamar qualquer API nativa. 15
16 Em traços gerais, podemos dizer que o C# é uma linguagem orientada aos objectos que é moderna e que habilita os seus programadores a construir rápida e facilmente soluções para a plataforma Microsoft.NET. O framework proporcionado permite que os componentes C# se tornem serviços Web que estão disponíveis pela Internet, a partir de qualquer aplicação executando em qualquer plataforma. Esta linguagem melhora ainda a produtividade do programador e serve para eliminar erros de programação que podem levar a custos de desenvolvimento aumentados O SQL Server Com o objectivo de criar a base de dados que servirá de suporte à nossa plataforma, necessitamos escolher um motor que nos oferecesse o caminho mais rápido para a programação de aplicações para a Web. Assim sendo, a escolha recaiu sobre o Microsoft SQL Server 2000 pois trata-se de um sistema gestor de base de dados relacionais, sendo o mais completo produto de bases de dados e análise que disponibiliza hoje, a próxima geração de soluções dimensionáveis de comércio electrónico, de linha empresarial e de armazenamento de dados para as empresas. É uma ferramenta completamente preparada para a Web. Permite consultar, analisar e trabalhar com dados através da Web. A utilização do XML no SQL Server 2000 é feita para trocar dados entres sistemas associados livremente. Fornece acesso a dados com facilidade e segurança a partir de um browser e através de firewalls. Outro ponto forte que esta aplicação possui é o facto de permitir tarefas de manutenção e criação/eliminação/actualização de dados através de stored procedures. Estas stored procedures, são instruções de SQL pré-compiladas que residem no motor de Base de Dados. Caso o motor de Base de Dados ao qual acedemos, disponibilize esta funcionalidade, ela deve de ser usada, pois as vantagens encontram-se no facto de se tratar de instruções pré-compiladas, logo a execução das mesmas será certamente mais rápida e de a chamada de uma stored procedure poder corresponder a um conjunto de instruções, ou seja, num só acesso à base de dados podemos correr várias instruções ao invés de correr uma instrução por chamada como é o caso do uso de sql statements isolados. Se forem usadas stored procedures, é assegurado que no caso de ser necessário proceder a uma alteração da base de dados, a alteração em causa ficará confinada a um sítio, a(s) stored procedure(s) que manipulem os dados em causa. Caso contrário será necessário percorrer todos os excertos de código, fazer as alterações em causa e consequentemente recompilar o código. 16
17 Outra vantagem é a colocação de permissões de segurança sobre a execução das stored procedures, aproveitando para tal os modelos disponibilizados pelo motor em causa. Esta pode ser uma vantagem, dado que nem todas os motores disponibilizam esta funcionalidade. A divisão do trabalho por vários programadores pode aqui ser conseguida numa estrutura empresarial pois seria útil ter alguém que assegure o desenvolvimento a ser efectuado sobre as bases de dados. Desta forma controla-se os processos necessários, gerase as stored procedures necessárias para a equipa de desenvolvimento, sendo desta forma assegurado que não serão gerados várias stored procedures para a mesma tarefa. Um senão prende-se com o facto de nem todos os motores de base de dados implementarem esta funcionalidade. Um exemplo de um motor sem esta possibilidade é o MySQL. 17
18 3. Detalhes de Implementação Neste capítulo iremos explicar de uma forma bastante abrangente as várias fases que fizeram parte da nossa implementação, desde o ponto de partida que foi a elaboração da nossa base de dados até à aplicação final propriamente dita. Figura 3 Diagrama conceptual da Base de Dados. 18
19 3.1. Base de Dados Neste ponto do terceiro capítulo dedicado a criação e manipulação da base de dados, descrevem-se exaustivamente as tabelas criadas para o Portal. É então apresentada para cada tabela constituinte da base de dados uma breve descrição daquilo que ela pretende representar bem como os atributos que a constituem. Administrador Esta tabela foi criada com o objectivo de representar a informação relativa ao administrador do Portal. Este utilizador é o responsável máximo (root), ou seja, é ele o responsável pela criação de novos domínios para Escolas. Figura 4 Tabela Administrador. 19
20 Alunos Esta tabela foi criada com o objectivo de representar a informação relativa aos alunos da respectiva Escola. Figura 5 Tabela Alunos. Disciplinas Tabela criada com o objectivo de representar a informação relativa as disciplinas da respectiva Escola. Figura 6 Tabela Disciplinas. 20
21 Docentes A seguinte tabela, foi criada com o objectivo de representar a informação relativa aos docentes da respectiva Escola. Figura 7 Tabela Docentes. Escola Tabela criada com o objectivo de representar a informação relativa à Escola em questão. De referir, que os atributos Nome_Admin, e Password correspondem à informação relativa ao administrador da Escola. Figura 8 Tabela Escola. 21
22 PonteDisciplinasDocente Criou-se esta tabela de forma a relacionar a informação contida nas tabelas Docentes e Disciplinas de maneira a representar as disciplinas leccionadas por cada docente da Escola. Figura 9 PonteDisciplinasDocentes. PonteTurmaDocente Criou-se esta tabela de forma a relacionar a informação contida nas tabelas Docentes e Turmas de maneira a representar as turmas pertencentes a cada docente da Escola. Figura 10 PonteTurmaDocente. PonteCursoDisciplinas Criou-se esta tabela de forma a relacionar a informação contida nas tabelas Curso e Disciplinas de maneira a representar as disciplinas leccionadas por cada curso da Escola. Figura 11 PonteCursoDisciplinas. 22
23 Turmas Tabela criada com o objectivo de representar a informação relativa às turmas da respectiva Escola. Figura 12 Turmas. Cursos A seguinte tabela, foi criada com o objectivo de representar a informação relativa aos cursos da respectiva Escola. Figura 13 Cursos. Localidades A seguinte tabela, foi criada com o objectivo de representar a informação relativa às localidades referentes à morada de cada utilizador da Escola. Figura 14 Localidades. 23
24 EncarregadosEducacao A seguinte tabela, foi criada com o objectivo de representar a informação relativa aos encarregados de educação dos alunos da respectiva Escola. Figura 15 Encarregados de Educação Stored Procedures desenvolvidas Neste ponto, são apresentadas e descritas as stored procedures desenvolvidas para a manipulação da Base de Dados. As seguintes stored procedures, têm a finalidade de registar/remover utilizadores da Escola em questão: Portal_AddAdmin Portal_AddAluno Portal_AddDocente Portal_AddEscola Portal_DeleteAluno Portal_DeleteDiscipDocente Portal_DeleteDocente 24
25 Apresenta-se de seguida o código relativo à Stored Procedure Portal_AddDocente: CREATE PROCEDURE Portal_AddDocente int OUTPUT ) AS INSERT INTO Docentes ( Cod_Docente, Nome_Docente, Morada, Cod_Postal, Link_Curriculo, Password, , Localidade, Contacto, Sexo, Est_Civil, Data_Nasc ) ) SELECT = 25
26 As seguintes stored procedures, têm a finalidade de associar a docentes e alunos da Escola uma determinada disciplina: Portal_AddDiscipAlunos Portal_AddDiscipDocente Apresenta-se de seguida o código relativo à Stored Procedure Portal_AddDiscipDocente: CREATE PROCEDURE Portal_AddDiscipDocente int ) AS INSERT INTO PonteDisciplinasDocentes ( Cod_Docente, Cod_Disciplina, ci_docente ) @ci_docente ) GO As seguintes stored procedures, têm a finalidade de validar o login na Escola em questão, de um determinado utilizador: Portal_AdminLogin Portal_AlunosLogin Portal_DocentesLogin Portal_EscolaLogin Apresenta-se de seguida o código relativo à Stored Procedure Portal_DocentesLogin: CREATE PROCEDURE Portal_DocentesLogin nvarchar(50) OUTPUT ) AS 26
27 = Nome_Docente FROM Docentes WHERE AND Password GO As seguintes stored procedures, têm a finalidade de devolver o código referente a um determinado utilizador da Escola em questão: Portal_Get_CI_Docentes Portal_GetCod_Login_Admin Portal_GetCod_Login_Aluno Portal_GetCod_Login_Docente Portal_GetCod_Login_Escola As seguintes stored procedures, têm a finalidade de devolver parte ou toda a informação associada a um determinado código referente a um utilizador da Escola em questão. Portal_GetDisciplinas Portal_GetDocentes Portal_Get_AllDocentes Portal_GetAlunos Portal_Get_DocentesDisciplinas Portal_ListaAluno Portal_ListaDocente Apresenta-se de seguida o código relativo à Stored Procedure Portal_ListaDocente: CREATE PROCEDURE Portal_ListaDocente int ) AS SELECT Cod_Docente,Nome_Docente,ci_docente FROM Docentes WHERE GO Cod_Docente 27
28 As seguintes stored procedures, têm a finalidade de actualizar a informação referente a um determinado utilizador da Escola em questão: Portal_UpdateAluno Portal_UpdateDocente Portal_UserLogin Apresenta-se de seguida o código relativo à Stored Procedure Portal_UpdateDocente: CREATE PROCEDURE Portal_UpdateDocente int OUTPUT ) AS UPDATE Docentes SET Cod_Docente Nome_Docente Morada Cod_Postal Link_Curriculo Password Localidade Contacto Sexo Est_Civil Data_Nasc WHERE GO Cod_Docente 28
29 Replicação da Base de Dados A replicação da Base de Dados necessária à criação de uma nova Escola, é feita com base numa script que representa um conjunto de batches. Batches são um conjunto de uma ou mais instruções SQL enviadas como uma só para serem processadas. As scripts são guardados num ficheiro em disco e são executadas com o processo OSQL. De seguida são apresentados os vários passos para a geração da script e sua execução: Fase 1 Processo de geração de scripts sql Figura 16 Fase 1 (SQL Script). 29
30 Fase 2 selecção dos objectos que farão parte da script Figura 17 Fase 2 (SQL Script). Fase 3 Processar script sql Figura 18 Fase 3 (SQL Script). 30
31 Fase 4 Execução do utilitário OSQL para correr a script sql Nesta última fase e antes de ser usado o processo OSQL, edita-se a script gerada anteriormente com o objectivo de alterar o nome da Base de Dados presente na script para um novo valor que será o nome da Escola a ser criada. Por fim, é então executado o processo OSQL para executar a script sql, gerando assim a Base de Dados pretendida. De seguida, apresenta-se um exemplo da utilização do processo OSQL, em que os parâmetros -U e -P representam respectivamente o username e a password para acesso ao motor de Base de Dados. osql.exe -U cria_bd -P bd -i c:/bdportal.sql -o c:/output.rpt 31
32 3.2. Portal Replicação do Portal Na figura de seguida apresentada podemos observar o Portal base, ou seja, aquele que representa o ambiente a partir do qual uma escola que pretenda se registar o possa fazer, caso ainda não esteja representada na aplicação. Partindo então deste ambiente, uma escola que pretenda criar um domínio único e exclusivamente seu e independente do portal base, terá de pedir ao Administrador que crie um Portal novo. Este será independente de qualquer outro Portal criado até então. Preenchendo o formulário apresentado com os dados relativos à escola em questão e prosseguindo com o consequente registo, é desencadeado um processo que ira fazer uma copia integral da estrutura da base de dados do portal inicial, como de resto fizemos referência no capitulo relativo a esse tema, e irá ainda copiar toda a estrutura de directorias e ficheiros sobre os quais o portal base funciona. Em seguida, é apresentado o excerto do código desenvolvido referente à replicação do Portal, explicitando como é feita a duplicação de todo o conteúdo do Portal da directoria base F:\Programas\ASP.NET Starter Kits\ASP.NET Portal (CSVS)\PortalCSVS\ para uma nova directoria C:\Inetpub\wwwroot\" + nome_da_escola : // DUPLICAÇAO DO PORTAL PARA A ESCOLA A SER REGISTA string path = + aux); DirectoryInfo di = new DirectoryInfo(path); if(!di.exists) di.create(); DirectoryInfo dir1 = new Starter Kits\ASP.NET Portal (CSVS)\PortalCSVS\"); DirectoryInfo dir2 = new + aux); foreach(fileinfo f in dir1.getfiles()) { string fullname = dir2.fullname + f.name; f.copyto(fullname); } foreach(directoryinfo d in dir1.getdirectories()) { dir2.createsubdirectory(d.name); } this.duplica(dir2.fullname + d.name,d.fullname); 32