New Thinking



A commerical listing site needed to slice and dice data from 140,000 listings in record time. The site went online from conception to deployment in 60 days! The timeline called for most of the code to be generated as there was no time for hand coding.

Code generation is not a new concept, but it is new to many people. For many people from the "old school" type of programming, scaling generation to an entire application will be quite a change. Microsoft has included certain aspects of generation in its development projects for year. The most notable example is datasets. You can create strongly typed datasets and a large portion of the code is generated. Another example is the form's designer. You draw controls to a form and position them as you wish. The code behind is generated for you. These are really simple generations however they do save the developer time.

The Widgetsphere fashion of development has taken generation to the next level, by pairing it with a model. Now you can model your application and then generate huge chunks of it. This method of application development also has the added benefit of creating a framework on which to work. This is no trivial side note. Frameworks can make the difference between a project success and failure.

Many people do not use frameworks. When confront with the possibility of using one, they might respond, "I have been doing this for 10 years, so why should I change?" There is a very good retort. Applications are being larger and more complex due to advances in hardware and development techniques. There is only so much one person can hold in his brain. As a consequence, projects are parsed amongst many developers. If each creates code in his own evolved fashion there will be issues when integrating. Companies need frameworks not to constrain developers but to allow them to work without all the worry of integrating the pieces.

A framework is not a nicety. It is a necessity. There is no ambiguity about this point. Developers not adopting to a more rapid development cycle will find little demand for their services. The grunt work of programming can be done by anyone. A teenager can perform the basics of development. Simple and repetitive tasks can be off shored easily. To stay in the game, you need an advantage. There is no better advantage than being able to model and build an innovative application that normally would take many other people. That gives you marketability.

Many development tasks are repetitive. You build the same connection code to access your database. You hook your UI control to data over and over. The Widgetsphere component and methodology allows you to codify these patterns and create massive and complex applications with fewer people in less time. An added benefit is improved quality. If a problem is found in the defined pattern, then correct it and regenerate. There is only one place to correct or augment the coding patterns: the templates.