ASP.NET 2.0 - Criando um Blog
Que tal criar um blog de discussão usando ASP.NET 2.0 ?
Os blogs estão na moda não é mesmo !!! Vamos então unir o útil ao prático e mostrar como criar um blog usando alguns dos recursos da ASP.NET 2.0.
Este artigo esta baseado inteiramente no artigo de Bipin Joshi, eu apenas fiz pequenas alterações e adaptações. O objetivo é explorar as novidades da ASP.NET 2.0 e mostrar que com pouco esforço de codificação podemos criar páginas Web interativas funcionais sem ter que fazer um mestrado na área.
Nosso Blog terá os recursos básicos que qualquer blog possui: mensagens, comentários, categorias e link. Além destes recursos o blog terá uma área de administração básica para gerenciar as categorias, os links e as mensagens.
As ferramentas que eu vou usar são gratuitas de forma que você não vai gastar um centavo para criar o seu blog;
Criando o projeto, o banco de dados e as tabelas
A primeira coisa a fazer é criar um novo web site; eu chamei de BlogMac, mas você pode alterar a o nome a seu critério. Abra o Visual Web Developer Express e no menu File selecione New Web Site, usando o template ASP. NET Web Site, e, informando o nome sugerido. A página Default.aspx que é criada por padrão deve ser excluída do projeto.
Vamos agora criar o banco de dados e as tabelas onde serão persistidas as informações do nosso Blog. Clique com o botão direito sobre o projeto e selecione a opção Add New Item. Na janela Templates selecione SQL DataBase informando o nome BlogMac, ou outro a seu critério;
O ASP.NET irá emitir um aviso informando que o banco será armazenado na pasta App_Data. Confirme este opção.
Após criar o banco de dados BlogMac.mdf , vamos criar 4 tabelas:
Assim , na janela DataBase Explorer , expanda os objetos do banco de dados e clique com o botão direito do mouse sobre o objeto Table e selecione a opção: Add New Table. A seguir defina cada uma das tabelas acima com os campos mostrados na figura abaixo:
- Tabela Categorias:
Nesta tabela e em todas as outras vamos definir o campo chave primária como sendo do tipo Identity , desta forma o campo será de numeração automática. |
- Tabela Comentarios :
- Tabela Mensagens :
- Tabela Links :
Ao final do processo , devemos ter o seguinte resultado. Na figura abaixo eu já criei o diagrama do banco de dados;
Com a base de dados e as tabelas criadas já podemos nos planejar como será feito o acesso aos dados. Esse projeto ira usar o recurso do SqlDataSource de forma a tornar mais simples o desenvolvimento, mas para mostrar como criar uma camada de acesso a dados vou criar um classe chamada AcessoBD onde irei colocar os métodos de acesso a dados que iremos usar na aplicação Blog.
Clique no nome do projeto com o botão direito do mouse se selecione a opção Add New Item. A seguir na janela Templates selecione Class e informe o nome AcessoBD.vb clicando em Add.
Inclua a seguir o código abaixo no arquivo AcessoBD.vb:
Imports System.DataImports System.Data.SqlClientImports System.ConfigurationImports System.Text
Namespace DALPublic Class AcessoBD Private Shared strConn As String Shared Sub New() strConn = ConfigurationManager.ConnectionStrings( "ConnectionString").ConnectionString End SubPublic Shared Function ExecuteNonQuery(ByVal query As String) As Integer Dim cnn As SqlConnection = New SqlConnection(strConn) Dim cmd As SqlCommand = New SqlCommand(query, cnn) cnn.Open()
cnn.Close() Return retval End Function Public Shared Function ExecuteNonQuery(ByVal query As String, ByVal params() As SqlParameter) As Integer
Dim cmd As SqlCommand = New SqlCommand(query, cnn) FillParameters(cmd, params)
cnn.Open() Dim retval As Integer = cmd.ExecuteNonQuery() cnn.Close() Return retval End Function Public Shared Function ExecuteReader(ByVal sql As String) As SqlDataReader
Dim cmd As SqlCommand = New SqlCommand(sql, cnn) Return cmd.ExecuteReader(CommandBehavior.CloseConnection) End Function Public Shared Function ExecuteReader(ByVal sql As String, ByVal params() As SqlParameter) As SqlDataReader Dim cnn As SqlConnection = New SqlConnection(strConn) Dim cmd As SqlCommand = New SqlCommand(sql, cnn) FillParameters(cmd, params) Return cmd.ExecuteReader(CommandBehavior.CloseConnection) End Function Public Shared Function ExecuteScalar(ByVal sql As String) As Object Dim cnn As SqlConnection = New SqlConnection(strConn) Dim cmd As SqlCommand = New SqlCommand(sql, cnn) cnn.Open() Dim retval As Object = cmd.ExecuteScalar() cnn.Close() Return retval End Function Public Shared Function ExecuteScalar(ByVal sql As String, ByVal params() As SqlParameter) As Object Dim cnn As SqlConnection = New SqlConnection(strConn) Dim cmd As SqlCommand = New SqlCommand(sql, cnn)
FillParameters(cmd, params) cnn.Open() Dim retval As Object = cmd.ExecuteScalar() cnn.Close() Return retval End Function Public Shared Function ExecuteDataSet(ByVal sql As String) As DataSet
Dim cmd As SqlCommand = New SqlCommand(sql, cnn) Dim da As SqlDataAdapter = New SqlDataAdapter
da.SelectCommand = cmd Dim ds As DataSet = New DataSet da.Fill(ds) Return ds
End
Function Public Shared Function ExecuteDataSet(ByVal sql As String, ByVal params() As SqlParameter) As DataSet
Dim cmd As SqlCommand = New SqlCommand(sql, cnn)
Dim da As SqlDataAdapter = New SqlDataAdapter
Dim ds As DataSet = New DataSet
End Function Private Shared Sub FillParameters(ByVal cmd As SqlCommand, ByVal parameters() As SqlParameter)
Dim i As Integer For i = 0 To parameters.Length - 1 cmd.Parameters.Add(parameters(i)) NextEnd Sub End Class End Namespace |
Para saber mais sobre os conceitos relacionados a camada de dados - DAL (Data Access Layer) veja os artigos:
Neste código temos o Namespace DAL que será usado para acessar os métodos. Note que os métodos são todos estáticos, desta forma não necessitamos instanciar a classe para ter acesso aos mesmos.
Perceba que há duas versões sobrecarregadas (uma sem parâmetros e outra usando parâmetros) dos seguintes métodos:
Obs: No projeto não serão usados todos os métodos definidos na classe acima, mas você pode estudá-los para reutilizar em seus projetos.
Estamos obtendo a string de conexão do arquivo web.config e executando métodos para retornar dataread, dataset, executar um comando , gerar um valor único e executar consultas que não retornam valores.
No próximo artigo vou criar a master page do blog . Aguarde...
Veja a continuação do artigo em : Criando um Blog II
A vídeo Aula deste artigo esta no Super DVD Vídeo Aulas
Até o próximo artigo ASP .NET
José Carlos Macoratti