Go Back

Creating Highly Usable & Distributable Sitefinity Controls Webinar

In this webinar session Gabe Sumner (Developer Evangelist) and Ivan Osmak (Senior Developer) demonstrate how to create a custom “pluggable” Sitefinity navigation control.  This webinar will use WebEditors, Control Designers and Control Templates to create a highly usable and distributable custom Sitefinity control.

Webinar Outline:

  • Creating a new Class Library Project in Visual Studio
  • Creating a basic HelloWorld Pluggable Control
  • Creating a basic SubLinks Navigation Control
  • Adding Attributes & Properties to a Sitefinity Control
  • Adding a Columns property to the SubLinks navigation control
  • Embedding CSS stylesheets in the assembly (DLL)
  • Using enumerators to add a dropdown list property.
  • Creating a custom PageIdSelector WebEditor
  • Creating a custom Control Designer for the SubLinks control
  • Embedding a template in the assembly (DLL)
  • Using GenericContainer to access template properties
  • Resolving Assembly Version dependencies

Webinar Resources:

Comments  6

  • Rineau 15 May

    Great webinar! Thanks!
  • Garry Clark 15 May

    Gabe, Good webinar as usual. I was already familiar with a lot of webinars topics, but I did learn a few things. I am also haveing an issue with the Assembly version, so I was glad to see at least soem direction to go for solution with the AssemblyBindings. Two things I would really love to see you cover is Control Panel/Command Panel from a pluggable module stand point and OpenAccess with Sitefinity. I have moved all my module development to use to OpenAccess in preparation for 4.0 and I am loving it, but I have ran up against a few issues that the current examples out there do not cover. Last thing, when is the community module sections of Sitefinity coming? Thanks as always keep up the good work.
  • Bo Godthaab 18 May

    Thanks for a good webinar which also gives a great understanding of other SF things. However, it annoys me that you can not run the code without getting errors (SubLinks.cs) in line 133 and 136 I can not figure out how I can solve this reference problem. I'm using SF3.6 Standard_3_6_1927.
  • Gabe Sumner 29 Jun

    I finally had a chance to revisit this topic.  By adding a couple of <assemblyBinding> mappings, I was able to relax the highly-strict version dependencies that get applied.  This let my control, which had been compiled using an older version of Sitefinity, run with the newest version of Sitefinity. 

    Here is what I added to the <assemblyBinding> section of my ~/web.config:

        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"
          <dependentAssembly> 
            <assemblyIdentity name="Telerik.Cms" publicKeyToken="dfeaee0e3978ac79"/> 
            <bindingRedirect oldVersion="3.0.0.0-3.6.1920.2" newVersion="3.6.1936.2"/> 
          </dependentAssembly> 
          <dependentAssembly> 
            <assemblyIdentity name="Telerik.Cms.Web.UI" publicKeyToken="dfeaee0e3978ac79"/> 
            <bindingRedirect oldVersion="3.0.0.0-3.6.1920.2" newVersion="3.6.1936.2"/> 
          </dependentAssembly>       
        </assemblyBinding> 

    I'm not sure this is a great solution, but it's a solution.  I'm still doing research as time allows. 
  • Matt 05 Nov

    Great webinar guys! These are really great for getting started in a new area!
    Matt
  • Chris 14 Feb

    Gabe, this was an excellent webinar...thanks.

    I downloaded the source from codeplex and followed the instructions to build the dll and integrate it with my Sitefinity site.  Everything appeared to work fine until I dropped the sublinks control in a page and I'm getting null object reference error.

    In the sub-links.cs you mention that you are getting your own reference to System.Web.UI to avoid getting a null reference in the Sitefinity page editor.

    Any ideas what would be causing this?

    I'm new to Sitefinity and using the 3.7 Community Edition.  Any help would be much appreciated.

    Thanks
    Chris
Post a comment!
  1. Formatting options
       
     
     
     
     
       
  2. I'm sorry for the CAPTCHA. You have spammers to thank for this: