While web frameworks are a dime a dozen in every language, from Rails to Sinatra to Django to ASP.NET/MVC, there are relatively few that inherently combine the features, flexibility, and scalability that enable successful development of enterprise applications. There is a fine line between ease of development and the capability to easily customize the software to fit an existing infrastructure or development environment, and a business-grade framework must tread that line masterfully.
Below is a list of the top features that come to mind that are challenging or complex to engineer in many frameworks:
- Built to work with an existing database schema
- Dynamic Drop-down list-of-values from the database
- N-depth Parent-child relationships
- Lazy-loaded data grid
- Highly flexible user authentication
- Role-based menu and privileges
- Seamless transition between development environments
- Robust and scalable database backend
- Foreign keys & unique keys
- Friendly error messages & error logging
- Full form input validation (Both client and server-side)
Although many web frameworks tackle one or more of these items, few offer a comprehensive solution. Most framework demos are built around a simple example that reduces lines of code in a closed-loop form. At that point, the developers are let loose with a maze of documentation, help forums, and Q & A sites to try and cobble together the rest. As it turns out, despite the framework used, most applications take a relatively equivalent amount of time to program the full suite of capabilities required by enterprise software. In fact, the more “friendly” and self-generating the framework, the more difficult it often is to build a complete application utilizing that framework.
As such, application development is often a game of the tortoise and the hare. While highly auto-generating frameworks will quickly build up to 50% of system capability, the remaining half will be an increasingly tough slog to fathom, with developer fighting against the restrictions of the framework. Decompilation or source analysis is almost a given to incorporate the more complex user requirements. A minimally-scaffolded framework, on the other hand, will take a while to develop the initial capabilities. Once those are ready, however, the rest of the system and future changes are relatively easy to incorporate.
In subsequent articles of this series, we will delve into the details of enterprise web frameworks and the elements that lead to successful project execution. While it often takes quite a bit of work to get the initial prototype up and running, future systems can then take advantage of that custom scaffolding to build extensive capabilities relatively quickly.
Written by Andrew Palczewski
About the Author
Andrew Palczewski is CEO of apHarmony, a Chicago software development company. He holds a Master's degree in Computer Engineering from the University of Illinois at Urbana-Champaign and has over ten years' experience in managing development of software projects.
One thought on “Elements of an Enterprise-Grade Web Framework – Part 1”
Do bots spam your website? What plugin orr plugins do you use to stop them?
As somebody who is truly knowledgeable in spam, it could be very helpful if you can provide
me with sevral suggestions on hhow to resolve some issues I experience sometimes.