Evaluating StrataFrame


Author
Message
Ben Kim
Ben Kim
StrataFrame User (133 reputation)StrataFrame User (133 reputation)StrataFrame User (133 reputation)StrataFrame User (133 reputation)StrataFrame User (133 reputation)StrataFrame User (133 reputation)StrataFrame User (133 reputation)StrataFrame User (133 reputation)StrataFrame User (133 reputation)
Group: Forum Members
Posts: 99, Visits: 253
Hello all,

I have been advised to post these questions on this newsgroup.  We are nearing the completion of a long evaluation of differing application frameworks for .NET.  We still have a handful of questions pending regarding StrataFrame.  Please bear with us since we are new to .NET (coming from the Clarion world).

1.  Enhancement idea:  Add a quick layout tool.  A user can select fields from a BO to populate on the screen and when they click OK, the fields appear in sequential order along with a caption to the left of each field and set to the appropriate control (or control type that was specified in the layout tool)

2.  Some type of ability to cache data for offline usage.  Be able to populate local BO's with data and persist it to disk (binary or XML) for updates, inserts and deletes.  When reconnecting to the host system, ability to resync with the host.

3.  Built-in support for data access/manipulation resilience.  Our client's environments are not always "connected."  It would be helpful to automatically retry a statement (sleep, try to send command, fail?->sleep).  The number of retries should be configurable along with the sleep value.  If the retry count is exceed, an exception should be thrown back up to the UI layer for user notification and within the BO log the exception to file.

4.  Ability to push data down to the clients via a service.  *** NOTE: We may be able to utilize SQL 2005 notification services.  Need to investigate.  However our clients are all using SQL 2000 (various versions including MSDE, Workgroup edition, etc.) so this will be an issue we must address in a common way that will work across differing versions of MS SQL.

5.  Dynamic business rules.  Give the user the ability to turn on/off "certain" business rules and add their own.  For example, if in the base system First Name is not required but the clients BR state it should be, give the user the ability to turn on the requirement.

6.  BO's automatically strip off trailing spaces from string type fields.  We tried StrataFrame's trimming options and they do not work correctly:  For some reason when the user is trying to enter information to a field with Trim Right on, we cannot type a simple “space” For example “Code 123” <-- the BO is trimming the space as we are typing.  I am sure this is probably a “gremlin” in the framework somewhere.

7.  When using the DDT importing databases, please add the ability to input keys/indexes/constraints and most importantly relationships.  The Business Object Mapper might be able to detect the appropriate BO to tie to (optionally).

8.  How does StrataFrame communicate business objects across tiers?  Is it compressed?  Can it be encrypted?

9.  Are there any examples of separate tiers communicating using remoting?  If so, where?  If not can we be sent an example with steps to reproduce the applications?

10.  Can BO's be split into separate libraries (IE: CommonTablesBO, AccountingBO, etc.) and still maintain relationships via properties or code?

11.  Is CAB (Composite Application Block UI) support in your plans?

12.  Is XAML support in your plans?

13.  When populating BO's does the framework utilize the MARS support of SQL 2005 for asynchronous queries?

14.  How can custom ID's be handled with your BO's?  For example we have a names/business table with the following PK:    TypeOfName (P or B) and NameNumber (automatically seeded to 1 for P and separately for B, programmatically)  SQL Server does not auto-increment the NameNumber field, it is done in code.

15.  What if anything is going to change now that WCF is available?  How will that impact communications in StrataFrame if at all?

There are more questions but I would say they are not applicable to StrataFrame (IE:  Abstract class support, In memory checkpointing, dynamic properties, etc.)

Thank you for all of your help!  Bob and the developers at Strataframe have been wonderful to work with during this evaluation!

Ben Kim, Emergitech

StrataFrame Team
S
StrataFrame Developer (4.6K reputation)StrataFrame Developer (4.6K reputation)StrataFrame Developer (4.6K reputation)StrataFrame Developer (4.6K reputation)StrataFrame Developer (4.6K reputation)StrataFrame Developer (4.6K reputation)StrataFrame Developer (4.6K reputation)StrataFrame Developer (4.6K reputation)StrataFrame Developer (4.6K reputation)
Group: StrataFrame Developers
Posts: 3K, Visits: 2.5K
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 Smile  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.

Ben Kim
Ben Kim
StrataFrame User (133 reputation)StrataFrame User (133 reputation)StrataFrame User (133 reputation)StrataFrame User (133 reputation)StrataFrame User (133 reputation)StrataFrame User (133 reputation)StrataFrame User (133 reputation)StrataFrame User (133 reputation)StrataFrame User (133 reputation)
Group: Forum Members
Posts: 99, Visits: 253
OK so how can we create an n-tiered smart-client application using StrataFrame?

We would like to have a multi-tiered application that would have the following structure:

SQL Server machine

DAL/Business Objects (served up using IIS or direct HTTP remoting using a Windows service)

BO proxy/Smart Client UI (non-browser)

Is this scenario possible with StrataFrame?  If so, can you supply a simple example showing this?

Ben

Trent Taylor
Trent Taylor
StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)
Group: StrataFrame Developers
Posts: 6.6K, Visits: 6.9K
You need the Smart-Client Enterprise Server that will be released at the first of the year.  It is as simple as chaing a single line of code (your data access definition) and you can then point your entire application to an ES server instead of a SQL Server.  This is the same product that the Department of Defense will be using.

We already have the pricing models which have changed from the attached white paper.  But at least this white paper will give you an idea of capabilities.  If you choose to go your own way and do this yourself you will have to write your own web services and manage all of your own serialization and data access layer.

For more information (pricing and additional details) you will need to go through the sales channel.

Attachments
Richard Keller
Richard Keller
StrataFrame User (136 reputation)StrataFrame User (136 reputation)StrataFrame User (136 reputation)StrataFrame User (136 reputation)StrataFrame User (136 reputation)StrataFrame User (136 reputation)StrataFrame User (136 reputation)StrataFrame User (136 reputation)StrataFrame User (136 reputation)
Group: Forum Members
Posts: 84, Visits: 324
When is the availability and/or is there a beta/rc that is going to be available?   This is exactly what I am looking for.

Richard

Trent Taylor
Trent Taylor
StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)StrataFrame Developer (10K reputation)
Group: StrataFrame Developers
Posts: 6.6K, Visits: 6.9K
This product will be fully released within the next 30 days.  We will keep all of our users and trial customers up to date via email when this is ready for download.  The developer SDK is free and will be part of the the framework download.
GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Similar Topics

Reading This Topic

Login

Explore
Messages
Mentions
Search