Last Summer, around August 2008, I started work on my latest book and spent the next 5 months working on updates to the Beer House application. WROX asked me to write the book and only had 2 requirements: 1) Use Entity Framework 2) Add more AJAX to the application, focusing on ASP.NET AJAX. You can see a working version at http://beerhouse.extremewebworks.com/. A disclaimer on the C# version, I would call this release a Beta version. There are still a few kinks I am working out right now. I will be posting updates over the next few weeks to improve it. Also in IE 8 there is an issue with the login dialog that appeared over the summer. I have not been able to solve this yet and I have contacted some folks in MSFT for help.
Besides an entirely new data access methodology and more AJAX I added a few more modules and improved a few of the existing modules and added. One thing I tried to do was not stray too far from some things in the Beer House I felt would cause confusion or major changes for existing Beer House enthusiasts to absorb.
One of the primary reasons for producing this new version was to use the new Entity Framework to manage access to the database. My approach to integrating EF was to build repositories and use Linq to Entities to compose queries. The book walks you through creating data models, extending entities and creating corresponding repositories to manage the queries.
Some of the new features to the Beer House include a Photo Gallery and Calendar of Events module. The Photo Gallery allows authenticated users to create new and manage existing photo albums. They can upload full-sized photos that will have display and thumbnail versions created at upload time. I also features a pretty neat lightbox based on the Prototype AJAX framework.
Calendar of Events
The Calendar of Events allows administrators to create new events, such as karaoke, game watching, live music, etc in the case of the Beer House. Events are displayed on an interactive calendar and visitors can open up a vCal to add the event to their personal calendar, such as Outlook.
Login – Now With OpenId!
As far as AJAX features, I added a Login Dialog feature to the application so a user can authenticate anywhere in the site without loosing their place. The Dialog is based on some simple AJAX and CSS manipulations. I also added a simple way to authenticate via OpenId to the Beer House.
Two new features were added to the Articles module to make it more social and secure. When articles are published they can now be automatically announced on Twitter. This will help the Beer House to be visible to its customers. I also update the article rating mechanism, as well as polling, to utilize the ASP.NET AJAX Rating Control, with Beer mugs no less!
Another new feature is filter comments through Akismet. If you are not familiar with Akismet it is a comment filtering service managed by WordPress. Utilizing this service should help eliminate potential Comment Spam that is littering the Internet these days. I know I delete several hundred each week on this Blog.
Another new feature for article comments is integration of Gravatar support. A Gravater is simply a service that manages your personal avatar that is displayed in places like comments or user forums over the Internet. I like Gravatars because it helps me personalize (think branding) my comments across the Internet without having to manually add my pretty smile each and every time!
Finally a major new feature I included in the new version of the Beer House is better Search Engine Optimization (SEO) support. The new Beer House features a sound URL rewriting engine, as well as some onpage SEO features.