When you go to physical multi-tier and realise the shortcomings of
NHibernate, Wilson O/R Mapper, Gentle.Net, MyGeneration, dOOdad,
EasyObjects and all the others ... you need to use FastNetObjects
FastNetObjects is designed for system architects and smart client
developers who need more than just an Object Relational Mapper and
don't want to get low level . FastNetObjects is a fast, clean and
convienient solution. Other theory based solutions do not perform in
the real world. Use fastNetObjects when you want
the convienience of business objects and the performance of RAD.
FastNetObjects provides a fast solution for remoting, with true
separation of logical tiers.
FastNetObjects Framework feature list:
- Separation of business objects and business object data (business
data objects).
- All interaction with business objects is made through a business
object interface not a concrete business object class.
- All interaction with data access layer (DAL) objects is done
through a data access layer interface not a data access layer class.
- Support SQL and stored procedure model for CRUD operations.
- Support any database by just replacing data access assemblies
(DAL), no recompile needed.
- Support custom DAL methods to return datasets, call any stored
procedure or run custom SQL.
- Support for data change packets between tiers instead of returning
complete data objects back to the client tier.
- Full support for null properties from the client tier through to
the database tier.
- Support for child entities.
- Support for related entities.
- Support for composite keys.
- Support for read-only data objects/data object lists.
- Business data object caches.
- Support for running application in two or three tiered mode with
no code change, only a change to configuration files.
- Support for lazy load loading of child and related data objects.
- Built in support for lookup properties, e.g. properties relating
to common lists of values.
- Data objects support standard interfaces IEditableObject,
IDataErrorInfo, INotifyChanged, and IBindingList
for data object lists.
- Application for integrated code generation/regeneration and entity
maintenance.
History
Traditional business object frameworks have business objects that are
based in one tier and pass business objects back and forth between tiers.
This works well when all the logical tiers reside on the same physical tier
but when you need to scale and these logical tiers are separated physically
performance suffers and problems arise
How FastNetObjects works:
In a typical non FastNetObjects framework this is what happens when you
save:
An order business object is passed from a client tier to a server tier
to be saved to a database. After the database save has occurred the
order business object is returned to the client tier overwriting the original
business object reference. This approach has two problems:
- All references to the original business object on the client tier
have to be updated to point to the new business object.
- Returning the complete business object creates unwanted network traffic.
Using FastNetObjects save:
An order data object is passed from the client tier to the server tier using
a method call on a business object interface. After the database save has
occurred a data change packet containing any changes to properties on the data object
is returned to the client tier and applied to the data object in that tier.
This approach overcomes the problems of the previous example.