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 _______________________________________________ commit-gnue mailing list [email protected] http://lists.gnu.org/mailman/listinfo/commit-gnue
