Anúncios

Design Pattern – Façade

O pattern Façade (fachada), pertencente ao catálogo GOF, possui a intenção de estruturar o sistema de forma que se crie uma barreira (fachada) entre um conjunto complexo de instruções (subsistema) e os desenvolvedores (usuários), de forma que o subsistema torne-se mais fácil de ser utilizado e entendido, além de tornar-se reutilizável e confiável por executar sempre a mesma seqüência de passos. (Bishop, 2007, p. 93) (GoF, 1995, p. 179)

“Fornece uma interface unificada para um conjunto de interfaces em um subsistema. O Façade define uma interface de nível mais alto que torna o subsistema mais fácil de usar.” (GoF, 1995, p. 179)

clip_image002

 

Leia mais deste post

Anúncios

Design Patterns

Olá,

Não sei se sabem, mas Design Patterns são realmente um tema do qual eu gosto muito de falar e do qual sou extremamente fascinado. Por isso gostaria de começar uma série de artigos abordando o tema. Espero que aproveitem!

Design Patterns…

“Os Design Patterns não exigem nenhum recurso incomum da linguagem, nem truques de programação surpreendentes para impressionar seus amigos e gerentes.” (GoF, 1995, prefácio vii)

Um Design Pattern (Padrão de Projeto) é uma solução para um problema recorrente de modelagem de um software orientado a objetos. É composto por descrições de objetos e classes comunicantes que precisam ser personalizadas para resolução de um problema geral de projeto dentro de um contexto particular. (GoF, 1995, p. 20) (Freeman, 2005, p. 47/460)clip_image002

Leia mais deste post

EF Code First – Design Patterns – Asp.Net – Multi-Camadas – E muito trabalho!

Olá!

Na última semana preparei um post especial… Sim, especial! Mas qual o motivo do “especial”? Bem, como todos sabem, passo bastante tempo no fórum do MSDN, e assim adquiro experiência sobre quais técnologias estão utilizando e quais suas principais dúvidas. Desta forma, procuro aqui no blog responder boa parte destas perguntas com posts técnicos.

Diante disso, resolvi montar um exemplo maior, que cubra diversos aspectos e dúvidas que muitas pessoas tem apresentado. Neste post quero falar sobre: Relacionamento 1:N (um-para-muitos), relacionamento N:N (muitos-para-muitos), uso de uma aplicação multi-camadas com Entity Framework Code-First e o uso dos design patterns MVC e DAL.

view

Leia mais deste post

Acesso a Dados – Design Patterns – Façade Pattern

Este é um exemplo simples de uma classe que implementa o Design Pattern Façade. Aqui criei uma classe de acesso a dados que encapsula os comandos de execução e seleção de dados dentro de uma base. Nesse instante é possível executar comandos em ODBC e SQL Client pela classe. O mais importante nela é a centralização e utilização dos objetos Data Common que são a base para o SQLClient, ODBC, OleDb, entre tantos outros. A string de conexão por enquanto deve ser definida logo nas primeiras linhas da classe. Esta classe ainda não é a versão final. Pretendo melhorá-la ao longo do tempo.

http://code.msdn.microsoft.com/Acesso-a-Dados-Design-a5455cd0

Padrão Bom Cidadão (Good Citizen Pattern)

Olá,

Faz algum tempo que não escrevo e o motivo disto é uma questão de tempo. Devo apresentar meu mestrado no próximo mês de Dezembro e a correria é grande para terminar tudo…

Hoje gostaria de escrever sobre um design pattern que sempre apliquei, mas que não sabia que era um design pattern. Esse tipo de situação é mais comum de acontecer do que parece… Geralmente os design patterns são soluções que as pessoas aplicam no seu dia-a-dia e que após serem consideradas viáveis e reutilizáveis são documentadas em algum catálogo de padrões.

51M-zRDNMJL._SL500_PIsitb-sticker-arrow-big,TopRight,35,-73_OU01_SS500_

Leia mais deste post

Sistematizar a informação visualmente para mapear e conhecer

