As I am still a relative newbie when it comes to Habanero, I am constantly finding out about new cool features. In this case the new cool feature is a library specifically for testing Habanero business objects "Habanero Testability".
This is the sixth blog in a series of blogs I have put together whilst trying to find a solution for unit testing WPF Bindings.
This is the fifth blog in a series of blogs I have put together whilst trying to find a solution for unit testing WPF Bindings.
This is the fourth blog in a series of blogs I have put together whilst trying to find a solution for unit testing WPF Bindings.
This is the third blog in a series of blogs I have put together whilst trying to find a solution for unit testing WPF Bindings.
The Concept of Object Persistance and Object identity have been around for as long as I've been programming (14 years) and probably longer. Unfortunately most systems and most developers in the Microsoft world have been developed using a database centric approach. The flow to Domain Driven Designs has thankfully finally started to flow strong and hard and I find myself spending less time having to argue the merits of DDD with other developers.
However when Consulting I am regularly faced with Database Designs that use AutoIncrementing Fields or mutable properties or even worse composite mutable properties as the Primary Key in the Database.
Example of AutoIncrementing Primary Key. Person has a PersonID : int as the Primary Key and the PersonID is set by the Database when the Person is first inserted into the DB.
Example of a Composite mutable property as a Primary Key. Person has FirstName: string and Surname : string as the Primary Key in the Database. If these are mutable then some sort of Cascade Update is set so as to ensure that all other related tables FK's are maintained as valid.
Now 12 years ago I used to see a lot more of this type of Database Design I still see quite a lot of this today. The reasons are numerous and sometimes inescapable e.g. I am developing with a legacy database, I have an .xxx.. DBA who is stuck in the 1960's. The company has programming standards that were written in the 80's etc.
In this blog I will discuss why I prefer and rcommend using Guids whenever possible or an application generated Integer (when the DBA has an unjustified fear of GUID's) and also how
Habanero Faces has the Capability to Dynamically generate User interfaces. This is a powerful mechanism that if used correctly can result in the developer having to do very little maintenance of his/her User interface and No Dragging and dropping. The way that this is achieved is via Control Mappers. A Control Mapper maps a property or relationship of the Business Object to a Control on the User interface and will handle all updating and communication between the control and the Business Object. Think of it like binding on steroids. For more info on Control Mappers check out the Habanero Wiki on Manipulating User Interfaces as well as Peter’s article Dynamically Generating User Interfaces.
This website is best viewed in Internet Explorer 7 & 8; Firefox 3.6.11; Opera 10.63; & Safari 4.