Welcome to TechNet Blogs Sign in | Join | Help

Hello Kirti moving to MSDN

MSDN is the right location for this blog since it is targeted towards developers. It was a mistake on my part to create it on Technet. Apparently my actions are irreversible though. Since MSDN and Technet blogs do not have any blog migration story(no web service wrappers for the blogml support) I am supposed to move the blog posts over manually. I will do that at leisure. All the existing posts will still be here but from now onwards all new posts will be made at my new MSDN blog. Hope to see you there and apologies for any inconvenience caused.

Kirti

Posted by kirtid | 0 Comments

Community Contributions in Toolkit release 10920

When I wrote my previous blog post I was in a rush to make the release announcement because we had a lot of users waiting eagerly for it. But I did not get a chance to thank our users who contributed patches to the Toolkit and made the release a success. I would like to call out their names and the fixes they made.

Thanks again! We hope to see more of these in the future. It is a clear sign that the community is taking charge of the Toolkit and shaping it the way they would like it to be. The Patch Utility has helped users provide us fixes for existing controls in the Toolkit but what about new controls? We should have a Toolkit control gallery coming up which will serve as a staging ground for new controls before they can be added to the Toolkit. I will provide more details in a following blog post very soon.

Toolkit Release 10920

This has been a long awaited release and has lots of important bug fixes. We were unable to get the Test Framework ready in time and hope to get that out later. The release notes talk about it in detail at this new sample website location. The binaries can be downloaded from the Toolkit Release page.

Please try it out and let us know if you run into any issues.

Posted by kirtid | 7 Comments

SlideShow navigation

I have written a simple example that uses the SlideShow extender and demonstrates some of its cool features.

The sample...

  • provides additional context to the user by showing the previous and next slides by hooking into the 'slideChanging' event that SlideShow exposes.
  • and it uses the images as navigation buttons to avoid overwhelming the user with too many controls. This is possible since SlideShow targets any control of type Image. I used an ImageButton instead to make it clickable.

In the example, I attach a handler to the 'slideChanging' event in the pageLoad function. The handler updates the previous image using the SlideShowEventArgs parameter that is passed to it. SlideShowEventArgs exposes the previous and next slide objects out of which I use the previous slide to update the previous image. Check out the attached zip. It just a proof of concept, not super-refined and could do with a lot of help in the visual department.

Are there other simple customizations of Toolkit controls that you would like to see? Let us know.

 

Posted by kirtid | 0 Comments
Filed under: ,

Attachment(s): SlideShow.zip

Toolkit showcase

We are compiling a list of websites to showcase on the Toolkit page that is a part of the ASP.NET website. Details on how the page will end up looking like have not been fleshed out yet. Just like this ASP.NET AJAX showcase displays interesting websites built on top of ASP.NET AJAX, we would like to share a collection of websites using the ASP.NET AJAX Control Toolkit.

Here are our selection criteria. Note: These are just the minimum requirements and meeting them does not guarantee that the website will make it to the page. Subjective criteria like peculiarity of Toolkit usage, level of customization, degree of usage i.e. just one Toolkit control is used or more and many other qualifications may also come into play.

  • The site uses at least one Toolkit control built on top of the Toolkit infrastructure.
  • Usage of the Toolkit is blatant i.e. we should be able to spot the control easily. If it is very obscure then it does not really "showcase" the Toolkit per se.
  • The website does not have "questionable" content.

If you would like to see your website in the showcase here is the information we need:

  • Your name and email address
  • Your site's name and URL
  • Description of your site in less than 50 words.
  • Description of the usage of Toolkit controls on your site in less than 200 words.

You can send this to me using my blog contact form or to the Toolkit team by email.

Thanks for using the Toolkit!

Posted by kirtid | 3 Comments
Filed under: ,

Toolkit update

It has been a while since we released so we would like to update our users with the latest happenings in the Toolkit world.

Our next release is scheduled to be around the 14th of September. What will it include? 

  • New test framework and tests: It will include a new testing framework and wrappers for Toolkit components. The old tests have been migrated over as well. Some of the advantages of the new testing system would be:
    • Test authoring made simple and fast by having it in managed code. This will enable us to have a exhaustive suite that validates more code paths. More checks to ensure the robustness and backward compatibility of Toolkit controls will allow us to introduce new features and fixes without worrying about regressions.
    • An efficient release process achieved by eliminating some of the manual testing that needs to be performed every time we release. The new tests can be run in all browsers unlike the old harness which only worked in Firefox and IE 7.
  • Bug fixes: We would like to target some of the top voted items and other minor issues that have been bothering our users. To see the complete list please visit the planned release page.

