Control Design
This past sprint has been a bit of a challenge for me since I undertook the creation of a new control. Some of you had noticed a performance issue with some of the controls we had been using from Telerik. These controls are great, they let you do all kinds of things like have images, expandable trees, and drag and drop. Unfortunately, all of that work is done on the end user's computer. That's fine and dandy when you're talking about a few dozen items in the control. But once you start to get around 300 or more, then things really start to bog down.
For Form Builder I set out to replace our UserChooser that relied heavily on Teklerik. I wanted to provide the same functionality, without the performance hit. It needed to load quickly, and there needed to be some visual cue if it was going to take a while to take an action. Matt was a big help throughout this process answering my questions and showing me how to set things up so we can reuse this code for other applications.
What I learned along the way is that control design is not for the weak hearted or those who like to write quick and dirty or "spaghetti" code. It takes an order of magnitude more planning that a normal web control or an ASP page. And you do your best to anticipate how someone else might use it, so you make it as flexible as you can without losing sight of the original goal you set out on. It's a balancing act, the kind where you have to juggle fire and tame lions all at the same time.
The end result is that you can now add a hierarchy of items from the source list, have a set of destination lists to add those items to, and include all the images you like. Oh, and it's pretty blazing fast for both loading and single item manipulation. It's also not tied to any one data set, so we could use this for anything and with a bit more polishing you should see it in the Portal FX in an upcoming patch!
For Form Builder I set out to replace our UserChooser that relied heavily on Teklerik. I wanted to provide the same functionality, without the performance hit. It needed to load quickly, and there needed to be some visual cue if it was going to take a while to take an action. Matt was a big help throughout this process answering my questions and showing me how to set things up so we can reuse this code for other applications.
What I learned along the way is that control design is not for the weak hearted or those who like to write quick and dirty or "spaghetti" code. It takes an order of magnitude more planning that a normal web control or an ASP page. And you do your best to anticipate how someone else might use it, so you make it as flexible as you can without losing sight of the original goal you set out on. It's a balancing act, the kind where you have to juggle fire and tame lions all at the same time.
The end result is that you can now add a hierarchy of items from the source list, have a set of destination lists to add those items to, and include all the images you like. Oh, and it's pretty blazing fast for both loading and single item manipulation. It's also not tied to any one data set, so we could use this for anything and with a bit more polishing you should see it in the Portal FX in an upcoming patch!
Labels: Development, eForm Builder









0 Comments:
Post a Comment
Links to this post:
Create a Link
<< Home