Posts in Category: Development

More work on .NET Wrapper Controls for ExtJs

As I mentioned in my previous post, I've started implementing some .NET wrapper controls around the ExtJs javascript toolkit to make it easy to use in ASP.NET and especially in mojoPortal.

So far I've implemented ExtPanel, TabPanel, Tab, SplitPanel, and Viewport server controls. I just updated this site  with my latest code and created a ExtJs Complex Layout Demo page using my controls. I spent some hours thrashing before I got it working but its very fun implementing these widgets once you do get them working it seems like magic. The layout possibilities are just awesome. I love the way you can collapse any panel to hide it and can resize them by dragging the borders.

Of course I'm sure I will continue improving these controls and will undoubtedly find bugs when I start trying to use them for real applications but they will get polished up as I use them for real features. I'm just trying to get some useful baseline proof of concept implementations working now.

I found a .NET project for ExtJS this morning but it depends on the MS AJAX framework. Although we can use the MS AJAX framework in mojoPortal, I'm choosing to implement mine without that dependency. I'm also choosing not to embed the javascript in the dll but instead just have a setting to the base path for the ext javascript files. I do see the convenience of embedding but I also see that putting a lot of javascript inside a dll increases its size and dlls have to be loaded into memory on the server which is probably not a problem on beefy machines but in shared hosting with limited resources its more optimal in my opinion not to have it in the dll.

I'll be posting more demo pages as I complete the wrappers for more ExtJs widgets.

New Survey Feature Landed in svn trunk

Those of you who subscribe to svn commit notification may have noticed the new Survey feature by Rob Henry landing in there recently. Rob has been working on this feature for a while and the feature is ready for some testing and feedback so that he can put the final polish on it. You can test using his demo site at http://www.justsome.net/surveydemo/

You can login using admin@admin.com and password admin

The feature allows creation of complex multi page surveys and supports a variety of question formats. Currently its only implemented in MS SQL but we plan to add the other data layers after its finished.

Those working with svn trunk can just do svn update, rebuild the mojoportal-survey.sln or mojoportal-complete.sln in VS and then visit the siteroot/Setup/Default.aspx page and the feature will install automatically.

Post any feedback in the Developer Forums

Thanks Rob for your work on this! It will be a valuable feature for the mojoPortal community.

Site Settings Layout Improvements using ExtJs

I've been wanting to revamp the Site Settings UI in mojoPortal for a while now. On friday I started doing a little work in the WebStore UI trying to implement tabs for grouping settings. First I implemented a server control that wraps the dojo TabContainer but for some reason I could not get the FCKeditor to display in Firefox inside the dojo Tabs. So saturday morning I tried using the ExtJs project and wrapping a .NET server control around their Tabs and it worked much better.

So I decided to go ahead and use it in Site Settings.

Much better organization than the previous layout. I just updated demo.mojoportal.com with this for anyone who wants a closer look. It will also be in svn trunk by tonight.

I have to say the ExtJs project is very impressive and I think I will focus on using it instead of dojo. Nothing against the dojo project but ExtJs seems more mature, has better documentation and better demos.

Amazingly impressive is their WebDesktop demo. Very cool stuff.

MS AJAX and Mono - Heads Up to svn users

For a while now I've held off on fully utilizing the MS AJAX framework in the core of mojoPortal because it was not yet supported in Mono but recently, at least in Mono built from svn head quite a bit of the System.Web.Extensions stuff is working. In the past I had an AJAX Extensions pak which could be used to add MS AJAX support for Windows in case developers wanted to use it in their custom features. It also allowed for making the WebPart drag and drop work in Firefox by using the Microsoft.Web.Preview namespace. The Microsoft.Web.Preview stuff is not working in Mono yet but since WebParts are also not working in Mono yet its not needed. However in svn trunk I've modified (or will have soon, merge is in process) the Solution so that these things are referenced and no extension pak is needed. Since some web.config settings are needed to use these things I made a custom Web.config for mono that comments out these things otherwise errors happen on Mono. So heads up to any Mono users who are working with mojoPortal from svn.

If you are working with Mono compiled yourself from svn, you'll need to replace the Web.config file in the Web folder with the one from the _mono_errata folder

If you are working with Mono 1.2.4 or 1.2.5 release versions you will need to either just use the current zip download or use svn/branches/2.2.3.6 because the System.Web.Extensions stuff is not yet available in these versions.

One of the changes to add more general support for MS AJAX was to add the ScriptManager to the layout.master file of each skin so if you are using a custom skin you will need to copy this from one of the included skins into your custom skin.

I may go ahead and make another release with this soon as I know some developers are anxious to start using MS AJAX in mojoPortal and this will make it easier. I used the UpdatePanel in the BlogEdit.aspx page so Categories can be added to a post nice and smooth with no full postback.

Another thing I did recently that is in svn is I implemented a ProviderModel pattern for the IndexBuilders used to build the Lucene.NET seach engine index. This will make it much easier for developers to make their own features participate in Search by implementing an IndexBuilderProvider (which only requires implementing 2 methods). I plan to write a tutorial on that soon but I think most developers could figure it out just by looking at the included providers for existing features.

I'm still a fan of some of the other AJAX frameworks included with mojoPortal, especially dojo which I plan to use more of but its nice to finally be able to use the MS AJAX stuff. UpdatePanel makes things very easy.