Microsoft Commerce Server 2009: Commerce Foundation
Para entendermos completamente o que é o novo Commerce Foundation, precisamos relembrar alguns conceitos.
Como podemos observar na figura, a estrutura base do Commerce envolve o que chamamos de Commerce Server Core Systems, que pode ser subdivido em 5 sistemas:
- Orders System
- Marketing System
- Catalog System
- Inventory System
- Profiles System
Conforme explicado no post anterior, cada sistema representa uma parte importante no processo do comércio eletrônico, e em conjunto fornecem toda a estrutura necessário que criemos, através do Commerce Server, uma aplicação completa.
A versão 2009 apresentou um novo conceito chamado Commerce Foundation, que podemos definir basicamente como:
- Novo modelo de programação unificado
- Exemplos de desenvolvimento
- Documentação
No cenário técnico, o Commerce Foundation é uma coleção de novas operações que podem ser realizadas nos Core Systems, como segue:
Catalog System
- Recuperação de informações do site, catálogo, categorias, produtos, variantes e estoque;
- Full-text search;
- Integração com Sharepoint;
Marketing System
- Recuperação de conteúdo direcionado;
- Recuperação dos descontos aplicados ao carrinho ou ao pedido;
- Recuperação de descontos simples aplicados a produtos ou categorias;
- Registros de eventos de campanhas;
- Integração com Virtual Earth;
Orders System
Existem algumas diferenças entre a versão 2009 e versão 2007 do Orders System. Neste novo modelo, algumas alterações foram efetuadas em relação ao basket e principalmente nas formas de pagamento. Veremos os detalhes nos próximos posts da série.
Profiles System
Através deste sistema é possível administrar as informações dos usuários, através de Site Terms e Profiles, assuntos próximos da série de posts sobre Commerce.
Novo modelo de entidades
A versão 2009 do Commerce apresentou um novo modelo de entidades para representar a visão conceitual do produto através de todos os Core Systems. A base para todo este novo modelo de entidade é a classe CommerceEntity.
Todas as operações realizadas no Commerce podem ser resumidas como operações de request-response. Resumidamente, podemos enviar dados para a requisição e receber respostas de execução.
var query = new CommerceQuery<CommerceEntity>("UserProfile"); query.SearchCriteria.Model.Properties["Email"] = "useremail@yourcompany.com"; CommerceResponse response = OperationService.ProcessRequest(base.GetCurrentRequestContext(), query.ToRequest());
A figura acima representa a entidade base CommerceEntity, apresentando a coleção Properties. Esta coleção representa um conjunto nome/valor para as propriedades da entidade.
OperationService
O serviço de operações exemplificao acima tem o papel de receber uma requisição do Commerce e retornar uma CommerceResponse.
CommerceRequest e CommerceResponse
O objetivo do CommerceRequest é simplesmente identificar uma ou mais operações a serem realizadas, sendo que o CommerceResponse é a resposta para estas operações:
Pontos Positivos desta Abordagem
O que vem para agradar e muito é o novo modelo totalmente extensível, fornecendo entidades fortemente tipadas definidas de acordo com cada projeto, através da interface ICommerceEntity:
--
Veremos nos próximos posts a aplicação prática destes conceitos. Aguardem!