If there are other issues that you care about and would like to provide a quick fix for the same using the Toolkit Patching Utility, please do so and let us know if you think that those should be included in this release. We will review your changes and keep you in the loop if we need more information.

Check out our Patch Hall of Fame! Would you like to see your name there? Use the Patching Utility and be a Toolkit star!

Posted by kirtid | 3 Comments
Filed under:

Toolkit support for .NET Framework 3.5 and Visual Studio 2008 Beta2

The next wave of Visual Studio products coming out from the Developer Division in Microsoft promises a richer development experience than its predecessors. Features that deserve special mention since they are particularly relevant to the Toolkit are Javascript intellisense and ASP.NET AJAX Extender designer support. The Beta 2 version went out of the door today and we backed it up with a nifty "Orcas" Toolkit that works very well with the new designer support. You can download it from the Toolkit releases page. Since Beta 2 comes with a Go-Live license there are no roadblocks preventing you from getting a cool Toolkit site up and running in Beta 2 right away and have it upgraded later on when Visual Studio 2008 and .NET Framework 3.5 officially release. We hope to improve the designer experience for Toolkit extenders even more in the future hooking into the rich support provided by Visual Studio 2008. We look forward to hearing about your experience with the Toolkit refresh release for Beta 2 so do keep us posted.

Posted by kirtid | 1 Comments
Filed under: ,

How to make localization in the Toolkit work for you?

FAQ # ...: Why does the Toolkit add resources binaries to a website's bin directory?

To explain the motivation behind this I have put up a wiki on our CodePlex site that details how to make the most of the Localization features without getting overwhelmed by the language resource binaries. We believe that the defaults we have set work best for users who are interested in localizing their websites as well as users who do not need that feature at all. It is now very easy to develop, configure and deploy websites using the Toolkit that are globally aware. We wish to continue adding neat features to the Toolkit and we hope that this feature is serving you well.

Posted by kirtid | 0 Comments
Filed under: ,

Lather, rinse and release

We had a Toolkit release last week and our product support medium, the forums, gave us instant feedback. So what happens when issues in the Toolkit prevent our customers from taking full advantage of it and block their core scenarios? We do not have service packs delivered 3 months after we release; that is way too late. After all, we release every couple of months which means that our response needs to be pretty quick. We follow up with a refresh release that patches the problems. Shawn Burke has a detailed blog post that provides an overview of the Toolkit processes and should help clarify any doubts you have. We hope to make the functioning of the Toolkit even more transparent in the future.

Motivations behind this 10618 release:

  • A Tabs naming container issue that prevented users from finding child controls successfully
  • A design time binary dependency that was accidentally being required on the deployment server because of web configuration file reference issues
  • FilteredTextBox control was misbehaving when using navigation and control keys and
  • The ToolkitScriptManager feedback needed to be incorporated

If you are already a Toolkit user then upgrading to the latest version of the Toolkit is straightforward. Ping us if you run into any issues.

One of the core tenets of Agile development is customer satisfaction by rapid, continuous delivery of useful software. We hope that we are living up to it!

Posted by kirtid | 1 Comments
Filed under: ,

Mind your language!

The Toolkit supports localization since the 10301 release. The work involved included basic infrastructure and translations for the string "Today" used by the Calendar control in 14 languages. With the Toolkit Patching Utility in place we are receiving help from the community in translating the rest of the strings used by the Toolkit. We have added support for two new languages, Czech and Dutch bringing our language count to 16! We have also received a patch that completed the Russian resources file to include the remainder of the strings that needed to be translated. And we hope to receive patches for traditional and simplified Chinese and Turkish soon!

Our goal? We would like to make sure that the Toolkit works right in the language of your choice. Here's how you can help.

  • The Toolkit resources files reside in the AjaxControlToolkit project in the Toolkit solution under the ScriptResources folder. 
  • The name of the resources file follows this pattern: "ScriptResources.%languagecode%.resx". You can find a list of language codes here.
  • You can use the English resources (ScriptResources.resx) file to get a complete list of all strings that can be localized and that need to be translated to fully support all controls in a particular language.
  • You will need to install the Patching Utility and submit a patch that contains the change to the resources file for the language you are adding support for and an update to the AjaxControlToolkit project file if that language is not yet supported by us, to include the new file.

It's that simple! If you have questions or concerns feel free to contact us.

Happy Translating!

Update: With the latest 10618 release of the Toolkit our language count is up to 17! New languages are Turkish, Czech and Dutch. Existing language resource files, for Traditional and Simplified Chinese, and Russian, have been updated to include translations for all strings in the Toolkit. Check out the Toolkit Patch Hall of Fame for a full list of our patch heroes.

