Wednesday, February 28, 2007

VBScript Classes - Porque não??

E se…

…em vez de, nos nossos ASP's, usarmos funções e variaveis globais e asp's disto e daquilo, e de estruturas definidas com base apenas no bom senso (o que pode ser bom! Ou não… :)), utilizássemos classes??

Pois é, é extremamente fácil utilizar classes em VBScript, ainda que de forma limitada, mas que nos permite tirar partido de muitas vantagens de programar utilizando o paradigma OO!

Para declarar uma classe em VBScript com, por exemplo, 1 atributo privado, 1 atributo publico, 1 metodo privado e 1 metodo público, precisamos apenas disto:

<%
Class minhaClasse

'Atributos
Private meuAtribPrivado
Public meuAtribPublico

'Métodos privados
Private Sub meuMetodoPrivado
meuAtribPrivado = "
este é o atributo privado"
End Sub

'Métodos publicos
Function meuMetodoPublico
meuMetodoPrivado
Response.Write meuAtribPrivado
End Function

End Class
%>


E para utilizar a classe, precisamos apenas disto:

<%
Dim minhaInstanciaClasse
Set minhaInstanciaClasse = New minhaClasse
minhaInstanciaClasse.meuMetodoPublico
minhaInstanciaClasse.meuAtribPublico = "
este é o atributo publico"
Response.Write minhaInstanciaClasse.meuAtribPublico
%>


O output deste pequeno exemplo é este:

este é o atributo privado
este é o atributo publico

Simples, não é?? E o código fica claramente mais organizado! Experimentem colocar todo este codigo no mesmo asp para testar e podem tirar vantagens da utilização do Intellisense.

Algumas sugestões:
- criar um ficheiro asp por cada classe. Podem incluir os ficheiros de classes com a instrução ""
- atribuir ao nome do ficheiro o mesmo nome da classe
- trabalhar apenas com classes, excepto no entry point do sistema, que instancia a(s) classe(s), por exemplo, num main.asp (resistir à tentação de usar o paradigma procedimental! :))
- utilizar o padrão MVC! :) Ajuda a organizar a cabecita!! Parafraseando: "The MVC paradigm is a way of breaking an application, or even just a piece of an application's interface, into three parts: the model, the view, and the controller." Experimentem, experimentem!

Alguns sites que podem consultar:
- VBScript Classes:
http://www.4guysfromrolla.com/webtech/092399-1.shtml (uma introdução simples à utilização de OO e VBScript Classes)
http://www.activexperts.com/axscript/vbscriptclasses/ (outro artigo muito incisivo sobre a utilização de classes)
http://www.google.pt/search?hl=pt-PT&q=vbscript+classes&meta= :)
- MVC:
http://en.wikipedia.org/wiki/Model-view-controller (uma introdução)
http://ootips.org/mvc-pattern.html (outra introdução)
http://www.google.pt/search?hl=pt-PT&q=mvc&meta= :))

Divirtam-se!

:)



Wednesday, February 21, 2007

O meu MVC!

Tadaaa!....

Fiz o meu primeiro MVC 'pensado' from head to toe! :))

É verdade que já tinha feito umas experiencias...
É verdade que nao correram muito bem :)
É verdade que esta também não é a solução proximo do BOM!
É verdade que ainda tenho algumas duvidas..... :S

Mas é o que é!! :))

Então cá vai o que foi feito:

Utilizei o esquema de relacionamento MVC demonstrado na imagem ao lado.



Criei um conjunto de pastas no meu projecto com a seguinte estrutura:
mvc
-> controller
classe que representa o controlador
-> model
conjunto de classes que modelam o problema
-> view
conjunto de vistas, neste caso xsl

Depois, foi só utilizar um main.asp como entry point do sistema, que instancia o controller, e a partir daí entro na engrenagem do MVC!



Portanto, o main.asp instancia a classe controller, que instancia as classes pertencentes ao model, e que me 'dizem' quais as views a utilizar.


E voilá! Tenho um MVC! :)


:)

Wednesday, February 14, 2007

MVP (aka Model-View-Presenter)

O MVP é uma derivação do MVC, concentrando-se essencialmente no "modelo" do MVC.

Em vez de um Controller, temos um Presenter, responsável por coordenar a aplicação.
O objectivo do Presenter é interpretar eventos e executar a lógica que mapeia os eventos com o Model. O Presenter 'conhece' a View e fornece-lhe instruções. A vista é responsável por gerir os eventos despoletados pelo user (que no MVC são da responsabilidade do Controller), e o Model torna-se exclusivamente um Domain Model.

Resumidamente, as responsabilidades de cada um dividem-se da seguinte forma:
Presenter - representa e coordena a aplicação. À semelhança do Controller, liga a View e o Model.
Model - representa os dados do Domain.
View - representa a parte 'visivel' do Model (o layout!).

:)

MVC (aka Model-View-Controller)

O MVC (aka Model-View-Controller) é um padrão de desenho de sistemas.

No MVC, as responsabilidades dos tres componentes principais sao as seguintes:
- Model: modela o desenho do sistema
- View: layout do sistema
- Controller: identifica eventos e notifica a View

De forma simplista, uma maneira de compreender o MVC é a seguinte:
- o Model é uma representação dos dados
- a View é a user interface
- o Controller é a cola entre os dois anteriores! :)

"the View is the user's eyes, the Controller is his hands and the Model is his mind"

:)

Tecnicisses

Ora cá está!

(Mais um) blog de coisitas técnicas :)

Um blog onde vou escrevendo detalhes daqui e dali, desta ou daquela tecnologia, sempre relacionadas com programação.

Para já vou começar com um tópico que me despertou muito interesse nos ultimos meses: MVC/MVP

Novidades para breve!! :)