O modelo de sala de aula tradicional é totalmente padronizado, isto é, as aulas são sempre dadas da mesma maneira. Este modelo não se enquadra mais a atualidade, onde estamos inseridos na sociedade do conhecimento, ao dinamismo das ações e ao acesso em tempo real de informações. Este modelo de sala de aula é o modelo utilizado na era industrial, não se enquadra mais a necessidade de orquestração do ensino que vivemos hoje. Os paradigmas mudaram, a capacidade de disseminar informação explodiu, mas as salas de aula e os métodos de ensino continuam os mesmos.

Leia mais deste post

Construindo camadas de acesso a dados

A principal motivação para o uso de uma camada de acesso a dados (data access layer, DAL) em nossa aplicação é manter os códigos (e as tecnologias) de acesso a dados encapsulados em uma camada que fique responsável por comunicar-se com a fonte de dados, persistindo e recuperando dados de nossas entidades.

Uma camada de acesso a dados deve fornecer recursos para criação, leitura, atualização e exclusão de dados, além de controles de transação, segurança, mapeamento, concorrência, e outros. A sua criação favorece o uso de uma administração centralizada que separa o comportamento da camada de negócios das lógicas de acesso a fontes de dados e serviços.

data-net

Leia mais deste post

Um modelo arquitetural…

Nos últimos tempos tenho recebido algumas perguntas de como modelo meus projetos, quais design patterns utilizo e como divido minha aplicação em camadas. Estas perguntas possuem apenas uma resposta: depende do caso.

Cada aplicação merece um modelo arquitetural diferente do outro. Cada aplicação exige diferentes design patterns. Cada aplicação funciona de um jeito. Nenhuma aplicação é igual a outra, assim como os dedos das mãos não são iguais.

Mas, como esta pergunta não possui uma resposta certa ou errada, gostaria de demonstrar um modelo arquitetural que me agrada bastante. Este modelo mescla alguns design patterns e alguns princípios de projetos orientados a objetos. A arquitetura da aplicação é a demonstrada abaixo.

architecture

Leia mais deste post

100 – 10 – 2.0 – 2013

Este é um post bastante especial, pois este é o post número 100 deste blog.

Neste blog procuro postar diferentes assuntos que tenho estudado, como: boas práticas, design patterns, C# e mais especificamente sobre técnicas de acesso a dados, além de algumas experiências com diferentes tecnologias.

Leia mais deste post

Livros

Olá,
Gostaria de compartilhar nesta página alguns dos livros que contribuiram para minha formação e que na minha opinião são relevantes.


Design Patterns - GoF Design Patterns – Elements of Reusable Object-Oriented Software

Com certeza este é um dos livros que mais me inspiraram (e inspiram) até hoje. Design Patterns fazem com que seu estilo de programação mude totalmente. Recomendo este livro a todo programador que admire o paradigma orientado a objetos e queira evoluir a qualidade de suas soluções, além de torná-las cada vez mais modulares e desconectadas.

Framework Design Guidelines Framework Design Guidelines

Este livro tem apenas um único objetivo: abrir sua mente! Este é o tipo de livro que muda o modo como você está acostumado a programar e compor suas classes e métodos. Este livro contém um conjunto de dicas e boas práticas para o desenvolvimento de frameworks, mas seu conteúdo não é restrito apenas a desenvolvedores que estejam construindo frameworks. O conteúdo de Framework Design Guidelines ultrapassa a barreira de um “livro de dicas” e apresenta modelos de composição de classes e sistemas reutilizáveis. Os autores nos instruem ao uso de um modelo sensato de composição de classes, tornando seu código muito mais lógico, estruturado e bem definido.

Introdução Arquitetura e Design Software Introdução à Arquitetura e Design de Software

Este livro foi uma grande surpresa. Esta obra prima reúne diferentes conceitos relacionados à arquitetura de software. Conceitos como: acoplamento, coesão, princípios de projetos orientados a objetos, design patterns, programação multi-camadas, cloud e outros termos podem ser encontrados aqui. Um livro brasileiro digno de palmas.

