Tuesday, May 16, 2017

Microsoft Announces .NET Architecture Guidance

Four application architecture guidance drafts are available from Microsoft's Developer Division and the Visual Studio product teams.

These drafts cover four areas:

  1. Microservices and Docker, 
  2. ASP.NET Web Applications, 
  3. Azure Cloud Deployment, 
  4. & Xamarin Mobile Applications. 

Each guidance consists of a set of documents appropriate for the topic.  Microsoft wants feedback from the general community on these draft documents.

The Microsoft and Docker guidance consists of an Architecture eBook, a DevOps eBook
a sample application, and a video discussion of appropriate patterns.

The Architecture eBook is an introduction to developing microservices, and managing them with containers.

The sample application is referenced within the book. The book covers topics 
such as choosing the appropriate Docker containers and how to deploy them, 
designing and developing multi-container and microservice-based .NET applications, 
and how to secure them. The guidance is infrastructure agnostic. The DevOps 
book explains how to implement the entire Docker application lifecycle with Microsoft technologies. It is useful both for people who need to learn about Docker, or people knowledgeable about Docker, but want to learn about the Microsoft implementation.

The Web Applications guidance consists of an eBook 
and a sample application

The book provides guidance on building monolithic web applications with 
ASP.NET Core and Azure. It is a complementary guide to the Microsoft and 
Docker guidance book discussed in the previous paragraph. The guidance 
covers the characteristics of modern web applications and their architectural 
principles, as well as how to develop and test ASP.NET Core MVC applications.

The Azure Cloud Deployment guidance consists of a set of reference architectures
an article on best practices, and an article on design patterns

The reference architectures are ordered by scenario and include recommended 
practices and most have a deployable solution. The reference architectures are: 
identity management, hybrid network, network DMZ, VM workloads for Linux 
and Windows, and managed web application. The article on best practices 
focuses on REST and HATEOAS.  The design patterns are indexed by 
category: availability, data management, design and implementation, messaging, 
management and monitoring, performance, and scalability, resiliency, and security. 
The twenty four patterns are also cataloged by pattern name so they can be 
found directly. Each pattern describes the problem to be solved, when it is 
appropriate to use the pattern, and a Microsoft Azure based example. 
Nonetheless, the patterns are generic to any distributed system.

The Xamarin Mobile Application guidance consists of an eBook, a sample application
and an article on architecture patterns

The guidance in the eBook covers building cross-platform enterprise applications 
using the Xamarin UI toolkit. It focuses on the core patterns and architectural 
guidance, specifically the MVVM pattern, dependency injection, navigation, 
validation, configuration management, containerized microservices, security, 
remote data access, and unit testing. The guidance references the sample application. 
Since the guide complements the other architecture guidance, microservices, 
containers, and web applications are not covered in depth. It also is not a 
detailed introduction to Xamarin forms. The guidance can also be used by 
decision makers who want an overview on architecture and technology before 
deciding on a cross-platform strategy. 

The patterns focus on the key architecture concepts, application layers, and the 
basic mobile software patterns such as MVVM, MVC, Business Fa├žade, 
Singleton, Provider, and Async.  The case study illustrates the use of the patterns.

by Jai Krishna Ponnappan