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

 

4 Responses to “what web apps are made of”

  1. Dan
    September 26th, 2005 | 9:12 am

    What about sugar and spice?

  2. October 11th, 2005 | 10:30 pm

    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.

  3. October 22nd, 2005 | 7:24 am

    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 …

  4. January 9th, 2007 | 6:17 am

    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 …