Category Archives: 2008 R1

WebCallOut Integration with FlyPostBack in SP2

WebUI Studio.NET 2008 Service Pack 2 has delivered many nice enhancements and features. One of the enhancements available in this later service pack is the integration between WebCallOut and FlyPostBack (AJAX) functionality.

I have received feedback from our customers mentioning that WebCallOut is merely a UI component without AJAX/server-side featuer in behind. By integrating WebCallOut and Intersoft’s FlyPostBack architecture, I’m glad to announce and prove that the newly-born WebCallOut is not as simple as it looks, but rather a pure, real and powerful similar to the other Intersoft’s components so far.

With this new enhancement added into WebCallOut, you can now assign WebCallOut’s Text or Title not only from client side, but also from server side via FlyPostBack. This new enhancement will certainly add flexibilities in using WebCallOut and therefore results in more advanced scenarios supported.

In order to perform FlyPostBack, simply add OnShow server side event in WebCallOut. In OnShow server side event, add the below code. 
protected void WebCallOut1_Show(object sender, ISNet.WebUI.WebDesktop.WebCallOutEventDataArgs e)
{
        e.Title = "New Title with FlyPostBack";
        e.Text = "New Text with FlyPostBack";
}

OnShow server side event will be triggered when just before WebCallOut is about to appear/show.

If you are using WebCallOut with ContentMode = “UseTemplate”, then you can change the control(s) in the template with this below approach.    
protected void WebCallOut1_Show(object sender, WebCallOutEventDataArgs e)
{
        WebCallOut callout = sender as WebCallOut;
        Label label = callout.FindControl("Label1") as Label;
        label.ForeColor = System.Drawing.Color.Green;
        label.Text = "New Text with FlyPostBack";
}

For better understanding, I provide WebCallOut’s lifecycle illustration.

Standard lifecycle FlyPostBack lifecycle

Hopefully this integration can help developers to gain better web experience. Quoting Intersoft’s motto, we are striving to deliver the best WebUI components that have “insights for a better web experience” for both developers and users.

Best Regards,
Budianto Muliawan.
Software Architect, Intersoft Solutions Corp.

Loading SmartWebResources from GAC


As promised, the Service Pack 2 of WebUI Studio.NET 2008 is now available. You can download it from Developer Network portal. SP2 includes several new enhancements, and by far the most stable version that we ever release for 2008 R1 lifecycle. It’s highly recommended for existing customers and prospects to install and use SP2.

One of the enhancements in SP2 is the ability to use SmartWebResources feature in GAC scenario. As you may already aware, SmartWebResources is designed to reduce the resources dependencies during development and deployment. The resources are made up with Javascript files, images, stylesheets and other client files that might be needed by the component.

With its unique architecture, SmartWebResources is separated from the main assembly for security purpose, and for easy replacement. This way, developers can simply grab the new resources (which may contain updates or fixes) and replace the existing resources without making impact on the server side assemblies.

Recognizing the “plug and play” nature, the SmartWebResources are designed to be located in private bin of the Web application since the initial development. However, we have received numerous requests from customers who wanted to put the Resources assemblies in GAC (Global Assembly Cache) instead of in private bin folder. The reasons? There are several, some said they require all assemblies to be in GAC for easier product packaging, some said it is requirement due to the usage within SharePoint.

So, in this SP2, we manage to make it happen. Developers can now install the SmartWebResources to GAC during deployment, and still have the component to be able to locate them properly through settings in web.config. Several of new settings have been introduced to allow the main component to locate the Resource assembly, which is listed in the following:

<add key=ISNet.WebUI.Resources.LoadFromGAC value=true/>
<add key=ISNet.WebUI.Resources.FrameworkVersion value=3.0.5000.112/>
<
add key=ISNet.WebUI.Resources.WebGridVersion value=6.0.7200.112/>
<add key=ISNet.WebUI.Resources.[OtherProductName]Version value=“[Major.Minor.Revision.Build]/>

The LoadFromGAC key is an absolute requirement, which tells the WebUI.NET Framework to load SmartWebResources assembly from GAC.

The other keys are the version of each product which Resources should be look up from GAC. The FrameworkVersion is for the ISNet.WebUI.Resources.dll’s version. The other products are using [ProductName]Version pattern, for example, WebGridVersion, WebComboVersion, WebDesktopVersion and so on.

You might be wondering why the version need to be supplied for the Framework to load the assembly from GAC. The reason is that loading assembly from GAC require full assembly name format, and that the full assembly format should include the exact version of the assembly. While we can automatically detect the current running version of the main component assembly, customers may feel it is too strict since they may have several version of Resources, and may want to choose different set of Resources’ version.

So, that’s all for now. Hopefully you liked this new SP2 enhancement. By the way, we also have several new samples and important updates in SP2, make sure you check out SP2 Release Notes.

All the best,
Jimmy.

Firefox 3 support, WebUI Studio Service Pack 2, and more.

