Reports and Growth Charts
Two-way communication -SMS, email
Problem Oriented Health Application
Our PNAG application works on the principle of ASP.NET MVC (Model View Controller) framework which we consider best in terms of running web applications. As we believe the ASP.NET MVC framework is a lightweight, highly testable presentation framework that is integrated with existing ASP.NET features, such as master pages and membership-based authentication.
It is fact that MVC is a standard design pattern that many developers are familiar with globally. Keeping with the framework our components our built across the following:
- Model objects are the parts of the application that implement the logic for the application's data domain. Our model objects would retrieve information from the PNAG SQL database, operate on it, and then write updated information back in a SQL Server database.
- We have built views components that display the PNAG application's user interface (UI). Typically, this UI is created from the model data.
- Our controller components handle user interactions, work with the model, and ultimately select a view to render that displays UI. Our controller handles and responds to user input and interaction such as handling query-string values, and passes these values to the model, which in turn might use these values to query the database.
Our application has been built by separating our different aspects of the application such as input logic, business logic, and UI logic, while providing a loose coupling between these elements, thereby ensuring we bring in aspects where each kind of logic should be located in the application and help manage complexity in the course of building the PNAG application.
It makes it easier to manage complexity by dividing an application into the model, the view, and the controller. Through the use of the Front Controller pattern, we process web application requests, which enable us to design an application that supports a rich routing infrastructure. Our technology provides better support for test-driven development (TDD). Our architecture works well to support large teams of developers and Web designers who need a high degree of control over the application behavior.
We ensure separation of application tasks (input logic, business logic, and UI logic), testability, and test-driven development (TDD). All core contracts in the MVC framework are interface-based and can be tested by using mock objects, which are simulated objects that imitate the behavior of actual objects in the application. You can unit-test the application without having to run the controllers in an ASP.NET process, which makes unit testing fast and flexible. You can use any unit-testing framework that is compatible with the .NET Framework.
Through the use of ASP.NET MVC framework components, we have brought in an extensible and pluggable framework, so that the design can be easily enhanced, upgraded, or customized. We can plug in with a view engine, URL routing policy, action-method parameter serialization, and other components. Our framework supports the use of Dependency Injection (DI) and Inversion of Control (IOC) container models, thereby enabling us to inject objects into a class, instead of relying on the class to create the object itself, and specify if an object requires another object, the first objects should get the second object from an outside source such as a configuration file. This makes testing easier.
Through extensive support for ASP.NET routing, which is a powerful URL-mapping component helps us build applications that have comprehensible and searchable URLs. URLs do not have to include file-name extensions and are designed to support URL naming patterns that work well for search engine optimization (SEO) and representational state transfer (REST) addressing.
We can support using the markup in existing ASP.NET page (.aspx files), user control (.ascx files), and master page (.master files) markup files as view templates. We can use existing ASP.NET features with the ASP.NET MVC framework, such as nested master pages, in-line expressions (<%= %>), declarative server controls, templates, data-binding, localization, and so on.
Through our framework, we have the potential to harness features such as forms authentication and Windows authentication, URL authorization, membership and roles, output and data caching, session and profile state management, health monitoring, the configuration system, and the provider architecture.
Our multi-tier .NET PNAG application with an ASP.NET MVC front-end would be deployed to an Azure cloud environment. Our application would be leveraging the use of Azure Cloud Services as it would be hosted on Windows Azure Cloud. From provisioning to load-balancing, to health monitoring, Azure handles the rest. Our application would be backed by an industry-leading 99.95% monthly SLA. The application can leverage all the rich features Azure provides in Azure SQL Database, the Azure Blob service, and the Azure Queue service.
Our application would continuously be available during crashes and failures, redirecting traffic from troubled instances to ones running smoothly. Through automatic OS updates, our application is always secure, without maintenance windows or downtime
We will keep tabs on the health and availability of our PNAG application, through the use of a health metrics dashboard which shows key stats at-a-glance. We would set up real-time alerts to warn you when service availability—or some other metric of interest—degrades
Our environment would be robust and would be built to deploy on a wide variety of modern applications for Android, iOS, and Windows that take full advantage of the cloud—including web, mobile, media, and line-of-business solutions. Automatically scale up and down to meet any need.
Manage user accounts, synchronize with existing on-premises directories, and get single sign-on across Azure, Office 365, and hundreds of popular software-as-a-service applications including DocuSign, Google Apps, Box, Dropbox, and more.
With the use of the Microsoft Azure platform for the public cloud, we will ensure large, scalable web applications and then efficiently manage development, test, and operations. Through cloud Services, our application would be highly scalable and fault resistant.
Through the use of Azure, websites compute model which offers a managed web environment – Azure Management portal as well as APIs we can add or remove instances dynamically, besides relying on Azure Websites to load balance requests across them.
We have chosen Azure as it provides several different ways to store and manage data. Azure provides many storage options, but all are designed for very durable storage. With any of these options, there are always 3 copies of your data kept in sync across an Azure datacenter
Azure SQL Database provides all of the key features of a relational database management system, including atomic transactions, concurrent data access by multiple users with data integrity,
Azure Mobile Services provides many useful functions which save our time building a backend for a Mobile application. It allows simple provisioning and management of data stored in a SQL Database. The service also has a REST API that your mobile application can call to get work done. Mobile Services also provides the ability to authenticate users through Microsoft and Active Directory as well as other well-known identity providers like Facebook, Twitter, and Google.
Since Azure supports massive scale already, we can handle the traffic and ensure monitoring and logging are supported to help troubleshoot issues and manage performance.
Data is safer because backups are encrypted before transmission and stored encrypted in Azure and protected by a certificate that you upload. Azure provides managed SQL data services and built-in support for gaining insights from data. The service uses the same redundant and highly available data protection found in Azure Storage. We will back up files and folders on a regular schedule or immediately, running either full or incremental backups. After data is backed up to the cloud, authorized users can easily recover backups to any server.
Performance is one of our primary goals which we would improve performance by keeping a copy of that data closer to the application, minimizing the time needed to retrieve it. Azure provides different services for doing this.