Rich Internet for Everyone (RICHIE) Network: United XAML - XUL Alliance - XUL News - XUL Forum - The Richmond Post - RichCon 2005
The Richmond Post Logo
Chronicle of the Xul Revolution
« August 2002 | Main | January 2003 »

November 2002 Archives

Inside the Crystal Ball: Industry Analyst Predict The Comeback of Rich Clients and the Coming of Richer/Better Browsers

Richer Browsers or Rich Clients avoid excessive server roundtrips, allow offline and nomadic use, and offer a rich UI a la Word or Lookout using

With the rise of XML web services, rich XML UI markups a la XUL and built-in, secure, auto-installation using XML startup scripts over HTTP a la Web Start the difference between Rich Clients and Richer Browsers will blur.

Selected quotes from the Gartner and InfoWorld analyst reports sprinkled with plugs for their ad-paying clients' ware:

The Triumph of High-Fidelity ("Smart") Clients. By 2005, as much as 60 percent of new .Nyet applications will be designed with high-fidelity client deployment in mind (0.7 probability).

Translation: 2005: 60 % Windows Forms Rich Clients; 40 % Web Forms Thin Clients

Bottom Line. Enterprises should prepare for a resurgence in client-side application deployment, which will, this time around, result in more of a hybrid approach that shares code between clients and middle-tier application servers. This will mean more-capable desktop hardware requirements, but without the increase in TCO [Total Cost of Ownership] typically seen in this deployment model.

Translation: XUL + Web Start + Web Services is the future

Read the full Gartner report by D. Smith entitled "The Return of Client/Server - or, at Least, Rich Clients" online at http://www.gartner.com/reprints/microsoft/104982.html.

Emerging distributed servies-oriented computing models further call for faster, smarter workflow than is attainable via browser-based DHTML and Javascript.

Translation: Web Services call for rich UIs a la XUL and SVG

The one commonality among all vendors, however, is the mission to create a smart-presentation layer and rely on localized processing to streamline interaction.

Many of the capabilities from today's innovator may ultimately take root directly within next-generation Web browsers, or the may be embedded natively within operating systems and application servers.

Translation: Only open standards such as XUL, SVG and XHTML will get wide distribution; the Internet is for everyone; XML UI markup will relegate single-vendor runtimes to device driver status.

Rich Internet application vendors will enable developers to bring to market more useful applications in less time.

Translation: XML UI markup makes building rich Internet apps as easy as building Web pages.

Read the full InfoWorld report by James R. Borck entitled "Building a better browser" online at http://www.infoworld.com/articles/ap/xml/02/10/14/021014apclientdev.xml.

posted by Gerald Bauer on November 19, 2002
Lines of Code Benchmark: MFC vs. Windows Forms vs. XUL

How does XUL compare with Microsoft Foundation Classes (MFC) or Windows Forms? Check out the three "Hello World" contestants and see yourself.

MFC Contestant

// HelloMFC.H

class CSimpleApp : public CWinApp
{
  public:
    virtual BOOL InitInstance()
    {
      m_pMainWnd = new CSimpleFrame;  
      m_pMainWnd->ShowWindow( m_nCmdShow );
      m_pMainWnd->UpdateWindow();
 
      return TRUE; 
   }
};

class CSimpleFrame:public CFrameWnd
{
  public:
    CSimpleFrame()
    {
      Create( NULL, "Hello MFC" );
    }
  protected:
    DECLARE_MESSAGE_MAP();
    afx_msg void OnPaint();
};
--------------------------------------------
// HelloMFC.CPP

CSimpleApp helloApp;

BEGIN_MESSAGE_MAP( CSimpleFrame, CFrameWnd )
  ON_WM_PAINT()
END_MESSAGE_MAP() 

void CSimpleFrame::OnPaint()
{ 
  CPaintDC dc( this );
  dc.TextOut( 200, 200, "Hello World from MFC" );
}              

Windows Forms Contestant

using System;
using System.Windows.Forms;

public class SimpleForm : Form 
{
  private Label label1;

  public SimpleForm() 
  { 
    label1 = new Label();
    label1.Text = "Hello World from Windows Forms";
    Controls.Add( label1 );
  }
  [STAThread()]
  static void Main() {
    Application.Run(new SimpleForm());	
  }  
}

XUL Contestant

<window>
  <label value="Hello World from XUL" />
</window>

And the winner is... Do I need to comment?

posted by Gerald Bauer on November 18, 2002 | Add Your Comments (2)
Motlib - .Nyet XUL Motor for Windows Forms in C# - .Net GUI Bliss

Paul DiLascia, King William's Court Jester of Windows++ fame, wrote a tiny XUL motor for Windope Forms in C# dubbed Motlib. Motlib (http://motlib.net) shows how a bunch of XML tags break the Visual Studio generated spaghetti code lock-in.

 #region Visual Studio generated spaghetti code
 /// <summary>
 ///  required method for Visual Studio lock-in - do not dare
 ///  to touch this code by hand; always use the latest
 ///  and greatest Micropoly Milk Machine
 /// </summary>

 private void InitializeComponent()
 {
   this.mainMenu1 = new System.Windows.Forms.MainMenu();
   this.menuItem2 = new System.Windows.Forms.MenuItem();
   this.menuItem3 = new System.Windows.Forms.MenuItem();
   this.menuItem4 = new System.Windows.Forms.MenuItem();
   this.menuItem5 = new System.Windows.Forms.MenuItem();
   this.menuItem6 = new System.Windows.Forms.MenuItem();
   this.menuItem7 = new System.Windows.Forms.MenuItem();
   this.menuItem8 = new System.Windows.Forms.MenuItem();
   //
   // mainMenu1
   //
   this.mainMenu1.MenuItems.AddRange( new System.Windows.Forms.MenuItem[] {
     this.menuItem1,
     this.menuItem3});
   //
   // menuItem1
   //
   this.menuItem1.Index = 0;
   this.menuItem1.MenuItems.AddRange( new System.Windows.Forms.MenuItem[] {
     this.menuItem2});
   this.menuItem1.Text = "&File";
   ...
 }     

vs.

 <!-- feel free to change the XUL markup with 
      whatever text or XML editor you like     -->

 <mainmenu id="MondeMainMenu">
   <menuitem text="_File">
     <menuitem text="E_xit" />
    </menuitem>
    ...
 </mainmenu>

Read the full story entitled ".Net GUI Bliss: Streamline Your Code and Simplify Localization Using an XML GUI Language Parser" in the Micropoly Prawda November issue online at http://msdn.microsoft.com/msdnmag/issues/02/11/NETGUIBliss/

Paul DiLascia Quotes:

No human programmer would code this way, so why accept it from a mechanical one? A code generator is fundamentally a workaround for something that's missing. You can call it a wizard, but the wizard has no Brain.

GUI resources like menus and forms belong in files that are easily translated not embedded in procedural code instruction.

It's not hard to write a mini-XUL that supports only the widgets you need. XUL - or something like it - is just the ticket to GUI greatness!

posted by Gerald Bauer on November 06, 2002 | Add Your Comments (3)
SourceForge Logo Please send comments on our web pages to our public xul-talk mailinglist or to a member of our web team. Copyright © 2003, 2004, 2005 Open XUL Alliance