Sitefinity 4.0 Module Development Documentation

Posted by Community Admin on 03-Aug-2018 08:04

Sitefinity 4.0 Module Development Documentation

All Replies

Posted by Community Admin on 24-Feb-2011 00:00

Hi,

Is Telerik going to release more thorough documentation for Module Development? I know it has released documentation for Basic and Intermediate Modules but I am looking for a more Advanced Module development documentation....

The examples given in the SDK doesn't serve any purpose in developing real-life application development.

Please let me know if anybody has any idea regarding this.

Posted by Community Admin on 25-Feb-2011 00:00

I'm not sure if you noticed the Word document in the Product Sample's folder in the SDK. It is not obvious that it is there since it is not on the SDK welcome screen, nor is it "included" in the Visual Studio project view.

Other than that, I tried shedding some more light on the advanced module development that may help:
http://blog.falafel.com/blogs/11-02-10/Migrating_Modules_from_Sitefinity_3_7_to_4_0.aspx

With all the planned fixes and improvements for SP1, I imagine there would be updated docs at that time as well.

Posted by Community Admin on 25-Feb-2011 00:00

I agree with Larry.

I've tried to figure out how to make an advanced module that is not based on GenericContent, how to use definitions, etc.
There is too few documentation about this. There is only one way - investigate manually Siteifnity classes and API reference.

It would be great  have an example that describes how to make advanced module, use definitions, etc.

Best regards,
Anton.

Posted by Community Admin on 01-Mar-2011 00:00

Hello All,

We are aware that our developer documentation should be expanded to include the topics you mention. That's why we are dedicating more and more resources on developer guide articles and SDK samples. For SP1 we'll release a new version of the developers guide and it will include articles about how the Products module in the SDK was built (the document Basem mentioned). After this, you can expect additional content with each release. We also plan to update the documentation more frequently in between releases, so expect more information on that.

Anton, why do you want to write a module which is not based on Generic Content? Our goal, even in the most advanced development scenarios is to provide you with the infrastructure to achieve anything you want. Generic Content would give you functionality like custom fields, localization, workflow that would make it easy to achieve almost anything. If you have a very specific reason and Generic Content gets in you way, can you please share it?

Regards,
Slavo
the Telerik team

Posted by Community Admin on 01-Mar-2011 00:00

Hi Slavo,

Thank you for provided information.

I have a custom module that is integrated in Sitefinity UI. It uses its own database, not Sitefinity database. So, the module provides only web UI that allows adding\modifying\deleting some information. It has own database, data provider, model and web controls.

My goal is moving of my module from Sitefinity 3.7 to Sitefinity 4.0 without any big changes.