Posted by kirtid | 0 Comments
Filed under: ,

Toolkit: New and improved!

The latest version of the Toolkit is out. Try it out now.

What's so great about this release? This release is particularly special since we had very active Toolkit contributor participation. We also got contributions in the form of patches that allowed us to fix issues which we would not have considered otherwise due to lack of resources. More than 40 bugs out of a hundred odd fixed in this release were handled by the Toolkit contributors! I will let the numbers speak for themselves.

What's new? Features like dynamic context support for web services, design mode support for Tabs and page methods, generic Animation support built into controls that use PopupBehavior, a ScriptCombiner that makes downloads of pages using the Toolkit faster with fewer round trips, events all across that users can hook into to customize their Toolkit control usage, AutoComplete customization and multi-word support and I am sure I am missing more. Oh yeah, the control icons! Way more interesting and helpful than the standard blue spinning gear. 

What got fixed? Validators and Toolkit extenders now work well together, ModalPopup issues in absolute and relative positioning scenarios have been fixed for most common cases, MaskedEdit plays well with ValidatorCallout and Calendar, and the list goes on; you can find it all on the release page.

What? No new controls?! A lot of users who were looking forward to new controls in this version may be a tad disappointed. However, we wanted to focus on adding new features and improving the quality of existing controls in the Toolkit before we moved on to treading new territory. We have some new controls in the making already but we are making sure that they pass the high quality bar before we release them.

We hope this release works out well for you and we look forward to solving a lot more issues in the future ones. If you have any questions or concerns do let us know.

Enjoy!

Posted by kirtid | 6 Comments
Filed under:

Cascading AutoComplete

We have received a lot of feedback from users about not being able to pass additional information to the AutoComplete webservice which limits their usage of the extender. We decided to absorb that input and add support to all extenders that issue XmlHttpRequests the option of passing in data above and beyond what is allowed by the standard webservice parameters, something that closely resembles the DynamicPopulate style support, to provide to flexible context. With this support in, you will be able to bind the AutoComplete extender to any controls on the page and have a richer, contextual and relevant set of results returned by the AutoComplete webservice. It will be available in the next release of the Toolkit around the end of May.

I played around with this new feature to see if something interesting could be done with AutoComplete. There was a question about getting AutoComplete to work like CascadingDropDown on the forums which I had earlier considered but dismissed given that it was not easily possible; turns out that the scenario now lights up naturally. I have written a basic version of CascadingAutoComplete and am attaching the project. I have not used ASP.NET DataBinding but simple javascript to set the values of the ContextKey so this solution should work without ASP.NET with little changes. It is not possible to have a fully functional CascadingDropDown with AutoComplete since it is a TextBox and not a DropDown but the input checks can provide a similar experience. You could always add validators or other Toolkit extenders like MaskedEdit, ValidatorCallout out FilteredTextBox to prevent invalid input. There are multiple ways of approaching this and you will need to find the solution that best serves your website's needs. The Toolkit now enables you do more with the extenders. The other controls that can take in additional data are SlideShow and CascadingDropDown itself.

The sample demonstrates a simple lookup scenario where the allowed values in the second textbox are tied to the value in the first one. The second textbox uses the text in the first one to perform a webservice call and retrieve results. Check it out. If you are a movie freak or if you like to read Hollywood gossip, there just might be something more than AJAX to look forward to in the sample. Let us know what you think. We are listening.

Posted by kirtid | 10 Comments
Filed under: , ,

Attachment(s): CascadingAutoComplete.zip

Using UpdatePanels with ModalPopups

One of the most frequently asked questions on the Toolkit forums and at MIX after Shawn's demo was how to get UpdatePanels to work right with ModalPopups. The trick is to understand that the ModalPopup extender attaches itself to more than just the TargetControl and PopupControl. If you include the OK and Cancel buttons inside the ModalPopup Panel in an UpdatePanel, make sure you include the extender declaration in it as well. If you do not, once a postback occurs the extender will not reinitialize the handlers and you will get null references. Also, if buttons inside the ModalPopup Panel are set to be OK and Cancel buttons on the ModalPopup Extender, then their sole purpose is to close the Popup Panel and run their respective scripts if any have been set. They will not perform postbacks or execute any other client side handlers since the ModalPopup prevents the event from propagating up. 

