Aaron B. wrote:
Or what is it that makes you put it into the framework category?
Sorry for the length of this post.  I've included an RPG sample to illustrate 
the Renaissance framework, and added my comments at the end. Note that the 
following RPG procedures are generating HTML and JavaScript on a page:
****** Renaissance example *********
 // Put a button to allow the user to cancel                                    
                    
 WRP_AddButton('cancel':'DataForm':'':'*CANCEL');                               
                    
 // Determine the active pane from the session                                  
                    
 ActTab =PR_GetActTab(me:gTabContainer);                                        
                   
 // Fixed width labels                                                          
                    
 PR_FixedWidthLabels(150);                                                      
                    
 // Start an input form                                                         
                    
 PR_StartDataForm();                                                            
                    
 // Output in a simple tab dialog widget                                        
                    
 PR_StartTabDialog(gTabContainer:lActTab:                                       
                    
                  'TAB1':                                                       
                    
                  '':                                                           
                    
                  'HELLOWORLD':                                                 
                    
                  '09':                                                         
                    
                  'TAB2':                                                       
                    
                  '':                                                           
                    
                  'RPGCODE':                                                    
                    
                  '10':                                                         
                    
                  'TAB3':                                                       
                    
                  '':                                                           
                    
                  'NOTES':                                                      
                    
                  '11'                                                          
                    
                  );                                                            
                    
  PR_StartTabPane('TAB1');                                                      
                    
    // Start an input section that will contain one column (1 column = label 
and an input field)    
    PR_StartInputSection(1);                                                    
                    
     // Start input line for XUSNAME                                            
                    
     PR_StartInputLine();                                                       
                    
       // Output user name                                                      
                    
       PR_PromptField('XUSER':'XUSNAME');                                       
                    
     PR_EndInputLine();                                                         
                    
     // Start input line for XUSTYPE                                            
                    
     PR_StartInputLine();                                                       
                    
       // Output user type                                                      
                    
       PR_PromptField('XUSER':'XUSTYPE');                                       
                    
     PR_EndInputLine();                                                         
                    
   PR_EndInputSection();                                                        
                    
  PR_EndTabPane();                                                              
                    
  PR_StartTabPane('TAB2');                                                      
                    
    .....                                                                       
                    
  PR_EndTabPane();                                                              
                    
  PR_StartTabPane('TAB3');                                                      
                    
    .....                                                                       
                    
  PR_EndTabPane();                                                              
                    
 PR_EndTabDialog();                                                             
                    
 PR_EndDataForm();                                                              
                    
 //  Now shove out the hidden forms and the associated functions                
                    
 CGI_AddScript('DataForm':'fAction');                                           
                    
********* my comments ***********
Microsoft's UI components render as HTML and JavaScript too, but Microsoft's 
approach begins with a design surface and a palette of widgets that you drag 
and drop onto a form. When shown in the code view, Microsoft's UI widgets look 
like a mixture of HTML and XML.
Later when the code is compiled, Microsoft generates a lot of object and method 
code, perhaps similar to the Renaissance code, but developers don't see it or 
need to work with it.  Microsoft's approach is more intuitive and productive.
The server-side code that gets generated by Microsoft is enormous.  And other 
plumbing on the server required to support .Net applications is even bigger.  
It was so resource intensive in the beginning that Microsoft had to come up 
with a means of preserving view state so that incremental updates after the 
initial page could be served.  That opened up another can of worms, but that's 
another subject...
Why am I rambling about this?  I don't like either Microsoft's approach, or 
Renaissance's.  But we were talking about UI component frameworks.
Nathan.
       
 
As an Amazon Associate we earn from qualifying purchases.