Microsoft.NET Application Architecture guidance
Microsoft’s developer division and the Visual Studio team have just released Microsoft.NET Application Architecture Guidance eBooks which are covering several areas:
- Microservices Architecture
- Usages of Docker containers
- Web Application with ASP.NET Core and Azure and
- Enterprise applications which use Xamarin Forms.
What are Microservices?
Let’s take the definition from Wikipedia:
Microservices is a variant of the service-oriented architecture (SOA) architectural style that structures an application as a collection of loosely coupled services. In a microservices architecture, services should be fine-grained and the protocols should be lightweight. The benefit of decomposing an application into different smaller services is that it improves modularity and makes the application easier to understand, develop and test. It also parallelizes development by enabling small autonomous teams to develop, deploy and scale their respective services independently. It also allows the architecture of an individual service to emerge through continuous refactoring. Microservices-based architectures enable continuous delivery and deployment. —source: Wikipedia
What are (Docker) containers?
A container image is a lightweight, stand-alone, executable package of a piece of software that includes everything needed to run it: code, runtime, system tools, system libraries, settings. Available for both Linux and Windows based apps, containerized software will always run the same, regardless of the environment. Containers isolate software from its surroundings, for example differences between development and staging environments and help reduce conflicts between teams running different software on the same infrastructure.. –source: docker.com
A word about Microsoft Azure
Microsoft Azure (formerly Windows Azure) is a cloud computing service created by Microsoft for building, testing, deploying, and managing applications and services through a global network of Microsoft-managed data centers. It provides software as a service (SaaS), platform as a service and infrastructure as a service and supports many different programming languages, tools and frameworks, including both Microsoft-specific and third-party software and systems. — souce: Wikipedia
An introduction to Xamarin.Forms
Xamarin.Forms is a cross-platform natively backed UI toolkit abstraction that allows developers to easily create user interfaces that can be shared across Android, iOS, Windows, and Windows Phone. The user interfaces are rendered using the native controls of the target platform, allowing Xamarin.Forms applications to retain the appropriate look and feel for each platform. Xamarin.Forms allows for rapid prototyping of applications that can evolve over time to complex applications. Because Xamarin.Forms applications are native applications, they don’t have the limitations of other toolkits such as browser sandboxing, limited APIs, or poor performance. Applications written using Xamarin.Forms are able to utilize any of the API’s or features of the underlying platform, such as (but not limited to) CoreMotion, PassKit, and StoreKit on iOS; NFC and Google Play Services on Android; and Tiles on Windows. In addition, it’s possible to create applications that will have parts of their user interface created with Xamarin.Forms while other parts are created using the native UI toolkit. –source: xamarin.com
Example applications on Microsoft.NET Application Architecture Guidance
The great thing is that the four guidance contain two end-to-end reference applications that the guides use as examples for building microservices, web applications, and mobile applications using Xamarin forms. The reference applications, eShopOnContainers and eShopOnWeb are both available on GitHub. Both the application will be further developed and for instance, the eShopOnContainers will be extended to use specific orchestrators (Service Fabric, Kubernetes), Services Bus, and No SQL databases.
Link to the guidance e-books:
- .NET Microservices: Architecture for Containerized .NET applications
- Containerized Docker Application Lifecycle with Microsoft Platform and Tools
- Architecting Modern Web Applications with ASP.NET Core and Microsoft Azure
- Enterprise Application Patterns using Xamarin.Forms
Microsoft with this Microsoft.NET Application Architecture Guidance ebooks has made a great effort to make the life easier to many developers. Why not to download them and just profit from the amount of information available for free?