U.S. Trade and Development Agency
About USTDA
USTDA is an independent U.S. Government foreign assistance agency that is funded by the U.S. Congress.
The mission of USTDA is to help companies create U.S. jobs through the export of U.S. goods and services for priority development projects in emerging economies. USTDA links U.S. businesses to export opportunities by funding project planning activities, pilot projects, and reverse trade missions while creating sustainable infrastructure and economic growth in partner countries.
USTDA provides grant funding to overseas project sponsors for the planning of projects that support the development of modern infrastructure and an open trading system. The hallmark of USTDA development assistance has always involved building partnerships between U.S. companies and overseas project sponsors to bring proven private sector solutions to developmental challenges.
The Challenge
- The system was too slow
- Information was not reliable and was outdated
- The system was hard to upgrade and suffered from a lack of functionality
- The data had a lack of continuity that made reporting and tracking problematic
The Solution
Given past difficulties with attempts to update the system, Hodgson recommended that USTDA undertake the project in three phases. The first phase entails migration of the system to the web; this migration is followed by changes to the entry screens and data storage in order to take advantage of the new environment. Although minor changes in functionality may be made during the first phase, the primary goal remains the migration of the existing system to the web with minimal changes (this phase of the project is currently underway).
The second phase of the project will involve the incorporation of user feedback to improve the system as well as the addition of features that were not deemed critical to the initial launch. The final phase will incorporate additional user feedback and will implement lower priority items that help streamline workflow for some users. Providing feature parity between the old and new systems will reduce the initial complexity of the project and provide users with continuity when transitioning to the new program.
Additional phases beyond these first three may be undertaken in order to allow for new features and changes based on real-world usage and metrics.
Hodgson has utilized a project manager, a DBA, a designer, developers, and a QA / QC resource over a period of one year to redesign, develop, and migrate content for the first phase. The second and third phases will utilize similar resources.
The Technology
This project is built on the latest Microsoft web technologies, ASP.NET 4.0 and MVC 3.0, running on IIS 7.0, written in C#. Although the back end database is Microsoft SQL Server 2008, the application uses the high performance and robust NHibernate Object Relational Mapper (ORM) framework for the data layer.
MVC, or Model-View-Controller, is a programming design pattern used to cleanly separate the data layer, the business logic and the presentation layer. This technique makes it easier to maintain the project over time and easier to re-use code. Applications using Microsoft’s MVC framework are scalable and conform to established web standards (i.e. they run equally well in any modern browser).
NHibernate was chosen as the data layer because it is one of the most mature ORM frameworks available for .NET. It is feature-rich and high performance, and it significantly reduces the amount of code needed to perform basic CRUD (create, retrieve, update, and delete) operations. NHibernate is also a LINQ (Language Integrated Query) provider, so it can leverage Microsoft’s powerful general purpose query language. This simplifies searching / filtering data and allows programmers to use a very high level of abstraction.
The user interface is responsive and highly interactive, making extensive use of JQuery and select DHTMLX controls. These technologies (Javascript libraries) improve programmer productivity by providing a concise and clear canvass for HTML document traversal, animation, event handling, and Ajax interactions. JQuery is now highly integrated into Microsoft’s MVC 3.0 framework and is the de facto Javascript library for modern, interactive web applications.