Technologies
All front-end code is implemented in TypeScript. This is because TypeScript allows
for strongly typed JavaScript and an easy transition for C#/.NET developers due to
its allowance for object oriented programming through the use of Classes, Interfaces,
Typing and Modules. The Student Success Dashboard was developed using TypeScript 0.9.0.1.
A strong knowledge base in this technology will be essential for maintaining and
extending the current work. All front end logic can be found within the
StudentSuccessDashboard project in the Applications folder. Within the StudentSuccessDashboard
project all JavaScript/TypeScript can be found in the Scripts folder. Front-end code
corresponding to a particular page on the site will be in a View folder inside of the
Scripts folder following the MVC path convention. As an example, ~/Student/Finder
corresponds to Scripts/Views/Student/.
We have decided to use jQuery DataTables to keep the application lightweight and responsive.
All DataTable code is broken down into three separate TypeScript files.
- DataTable.ts
Each DataTable is backed by a class that extends a base DataTable class containing
CreateColumns, Initalize and Refresh functions.
- Filter.ts
When the DataTable has filters, they are handled by a subclass of this type. All
Filters should implement the Initialize, PushToArray and ToJson functions.
- Selector.ts
When the DataTable has selectors, they are handled by subclass of this type. This
class contains the Remove, Add, Reset and SetSelections functions which perform
actions on an internally managed string array that tracks the selections.
Front-end unit testing is handled by the QUnit framework. Thanks to Chutzpah,
these unit tests can be seen within the Test Explorer in Visual Studio. All front-end
tests will be stored in the same directory as the piece of front-end logic they are
testing. Additionally, all front-end tests will have the suffix of Test.ts.
Chutzpah is a front-end test automation tool that allows for running the QUnit tests
within the Visual Studio Test Explorer. Chutzpah can be downloaded through the Visual
Studio Extensions and Updates manager.
Web Essentials
Web Essentials provides a variety of front-end capabilities. The primary use for it in
the Student Success Dashboard is auto-compiling your TypeScript files into JavaScript files
hen you save (Ctrl + s). (Note - This capability is built into Visual Studio 2013.) Like
Chutzpah, you can download Web Essentials through the Visual Studio Extensions and Updates manager.
Windows Azure is the cloud computing platform offered by Microsoft. By choosing to utilize Azure,
the Student Success Dashboard application now has the ability to scale as the user base grows.
We've also taken advantage of a number of service offerings such as Access Control Service
which simplified development and maintenance.
ASP.NET MVC is a technology that forces separation of concerns on web applications. MVC aligned
well with the TDD practices adopted by the development team. It also yielded a more lightweight
and efficient application.
Castle Windsor is an Inversion of Control framework that allows for run-time Dependency Injection.
The main rationale for Castle Windsor is because it allows a greater allowance for the application
to be easily unit tested and simplifies the TDD process.
Entity Framework is Microsoft’s recommended Object Relational Mapper for applications. The Student
Success Dashboard uses the Code First approach of Entity Framework. Code First was used because the
application was a green-field project. Code First allowed us to develop Plain Old CLR Objects that
represent the underlying Data Model. This allowed us to focus on application code rather than the
database. Additionally, the data migrations capability allows for versioning releases and syncing
up the schema.
Blob
In the context of the Student Success Dashboard, Blob storage is being used primarily as a data store
for file processing. Because Azure is a distributed system we can’t rely on using the file system since
we can’t ensure that a user will be working on the same web role instance through their entire session.
Azure Blob Storage is a distributed data store accessible across all web role instances.
Table
The Windows Azure Diagnostics module is configured, by default, to output tracing information to table storage.
Azure ACS is an authentication service that integrates third party identity providers with your application.
ACS allows you to add Live, Google, Yahoo, and/or Facebook to Student Success Dashboard as identity providers.
Return to the wiki Home