Data Access Layer and sitefinity
We are developing a web application with the presentation, business and data access layers implemented as separate projects. The user controls are data bound to business objects returned by the business layer. This works well except that we are unsure as to how to mesh telerik classes into our architecture.
We want to use telerik classes like the UserManager and not have to duplicate any of their functionality. Ideally we would like all our data to be accessed through our business layer so that all calls to the data look similar and so that we can do business rule validation.
All our business layer classes inherit from a base class, containing shared code. So building our own UserManager class which inherits from the telerik's UserManager is not feasible. We can of course write wrapper methods which simply call into telerik methods but this idea appears to be tedious. Please note I have used UserManager only as an example here. The real issue here is how we can mesh telerik's code with our business and data layer.
We are not experienced at this and would like to hear from folks who have implemented similar systems or have an idea of the architecture of similar systems. Thank you. Any help will be most appreciated.
I am also interested in this topic, as I expressed here: http://sitefinity.uservoice.com/forums/7406-sitefinity-4-0-pre-release/suggestions/800823-provide-training-how-to-extend-openaccess-within-
I would love to see some kind of tutorial that shows best practices for how to extend a SF4 web app (using OpenAccess) for custom business objects that are tied to Sitefinity (and/or telerik RAD) controls.
Hi ColdCold,
We have seen this topic as Gabe Sumner has indicated for this and we will try to come up with some document that explains how to extend OA and Sitefinity or Gabe will prepare a blog post/webinar
We want to use telerik classes like the UserManager and not have to duplicate any of their functionality. Ideally we would like all our data to be accessed through our business layer so that all calls to the data look similar and so that we can do business rule validation.
You can take a look at the API reference to see all methods and properties so you will not duplicate any logic. Your requirement will work only in a custom solution and basically some inheritance from base classes will require more coding. There are internal dependencies and casts that expect certain objects.
Generally you can extend each class and override each virtual method or property and implement your custom logic after the base or skip the base.
Kind regards,
Ivan Dimitrov
the Telerik team