Introduction to Entity Framework – Part1

Entity Framework is an Object Relational Mapper (ORM) from Microsoft that lets the application’s developers work with relational data as business models. It eliminates the need for most of the plumbing code that developers write (while using ADO.NET) for data access. Entity Framework provides a comprehensive, model-based system that makes the creation of a data […]

Continue Reading

Continuously Integrate

HE BUILD AS A “BIG BANG” EVENT in project development is dead. The architect, whether an application or enterprise architect, should promote and encourage the use of continuous integration methods and tools for every project. The term continuous integration (CI) was first coined by Martin Fowler in a design pattern. CI refers to a set […]

Continue Reading

Pay Down Your Technical Debt

ON ANY PROJECT THAT IS IN PRODUCTION (i.e., it has customers that are using it), there will come a time when a change must be made; either a bug needs fixing, or a new feature must be added. At that point there are two possible choices: you can take the time needed to “do it […]

Continue Reading

Queue-Centric Workflow Pattern

This essential pattern for loose coupling focuses on asynchronous delivery of command requests sent from the user interface to a back-end service for processing. This pattern is a subset of the CQRS pattern. The pattern is used to allow interactive users to make updates through the web tier without slowing down the web server. It […]

Continue Reading

Database Sharding Pattern

This advanced pattern focuses on horizontally scaling data through sharding. To shard a database is to start with a single database and then divvy up its data across two or more databases (shards). Each shard has the same database schema as the original database. Most data is distributed such that each row appears in exactly […]

Continue Reading

Make the Invisible More Visible

MANY ASPECTS OF INVISIBILITY are rightly lauded as software principles to uphold. Our terminology is rich in invisibility metaphors—mechanism transparency and information hiding, to name but two. Software and the process of developing it can be, to paraphrase Douglas Adams, mostly invisible: Source code has no innate presence, no innate behavior, and doesn’t obey the […]

Continue Reading

Design Principles

What are Software Design Principles? Software design principles represent a set of guidelines that helps us to avoid having a bad design. The design principles are associated to Robert Martin who gathered them in “Agile Software Development: Principles, Patterns, and Practices”. According to Robert Martin there are 3 important characteristics of a bad design that […]

Continue Reading