September 8, 2005
what web apps are made of
Having revisited the web application problem many times, it seems like I keep having to reinvent the wheel of web app development, and I tend to forget some pieces of the process that come back to bite me later. So I decided just now to enumerate a set of general web app components, to kind of organize my thoughts a bit. This may make no sense to you - it’s more for my own sanity.
1. Sessions
- live/in-process data that needs to be stored between accesses
- token stored in cookie or URI
- should allow storage of complex data structures
2. Logging
- tracking application internals, debugging problems
- multiple levels
- meaningful data
3. Authentication
- who are you?
- authentication can can just be a password match, or can be delegated to another entity
4. Authorization
- are you allowed to perform this action?
- user / group privileges
5. Error handling
- different levels / classes
- should this error be shown to the user?
6. Templating
- separates presentation from control code
- a good templating system can perform complex data presentation / transformation functions
7. Data storage
- use CRUD, or object-relational mapping
- if you’re writing a lot of SQL, you’re probably working too hard
8. Request dispatch
- URI to code mapping
- what code should service this HTTP request?
9. Configuration settings
- config file
- store constants
10. Data validation
- did the user give valid data
- ability to re-use data validation schemes
- form fill / highlighting if there is an error
12. Plugin framework
- ability to extend the capabilities of the web app, without changing the core
13. Webservices API
- programatic access to data structures
14. Workflow
- business rules that describe a work procedure
- concept of “desks”, or distinct steps of a flow.
posted: 2:27 pm
What about sugar and spice?
Nicely enumerated. When put this way, it really helps one remember just how much there is to do to make a decent web app. And it also makes one wish that most of this crap could be done *for* you… you know, like standing on the shoulders of giants instead of on each others’ toes.
Sat Oct 22, 2005 at 7:24 AM with Identity 2.0, but it does get you to thinking about what Identity actually means and that with web apps there needs to be a method for presenting your identity to the Internet in a trusted …
Tue Jan 9, 2007 at 5:17 AM with Identity 2.0, but it does get you to thinking about what Identity actually means and that with web apps there needs to be a method for presenting your identity to the Internet in a trusted …