You know it seems like ComponentOne gets all the breaks. Due to the nature of their control, they were able to take an existing Silverlight control, and create a LightSwitch control, and create what I call the “Killer Application” for LightSwitch, ComponentOne's OLAP for LightSwitch (live demo) (you can get it for $295). Take a look at the walk-thru I did for the control : Using OLAP for LightSwitch.
Compare that to a walk-thru I just did for the Telerik Rich Text Editor control: Using the Telerik Rich Text Editor In Visual Studio LightSwitch. The difference is that it took me a lot longer to explain how to use the Telerik control. This is not really Telerik’s fault. What really happened, is that due to the way LightSwitch is designed, everything went ComponentOne’s way. They got all the upsides and none of the downsides.
LightSwitch is really a View Model application designer. Yes it has some built-in controls that it dynamically creates, but for real professional work, it simply says “I have the data, you provide the control, and tell me where on the control you want me to bind to”.
This is easy enough, the problem is when you want to set options. Both the Telerik and ComponentOne controls have a ton of options;
however, the ComponentOne OLAP control is designed for the end-user to set the options.
The Telerik control is designed to have the programmer set the options.
With the Telerik Rich Text Editor Control, you have to step out side of the “click, next, click, next” wizard process, and carefully set some properties. With the ComponentOne OLAP Control, you select a table, and then “click, click, F5” and run the working app. NOW you do have to “get your hands dirty” and set a bunch of options, but you are doing it on a working app (besides YOU are not suppose to do it, all this fun is intended for your end-users).
That’s why I gave ComponentOne the “Killer App” title. ANYONE can use their control. Your success rate is 100%. I cannot say the same thing for the Telerik control or ANY control that needs the programmer to set the options rather than the end-user.
Now, don’t get me wrong, your success rate is WAY higher than any other technology I can think of. Definitely higher than if you coded your Silverlight app by hand without using LightSwitch.
If you don’t believe me, take a look at the MVVM forum on the Silverlight.net site. There, many people are having a hard time performing simple tasks, and that group is mostly professional programmers. Take a look at the LightSwitch forums, and the questions are usually related to non-common scenarios. Remember that group is mostly people who are NOT professional programmers.
So what is the answer? As a control vendor you want to make things as easy as possible for your end-users. LightSwitch does allow a control vendor, the ability to provide a custom menu, that will allow the programmer to set properties on the control (see Switch on the Light - Bing Maps and LightSwitch).
You can read the documentation on the API here: Defining, Overriding, and Using LightSwitch Control Properties. However, if you look at the BING maps example, you still get a property page that looks like this:
That box with the red box is around it, is the extent of the customization, the rest of the properties are the default properties.
My point is that Telerik would have a hard time cramming the 1000’s of possible configurations of their Rich Text Editor into a LightSwitch property panel (however, don’t be surprised if they come out with a “light” version of some of their controls in the future).
Infragistics looks like it is taking the “middle ground”. You can see their controls here: http://labs.infragistics.com/lightswitch/. What they are doing is making their controls available on a granular level.
When the programmer is implementing say, a Slider Control, one instance at a time...
The property page is more manageable, however, they are still really pushing it .
You can see a walk-thru of what their design-time experience is like at these links:
Understanding NetAdvantage for Visual Studio LightSwitch - Dealing with Charts (Part 1)
Understanding NetAdvantage for Visual Studio LightSwitch – Using Range Sliders (Part 2)
Understanding NetAdvantage for Visual Studio LightSwitch – Creating Maps (Part 3)
In the end, we end up with choice. “choice” is an odd thing, you only want it if you need it, otherwise “choice” causes you to have to do too much work… you have to make a choice. It’s not that you don’t want to do the work, it is just that you are always afraid of making the wrong choice, and that is stressful.
Should Telerik simplify their Rich Text Control to allow it to be configured in a LightSwitch property page? Is it even possible?
I think the real answer may come in LightSwitch version 2. I suspect that a future version of LightSwitch will allow control vendors more customization options for their controls. I also suspect that the reason it was not in version one, is that LightSwitch also needs to allow you to create HTML5 controls…
… but, that’s another story .
@Garth Henderson - Yes the community can come up with a "wrapper control" that could set some sort of "standard parameters". However LightSwitch 2 is such an unknown that I would hate to put in a lot of work that would become obsolete if LightSwitch 2 makes major changes and it comes in less than a year.
Excellent comparison of LS' 3 3rd party UI vendors. <br /><br />The LS community of developers should work together to come up with a common property set for controls so that developers can easily swap components between vendors. Perhaps we could create a wrapper control(s), yes?<br /><br />RE: <br />I think the real answer may come in LightSwitch version 2. I suspect that a future version of LightSwitch will allow control vendors more customization options for their controls. I also suspect that the reason it was not in version one, is that LightSwitch also needs to allow you to create HTML5 controls…<br /><br />Can we (the community) define what we need MS to do for us further in the Toolkit? What are the details of 1) what we cannot do that we need to and 2) what MS needs to do to remedy this.<br />