When I announced Sueetie User Avatars yesterday I said there were several interesting aspects of laying the groundwork for avatars that I wanted to blog about. I was referring to the Sueetie.Core Framework taking shape with the goodies developers would groove on to customize and extend Sueetie: Site Configuration, Context, Provider model, a Caching Utility class, Event Capturing, Logging, Exception handling, Background Task Support, rich Base Classes, Custom Controls, and other building blocks of cool.
User Avatars gave birth to some of those: Configuration, Context, Data Provider, Caching and the start of a Base Class inheritance model. But before cranking out blog posts I decided that blog posts about Sueetie.Core source code were first cousin to writing API Documentation. Wanting to kill multiple birds with a single digital stone, I decided I’d start with API Documentation and work my way back to blog posts.
Sueetie documentation is found on the Sueetie Wiki at http://sueetie.org/wiki. It’s powered by ScrewTurn Wiki, (which I am liking more and more. Version 3.0 is going to be killer!) Below is the introduction to Sueetie Patterns and Origins. Why not simply call it “Sueetie API Documentation” you ask? You know that’s not me, and besides, the term “Patterns and Origins” is essential for our purposes.
I’m a big believer in Patterns. I believe that most code we create should be auto-generated by tools like CodeSmith. Patterns rule. They reflect methodologies and code process logic that has either been with us a long time or is easy to replicate. Crossword puzzles with different startup properties. That’s what we as developers do if we’re designing our applications correctly. Everything you find in Sueetie.Core will be duplicable in a Drive for Sueetie CodeSmith Library which is taking shape and subject of a future post.
Now onto Origins where things get a little sticky. Sueetie may be “a candy store for .NET Open Source Online Community Development,” but the candy store is located in a rough part of town. We have to maintain our virtue with every lollipop that hits the street. Well-financed ruffians hang out by the storefront to pounce on us if our lollipops are not pure Open Source code. To establish pure Lollipop Street Cred we have to trace every line of code in Sueetie back to an Open Source progenitor, or otherwise describe the creation process when there’s no attributable origin.
If you haven’t gotten totally lost in my sugar coated analogy, Patterns and Origins is the API Documentation area on the Sueetie Wiki that describes Sueetie Framework Source Code. For each API area I’ll be providing a description of the code in “Patterns” and information about where those patterns originated in “Origins.”
Below is the Sueetie Wiki Patterns and Origins introductory page. It elaborates on the concept of “Patterns and Origins” and lists the members of Sueetie.Core that will be documented. I’ll be posting the Patterns and Origins API Documentation on Sueetie and reposting in blog format here.
And now, tonight’s episode, “Sueetie Patterns and Origins: Introduction.”
___________________
The Patterns and Origins area is our own yummy flavor of API Documentation for the Sueetie Framework source code. "Patterns" covers the patterns of code found in Sueetie framework classes. "Origins" highlights the Open Source references of those patterns for code.
Okay, I get "Patterns," but why "Origins?"
- The real stars of Sueetie are the Open Source applications that comprise it: ScrewTurn Wiki, YetAnotherForum.NET, BlogEngine.NET and Gallery Server Pro. Each of those applications rock and serve as a rich target environment for original source code to fuel rapid development of the Sueetie Framework. The more closely we can base Sueetie coding patterns on the member application source code the more competent we become not only in Sueetie development, but in the member application development and customization. Double Bonus!
- The 5th item of the Sueetie Manifesto states, "Sueetie developers write original code or leverage code from Open Source resources. Sueetie developers never use code from source-available commercial .NET products in Sueetie communities." Commercial .NET products have every right to protect their intellectual property, and Sueetie developers fully honor that principle. Yet in honoring that principle with every line of Sueetie code written, there are basic coding patterns and methodologies common to all applications, Open Source or Proprietary. By documenting the Open Source origination of the source code found in the Sueetie Framework, no commercial entity could question the integrity of Sueetie or conclude that their End User License Agreement has been violated simply because Sueetie shares well-established and universal coding patterns and methodologies.
Sueetie.Core Patterns and Origins
Below are the classes located in the Sueetie.Core Class Library with links to their documentation. (In progress.)
- Sueetie.Core class diagram with class functions and origin
- SueetieConfiguration - Shared site configuration across all Sueetie applications using a root Sueetie.config file
- SueetieContext - Enhancements to the HttpContext.Current object
- SueetieCache - Utility class to facilitate managing server caching of Sueetie objects
- Data Provider Model - Sueetie's approach to the well-established Provider Model to manage the flow of data between the website and the SQL Database