1) This is a pending enhancement request; however, I cannot make any promises on when it will make it into the product.
2) We have several users that are using XML as their data source, however, we do not have a mechanism that will synchronize that XML with the database. Most everyone using SF in a remote or offline scenario is using SQL Server Express on the local machines and SQL Server replication to push the data to the central SQL Server at night, or whenever the connection is detected.
3) The business objects currently do not retry connections. If the server times out according to the Timeout value specified within the connection string, a SQL Connection is thrown. I will mark this down on the list of future enhancement requests.
4) Database replication and designing Windows services that push data to connected clients goes beyond the scope of what StrataFrame is trying to achieve. We do, however, support SQL Server 2005 Notification services to inform the business objects when the data within them is stale (so they can retrieve the new values from the server). We also have an enterprise server that is currently undergoing beta testing that uses web services to retrieve data for the business objects, so that the smart clients can communicate with the web services rather than directly to the database.
5) Most business rules are specified programmatically, so it would certainly be feasible for you to implement a mechanism for your end-users to specify which business rules they would like to use, and which ones they would not like to use.
6) When using the triming option on a field within the business object, you need to change the default DataSourceUpdateMode on the bound controls from OnPropertyChanged to OnValidation. The default of OnProperty changed causes the data to be pushed back to the business object after each character entered, which trims spaces immediately. However, chaning the mode to OnValidation only causes the data to be pushed back to the business object when the Validating event of the bound control is raised, which is generally when the user leaves the control.
7) Importing relationships into the DDT is a pending enhancement request. You're not the first person to ask for it But again, no promises on when it will be implemented.
8) Communicating with business objects across tiers can be done by serializing business objects and transporting them across the network. When you serialize business objects on your own, you are in control of the encryption/compression of the data. When the enterprise server is used, the business objects themselves are not serialized and sent across the network, only the database commands and database results are. Both encryption through 3DES and compression through Deflate can be toggled on/off when using the enterprise server.
9) Business objects inherit from MarshalByValueComponent, not MarshalByReferenceComponent, so they are generally not used in a remoting scenario. Some of our users are using them in a web services scenario where an application server returns instances of business objects that are poplulated on the server and serialized across the network to the clients.
10) Yes, business objects can be slit into separate libraries and still maintain their relationships. The only caveat being that if you want to specify the parent relationship of a business object at design-time, the business object's assembly will need to reference the parent business object's assembly (that's just .NET). However, if you want to set the relationships in code, you can do whatever you want.
11) We do have users that are using blocks from the Enterprise Library along with StrataFrame. To use the forms from the UI application block, you can modify the source code and change the reference within MicroFour.StrataFrame.UI.Windows.Forms.BaseForm from System.Windows.Forms.Form to the necessary form type and recompile.
12) Yes, XAML support is in our plans, though since most of SF relates to data access and managing remote data sets, LINQ going to be a larger component for us from Orcas than XAML will be.
13) No, the business objects do not use MARS when populating business objects, because the business object contains a DataTable internally, and that DataTable is filled using a DataAdapter.Fill() call rather than retrieving each record individually. However, Multiple Active Result Sets is used to allow the business objects to thread the updates back to the database. So, when you save 5 records, you can optionally have the business object save all 5 records at the same time using multiple threads on the same connection.
14) Non server-assigned primary keys are handled by setting the PrimaryKeyIsAutoIncremented property of the busiess object to False, and by explicitly specifying the primary key values on the busienss object before the business object is saved. Generally, the primary key values are set within the SetDefaultValues event handler of the business object.
15) WCF will not change the way the current version of StrataFrame is implemented. The enterprise server does not use actual web services or the Web Service Factories, but raw HTTP to communicate with the clients. SF developers that have implemented their own web services or want to attempt to use remoting can certainly use WCF on top of StrataFrame.