Nova release
May 16th, 2007
O desenvolvimento continua ativo, atualizações diárias no repositório, a comunidade contribuindo, notavelmente:
- Edson Alanis
- Edson Lima
- Erick Sasse
Além do desenvolvimento do framework, trabalhos para aumentar a qualidade estão sendo feito:
- Testes unitários com DUnit
- Builds e testes automáticos com Final Builder e Cruise Control patrocinado pela Cadena
Última release: http://jazz.liws.com.br/download/jazz_a20.zip
Change Log: http://jazz.liws.com.br/download/jazz_a20changelog.txt
Atualizações diárias no repositório subversion: http://code.google.com/p/jazz-sdk/source
Jazz alpha 10
December 13th, 2006
Está disponível para download esta versão, ultimamente não estou colocando releases para download com freqüencia pois passamos a utilizar o subversion e aparentemente está indo muito bem.
Esta versão corrige vários bugs e adicionas algumas das funcionalidades que faltam para concluir a versão 1.0, não vou apresentar mais logs detalhados aqui pois agora eles podem ser lidos através do subversion, já que adotei a política de comentar todos os “Commits”.
Download: http://jazz.liws.com.br/download/jazz_a10.zip
Repositório subversion: http://code.google.com/p/jazz-sdk/source
Jazz SDK no DUG Campinas - 09/12/2006
December 4th, 2006
Estarei apresentando o Jazz na reunião do DUG de campinas no próximo sábado, mas informações sobre o evento no site http://www.dugcampinas.com.br
A apresentação seguirá assim:
- Apresentação dos frameworks VTF, OPF, MVP e como utilizá-los no dia-a-dia
- Como personalizar o Jazz para necessidades específicas
- Planos para o futuro
Jazz week - Invalid pointer operation - atualizações - testes unitários
December 2nd, 2006
- TObjectType - novo método: procedure InitInstance; virtual;
Chamado no construtor, após a criação de todos os objetos internos, então será chamado antes do AfterConstruction, acho que assim temos uma alternativa razoável e pode ser um padrão.
Já atualizei as classes do exemplo FirstPersister para refletir esta mudança.
- Fiz algumas alterações na classe TObjectQuery, abstraindo ainda mais o acesso a “Fields”, “FieldCount” e a carga do Field recuperado para o Member, desta forma o código específico do mecanismo ficou mais simples, com estas alterações todas as melhoras do DatabaseMechanism foi propagado ao ADOMechanism que tinha muito código especifico. Aproveitei e já fiz testes completos, o ADOMechanism volta ao estado de estável.
- Alguns dos problemas desta semana não seriam resolvidos com testes unitários, mas muitos sim.
Eu não implementei os testes unitários ainda, por que acho que preciso estudar mais a fundo para fazer a implementação de forma definitiva,
se alguém tiver sugestões e mais informações sobre esta área, além é claro do material que já vem com DUnit, por favor me envie.
- Durante a semana fizemos foram reportados vários problemas, creio que todos foram resolvidos, se ficou algo pendente por favor me cobrem.
Entre os problemas e dúvidas reportados, e que considero todos resolvidos:- Relacionamento 1 x 1
- Relacionamento 1 x N
- Mapeamento de relacionamentos
- LazyLoad
- Operações em cascata
- Retorno de funções: TObjectListType.AsString e TObjectListType.FindObject
- ADOMechanism
- TODO + o que ficou para pesquisar
- TDataGenerator para Generators de Firebird/Interbase - vou priorizar isto
- Problemas com contexto no AfterConstruction
- Reimplementar FindObject para aceitar ICriteria como parâmetro - provavelmente para uma próxima versão
- Implementar Testes Unitários
- MVP - Concluir Views
- MVP - propagar estado dos commands para a UI
- Sincronismo do banco de dados
- Mapeamento de um atributo para StoredProcedure ou SubSelect
- Documentação
- Manual
- Mais exemplos
- Obrigado a todas colaborações, sujetões e criticas
Jazz - Model View Presenter
November 11th, 2006
O Framework MVP está quase pronto, o demo FirstPersister.dpr está parcialmente convertido.
As alterações estão no repositório subversion, bem como o demo atualizado.
http://code.google.com/p/jazz-sdk/source
Jazz Alpha 9
October 30th, 2006
Cada vez mais próximo da versão 1.0, nesta atualização houve um grande esforço na revisão de todas units, que deixou o código mais limpo, reutilizável e com ganho de performace.
Além da revisão há boas novidades:
No VTF os objetos derivados de TValueType ganharam uma nova propriedade “ValueTypeKind: TValueTypeKind“, desta forma podemos identificar um ValueType sem a necessidade do QueryInterface. Os tipos numéricos ganharam uma interface antecessora comum “INumericType” que possibilita a conversão direta de Float e Integer através das propriedades ‘AsFloat’ e ‘AsInteger’. Pra concluir as novidades deste framework há um “Factory” para facilitar a criação de objetos atributos (membros) na programação, com o “TypeFactory“ podemos criar objetos assim:
var
LItem: IStringType;
begin
LItem:= TypeFactory.NewString('Texto');
...
end;
As novidades do OPF estão em 2 ítens, a criação de metadados específicos para OID, através da classe “TOIDMeta“, deixando claro que o Jazz assume que os OID são utilizados apenas para a persistência no relacionamento entre tabelas, nos objetos eles são apenas mais um atributo, pois o relacionamento dos objetos é feito via referência de objetos, como ponteiros. Com esta reestruturação, o novo modelo proporcionou a criação do “DataFactory” para a geração automática de dados, o que sigfinica que qualquer campo pode ser automático, não somente os mapeados para OID, os “data generators” (TDataGenerator) implementam como estes valores devem ser gerados, de acordo com seu escopo, pela aplicação, por classe ou por atributo de classe, para começar temos TGuidGenerator, TAscendingGenerator e TDescendingGenerator, mas a partir destes é simples criar novos para por exemplo pegar valores a partir de generators do Firebird. Para definir que um atributo utilize este recurso, basta adicionar a classe do generator no mapeamento do membro:
with Mapping do
begin
with AddObject(’TAddress’, ‘ADDRESS’) do
begin
with Add(’ID’, ‘ID’) do
begin
Size:= 38;
IsOID:= True;
GeneratorClass:= TGuidGenerator; // end;
….
O MVP está quase pronto, sua evolução está na implementação de classes que estavam apenas declaradas e refinamento da modelagem, como já mencionei num post anterior estou implementando as Views com componentes DevExpress o que me obrigou a testar muito devido aos recursos disponíveis nestes componentes e a minha vontade de utilizar estes recursos, a única parte que terei de implementar e testar depois são os Interactos pois os componentes do DevExpress já implementam internamente a maior parte deste recurso. Minha previsão é que na próxima versão teremos algum exemplo simples de MVP com componentes VCL.
Changelog detalhado: http://www.liws.com.br/wiki/index.php/Alpha_9
Download: http://jazz.liws.com.br/download/jazz_a9.zip
Jazz Alpha 8
October 20th, 2006
Nesta versão foi feita uma grande alteração nas notificações e controle de estado dos objetos, agora o parâmetro é do tipo IObjectEvent no lugar do TNotifyType, o tempo de vida deste “objeto evento” é gerenciado pelo INotifyManager.
Para criar um novo evento, basta chamar a função NewEvent que se encarrega de criar e adicionar ao gerenciador:
Notify(NewEvent(TModifiedEvent, Self));
ou ainda adicionar parâmetros:
Notify(NewEvent(TModifiedEvent, Self, [OldValue, NewValue]));
Esta mudança trouxe uma grande flexibilidade, podemos passar junto com a notificação qualquer número de parâmetros de qualquer tipo, apenas o destino deve saber o que fazer com estes parâmetros.
Todo o restante do framework foi afetado por estas mudanças e as atualizações foram propagadas, inclusive nos programas exemplos.
Até que enfim a primeira versão das units do MVP estão disponíveis, mas infelizmente não são úteis para produção por que não há ‘Views’ para VCL, todas as Views que estou fazendo até agora são para os componentes DevExpress que farão parte do pacote adicional do Jazz que será comercializado pela Liws.
Um vídeo, mostrando um exemplo simples de parte de código e uma tela mestre-detalhe com MVP pode ser visto em http://jazz.liws.com.br/download/mvp/mvp1.htm.
Passou um mês sem atualizações, mas muita coisa foi feita, a provisão agora é que as atualizações voltarão a ser semanais, trazendo cada vez mais novidades do MVP, também pretendo disponibilizar algumas vídeo-aulas.
ChangeLog: http://www.liws.com.br/wiki/index.php/Alpha_8
Wiki: http://www.liws.com.br/wiki
Download: http://jazz.liws.com.br/download/jazz_a8.zip
Jazz SDK
August 8th, 2006
- O que é “Jazz SDK”?
- Por que eu devo usá-lo?
- O que é OO Framework?
Pronto para começar?