www.EatAndDo.com
This solution allows inexperenced internet users to track their
nutritional intake and health.
The project was produced using Silverlight and SQL Server.
A simple, fast UI experence was an essential requirement of the project.
If you wouls like to take a look at the application it can be found
here...
Development Highlights
XAML
was key to allowing us to integrate novel design ideas into a fluid development process.
Previously this would have been impractical and time consuming using traditional HTML or WinForms.
User Interface
was enhanced by the ability to interact with all the visual elements that go to make up controls on the interface, this allowed us to make
distinctive and effective user experience.
Display Manager is a component within the application to manage some complex 3D elements that are to be launched at a later date.
To mange this complexity we split the ViewModel layer into two separate components.
Data Manager
is a series of classes to manage the user's experience of the data.
C#
lambda functions were essential in providing asynchronous interaction with the data. We also utilized 'inversion of control' techniques to glue the
separate sections of the application together.
Domain Context
in addition to providing persistence of data objects, we were able to add a layer of calculated data and
evaluate local domain logic in the data acquisition process.
WCF RIA
services, are key to gluing the user interface to the data store. We used
multiple servers to balance the load and improve performance.
Secure Communications as part of
WCF's ability to utilize SSL allows us to keep confidential information protected across the net.
Stored Procedures are used on the server by RIA services for all CRUD operations. This provides us with an extra layer of security.
Security Database keeps all user and session information on a
separate database, that is audited and monitored for intrusion and tampering.
User Data
is kept on a geographically partitioned database and can only be deciphered with the use of data from the security database.
The partioned database can be split at a later date as the system grows, and different segments located in different regions of the world.
Indexing Databases
was developed for search and spell checking functionality from first principles of information
retrieval.
We did this to ensure the maximum possible performance for the specific
retrieval of food information.
We minimized the index so it could be held in memory and traversed rapidly.
In addition we have multiple instances of the index database so load can be spread across
multiple servers.