I have attached a sample page that demonstrates three simple scenarios with ModalPopups and UpdatePanels.

  1. ModalPopup with an UpdatePanel inside its Popup Panel: Make sure that the OK and Cancel buttons are not inside the UpdatePanel otherwise the handlers will be rendered useless on postback.
  2. UpdatePanel that contains a ModalPopup Extender and its Popup Panel: Clicking OK or Cancel still does not cause the postback since those buttons are tied to client side handlers. Clicking on any other control will cause the server side handlers to kick in. Since the extender declaration is inside the UpdatePanel, the asynchronous postback causes the ModalPopupBehavior to be reinitialized correctly and any client side handlers are setup again when the request is completed. So if you would like to postback every time the user clicks OK or Cancel, just don't set those properties on the extender. The Modal Popup Panel closes on postback as desired since the entire popup is inside an UpdatePanel.
  3. What if that Popup Panel in # (2) contains an UpdatePanel: Specify the triggers that will cause the outer panel to update and allow the UpdatePanel inside the ModalPopup to operate on its own terms. This time the ModalPopup Panel does not close on postback triggered from within it because the trigger for the outer panel is specifically set to be a separate button.

It is a good idea to design the page without UpdatePanels in mind. When writing the page place UpdatePanels when the rest is done. Once you have the page setup, determine locations in your page that need to be asynchronously updated and the controls that should act as triggers to perform that operation and then appropriately place UpdatePanels with the correct triggers and UpdateMode property set. With extenders it is important that you take into consideration not just the controls targetted by the extender but any others which it hooks into to provide additional functionality.

This post should evolve as I get more feedback and I will update the sample accordingly as well. I hope this helps.

Posted by kirtid | 6 Comments
Attachment(s): ModalPopupUpdatePanel.zip

Silverlight at the end of the tunnel

I was in Las Vegas this week attending the MIX' 07 conference along with the rest of the Toolkit team. My team mates, David Anson and Ted Glaza worked on the keynote demo that Scott Guthrie presented. The demo was written in managed code using the alpha version of the Silverlight platform that Microsoft showcased at MIX. It is a cool airline application composed of three core controls, Calendar, FlightPicker and Map. The source code is available for download from David's blog.

Silverlight will be a big leap in terms of the way we perceive the web. Essentially, with the managed code support, one no longer needs to be a web developer to write rich and interactive web applications. There is no need to worry about javascript, understand browser differences or css incompatibilities. It is all abstracted away from the developer who can focus on the end scenario without being distracted by these issues. All there is to see is XAML, XAML and more XAML and of course CSharp. I am up for that any day if I can get away from javascript. Why? Static language, with rich compiler support, intellisense, debugging support and a wide array of .NET apis to build on top of - need I say more? Our next project may have a lot more to do with Silverlight. Will it be a Silverlight Control Toolkit? May be. If you have ideas or suggestions around it do send me an email or leave a comment.

Posted by kirtid | 0 Comments
Filed under: , ,

Accessibility support in the Toolkit

Accessibility has long been one of the most neglected aspects in the software development process. Those who do take it up, do so because they wish to secure a customer who has government compliance clauses. Getting resources assigned for accessibility work is a tough job with few takers. We, the Toolkit team, think it is a fulfilling and worthy task and do not want to deprive users with disabilities of the Toolkit's coolness!

Although accessibility on the client has been pretty stable in terms of Assistive Technologies(AT) and platform support, web accessibility remains in its nascent stages with the web redefining itself. W3C is working on the WCAG 2.0 draft which will be the second attempt to flesh out web accessibility guidelines in the wake of the AJAX movement. Its charter is to deliver a web accessibility standard that will guide web developers to author semantically correct web sites which will communicate better with AT devices.

We eagerly await the industry standard that both web technologies and AT devices will comply with. However, till then the Toolkit controls need to be as accessible as possible to everyone, including users with disabilities within the current scope of accessibility guidelines. To achieve that goal we have an Accessibility Plan in place and hope to deliver support one issue at a time. We have already started making efforts to fix issues as we find them and we have a lot more in our Issue Tracker that we would like to take up soon.

So join us in your efforts to make the Toolkit more accessible. We are not Accessibility experts but working on it, so if you have accessibility domain knowledge, we see a potential partnership here! How can you help? Know about issues in Toolkit that could be changed to improve the accessibility experience, send us an email, post it on our forums or simply create a work item.

Some useful links:

  • Section 508 is the US Law that states that all software should not discriminate against users with disabilities by disallowing them access to features that normal users have and prevent them from making the best use to operate effectively. 
  • European policies are also in place to ensure that the software is accessible to all.
  • Juicy Studios is a site which provides guidelines on authoring accessible websites
  • Learning the world is very good blog on web standards and accessibility

Toolkit for all!

 

Posted by kirtid | 0 Comments
Filed under: ,
More Posts Next page »
 
Page view tracker