StrataFrame is very extensible, so yes, you can overwrite the Save methods of the BO (which is all the form and maintenance form toolstrip calls) and implement whatever type of functionality that you would like. The BOs already have built in methods for serialization and deserialization as well which is something that you will need in order to physically separate the tiers. You can serialize to a byte array or a stream (including a network stream) and pass it between tiers.
In fact, there is a simple sample that shows how to overwrite the Save method of a BO in order to implement XML as a data source. You can see this within the Sample Console or open the C# or VB.NET sample of the XML data source and see how it works. Keep in mind that this is not an "apple to apple" sample, it just shows that the Save can be overwritten...and in your case you may want to serialize a BO.
But in short, yes, the framework is very extensible and you can inherit our business layer and add your changes so that you do not have to make these same changes for each BO you wish to pass back and forth.
The reason we are thinking about using webservice as a middle tier between our front end project (in this case is the form that consumes the business objects) and the back end project (where the business objects are configured) is to provide an abstract layer to shield the direct connection from front end to the back end projects.
Probably, I didn't ask the question clearly the first time: I understand the thing we are trying to achieve may not be specific to strataframe from the design perspective, but from the implementation view, what we would like to know is that if we were to override what the "Save" event is doing in Strataframe Maintenance toolstrip, where can I see the code or how can I access the code that is doing all the actions of the Save button? Or is it possible at all? Or will we be better off writing those events ourselves?
Thanks very much.
I do not recommend trying to store the BOs on a separate machine as in a 3-tier approach....you can do this and I can explain how, but this is a bad practice (whether using StrataFrame or any other framework or tool) as it will dramatically decrease the performance of your application since you will either have to use remoting or serialization to accomplish this.
I recommend you read the "Design Considerations" section (towards the bottom of the page) in the ES Server page on our website, it will explain why serialization and remoting are never going to be as effecient as our ES Server...which is in essence what it sounds like you are trying to create.
http://www.strataframe.net/enterpriseserver.aspx
FYI...this has nothing to do with the Maintenance Form itself...the Maintenance FOrm is just a template that uses the SF StandardForm and has a MaintenanceFormToolstrip and GradientFormHeader already dropped on it. I recommend going through the tutorial so that you can have a better understanding of how StrataFrame works.
We need to have the Strataframe Maintenance events and methods to call the webservices, which in turn, will use the business objects we configured through the business object mapper. In other words, we do not want the Strataframe Maintenance to be using business objects directly.
Is there a way to accomplish that? Or instead of using Strataframe Maintenance Form, do we need to use a regular form and implement the actions (Save, New, Edit, etc) on our own?
Thanks.