Onion Architecture

Although there is no single silver bullet for every solution, most developers get locked into an architecture that doesn’t scale and changes becomes difficult and slow as the system grows. Onion Architecture promotes a separation of concerns and a decoupled application.  Loose coupling makes it easier to upgrade or replace components without affecting other parts […]

How to reduce your Comcast bill

Being in the technology field, I tend to want to have the latest and greatest of what’s available.  For example, I have to have a high speed internet connection, latest cell phone with unlimited data plan, satellite TV with a great picture and lots of channels, etc.  All these bills add up and I knew I […]

Common Practices for Software Projects

  Three typical classifications for common kinds of software projects along with their best practices. Business Systems Common Application Types: Internet and intranet sites, payroll systems, games Life-cycle models: Agile development (XP – Extreme Programming, Scrum, time box development, etc) Evolutionary prototyping.  In Evolutionary prototyping, development evolves over time as we better understand the requirements and […]

LINQ: Left Join

A left join is when each item in the first collection is returned regardless of whether it has any related items in the second collection. For instance, say you want to find out how many orders were made for each product in your store.  You also want to see the products that did not have any orders […]

WordPress blog – initial setup

Setting up a blog using WordPress has been a relatively easy thing to do.  These are a few additional steps that I took after the installation. Installed Theme Although WordPress comes with some nice default themes, I wanted more control of the customization for my blog.  I researched a few recommended theme sites by John […]

What is circular dependency and why is it bad?

Circular dependency is when two pieces of code each depend on each other.  Circular dependency is usually considered a sign of bad design. We typically develop software by: Dividing our code into components (i.e piece of code by class, namespace, assemblies). Making sure that there are no dependency cycles between our components. Below is a standard 3-tier Layered […]