Skip to end of metadata
Go to start of metadata

On this page:

Oftentimes, developers found it too complex in order to deploy their web application that used third party components. There are too much things that need to be recalled before a web application can be successfully deployed. For an instance, the javascript files, images and other runtime client files need to be copied in order for the component to run properly.

One of the goal in Intersoft's product platform is to simplify the deployment process required in Intersoft's controls. Our approach is by developing a new infrastructure that handles the storage and retrieval system of these client resources so that physical files can be totally eliminated. This new infrastructure is called SmartWebResources.

WebUI fully supports SmartWebResources infrastructure. This enables WebUI control to function perfectly right out-of-the-box after the simple XCOPY deployment. Both developers and site administrators can now deploy Intersoft's components by simply copying the assemblies in the Bin folder of the project - and totally eliminates the need to copy javascript files, component-specific images and runtime files.

As best practice, it is highly recommended to enable SmartWebResources feature for all Intersoft's components especially WebGrid. Furthermore, WebGrid 5.0 exclusively requires WebDesktop's SmartWebResources Assembly in order to use some advanced User Interface features in WebGrid such as the new ContextMenu engine and runtime engines for dialog boxes and windowing system.
To learn how SmartWebResources works, see How does SmartWebResources work.

To learn more about the benefits introduced by SmartWebResources, read Features and benefits introduced by SmartWebResources

About Localization Files

WebUI .NET Enterprise includes numerous language files in Xml Format for localization purpose. In previous version, the language files must be located inside IIS directory to be accessible from client.

In version 5.0, language files are included in WebGrid SmartWebResources Assembly. This means the physical language files in IIS directory are no longer required.

If the language file is set to be retrieved from SmartWebResources, you cannot modify or customize the texts (strings) as the files are now embedded inside assembly. If you want to use modified version of language file, then you can switch the language retrieval back to classic physical files retrieval mode. For more information, see How-to: Disable SmartWebResources for Localization's language files.

New SmartWebResources Framework

At Intersoft Solutions, we constantly conduct extensive research and development to deliver new innovations that help developers become more productive by reducing the efforts and overwhelming complexity in both development and deployment stage.

The brand-new SmartWebResources Framework is one of the exciting technology that we had to offer in 2007 R1 platform. The key objective of SmartWebResources is to eliminate the external physical resources (such as scripts, images, etc) which required by web components to function properly.

Problems introduced in traditional web components approach

Most web components require client resources such as scripts, images, stylesheets and other client files to gear up some advanced and powerful features. Normally these client resources are delivered through physical client files. In ASP.NET, these files may be located in aspnet_client folder or other common folder which needs to be mapped properly into IIS virtual path in order to function properly.

There are several issues with this traditional approach which causing inefficiency, such as:

  • Special IIS virtual directory is required to store the client resources. In several webhosting that does not support manual virtual directory setup, this can be a significant deployment problem.
  • Special attention and more efforts are required during deployment.
  • Versioning problems. This could cause overwhelming complexity while maintaining the versions of the client resources for specific components.
  • Complexity in maintaining control-specific's resources folder. For instance, some scripts are located in folder X, images in folder Y, and other scripts in folder Z.

The solution

The solution to the several issues mentioned above can be achieved by eliminating the requirements to use physical client resources. Thanks to the new SmartWebResources Framework, the physical client resources can be completely eliminated.

 

The client resources are still required in our web components. It is just they are now stored in "virtual location" which does not require the awareness of developers. They are fetched and delivered to client (browsers) in a new, different way.

How does SmartWebResources work

Each product has their own resources such as scripts and images. For instance, previously these resources are stored in /CommonLibrary/Shared for core framework resources, WebGrid's resources are stored in /CommonLibrary/WebGrid/v4_0_6200.

 

With SmartWebResources, they are now embedded into .NET assembly. Unlike ASP.NET's built-in Web Resources which embeds client resources in main assembly, SmartWebResources stores each product's client resources in separate assembly. This enables flexible update (maintenance) to the client resources without has to rebuild the main server-side assembly.
 

SmartWebResources implements each product's client resources as separate resources assembly. Each product that supports SmartWebResources technology will have a companion resources assembly. The resources assembly commonly has this format: [ProductAssemblyFullName].Resources.dll.
For instance, the assembly hierarchy for WebCombo.NET 4.0 looks like in the following illustration:


The SmartWebResources works by intercepting the HTTP request through custom HTTP handler that extended in the Framework runtime. The SmartWebResources will then dispatch the request and automatically determining the correct resources assembly, then finally fetching the resource from the assembly and deliver it to the client.
The way it works can be seen in the following illustration:
 

 

With SmartWebResources enabled, you no longer need to aware what you should do to configure the client scripts virtual directory, or where to locate/store it. You simply ensure that the resources assemblies are in the Bin folder of your application. For more information, read How-to: Configure SmartWebResources in a new web application.

Features and benefits introduced by SmartWebResources

Here are lists of all features and benefits in SmartWebResources:

  • Better throughput: IIS6 Kernel-level Caching
  • More secure: Does not use query string
  • Faster performance: Does not use Reflection. The SmartWebResources does not use WebResourceAttribute mechanism, so avoiding the needs to use Reflection.
  • Smaller output: Simpler path formatting and does not use long-encrypted string. For instance, the built-in ASP.NET 2.0's Web Resource commonly produced a web resource url such as /WebResource.axd?d=X3DBWN0WSNooBvJskjFXaHbLs_89EdATLyWdaCXXWBuO_EqnAFr_Di1ag4ubAsDdMu4h_k0tff_bX4YhT_csWQ2&t=632939437740000000. In SmartWebResources, the output url format is as simple as /ISRes.axd?C/WebCombo.js/4072001
  • Hassle-free Deployment: No more external client resources are required during deployment. Only one assembly is required to be copied into your app's bin folder.
  • Reduced Complexity: SmartWebResources includes automatic web resources configuration. When in auto mode, the client resources will be retrieved from Web Resources assembly whenever possible. Otherwise, it will automatically fallback the retrieval from traditional external resources which stored in IIS virtual directory (also known as CommonLibrary)
  • Easy to Configure: Easily configure the settings from application level. You can also customize the settings for individual control's instances for more precise control.
  • Flexibility: You can easily switch between SmartWebResources or external resources mode through EnableWebResources setting.
  • Seamless integration with VS 2005: The handlers and resources configuration can seamlessly added to your web application configuration.
  • FileSystem Project Support: For better design-time experience in FileSystem web project, the image resources are now properly displayed in the Visual Studio 2005 designer. Thanks to SmartWebResources Framework that provides automatic url conversion mechanism in design-time.