Professional ASP.Net Design Patterns Professional ASP.Net Design Patterns

Este livro aborda o uso de design patterns não específicos para aplicações construídas em ASP.Net. São abordados diferentes exemplos de padrões que funcionam para diferentes técnologias de apresentação, mas que, para este livro, são abordados com ASP.Net. Diferentes padrões são abordados e discutidos. Padrões de aplicação como repository, MVC, MVP e DAL são abordados.

C-Sharp Design Pattern C# 3.0 Design Patterns

Uso prático de design patterns. Para cada padrão discutido é apresentado um exemplo prático do dia-a-dia, desta forma fica mais fácil de compreender o funcionamento dos design patterns em um ambiente mais fácil de ser abstraído, fugindo bastante do “mesmismo” da teoria.

Entity Framework Code First Programming Entity Framework Code First

Para quem quiser aprender a utilizar o Entity Framework Code First este livro é simplesmente ponto chave. Aborda todos os usos do Entity Framework Code First até a versão 4.2. Neste livro são abordados os temas: relacionamento entre entidades, mapeamentos com Fluent API e Data Annotations, criação automática de bancos de dados, mapeamento de bancos de dados existentes, convenções, inicializadores de bancos de dados, mapeamento de classes com heranças, estruturas complexas, e outros temas mais avançados.

Entity Framework Programming Entity Framework

Simplesmente obrigatório.

Entity Framework DbContext Programming Entity Framework DbContext

Este livro aborda o funcionamento da DbContext API. 100% recomendado a todos os admiradores de Entity Framework.

LINQ - Pocket Reference LINQ – Pocket Reference

Manual obrigatório para o auxílio a construção de consultas LINQ, tanto para bancos de dados, quanto para XML e objetos.

LINQ - Pocket Reference Análise e Projeto de Sistemas de Informação Orientados a Objetos

Este livro é fantástico! Para quem esta começando a trabalhar com orientação a objetos vale a leitura deste livro. O auto explica como compor as classes de seu sistema abordando o uso de heranças, associações, uso de listas e navegabilidade. Bastante prático.

Clean Code Clean Code

Este livro reune um conjunto de boas práticas para construção de um código mais limpo. Os autores expõe suas propostas para consturção de um código mais claro e intuitivo. Este livro também é do tipo que faz você mudar seu modo de programar. Recomendado.

Algoritmos Genéticos Algoritmos Genéticos – Uma importante ferramenta de inteligência computacional

Este livro do Ricardo Linden é realmente fantástico. Utilizei-o durante o mestrado e meu ajudo muito! Com uma linguagem simples e direta o autor explica diferentes conceitos como: algoritmos evolucionários, algoritmos genéticos, torneio, elitismo entre outros.

UML 2.0 UML 2.0

Recomendo este livro a quem trabalha ou estuda UML. O livro é bastante direto, apresenta diferentes exemplos de aplicação da UML e não deixa dúvidas sobre os diagramas existentes na UML 2.0.

31 Days of Refactoring 31 Days of Refactoring

Este e-book propõe 31 exemplos de refatoração a serem aplicados em suas aplicações, a fim de torna-las melhor estruturadas. O autor propõe o estudo de um padrão por dia, para que seja melhor entendido e seu uso refletido pelo leitor. Realmente este e-book é uma grande aula. Link para download: http://lostechies.com/wp-content/uploads/2011/03/31DaysRefactoring.pdf

Improving .NET Application Performance and Scalability Improving .NET Application Performance and Scalability

Se você precisa expandir seus conhecimentos para tornar suas aplicações mais performáticas, então este é o livro certo. Muitas dicas sobre boas práticas e coisas a serem evitadas são apresentadas. Outro ponto forte deste livro é a descrição feita pelos autores sobre o funcionamento interno do .Net Framework, detalhes sobre threads, garbage collector, arrays, tipos por valor e boas práticas na construção de classes. Link para download: http://msdn.microsoft.com/en-us/library/ff649152.aspx