Thanks Trent. I am not sure what environment you are coming from, but it sounds as though you may have experience in a data-centric language such as VFP or something of that nature based on the form driven example you gave. We too came from a data-centric language and as we moved forward changed the way we think application wise, which as first we thought was painful but as we moved forward learned that the disconnected data, totally seperated tiers approach was much faster and more flexible....it just took some time to change our way of thinking
Most of my experience is in straight client-server development using a tool such as VB/VB.NET to create forms and (using .NET as an example) creating datasets that contain exactly what I need then basing forms on those datasets. I have a little bit of experience in .NET separating code into distinct layers, namely presentation, business and data classes. That type of coding is cumbersome initially but leads to easier maintenance. The benefits of tiered development are well documented on your web site among others. If we can use a tool such as StrataFrame to automate/streamline the creation of any of the tiers as part of the coding process we gain an important advantage. I've also done a fair amount of SQL coding and scripting including stored procedures, triggers, etc. That said, my employer is coming from Clarion which indeed is a very data-centric language similar to FoxPro.
I think am up to speed on the general concept of the BOs but the tutorials use simple examples. Where I'm struggling is with the ability to use our table based BOs at the form level. In my opinion it would be nice to be able to drop multiple business objects on a form and establish the relationships between them at the form level with minimal coding (similar to database modeling). There are no junction tables between the table the main BO is based on and the other 6 tables/BOs.
Using the example I gave earlier, the form will have about 40 fields on it. Only 7 of the fields can be bound to the primary BO for data display. The other 33 fields need to pull their data from 6 other tables, with one BO per table. Unless there's something I'm missing-- and I hope there is , I would have to put a lot of code at the form level to call functions in the other 6 BOs in order to populate the fields on the screen. This is just for a screen to retrieve the data and display it for browsing purposes. In order to create add and update functionality, I would also have to call different functions on the other 6 BOs in order to populate list boxes so that the user can choose a display value from the secondary BOs and populate a non-display value in the main BO.
This is why I was thinking that creating BOs based on a database view might be preferable. What I'm seeking is a suggestion of how to handle the scenario I'm describing. Would basing a BO on a view be the way to accomplish it? Should we keep the primary BO as is (based on the primary table) but incorporate into it the code to handle the other six tables? If VB would allow me to create a new BO that inherited from multiple other BOs and then extend the functionality I'd do that-- let me know if you know how to do that.
I feel like I must be missing something obvious. I have to admit that I didn't read every bit of the StrataFrame help file and I only have about a year of experience with VB.NET on some very simple and small projects. Am I overlooking something critical that would allow me to create a relationship between a single "parent" BO and multiple "child" BOs when designing the form and at runtime? Is there a way to use the BusinessLayerLinkManager or another tool to accomplish this when there are no junction tables?
Thanks!