Robert, I'm currently trying to build a shell (mostly complete) and so I thought I would share some of my thoughts. I have looked at several shells like many other have and bought a couple. The first I used if I recall correctly was called Skeleton (I've probably just dated myself).
I've not really been able to take much advantage for a couple reasons. Many of the shells I've tried really try to automate everything to the point that you just build your tables and check some options in a form and you have a usable database. They, however, are often difficult for me to modify to my needs. I'm more of a 4D hobbyist than a developer and much of the code is over my head. Another issue is that these shells can break with major changes to 4D or they are slow to implement newer 4D features. I mostly build 4D databases for my own use and have used pretty piss poor coding techniques . I've had a desire to cleanup the main app that I use and I've recently tried to help others in my office with some of their database needs so I came to the conclusion that I needed to put together a cleanly designed shell and move my main app and build other databases using the shell. Rather than copy portions of code I've tried to build the all the basic functionality for use with example input and output forms for the main tables in a database template. The input and output forms will need to be manually created and customized for each table rather than be built automatically but it provides me with the easier modification I need. I have also been trying to make the code as simple as I can with only limited success. Coding it myself also makes it much easier for me to make changes (although not always, I can generally understand my own code). There is a recent topic discussion (Shell and utility methods [WAS: Show form on startup]) regarding an open source shell (data browser) written by Flurry Oliver. He built a component that is intended to provide a lot of the old user environment features. It seems to me that components encroach into some of the functionality that shells have historically provided. The databrowser is somewhat like other shells that let you create a group of tables and check off options in a list and your in business. He provides a short discussion about how he is able to use his component with legacy databases written by other developers. I hadn't thought of this use until he mentioned it but it seems like an excellent use for a component/shell. He provides an example database with the two components that make up the databrowser component. One of the components handles the interface for the user environment. The other component is a package of utility methods. I'm attempting to building a similar package of utility methods and it's hard for me to see how anyone serious about building 4D databases wouldn't benefit from having a similar set of utility routines. In my opinion the databrowser component provides a couple of examples of how components/shells remain beneficial. -- View this message in context: http://4d.1045681.n5.nabble.com/4D-Shell-or-not-so-much-tp5747143p5747175.html Sent from the 4D Tech mailing list archive at Nabble.com. ********************************************************************** 4D Internet Users Group (4D iNUG) FAQ: http://lists.4d.com/faqnug.html Archive: http://lists.4d.com/archives.html Options: http://lists.4d.com/mailman/options/4d_tech Unsub: mailto:[email protected] **********************************************************************

