[Top][All Lists]
[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
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [gnue] r8277 - trunk/gnue-navigator/doc/technotes,
jamest <=