There are several reasons why I do not want use Generic Content:
1. As far as I understand, Generic Content supposes that module will be closely integrated with Sitefinity infrastructure. It must store its tables in Sitefinity database and must use OpenAccess as data provider(correct me if I'm wrong). Currently, my own database and data provider already created and I would like to use them.

2. My module does not use the features of Generic Content, such as localization, workflow, user-freindly Urls,  etc.
There are too many methods or properties that I need override. For instance, to use module manager class in back-end services it must implement methods of IContentLifecycleManager interface. That means, about 13 methods must be implemented for each data object. I have 7 base classes which describe my data objects. In total, about 91 methods must be implemented.

As I wrote above, my module does not inherit from Generic Content. It consist of:
- manager class that is derived from ManagerBase class;
- data provider that is derived  from DataProviderBase class;
- WCF services which are written from scratch (as described in your Developer's Guide);

In general, all works great.
There is only one problem - how to pass ID of parent element from one definition to another definition?

In Siteifnity 3.7 it was very simple to add an ID of parent element in query string and get this ID on child view side.
As I can see from this post, in Sitefinity 4.0 a child data object must implement IHasParent interface.
However, it requires usage of GenericContent model.

I like the way how to use definitions to configure back-end apperance of module.
It would be great if will be more simple way to pass parameters between definitions.

Correct me please if I misunderstood something.

Thanks in advance,
Anton.

Posted by Community Admin on 04-Mar-2011 00:00

Hello Anton,

Basing your module on Generic Content does suppose that it is going to be integrated with the Sitefinity infrastructure, but that doesn't mean you have to use the same database. You can implement a custom provider for your module and store the data wherever you want.

Your scenario is a bit different though, and indeed you might need to implement a lot of things that would only require additional work. I didn't realize you are moving a module from 3.7, but thought that you are starting from scratch.

Your question about passing the ID of the parent from one definition to another will be answered in the other forum post. As for the question about lack of documentation, I can assure you that we are working hard on this. The new structure and version of the developer manual is already included in the service pack and will be up online next week. From then on, expect frequent releases and we'll definitely have your request about documenting advanced module development in mind when we plan our next iteration. Thank you very much for this suggestion.

Kind regards,
Slavo
the Telerik team

Posted by Community Admin on 05-Mar-2011 00:00

How do I store the relationship between two objects using Generic Content?

Posted by Community Admin on 05-Mar-2011 00:00

Also, How do I add custom fields to Generic Content?

Posted by Community Admin on 07-Mar-2011 00:00

Hello Larry,

You can store the relation between two objects using custom fields. One of the option would be using custom selector that will return the item ID. I am sending a short video that shows how to add custom field to Generic Content module.

Regards,
Ivan Dimitrov
the Telerik team

Posted by Community Admin on 24-Jun-2011 00:00

Has there been any new documentation, we are now at SP2 and i cant seem to see anything new from the initial documentation, still no documentation on how the products module was created (although it is marked as advanced it doesnt seem to have any meat to it aswell)

I am in the process of writing a cusom module and it takes me 10 times longer as i have nothing to reference.  I look at the products module, see that it uses UrlData, go to the documentation which says Stores Url Data, brilliant, thanks for that, i want to know what it does to module and if i need to include it, is it related to localisation for instance.

I have even purchased the nuts and bolts book from your partners, and the example in there is ok, but doesnt have any meat to it either.

Is there going to be any documentation in the SDK release, and is there going to be some meaty examples that actually give us an idea of how to go about implementing things?

Rob

Posted by Community Admin on 30-Jun-2011 00:00

Hi Roberto Modica,

There is a whole section in the developers guide explaining the implementation of the Products module that has been there since SP1. With the SP2 release of the SDK, all samples in the browser link to online documentation about their implementation. The Products module is very close to how our internal modules are implemented and I don't think you can go much deeper than that. It includes permissions, localization, custom taxonomies and custom fields. Please be more specific about what are the more advanced features you want so that we can implement them in future samples. Also, let us know about what is missing from the mentioned documentation above, so that we can add the details.

Regards,
Slavo
the Telerik team

Do you want to have your say in the Sitefinity development roadmap? Do you want to know when a feature you requested is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items

Posted by Community Admin on 30-Jun-2011 00:00

Hi Slavo,

I jumped the gun a bit as i found the documentation eventually.  For me, and this may only be the case for me is i am currently implementing code that i really dont understand, its good having steps but then there is no real explanation on why you are using the classes and what they do, its just here is the code, which in itself is ok as you can learn things from implementing it, but when you find something you dont quite understand then there is nothing past the code to look at (the class references dont always give you the clearest pictures), which for me slows my productivity.

I am currently having an issue where i have a module that installs but simply gives me a blank screen (different thread + support item), and bar having two screens and comparing the code i have no error message and not having a 100% understanding of what was implemented means i have to rely on you guys to help me, which one is ok but you are busy and cant always get back to me quickly (which is the case for us all).

Rob

Posted by Community Admin on 05-Jul-2011 00:00

Hi Roberto Modica,

Thank you for the feedback. You are right, we need to explain the concepts behind our design decisions and I can assure you we are heading in that direction. However, having scenarios which are not documented at all (even with step by step guides), makes us shift priorities based on customer input. Explaining the details will come as a natural second step after we've covered most features and commonly used scenarios with basic how-to guides.

Greetings,
Slavo
the Telerik team
Do you want to have your say in the Sitefinity development roadmap? Do you want to know when a feature you requested is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items

This thread is closed