We are now through with the banking application. You built this fully fledged program starting in Bonus Project 1, piece-by- piece, adding as you learned. The application implements quite a few of the technologies covered in this book, such as security, business objects, and Web Services, Web forms, user controls, and databases. Quite a menagerie of concepts!
Let's take a brief overview of the process thus far. At the end of Week 1, you built the foundation for the application the basic user interface with ASP.NET server controls. At the end of Week 2, you turned the application into a data-driven one by creating a database and interacting with it to store user and account information. Users could view transactions stored in the database, and add new ones through the bill payment page. Finally, in this lesson, you completed the application by adding business objects and providing security for your pages through web.config. You also added a Web service for payees to post debit information.
There is, of course, more you can do with this application. For example, currently, the Web Service allows anyone to post transactions to the database. This could result in some unscrupulous individuals artificially lowering the balance of a user's account. One suggestion is to secure this service, using the techniques from Day 17, "Consuming and Securing XML Web Services."
Additionally, many improvements can be made in performance. Caching the transactions from a user's account might greatly increase performance, but don't overdo it! You don't want one user seeing the cached transactions of another user; make sure to empty the cache if necessary, such as when a user logs off the system. Also, validation controls could be added to validate user input on the client-side, resulting in less time-consuming traffic traveling across the Internet. Finally, you can disable state management for the controls that don't require it using EnableViewState="false". Depending on the size of the controls, this can also increase performance.
Don't be hesitant to modify the code as you see fit. The more modifications you make, the better a programmer you will become. Try adding new features, and enhancing older ones. This application is typical of something you may be asked to develop one day in the real world. The more familiar you are with it and its technologies and paradigms, the better suited you'll be in the future. Happy programming!