Skip to content
This repository has been archived by the owner on Feb 20, 2021. It is now read-only.

Latest commit

 

History

History

MyCompany EXPENSES demo application

MyCompany EXPENSES demo application

Requires

  • Visual Studio 2013

License

  • MS-LPL

Technologies

  • jQuery Mobile
  • windows azure active directory
  • Windows Phone 8
  • CORS
  • .NET Framework 4.5.1
  • OWIN self-hosting
  • Entity Framework 6
  • Windows 8.1 HTML/WinJS
  • ASP.NET Web API 2

Topics

  • Devices and Services development

Updated

  • 11/19/2013

Description

Introduction

At the Visual Studio 2013 Launch Event (Nov. 13th 2013), Microsoft used a set of demo applications to explain the new features in .NET 4.5.1 and Visual Studio 2013. Here we are publishing those demo applications.

MyCompany is a set of sample applications comprised of typical enterprise/business modules: Travel, Staff, Vacation, Visitors and Expenses.Each of these business applications are autonomous and could have been developed by different teams. They use different technologies and solutions to fulfill the different requirements from different user profiles and desired scenarios. All web and services solutions can be deployed to Windows Azure, and all of them are using Windows Azure Active Directory to support Single-Sign-On between all the applications in the suite.The companies can also federate the directory service with their on-premises directories (corporate Active Directory) to support SSO using the on-premises corporate AD credentials.A few of the web apps can also be integrated as apps for SharePoint within Office 365.
In summary, different technologies are used depending on the business application scenarios: Web Apps, Windows Store, Windows Phone, WPF desktop, etc.


This concrete business application is called EXPENSES and it is described below.

Building the Sample

Requirements

-Visual Studio 2013
-Windows Azure SDK 2.2
-SQL Server 2012 Express LocalDB (included in VS 2013)
-Windows Azure SQL DB (for Cloud deployment)
-Windows Azure Web Sites (for Cloud deployment)

Description

• Expenses is composed by several client applications to facilitate expenses management to the employees.
• The web mobile application is an application for employees, managers and HHRR. Each role can make different actions. Employees can create and edit their travel requests. Managers can accept or deny the team member requests. HHRR can add attachments to the requests and accept them.
• The Windows 8 HTML5/WinJS native application targets managers, so they can review all the team’s expenses, approve an deny them and view summaries.
• The Windows Phone 8 native application targets employees and managers. The employees can report their expenses and managers can review/approve team expenses.
EXPENSES Windows Store app (HTML/WinJS)

 

 

EXPENSES Windows Phone native app (C#/XAML)


 

 

EXPENSES Web Mobile app (ASP.NET MVC)

Simplified Architecture Diagram

Goals

• Demo support to highlight Web API 2 features like attribute routes, CORS, OWIN self-hosting. Also, HTML/WinJS native store apps, and Web Mobile apps for any mobile client. 

 

Covered Technologies

Services technologies

ASP.NET Web API 2

Attribute Routes

CORS

OWIN-Katana

OWIN self-hosting

Entity Framework 6

Windows Azure Service Bus

Web Application technologies

JQuery Mobile

 

Security technologies

Windows Azure Active Directory

 

Windows Apps technologies

Windows 8.1 Store HTML/JS

Windows 8.1 Push notifications

Windows Phone C#/XAML

Windows Phone Push notifications

 

What this demo application is NOT about

These applications are not production systems and are not intended as a guidance for mission-critical applications, as it mostly covers CRUD and Data-Driven scenarios, only. If you need guidance for complex scenarios, we recommend to check guidance material from the Microsoft Patterns & Practices group like the ‘CQRS Journey guidance’, which shows a reference application with a related functional domain & scope (Events/Conferences platform) but from a different point of view based on design-patterns and best architectural practices for complex scenarios, covering approaches like CQRS (Command & Query Responsibility Segregation) & DDD (Domain Driven Design).