Decision Support System/Technology and Standards

RESTful Application Programming Interface
Representation State Transfer (REST) is an architecture based around communicating information about resources using the HTTP protocol. REST uses HTTP methods to create, access, update and query Web resources.

Advantages of the RESTful API include Web services that require comparatively little documentation and operate using a uniform set of rules - easing development for any consumer of that web service. Simplicity of a RESTful API also makes it faster to develop, more interoperable, and provides better performance than other approaches, such as SOAP or XML-RPC.

Model-View-Controller (MVC) Architecture
Model-View-Controller (MVC) is a software architecture that separates the data (Model), user interface (View) and actions based on user input (Controller) into three separate functions.

Advantages of using MVC architecture is that it provides for a clear separation of concerns, more control over the URLs allowing for REST based URLs instead of file-name extensions, makes it easy to implement Rapid Application Development (RAD) and Test Driven Development (TDD).

Visual Studio .NET 2010
Visual Studio .NET 2010 (VS 2010) is Microsoft's most recent integrated development environment for Web, Sharepoint, Windows, Phone and other applications. It ensures quality code development throughout an applications entire life cycle from design to deployment. It simplifies the creation, debugging and deployment of applications for a variety of platforms and comes with integrated support for MVC architecture, test-driven development, and debugging tools, among others.

We are currently planning to use a standard CSS framework throughout the system. We are currently reviewing Foundation by Zurb and will update this document, if it appears to meet the needs of the project.

The following technologies will be used within Visual Studio: ASP.NET framework 4, Visual Basic .NET language, LINQ to Oracle Entity Framework, JQuery 1.7, AJAX, CSS 2.1, XHTML, and Javascript.

Test Driven Development (TDD) and NUnit
TDD is a methodology that focuses developers on creating test scenarios before developing code. The test can be viewed as a specification on how the system should behave. TDD helps the developer to focus on writing just enough code to make a test pass, ensuring the system is lightweight and meets documented requirements. NUnit is a unit-testing framework for all .NET languages and will be used for TDD.

Visual SourceSafe
Visual SourceSafe (VSS) is a file version control system that allows multiple developers to check code in and out during the development lifecycle. Using VSS helps protect the development team from accidental file loss, allows back-tracking to earlier versions of a file/system, tracks versions of entire projects, and has a GUI interface for ease of use.

Web Browsers
Web pages will be developed to run in Internet Explorer 7-9, utilizing CSS 2.1

Wiki and Issue Tracking
The Redmine Wiki system will be utilized to provide project management, documentation and issue tracking for the project.

Workflow Engine
We will be utilizing a database driven workflow engine for portions of the site, as necessary.

508 Compliance
Section 508 of the Rehabilitation Act requires Federal agencies to provide Federal employees with disabilities the same access to and use of electronic information and data that is comparable to Federal employees who are not individuals with disabilities. To ensure the application meets 508 compliance, we will be utilizing multiple validation tools such as the IE Developer toolbar and online validators.

Oracle Database 11g
Oracle 11g is the most recent database from the Oracle corporation and will house the data for the application. VS 2010 will interface with Oracle through the use of the Oracle Data Access Components (ODAC) v11.2 which includes the Oracle developer tools for Visual Studio. We are currently developing in Oracle database version 11.2.0.1.0.

Oracle SQL Developer
Oracle SQL Developer is a GUI interface to the Oracle database and will be needed on the development as well as production servers at DHS in order to maintain the Oracle objects. We will be using version 1.5.5.59.69 during development at our site.

Persits AspUpload
AspUpload is a server utility that allows web sites to upload documents to a web server.

Site Search
We have discussed the use of the Google Search Appliance with DHS and will work with them to implement this technology.

Content Management System (CMS)
We have discussed with DHS the use of Sharepoint, for the storage and updating of site documents, and will continue to work with them to implement this technology.

SMTP (Simple Mail Transfer Protocol)
SMTP is an internet standard for e-mail transmission across networks. We will use SMTP to send emails from the Oracle database, using the built-in Oracle mail packages.