Friday, February 6, 2009

Week 28 - The Framework

Two Things -

  1. The Framework Justification

  2. My History with the Framework


The Framework under primary consideration is Struts2 using an integration framework called Appfuse . Struts2 falls under the J2EE environment (that's Java) and is a framework for web centric development. Its is very important to note the purpose of Appfuse. It fuses Struts with a set of other (popular) frameworks to provide a nice MVC platform for software development. It can use a combination of Spring, Hibernate, IBATIS, JPA, Tapestry (and some others) and it builds with Ant or Maven.

All this means is that, Appfuse puts frameworks gered to different implementation solutions (front end, back end, persistence, security ect.) into a bundle and helps with the configurations that were previously very cumbersome. (It is so helpful - that if i were asked to develop using the frameworks without appfuse as an amateur programmer I would never attempt to configure all these on my own - it would certainly be a formidable task).



Part 2 -

This project is composed of 3 parts and their inter-workings; together they are a challenge for a single designer. The coagulation of frameworks serves as a great foundation for a project of this scope. It comes with some built in functionality that will greatly ease the programming burden from tasks that are required for the system to run but are not necessary to demonstrate the core functionality of the middleware. Learning the functionalities of the facilitating technologies and how to use their APIs is a project in itself.


I started learning the framework in late July 2008. It took me a month just to get the framework to Build Successfully. At the time when the framework was up and running, I was proud and happy. Now it seems sometimes like a false celebration. Every day this code throws something new at me. The next series of entries I hope to out line some of the difficulties I encounter.

I am thankful though. The little knowledge I have of computers has served me well. One of the first issues when trying to build my first project was actually exposed later on on the official website as a common occurrence. At the time of course I found little or no support online for the tomcat server that would download nicely but not execute. That was so frustrating. I followed the exception (stated the distribution was corrupted ) to the Locals \ Temp folder where Tomcat was being downloaded to and examined the .zip package. The file did not seem corrupted and the exe ran fine. However in the folder was also the unzipped package which the framework was using to execute. I looked at the innards but most ignored it b/c, it was the same as the zip file just unzipped.
Now after trying for a few nights to pull the tomcat from alternate sources by editing the xml configurations in appfuse and redirecting where it downlowaded that dependancy and had the same probelm over and over, I went back to the tem folder. When I looked at the folder structure of the Unzipped files i noticed something; the Root folder was Tomcat X (the version) and in it contained another folder Tomcat X (version). I thought what if the program was looking in the root for the the exe and the dependant files. It would obviously fail b/c they were not there, they were in a sub folder. Look at that - The stupid local zip program was confusing the poor framwork, not to mention driving me insane for a few nights with little sleep. (And shcool was out - what would happen to me when i had classes and a job and had to do this at night - would I survive - that is still left to be seen...). I restructured the folders to what i thought the framework was expecting and I ran the installation offline. Appfuse allows you to download everything into a repository so your system can build and run offline. Now the idea worked, just not the first time. It took some working into but eventually it ran and I was happy I could finally start learning to use the thing.

The online tutorials are sufficient. After starting to follow them school, course work for another course (DIS) and all the research for this project and deliverables and the deadlines that came along with all these things took precidence and when I finally got back to the framework tutorials in late October (yes months passed) I felt a little lost and resorted to starting over.

Over the Christmas holidays I got throught the most of it, however another deliverable in January did not help my timeline where I planned to have started the actual project application or at least a mock of it.

So here's to the following weeks and the hope that I can apply all that I have learned to the app I have envisioned for the Final Project (and somewhere in between execute and document my analysis and the rest of the writeup).




http://appfuse.org/
http://struts.apache.org/2.x/

No comments: