Wednesday, May 28, 2008

Demystifying the n-Tier Architecture(Part 1)


When it comes to good application design, separating the business logic from the UI is essential. It is true, splitting your tiers makes your application more testable, maintainable, and extensible.

A number of developers have come up to me to ask how to pass Entities (as in the Entities Framework) over web services, I began realizing that there are common misconceptions on what nTier ***really *** means for .NET applications and services...

This post is a part of a series that I am putting together to make Architects and developers understands the choices they make while realizing their designs.

The issue can be boiled down to misunderstanding the terminology of ported over from the Visual Basic 6 days and the good ol' days of ActiveX and DCOM where we have logical and physical definitions began to blur.

In the old days of Visual Basic 6 when we talked about good architecture, we considered packaging classes in a class lib, abstracting, and separating the UI from the business logic to be the good thing (and it sure was).   Inadvertently we have created a ActiveX library when all we wanted was to create a reusable components that could be separate but still part of the project, we now call them namespaces. The thing that made maters confusing is the fact that we could now take the same ActiveX and register it as a DCOM component, blurring the difference between between the logical design model and the physical deployment.

Unlike with the classics, ASP and VB6,  .NET brought the power back to the developers who are now able to virtually anything, anywhere in the code.  Which turned out to be good and bad (depending if you are wiring code, or fixing someone else's bugs).   Strongly-Typed DataSets, namespaces and assemblies, and a variety of options to from Web Services, to Remoting,  to EnterpriseServices became available to developers to realize their designs.  Understandably there is confusion.

There is a fundamental difference between the logical design, service orientation and physical deployment.

In the next few posts I will attempt to demystify what are the patterns that will benefit your application

Wednesday, May 14, 2008

Integrated Healthcare - Real Life

Many people tout the notion of integrated health care.   It is until you are faced with the challenges of taking care of those around you do you realize the benefits.

I had an unfortunate incident with my child take me all the way to Children's Hospital of Philadelphia (CHOP).  As a #1 Children's hospital in nation it is what a hospital should be.  A state of the art facility, where technology enables staff to do one thing, care for its patients.

As we were going through the motions of assessing the state of things in the ER, I began noticing how all of the systems were seamlessly working together,  the monitors, alarms, medications, X-ray machine, EMR, were humming together in unison.

Later as we moved to a patient room, it was clear that everyone WAS on the same page.   Doctors, nurses and other staff carried handheld devices that told them where they needed to be at any point in time by the "super computer" decision support system.

There we were in a state of being fully informed, content and calm.  We were visited by physicians, nurses, and other assistants that told us how things were, what is to come...  

If you think about it, not only this experience has made me a true believer that this was actually possible... I am sure that this experience is also saving CHOP considerable amount of money.  

The experience of being connected is not unique to just healthcare,  financial industry, homeland security, manufacturing and other industries may want to learn from what CHOP did to provide a fully integrated customer experience.

Thank you CHOP, for the service, the care, the experience.