Framework Philosophy

Active Record is mapping a database row to an object whose properties match the columns of the table which contains the record. Changes in schema, joins, and table alterations can break it.

A framework should be able to connect to multiple datasources in order to distribute the load between schemas.

Model should include queries, documents, flat files, session variables, serialized data, and cookies

View should include Javascript, CSS, HTML, SVG, Flash, and templating functions

Controller should include
inserts, updates, stored procedures,
page variables, url variables, form variables,
include files,
object composition,
callbacks, continuations,
mixins,
pipes and filters,
map/reduce/fold functions,
sorting functions,
randomization functions,
authentication functions,
logging functions,
redirection functions,
XML/JSON parsing,
error handling,
input validation,
caching/memoization functions,
email/texting functions,
upload/download functions,
RSS functions,
XSLT/XPath styling
Localization
Zip Encoding
Data Encryption
Benchmarking/Profiling
Unit Testing

Platform-specific JavaScript should be separated by variables instead of conditional statements, so each browser should only run the code it needs, nothing more, nothing less

References

Principles of Web Application Design for the Command Line
Bundle Programming Guide
Key-Value Coding Programming Guide
Framework Programming Guide
Framework Benchmarks
CakePHP vs Zend
How to Design your Rails App
Rails for Struts Developers
Rails for Struts Developers, Part 2
Rails for Struts Developers, Part 3
Struts FAQ
MVC is not Object Oriented
Infrastructure FAQ
Object Relational Mappers are Evil
Struts Intro
Struts Overview
Struts User Guide
Struts Framework and MVC Design
<a href="http://blog.ianbicking.org/HTTPish all the way down
Examining the Struts Framework’s Usefulness
Radicore FAQ
Sinatra
CGI-App
http://blog.orenblog.org/2009/01/26/content-management-systems-use-at-the-uw/
http://www.ibm.com/developerworks/web/library/os-django/index.html
http://www.ibm.com/developerworks/web/library/wa-codeigniter/index.html
http://www.ibm.com/developerworks/web/library/wa-uihealth/index.html
http://www.ibm.com/developerworks/web/library/l-hadoop/index.html
http://www.ibm.com/developerworks/web/library/wa-aj-end2end1/index.html
http://www.ibm.com/developerworks/web/library/wa-aj-end2end2/index.html
http://www.ibm.com/developerworks/web/library/wa-aj-end2end3/index.html
http://www.ibm.com/developerworks/web/library/w-friend.html
http://www.ibm.com/developerworks/web/library/l-linux-ha/index.html
http://www.ibm.com/developerworks/web/library/os-php-zend9/index.html
http://www.ibm.com/developerworks/web/library/l-django/index.html
http://www.ibm.com/developerworks/web/library/l-turbogears/index.html
http://weblogs.macromedia.com/swebster/archives/cairngorm/index.html
http://jessewarden.com/2007/08/10-tips-for-working-with-cairngorm.html
The End or a DBMS Era Might be Upon Us
App Engine Shell Template
Web Architecture
Server-Side Java with the Struts Framework on Mac OS X
Please Teach me Web Frameworks for Python

TrackBack URI

Blog at WordPress.com. | Theme: Pool by Borja Fernandez.
Entries and comments feeds.