The need of the ExtendedObjectDataSource
The ObjectDataSource control that ships with ASP.NET 2.0 helps us to work with our bussines façade,
domain objects and/or data access layer directly avoiding a lot of boilerplate
code that was needed before. However, the ObjectDataSource
is very strict in the
way that it communicates with our objects so we may have to adapt how we design our
classes if we want to make use of it.
Some times, we want to modify certain aspects of the ObjectDataSource
to fit our needs instead of having to change how we design our system. However,
the ObjectDataSource does not provide any kind of extensibility.
Also, there are some behaviours of the ObjectDataSource control that are not very
popular, as the SelectCountMethod for paging or the poor filtering support,
the big problems it has if we are not using a culture “compatible” with the invariant culture, and also the lack of control to use a custom instance of
the DataObjectTypeName type in the update operation.
If we need to handle high traffic sites, the ObjectDataSource may not be a viable option
because the expensive reflection calls that are made every time the control needs
to perform an operation with our custom objects.
If you want to improve the integration of your custom objects in ASP.NET you can
use the ExtendedObjectDataSource package. All limitations present in the ObjectDataSource
have been removed and it is designed with extensibility in mind, letting you adapt
it to fit your needs and to obtain big performance increase compared with the
ObjectDataSource. For a comprehensive listing of all the limitations of the ObjectDataSource control and what the ExtendedObjectDataSource package can offer,
take a look at the Features page.