Building the Right Environment to Support AI, Machine Learning and Deep Learning
Welcome to 2017!
When I look back to when I started with .NET in the early 2000s, I cannot help but to be awestruck. .NET has grown into a fantastic, cannot-live-without developer tool. In 2002, I think many a developer was scared and perhaps felt a bit intimidated with Visual Basic.NET—many Visual Basic developers still do. Coming from a Visual Basic 6 background, with decent knowledge of Visual C++ 6, I battled with the .NET concept. I simply could not fathom it!
After nights of no sleep and lots of hard work and patience, I finally got the hang of it. I finally realized the full power of .NET, where all Microsoft languages could live in unison and work together and understand each other.
Fifteen years later (it is scary to think that the .NET Framework has been around so long already), the beast that is .NET has evolved into a tool with which you can develop not only for Windows PCs, but for Apple, Linux, and mobile devices too.
This article serves as a checklist of what to know concerning the .NET Framework this year and beyond.
There are several platforms on which a .NET application can run. Gone are the days that .NET is solely for Windows-based PCs. These platforms include:
- 32 BIT Windows
- 64 BIT Windows
Making it possible for .NET to run on different platforms, tools such as Mono and the UWP technology are needed.
Mono is a software platform that allows developers to easily create cross-platform applications.
Universal Windows Platform
A Universal Windows Platform (UWP) app can run on any Windows-based device, from your phone to your tablet, or even your PC.
The various .NET Frameworks define the APIs you can use. A list of all the .NET Frameworks follows:
For differences among all the .NET Frameworks, have a look here.
There are essentially three main runtimes:
- .NET Framework: The .NET framework enables you to create mobile, desktop, and Web applications that run on Windows platforms.
- .NET Core: .NET Core enables you to create applications that run on Windows, Linux, and Mac.
- .NET Core and ASP.NET Core: Creation of projects using DotNet new is now simplified with the use of a new template engine.
- Mono for Xamarin: Mono is an open source .NET. Xamarin brings .NET to iOS and Android.
Intermediate Language (IL), previously known as Microsoft Intermediate Language or MSIL, is the lowest-level human-readable programming language defined by the Common Language Infrastructure (CLI) specification.
CLR (Common Language Runtime)
The Common Language Runtime (CLR) manages the execution of .NET programs. With the Common Language Runtime, it is easy to design components and applications whose objects interact across different languages. Objects written in different languages can communicate with each other, and their behaviors can be tightly integrated.
Base Class Library (BCL)
A BCL (Base Class Library) is the standard for the .NET runtime library and one of the Common Language Infrastructure (CLI) standard libraries. A BCL (Base Class Library) provides types representing the built-in CLI (Common Language Infrastructure ) data types, basic file access, security attributes, I/O streams, and string manipulation, to name a few.
.NET Framework Class Library (FCL)
The FCL (.NET Framework Class Library) is a library of classes and other types that developers use to make their lives easier.
The .NET Framework's Garbage Collector manages the allocation and release of memory for all your .NET applications.
The GAC is your Windows directory that stores all the .NET assemblies that are specifically designated to be shared by all applications executed on a system.
The Just in Time Compiler (JIT) takes IL (Intermediate Language) and compiles it in preparation for running as native code.
A class library is simply a collection of pre-written classes or coded templates that can be used and reused by more than one program
Async and Await
Async and Await generate Intermediate Language that frees threads for long-running function calls.
New Changes in .NET 4.6.2
Redgate SQL Prompt
Visual Studio Enterprise 2017 now includes Redgate SQL Prompt, which offers SQL code completion as you type.
Lightweight Solution Load (LSL)
Lightweight Solution Load is a new feature in VS 2017 that will reduce Solution load time significantly, thus enabling you to be more productive more quickly.
Custom Project and Item Templates
This extension must provide template manifest files that describe the install location of these templates. Visual Studio 2017 can update your VSIX extensions. When you deploy your extension using an MSI (Microsoft Installer), you must generate the template manifest files by hand.
Roaming Extensions Manager
The new Roaming Extension Manager keeps track of all your favorite extensions by creating a synchronized list in the Cloud.
To see a list of your extensions in Visual Studio 2017, follow these steps:
- Click Tools.
- Click Extensions & Updates.
- Click Roaming Extension Manager.
Live Unit Testing
Live Unit Testing is unfortunately only present in the Enterprise edition of Visual Studio 2017. Live Unit Testing visualizes unit test results and code coverage live on the editor, while you are coding.
Live Architecture Dependency Validation
In Visual Studio Enterprise 2017, if you have set up Dependency Validation diagrams, you can get real time notification violations of architectural dependency rules as you type code in the code editor.
Understanding and appreciating the fact that .NET is forever evolving, it is good to know how it is changing. Take some time to explore the topics I have mentioned, get to know them, study them, and appreciate them as Microsoft keeps inventing new technologies to make our lives in the development world easier.