My favorites | Sign in
Project Logo
                
Search
for
Updated Nov 26, 2007 by talktopete
PageName  

#Introduction to the project

Introduction

The application models the most basic functionality of an online book-exchange, where students commonly collaborate online to sell their used textbooks and other course-related materials.

At the core of the application is the EntityLayer, which contains the business object definitions, such as users, courses, and salesitems. SalesItems are abstract, and have conrete Book and Media implementations.

The controlLayer serves as a bridge between the entities and various views. The views send gestures to the controls, and the controls execute database-specific tasks. It doesnt matter whether you are using windows forms, wpf, web service, asp.net, or monorail, if you implement the view, you can plug in to the application core.

The view I chose to implement was ASP.net as a starter, because I am lazy. Using the notion of a basepage, I implemented security, and abstracted some of the common page-by-page concerns to a higher level (see the BasePage class). The ProfilePage implements the user-specific view, and the SalesItems page implements the course and salesitem-specific views. The GlobalApplication.cs assures ActiveRecord is used in a lightweight and efficient manner from page request to page request.

The Unit Tests are very shallow at the moment. They display the advantages of a model-view-controller pattern in a testing environment. I make small MockView classes that simulate a UI without requiring one, so I can effectively test and isolate a controller. I utilize the SchemaExport tool to build and destroy a database between tests, to ensure an independent testing environment.

The Utils class contains the logging functionality and any other extra peripheral functionality to make everything else work.

Details

I challenge anyone to add a new project to this solution as a new UI. Simple add a new project of any type, reference the controllers and entities, and implement the views and you are done.


Comment by talktopete, Nov 28, 2007

How in the heck do I change the name of this page?


Sign in to add a comment
Hosted by Google Code