sábado, 15 de novembro de 2008

Publicação do sistema de autenticação

A configuração do ficheiro web.config é essencial para que o sistema de autenticação esteja a funcionar devidamente no Host Provider. Além de configurar a tag connectionString é necessário configurar outros items senão irá aparecer um erro ( Error 26 - SQL).  Vejam o seguinte para link efectuar as devidas correcções -> Error 26

Leitura de dados - Base de Dados



Depois de ter configurado a camada DAL e os Stored Procedures decidi efectuar testes de leitura à base de dados. Para isso adicionei manualmente na tabela stc_Categorias a 1º linha através do SQL Management Studio Express, em seguida criei a página Teste.aspx constituido pelo controlo ObjectDataSource com o TypeName=namespace e onde vamos invocar os Stored Procedures, (neste caso Estudioc.DAL.SqlClient.SQLArtigos) com o método ObtemCategorias ( que invoca o Stored Procedure ) e um GridView  para apresentação dos dados.

Procedeu-se à publicação da base de dados para o Host Provider. Sugiro o  tutorial.


A visualização deste teste pode ser visualizada no link abaixo:

Nota: O exemplo AJAX foi removido já que interferia no web.config com a definição , situação para ser vista mais à frente

quinta-feira, 13 de novembro de 2008


Foram criados StoredProcedures para serem invocados pela DAL Layer.

Listagem dos Stored Procedures implementados:

stc_Artigo_AprovaArtigo
stc_Artigo_ApagaArtigo
stc_Artigo_Apaga Categoria
stc_Artigo_ApagaComentario
stc_Artigo_ObtemArtigoporID
stc_Artigo_ObtemNumerodeArtigos
stc_Artigo_ObtemNumerodeArtigosporCategoria
stc_Artigo_ObtemArtigos
stc_Artigo_ObtemArtigosPorCategoria
stc_Artigo_ObtemCategorias
stc_Artigo_ObtemCategoriasporID
stc_Artigo_ObtemComentarioporID
stc_Artigo_ObtemNumerodeComentarios
stc_Artigo_ObtemNumerodeComentariosporArtigo
stc_Artigo_ObtemComentarios
stc_Artigo_ObtemComentariosporArtigo
stc_Artigo_ObtemNumerodeArtigosPublicados
stc_Artigo_ObtemNumerodeArtigosPublicadosporCategoria
stc_Artigo_IncrementaContadorVisitas
stc_Artigo_InsereArtigo
stc_Artigo_InsereCategoria
stc_Artigo_InsereComentario
stc_Artigo_InsereVoto
stc_Artigo_ActualizaArtigo
stc_Artigo_ActualizaCategoria
stc_Artigo_ActualizaComentario



Foram criadas 3 classes denominadas Artigos_Detalhes, Categorias_Detalhes e Comentarios_Detalhes que contêm Propriedades (variáveis públicas) de cada um destes items.

Foi criada uma classe denominada AcessoDados contendo a leitura ao ficheiro web.config, e os métodos:
ExecuteNonQuery -MSDN->Executes a Transact-SQL statement against the connection and returns the number of rows affected 
ExecuteReader -MSDN-> Provides a means of reading one or more forward-only streams of result sets obtained by executing a command at a data source, and is implemented by .NET Framework data providers that access relational databases.
ExecuteScalar - MSDN->Executes the query, and returns the first column of the first row in the result set returned by the query. Additional columns or rows are ignored

Foi criada a classe ArtigosAbstracto derivada da AcessoDados com os métodos (abstractos ).
Foi criada a classe SQLArtigos derivada da ArtigosAbstracto com os métodos que fazem invocam os Stored Procedures.

Exemplo de um deles:
public override List ObtemCategorias()
        {
            using (SqlConnection cn = new SqlConnection(this.ConnectionString))
            {
                SqlCommand cmd = new SqlCommand("stc_Artigo_ObtemCategorias", cn);
                cmd.CommandType = CommandType.StoredProcedure;
                cn.Open();
                return ObtemColecaoCategoria_Reader(ExecuteReader(cmd));
            }
        }







sábado, 8 de novembro de 2008

Depois de criadas as tabelas, stc_Categorias, stc_Artigo, stc_Comentarios, foram estabelecidas relações entre elas.
Nota: O item "Cascade" deverá estar seleccionado para as operações de Update e Delete Rule

sexta-feira, 7 de novembro de 2008

3.Notícias
A secção de Noticias traz desafios interessantes a nível de operações de C# com SQL. Nela se pretende que utilizadores nomeados a editores possam publicar artigos referentes a cada uma das categorias existentes e que os visitantes das páginas as possuam consultar e deixar os seus comentários
A imagem do lado apresenta todo o processo a implementar para que esta nova funcionalidade se torne uma realidade:

  1. São criadas 3 tabelas a nível de SQL (com relações entre elas). São elas: stc_Artigos, stc_Categorias, stc_Comentarios. 
  2. São criados um conjunto de Stored Procedures para que se possa proceder a escrita/leitura das tabelas, despoletados por métodos em C#
  3. DAL (Data Access Layer), camada onde são descritos em C# todas as variáveis relativas a um artigo, uma classe abstracta onde com métodos CRUD (Create, Read, Update e Delete) e por uma classe derivada desta ultima com os comandos próprios de SQL que acciona os Stored Procedures
  4. BLL (Business Logic Layer) que permite além de aceder aos dados, reforçar a validação de rules, check constraints e providenciar uma representação em objectos dos dados e métodos.
  5. UI (User Interface) Criação de interface com apresentação de dados, normalmente através dos controlos ASP, Grid View, Repeater,etc 

AJAX - Teste














Alguns problemas no meu SQL Server Express Edition que ainda estão a ser tratados levaram-me a optar por experimentar algo novo, o AJAX
Instalando o ASP.NET AJAX Extensions 1.0 para .NET Framework 2.0 ( as limitações da versão .NET devem-se ao "host provider") e configurando o ficheiro web.config conseguimos adicionar os elementos
Script Manager e Update Panel que nos permitem implementar com sucesso esta nova funcionalidade entre a Master Page e as Content Pages.

Nota: o texto que se encontra em movimento é obtido através da introdução da tab marquee 


quinta-feira, 6 de novembro de 2008

Autenticação

2. Sistema de Autenticação (pt2)

Através do WebSite -> ASP.NET Configuration é possível configurar o nosso ficheiro ASPNETDB.MDF com toda a informação sobre as contas de utilizadores, Roles etc.

Neste caso foi criado um Role=Admin que permite acesso à pasta admin reservada apenas aos utilizadores com caracteristicas de Administração.
Nesta página temos configurado o ficheiro Gerir Contas que permite ao utilizador procurar por contas de utilizador e removê-las.

Cada novo visitante poderá se registar no website, criando uma nova conta com a possibilidade de configurar/alterar o seu perfil inclusivamente assim como alterar a sua password a qualquer altura.
Todo o código de "Editar o Perfil" foi embebido num "UserControl" (*.ascx). A vantagem deste controlo é não termos que repetir código quando procedemos à configuração do perfil quando criamos a conta pela 1ª vez e quando o o utilizador pretende alterar o seu perfil.

Fases seguintes: Publicação do ficheiro ASPNETDB.MDF no host e Inicio à Seccção de Noticias ( toda ela será configurada em SQL).