Very recently, I presented a webinar on CMS Extensibility. We looked at what made up true extensibility and saw how to handle different extension scenarios in Telerik Sitefinity. That presentation (along with all the demos) was recorded and can be viewed by going to the Webinars on Demand section of the website.
There were some questions that we weren’t able to get to during the live event so, after the webinar (and consulting with the team) we collected many of those questions and put together a list of answers. If you don’t see your question listed or have additional, follow-up questions/remarks, please contact me at email@example.com. If I can’t answer your question directly, I’ll do my best to find someone who can.
One more thing, if you’re interested in discovering more about Sitefinity extensibility, I’d like to invite you to participate in the Sitefinity Devs community on Google Plus. That place is a treasure trove of helpful information and discussion about all things Sitefinity.
Again, thank you all for your interest. I can't wait for the next one.
No CMS Boundaries: Key Elements for True Extensibility Q & A
Q: Permissions with custom content?
A: Currently the Dynamic Modules built with the Module Builder support only permissions per field, but not per item. We plan on building the permissions per item soon.
Any module built via code can easily have permissions. Please review to the Products module sample available in the SDK.
Q: Does Sitefinity Thunder work with Visual Web Developer Express?
A: It does not. The Express edition of Visual Studio does not support add-ons. However, you can develop with Sitefinity and Visual Web Developer Express just fine.
Q: So, Albums being custom content, can you configure, or personalize who sees it?
A: Yes. You can use personalization or permissions to control the level of access. You can also use custom data accessing logic with code to get the user and apply custom get logic based on that:
// get the current identity
var identity = ClaimsManager.GetCurrentIdentity();
// get information about the user from the properties of the ClaimsIdentityProxy object
var userName = identity.Name;
var userId = identity.UserId;
Q: We have custom dbtables...linked into a hierarchy. To represent "roles" for students and faculty. Is the role\profile system extensible such that we could link\edit those though the users sfprofile?...maybe each table could be a custom role provider, so linking\removing them add\removes from those tables?
A: I would recommend using a custom module to do the mapping. Surely, you can do it with custom profile or custom profile provider, but my concern in the amount of db contexts which will be used. If you can map the custom table to the userId to your custom table this will allow you to have very efficient data accessing logic with less managers and less round trips to the database, which is what you will want.
Q: Is there support for images, on the on-the-fly pdf generator news item?
A: There is support for images in the dynamic modules. With code you can add images to all the modules. In March of this year we are adding out of the box association with all modules, which will save the developers a lot of time.
To achieve PDF creator, you will need custom logic, but it is definitely feasible. Please, write to firstname.lastname@example.org if you want elaboration on that question or if you have additional ones.
Q: Since 4.0 we have been requesting a recycle bin and PITS has many votes on it.
A: The sales team has a sample of a recycle bin. If you want it, just email email@example.com and they can send it over.
Q: Is Sitefinity Thunder capable to work with Sitefinity 3.7?
A: No. It works with all versions after 4.0
Q: Do custom fields apply to all sites in a multi-site environment? Can they be restricted per site?
A: Yes they apply. Here is the explanation – all the sites use separate providers with their own security, but it is the same data tables. That is why you will see the custom field in all sites, unless you modify the connection string parameter, which will modify the behavior. Another option is to apply customization in the backend to disregard that custom field when you don’t need it for a given site. Please send email to firstname.lastname@example.org or submit a support ticket if you want more information on that one.
Q: Does Sitefinity have any built-in approval options for comments? Any spam prevention measures?
A: Yes, there is CAPTCHA or Akismet for spam protection. You can have approval and permissions for comments as well.
Q: Does the Module Builder support multiple languages?
A: Yes. It is fully multilingual.
Q: How much has the module builder been improved when dealing with over 1,000,000 records, how much stress testing has been done against it?
A: We have tested it and we constantly add optimizations. Write to the support team for test results.
Also, while the module builder is a great and reliable tool, it is certainly not a solution for every case. If you want to have more complex entities with many model classes and relations beneath (like the ecommerce module), I would advise for custom module (with code) which will give you full control over the data accessing logic.
Q: Using the module builder, I want to build a "Staff" and "Department" directory and associate the two content types so that (1) I can see the departments an employee belongs to and (2) I can see all the employees that belong to a given department when looking at departments.
Would I use classifications to associate the two content types? Or, would I add a foreign key ID field to each content type to relate them at the database level?
A: Both options are feasible and will cost you almost zero development. The real question is what the business requirements are dictating for your case – implicit or explicit relation.
Q: Where was Coverflow originally created?
A: You could use any library you have lying around, but the specific one that I used for the demo can be found here.
Q: Will we be able to download the demo code?
A: I'll be blogging about the demos individually. That way I can give a more detailed look and commentary on how to accomplish what was shown. Code for the related demo will be available in each post.
Q: How did you get all the views for the widgets within Thunder inside Visual Studio?
A: It is built in capability of Sitefinity Thunder (http://www.sitefinity.com/documentation/gettingstarted/editing-widget-templates-with-sitefinity-thunder).
Q: Can we use Razor templates MVC-style instead of ASP.NET Master pages?
A: Not yet. While the widgets can use Razor, the templates are still limited to only master files and the WebForms view engine. We are planning on adding Razor for templates soon.
Q: Is it possible for Widget Templates under Design menu item to be multilingual?
A: Yes, you have to use resource files instead of hardcoded strings.
Q: Can you create a widget inside of Thunder that connects to an external web service? Sample loading the Albums from an external web service like a WFC service. Any tip on this?
Q: What version of Sitefinity was this demo completed on?
Q: Can you create new types of widgets templates for a page widget?
A: Can you elaborate on this one and send your question to email@example.com. The answer is most likely yes, but we want to first understand exactly to what you are referring. Thank you!
Q: You said that you could include custom code in a widget template. How do you do that? Versus a widget.
Q: Who would I contact about an upgrade to Telerik RadEditor?
A: Support or firstname.lastname@example.org