I have just realized that it has been almost 1.5 months since my last blog post. That must be due to the overwhelming busy in the preparation for the TechEd event that we attended last month. Well, “roller coaster” season has passed, and we’re now back at the full speed heading to our next target.

In case you are not aware, Mozilla has recently released Firefox 3.0. While it promised some cool features, and nice enhancements in DOM and CSS area, it contains a dozens of breaking and regression. It’s not so surprising, as we have constantly experienced the breaking from one major version to another. For instance, the onblur event is no longer working properly. Another example, FireFox no longer recognizes <font face=”Webdings”>. It doesn’t even work if you put it in the style of DIV. So what does that mean? Say bye-bye to imageless solution that used Unicode font to display nice Web icons.

Despite of several breaking changes in FF3 that affect our products, we have tested that 95% of major functions are working as expected. You might, however, notice several minor layout issues such as shrinked column header in WebGrid and weird sorting indicator. But, nothing to worry – as we have planned the Firefox 3 support to be steadily availabe in this month’s hotfix (or possibly inclusion in Service Pack 2).

On the other hand, we have also aware on several new browsers release such as IE8, although still in beta. There is also Opera 9.5 – finally – after a long beta. Fortunately, unlike Firefox, Internet Explorer and Opera are much better in maintaining compatibilities and less regression. I personally have tested our UIs on both IE8 and Opera 9.5 — both worked flawlessly.

WebUI Studio.NET 2008 in Internet Explorer 8 (note: Emulate IE7 is turned off).

WebUI Studio.NET 2008 in Opera 9.5.

Finally, just before landing to our next target for 2008 R2, we plan to release Service Pack 2 for WebUI Studio.NET 2008 R1 by sometime next week, which includes all latest hotfixes, several nice enhancements in WebAqua, WebScheduler and WebGrid, plus some cool samples.

Best Regards,
Jimmy.

[MissingFieldException]: Field not found:’ISNet.WebUI.ProductInfo.Is2008Product’

We released WebUI Studio.NET 2008 R1 last March, which contains all products included in WebUI Studio.NET 2007 R2, plus 2 new components (WebAqua and WebScheduler). Customers who have purchased WebUI Studio.NET 2007 R2 can obtain the latest build included in WebUI Studio.NET 2008 R1 using Update Manager or My Components in TDN2.
The following error will likely to occur after you apply the new build:

[MissingFieldException]: Field not found:’ISNet.WebUI.ProductInfo.Is2008Product’.

To fix this issue, simply update the WebUI.NET Framework to the latest build (build 559 or higher), which can be obtained from Update Manager or My Components in TDN2. Don’t forget to copy the new assemblies to your project’s bin folder. And last but not least, clear the .NET Temporary Files cache to ensure you have used the latest build version.

Dicky-Support Engineer
Intersoft Solutions

Use custom Editing Form in WebScheduler.NET

WebScheduler.NET comes with built-in advanced editing form. However, we received some feedbacks on how to use custom editing form in WebScheduler. Here are the steps to implement that.

  • Create the custom editing form and set the EditingUrl property. The custom editing form used in this sample uses .NET standard control. Advanced client behavior can be implemented manually.
  • Add the following code in OnEditingFormShow client side event. The code is needed to reload the editing form every time it’s opened.

    function WebScheduler1_OnEditingFormShow(controlId, action, eventView, eventType, newType)  
    {   
         var WebScheduler1 = ISGetObject(controlId);    
         var dlg = WebScheduler1.EditingDialogBox;  
         var path = “./EditingForm_Custom.aspx?action=” + action;   
         if (action == “Edit”)       
              path += “&eventID=” + eventView.GetOriginalObject().EventID;
         dlg.SetContentURL(path);   
         return true;  
    }

You can manually implement the database updates in the custom editing form. After you save the changes to database, you need to refresh the scheduler so the changes can be displayed in the scheduler. In this sample, I use the following code to call the Refresh method after save action.

server side:
Page.ClientScript.RegisterStartupScript(typeof(Page), “OnLoad”, “Load();”, true);

client side:
function Load()  
{      
     var wnd = window.parent;
     var scheduler = wnd.ISGetObject(‘WebScheduler1’);
     scheduler.EditingDialogBox.CloseDialog();
     scheduler.Refresh();
}

To close the dialog box, use the following code:

var wnd = window.parent;
var scheduler = wnd.ISGetObject(“WebScheduler1”);
scheduler.EditingDialogBox.CloseDialog();

Note that you are unable to add custom fields in the editing form, because WebScheduler architecture has not supported it yet. Don’t worry though, we will implement the extensibility feature in next version of WebScheduler, which would be available in WebUI Studio.NET 2008 R2.

For further information, please try this sample. Note that you need to use the latest WebScheduler.NET build 112, which can be retrieved from Update Manager. This build is newer than the one included in WebUI Studio.NET 2008 R1 SP1.

Custom Editing Form

As usual, please send any feedback to feedback@intersoftpt.com 🙂