Search icon CANCEL
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon
Arrow up icon
GO TO TOP
Mobile Development with .NET

You're reading from   Mobile Development with .NET Build cross-platform mobile applications with Xamarin.Forms 5 and ASP.NET Core 5

Arrow left icon
Product type Paperback
Published in Apr 2021
Publisher Packt
ISBN-13 9781800204690
Length 572 pages
Edition 2nd Edition
Languages
Tools
Arrow right icon
Author (1):
Arrow left icon
Can Bilgin Can Bilgin
Author Profile Icon Can Bilgin
Can Bilgin
Arrow right icon
View More author details
Toc

Table of Contents (25) Chapters Close

Preface 1. Section 1: Understanding .NET
2. Chapter 1: Getting Started with .NET 5.0 FREE CHAPTER 3. Chapter 2: Defining Xamarin, Mono, and .NET Standard 4. Chapter 3: Developing with Universal Windows Platform 5. Section 2: Xamarin and Xamarin.Forms
6. Chapter 4: Developing Mobile Applications with Xamarin 7. Chapter 5: UI Development with Xamarin 8. Chapter 6: Customizing Xamarin.Forms 9. Section 3: Azure Cloud Services
10. Chapter 7: Azure Services for Mobile Applications 11. Chapter 8: Creating a Datastore with Cosmos DB 12. Chapter 9: Creating Microservices Azure App Services 13. Chapter 10: Using .NET Core for Azure Serverless 14. Section 4: Advanced Mobile Development
15. Chapter 11: Fluid Applications with Asynchronous Patterns 16. Chapter 12: Managing Application Data 17. Chapter 13: Engaging Users with Notifications and the Graph API 18. Section 5: Application Life Cycle Management
19. Chapter 14: Azure DevOps and Visual Studio App Center 20. Chapter 15: Application Telemetry with Application Insights 21. Chapter 16: Automated Testing 22. Chapter 17: Deploying Azure Modules 23. Chapter 18: CI/CD with Azure DevOps 24. Other Books You May Enjoy

Understanding .NET Core

In order to understand the origins of, and motivation for, .NET Core, let's start with a quote:

"Software producers who maximize their product's potential for useful combination with other software, while at the same time minimizing any restrictions upon its further re-combination, will be the survivors within a software industry that is in the process of reorganizing itself around the network exchange of commodity data."

– David Stutz – General Program Manager for Shared Source Common Language Infrastructure, Microsoft, 2004.

.NET Core dates back as early as 2001 when Shared Source Common Language Infrastructure (SSCLI) was shared sourced (not for commercial use) under the code name Rotor. This was the ECMA 335, that is, the Common Language Infrastructure (CLI) standard implementation. Rotor could be built on FreeBSD (version 4.7 or newer) and macOS X 10.2. It was designed in such a way that a thin Platform Abstraction Layer (PAL) was the only thing that was needed to port the CLI to a different platform. This release constitutes the initial steps to migrate .NET to a cross-platform infrastructure.

2001 was also the year the Mono project was born as an open source project that ports parts of .NET to the Linux platform as a development platform infrastructure. In 2004, the initial version of Mono was released for Linux, which would lead to ports on other platforms such as iOS (MonoTouch) and Android (MonoDroid), and would eventually be merged into the .NET ecosystem under the Xamarin name.

One of the driving forces behind this approach was the fact that the .NET framework was designed and distributed as a system-wide monolithic framework. Applications that are dependent on only a small portion of the framework required the complete framework to be installed on the target operating system. It did not support application-only scenarios where different applications can be run on different versions without having to install a system-wide upgrade. However, more importantly, applications that were developed with .NET were implicitly bound to Windows because of the tight coupling between the .NET Framework and Windows API components. .NET Core was born out of these incentives and opened up the doors of various platforms for .NET developers.

Finally, in 2020, .NET Core replaced classic .NET. The unified .NET platform now provides developers with a single runtime and framework that can be used to create cross-platform applications using a single code base.

Semantically speaking, .NET now describes the complete infrastructure for the whole set of cross-development tools that rely on a common language infrastructure and multiple runtimes, including .NET Core Runtime, .NET, also known as Big CLR, the Mono runtime, and Xamarin:

Figure 1.1 – .NET Ecosystem

Figure 1.1 – .NET Ecosystem

In this setup, the .NET CLI (Common Language Infrastructure) is made up of the base class library implementation, which defines the standards that need to be provided by the supported runtimes. The base class library is responsible for providing the PAL, which is provided by the hosting runtime under the name of the Adaption Layer. This infrastructure is supported by compiler services such as Roslyn and Mono Compiler (MCS), as well as Just-In-Time (JIT) and Ahead-of-Time (AOT) compilers such as RyuJIT (.NET Core), mTouch, and LLVM (for Xamarin.iOS) in order to produce and execute the application binaries for the target platform.

Overall, .NET Core is a rapidly growing ecosystem with a large number of supported platforms, runtimes, and tools. Most of these components can be found on GitHub as open source projects under the supervision of the .NET Foundation. This open source growth is one of the key factors behind .NET Core reaching its peak today, where the implemented APIs almost fully match those of .NET Framework. This is why the .NET 5.0 release marks the end of the .NET era (as we know it) since the two .NET frameworks are being merged into one in this release, where .NET Core, de facto, replaces .NET itself. Let's now, without further ado, start developing in .NET 5.0.

You have been reading a chapter from
Mobile Development with .NET - Second Edition
Published in: Apr 2021
Publisher: Packt
ISBN-13: 9781800204690
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at ₹800/month. Cancel anytime