Understanding .NET

Understanding .NET

I have often seen beginners get confused when starting with .NET, majorly due to the vastness of the platform. In this article, I will try to jot down various components of .NET without complicating things and explain why you should choose it as your stack!

One Stack To Rule Them All

No alt text provided for this image

The best thing about .NET is, it never stops you. You can practically build anything using the same skill-set if you are a .NET developer.

Using .NET, you can develop applications for Windows(Ofcourse), iOS, Android, Linux, MacOS, Web Applications, Games, Cloud based applications (like Server-less microservices ), IoT Applications, Machine Learning (ML.NET), Big Data, Quantum Computing (No kidding!) and the list goes on!


.NET Languages: The Magic of Language Interoperability

The .NET ecosystem supports a variety of languages due to the virtue of Open Source Development (even the likes of JavaScript, Python etc.). Microsoft actively develops and supports three .NET languages: C# (Pronounced C-Sharp), F# and Visual Basic.

C#

No alt text provided for this image

C# is an incredibly powerful modern object-oriented and type safe programming language.

Its roots in the C family of languages makes C# immediately familiar to C, C++, Java, and JavaScript programmers.

To learn more about C#, follow this link


No alt text provided for this image

F#

F# (pronounced "F sharp") is a cross-platform, open-source, functional programming language for .NET.

It also includes object-oriented and imperative programming.

To learn more about F#, follow this link.


No alt text provided for this image

Visual Basic

Visual Basic is an approachable language with a simple syntax for building type-safe, object-oriented apps.

To know more, visit link

What is Interoperability?

In .NET, when you compile your program, it is compiled into IL (Intermediate Language). This compiled program can be used by any other .NET Language.

That mean that you can actually write an app using a language like JavaScript and at the same time write your app logic in C# and consume it in you JavaScript app at runtime and vice-versa.

Components of .NET Ecosystem

A .NET app is developed for and runs in one or more implementations of .NET. There are multiple implementations of .NET including the .NET Framework, .NET Core, and Mono. There is an API specification common to all implementations of .NET that's called the .NET Standard.

Now, instead of talking in detail about all the implementations, I will mention use cases and what .NET implementations to use for those use cases. Although there is freedom to choose language of your choice, my language of choice for all workloads is C#.

Developing Web Applications or Web APIs

No alt text provided for this image

If you are looking for a framework to develop Web-Applications or Web APIs, .NET Core is the best you can get out there. It is really fast! That means applications provide better response times and require less compute power. Heavy sites like Bing and StackOverFlow run on .NET Core.

"StackOverFlow serves 5.3m page views a day on just 9 servers."

.NET Core is an open-source, cross-platform implementation of .NET which is designed to handle server and cloud workloads at scale. It supports Windows, macOS, Linux and can be used in devices, cloud and IoT Applications.

It is consistent across different architectures and runs your code with same behaviour on multiple architectures, including x64, x86 and ARM. It can also be used with Docker Containers.

To get started with Developing Web Apps and Web APIs with .NET Core, follow the links to the tutorials : Web Apps, Web APIs.

Develop Android and iOS Mobile Applications using Xamarin

No alt text provided for this image

If you are looking for a way to write a single application which runs on all platforms, Xamarin is by far the most reliable and advanced tool available on the planet which can produce 100% native applications for the targeted platform.

Xamarin supports development for UWP, Android, iOS, Apple WatchOS, Android Wear OS, MacOS, Games and AR applications on all platforms (I hope I did not miss anything 😅).

To learn and get started with Xamarin, follow link.

Windows Desktop/Tablet Application

Micrrosoft offers two modern application development frameworks for desktop application development : UWP and WPF.

Universal Windows Platform (UWP)

No alt text provided for this image

The Universal Windows Platform (UWP) lets you build apps for any Windows device—PCs, phones, Xbox One, HoloLens, Windows IoT Devides and more—and publish them to the Microsoft Store.

To learn more about UWPs refer link.

For video tutorial, I've personally found Bob Tabor's tutorials to be very useful. You can find the tutorial at thi link.

Windows Presentation Foundation (WPF)

WPF is based on older, more mature Win32 APIs (also called classic windows apis). Using WPF you can create Windows desktop applications that your customers can use at work and play by using Win32 and COM APIs to leverage features of the operating system.

To learn more about WPF refer link.

IoT Applications

No alt text provided for this image

Windows 10 IoT Core is an an Operating System built for small, secured IoT devices and embraces a rich UWP app experience with support for ARM based devices like Raspberry Pi too!

The main advantage of Windows IoT Core is, it exposes all the great capabilites of .NET ecosystem and provides with all the rich tools and libraries available on windows to your IoT Applications.

To learn more about Windows 10 IoT Core follow link.

Machine Learning

ML.NET was recently introduced at Build 2018 as Machine Learning Solution for .NET developer. It is a free, open-source, and cross-platform machine learning framework that enables you to build custom machine learning solutions and integrate them into your .NET applications.

To get started with ML.NET, checkoutthis Iris Petal Prediction tutorial.

Here's a link to more advanced tutorials.

.NET platform is supported by a vast and Open-Source Community and what we have covered in this brief article is just a bucket of the Ocean .NET is. To learn more about the .NET community, head to DotNET Foundation where you can contribute or even put you own projects for community support.

For any further queries or suggestions to this article, you can mail me at prkhandelwal@hotmail.com

Cheers 😏

👾 Sangeeth Sudheer

Making pixels pop on web ⟡ Prev. Prime Video ⟡ Geek, gamer, homelabber ⟡ Got an interesting quest for me? jobs.<org>@sangeeth.dev

5y

This .NET things sounds really cool! 😁

To view or add a comment, sign in

Insights from the community

Others also viewed

Explore topics