| #summary Overview of SoC |
| #labels Phase-Requirements,Contents-Draft,Importance-Overview |
| |
| == SoC, the Spice of Creation framework == |
| |
| SoC is the software framework, implemented in [http://www.python.org Python], |
| that underpins the [MelangeIntro Melange] project. This framework is |
| designed to make it possible to host Melange applications, such as the |
| [GSoC Google Summer of Code] ^TM^ and the |
| [GHOP Google Highly Open Participation] ^TM^ Contest on the |
| [http://code.google.com/appengine/ Google App Engine]. |
| |
| The framework follows a ModelViewController pattern. Entities of each |
| [ModelsOverview Model] are stored in the |
| [http://code.google.com/appengine/docs/datastore/ Google App Engine Datastore]. |
| Sharing the Models between different [MelangeIntro Melange] web |
| applications not only promotes code reuse, it also permits similar |
| real-world programs to import and export entites and share them. |
| |
| A variety of [ViewsOverview Views] are implemented using Django templates |
| and forms. Other possible Views are implemented as |
| [GDataOverview GData APIs] and [FeedsOverview Atom feeds]. Since the |
| Views are accessing entities of common Models shared amongst Melange |
| web applications, much of the code is reused. In most cases, only |
| Django templates need to be modified to customize these existng Views |
| for a specific real-world program. |
| |
| The different [ControllersOverview Controllers] in the SoC framework |
| implement the "business logic" that actually forms the core of each separate |
| [MelangeIntro Melange] web application. For each real-world program |
| (e.g. [GSoC GSoC] or [GHOP GHOP]), a web application is created, built on |
| top of a new Controller that is derived from one of the similar existing |
| Controllers in the framework. This pattern encourages code sharing between |
| the different Melange web applications used to run these different |
| real-world programs. Reuse of Controller code is further enhanced by the |
| Models and Views that are shared between Melange web applications. |
| |
| === Contributing === |
| |
| Please see the [ContributionTerms guidelines for contributors] if you are |
| interested in contributing to the design and development of the SoC |
| framework. |
| |
| ---- |
| _Copyright 2008 Google Inc._ |
| _This work is licensed under a_ |
| [http://soc.googlecode.com/svn/wiki/html/licenses/cc-by-attribution-2_5.html Creative Commons Attribution 2.5 License]. |
| [http://creativecommons.org/licenses/by/2.5/ http://soc.googlecode.com/svn/wiki/html/licenses/cc-by-2_5-88x31.png] |