ASP.NET WebForms vs MVC

ASP.NET Web Forms and MVC both have their pros and cons.  Below I have them outlined. ASP.NET Web Forms Web Forms is a visual approach for web development using a drag-n-drop,  event-driven model. Advantages Rapid Application Development (RAD) Feature-rich server controls Data binding Higher level of abstraction over a stateless web.  Simulates statefulness with support […]

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 […]

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 […]

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 […]