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).



quarta-feira, 5 de novembro de 2008

Inicio do Diário


Portal - EstudioC

Este projecto baseia-se numa descoberta do mundo da programação mais concretamente o mundo do C# e ASP.NET como auto-didacta.
A minha paixão pela música leva-me a orientar os conteúdos deste portal para a música feita por Portugueses.



Ferramentas utilizadas:
GIMP
Visual Studio 2005 SP2
SQL Management Studio 2005 Express Edition
FileZilla FTP
.NET Framework 2.0

Nota: Esta diário não pretende ser uma descrição exaustiva de todos os pequenos pormenores deste portal mas sim indicar em traços gerais as linhas orientadoras do progresso deste projecto.



As fases deste projecto serão:
  1. Layout
  2. Sistema de Autenticação ( permitir a criação de contas de utilizadores com configuração de acessos a pastas )
  3. Noticias ( Conjunto de artigos que estarão assentes em Base de Dados - SQL com possibilidade de fazer a sua gestão, possibilitar aos utilizadores os comentários dos mesmos)
  4. Sistema de Votação 
  5. Newsletters
  6. Fórums

1. Layout

Decidi por optar por um estilo blog para este portal por ser mais minimalista e poder concentrar-me mais na descoberta das linguagens de programação em causa do que no "fogo-de-artificio".
Utilizei uma template de um documento CSS para me ajudar a ter um alicerce atractivo e funcional. Na barra lateral do lado direito decidi optar por colocar o controlo "Login" para os visitantes terem a qualquer momento a possibilidade de se autenticarem .

2. Sistema de Autenticação (pt1)
A nível de C# a classe Membership terá que ser estudada nomeadamente os seus métodos para compreender como o Visual Studio 2005 lida com as conta de utilizadores.
Foi necessário configurar os campos dos perfis no ficheiro web.config para podermos guardar o perfil para cada utilizador. Os campos são Nome,Apelido,Cidade, País, homepage, ligação com a música.
A Loja Virtual assim como o Fórum serão acedidos apenas por utilizadores registados.

Fase seguinte: Implementar o controlo Login, Configurar o Web Administration Tool, Configuração/Edição de Perfil para cada conta de utilizador com possibilidade de mudança de Password.