commit-gnue
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gnue] r8277 - trunk/gnue-navigator/doc/technotes


From: jamest
Subject: [gnue] r8277 - trunk/gnue-navigator/doc/technotes
Date: Mon, 3 Apr 2006 18:21:43 -0500 (CDT)

Author: jamest
Date: 2006-03-27 20:43:38 -0600 (Mon, 27 Mar 2006)
New Revision: 8277

Added:
   trunk/gnue-navigator/doc/technotes/00001.txt
   trunk/gnue-navigator/doc/technotes/00002.txt
Log:
started some technotes describing the proof of concept work to be done in 
navigator 


Added: trunk/gnue-navigator/doc/technotes/00001.txt
===================================================================
--- trunk/gnue-navigator/doc/technotes/00001.txt        2006-03-27 15:44:24 UTC 
(rev 8276)
+++ trunk/gnue-navigator/doc/technotes/00001.txt        2006-03-28 02:43:38 UTC 
(rev 8277)
@@ -0,0 +1,75 @@
+Title:   The GNUe Application Platform (GAP) Overview
+Status:  Current
+Created: 2006-03-27
+
+There would be a great deal of benefit to having a single component
+based framework that could be used to build GNUe applications.  Some 
+of these benefits include
+
+  * Reduction in application startup times.  As only the pieces needed
+    for the specific application would be configured to load.
+    
+  * Smaller component APIs would reduce the overhead in learning the
+    various systems in GNUe.
+    
+  * Better decoupling between components would result is cleaner code 
+    base.
+    
+  * End site customizations would not require in depth knowledge of 
+    GNUe internals.  Developers would only need to learn how to 
+    register their components and the few APIs they'd need to code 
+    against.
+
+Goals:
+======
+  * produce a component based framework in which navigator is simply
+    another component
+  
+  * properly document all aspects of this frameworks usage *and design*
+  
+  * integrate unit testing using both pyunit and doctest tests
+  
+  * use zope interfaces extensively and practice the design goal of
+    "program to interface, not an implementation"
+    
+  * Produce framework that supports both non-UI and UI based applications
+  
+  * Provide a very generic UI framework that provides basic UI services.  
+    Along with adaptors for WX2.6, QT4, and posibly curses
+
+Implementation:
+===============
+Our test target application will be gnue-navigator as it is currently 
+the smallest GNUe application and the least maintained.
+
+We would start our efforts using zope3's Interface and Component
+Architecture(1)  Specifically the zope.interface and zope.configuration 
+modules(2).  These modules would be made available as part of navigator
+for the time being to eliminate the external dependencies.  
+
+Using these modules we'd complete the base services to get the 
+component based app running and loading test components.  Once that is 
+complete we'd begin wrappering and/or porting GNUe common systems 
+into GAP components.  These wrappers would also remain in navigator 
+at this stage.
+
+Next navigator would be made functional again based upon GAP.  The 
+basic GAP UI components would be created, based upon designer code 
+where possible.
+
+If GAP is accepted as more than just a proof of concept then it could 
+be integrated into gnue-common or provided as a stand alone project. 
+Other GNUe applications could then be componentized and integrated 
+with GAP.
+
+Additional Sources for Information or Concepts
+==============================================
+Twisted's description of interfaces and adapters which is based on Zope3
+  - http://twistedmatrix.com/projects/core/documentation/howto/components.html
+
+Netbeans: A component based rich client platform (RCP)
+  - http://platform.netbeans.org/index.html
+
+
+(1) http://www.zope.org/Wikis/DevSite/Projects/ComponentArchitecture/Zope3Book
+(2) http://svn.zope.org/Zope3/trunk/src/zope/
\ No newline at end of file

Added: trunk/gnue-navigator/doc/technotes/00002.txt
===================================================================
--- trunk/gnue-navigator/doc/technotes/00002.txt        2006-03-27 15:44:24 UTC 
(rev 8276)
+++ trunk/gnue-navigator/doc/technotes/00002.txt        2006-03-28 02:43:38 UTC 
(rev 8277)
@@ -0,0 +1,87 @@
+Title:   Services and Utilities in GAP
+Status:  Current
+Created: 2006-03-27
+
+All applications require a mixture of a base set of features.  In GAP
+applications are considered as either GUI or Non-GUI.  An example of a
+GUI application would be GNUE-Forms.  Examples of non-GUI applications
+would include a report ran from the command line, or something as complex 
+gnue-appserver.
+
+*WIP*
+
+Features apps need:
+  Non-GUI
+    configuration
+    debugging 
+    profiling
+    file storage
+    authentication
+    communications
+
+  GUI
+    menus
+    toolbars
+    status bars
+    windows
+
+
+
+App 
+  * Should require no arguments to it's constructor
+  * No functionality beyond the registry
+  * Configuration via code for simple apps
+  * Configutation via an xml stream 
+      - so we can create a base GUI app and developers can remove things
+        from it and add things to it.  Like netbeans
+        
+  Registry
+    * Manages the loading of components
+    * Should also provide a service to reload components upon demand
+      (optional auto look for updates?)
+      
+  Components
+    * Components provide services to the application
+    * They should not require args to their constructors, instead an
+      api should exist to let them register services.
+    * Constructors should be able to list dependencies of constructor types
+    * Every component should have a primary interface defined via 
+      zope.interface 
+
+The gap registry would consist of GObj based tree of components and the like
+
+
+# GAP =========================================================================
+Most gap functionality will be based upon libraries found in GNUe Common.  Some
+items will be removed from common as they are a better fit in GAP.
+
+gap.foundation             # The primary application
+gap.service.registry       # Manages components (always loaded)
+
+gap.utility.security       # Deals with user authentication
+gap.utility.logging        # Loging support
+gap.utility.config         # Configuration processing
+gap.utility.debug          # Debug support
+gap.utility.profile        # Profiler 
+gap.utility.clp            # Command line processor
+gap.utility.datasources    # Datasources
+gap.utility.events         # Event handling
+gap.utility.storage        # Persistant storage
+gap.utility.rpc            # Remote procedure calls
+gap.utility.settings       # Supports user settings
+gap.utility.pdftable       # A PDF Table generator
+gap.utility.barcode        # Barcode utility
+gap.utility.ui             # User interface
+gap.utility.ui.menu        # menuing
+
+# Common wrappers =============================================================
+
+common.ui.cursing
+common.datatypes
+common.xml
+common.setup              # Setup.py support
+common.utils.string       # String processing functions
+common.external           # External libs we've added
+common.drivers.ui.cursing # Curses interface
+common.drivers.data.dbf   # DBF Driver
+common.
\ No newline at end of file





reply via email to

[Prev in Thread] Current Thread [Next in Thread]