How has the programming language C# evolved? Philip Japikse traces its evolution from its introduction in 2002.When C# and the .NET Platform were first introduced in 2002, the development ecosystem was scattered across disparate platforms and languages, even in the Microsoft-centric ecosystem. Memory leaks, application registration, and deployment issues were all a major concern, and the time spent resolving these (and other issues) reduced the amount of time developers could spend creating features to differentiate their products and/or companies from the competition.
The .NET Framework and the core languages (C# and VB.NET) brought together developers from Visual Basic, C, C , and a host of other languages into a united framework. Both C# and VB.NET (and languages release since then, such as F#) are all related through a Common Type System (CTS) and the Common Language Runtime (CLR). The CTS and CLR enables developers writing in one language to interact with the code written in another .NET compliant language.
As the .NET ecosystem grew, so did the number of frameworks available. Initially released with ASP.NET WebForms (for web development) and WinForms (for client applications), soon there were additions like Windows Communication Foundation for services, ASP.NET MVC (a light weight web framework built on the Model View Controller pattern), ASP.NET WebAPI (for restful services, leveraging the same base framework as ASP.NET MVC), and Windows Presentation Foundation (WPF) for building more responsive and dynamic client applications.
C# quickly became the most popular of the .NET languages, and has grown in popularity ever since. The Popularity of Programming Languages on github.io (http://pypl.github.io/PYPL.html) ranks C# as #4 and rising. This is largely due to the constant influx of new features and enhancement by the C# team. Not only has the team been hard at work improving the language (they are currently working on version 8), they have updated their goals with the times. From the initial goal of uniting developers in the Microsoft ecosystem, the introduction of .NET Core now enables developers to build applications across all platforms.
.NET Core is a brand-new version of the .NET Framework, ASP.NET, and Entity Framework that is no longer tied to the just Windows Operating system. In addition to running on multiple platforms, it can also be developed using Windows, iOS, or Linux. The addition of Xamarin allows for developing mobile applications for iOS and android using C#.
If your interest lies in utilizing the cloud, C# and .NET (the full framework as well as .NET Core) fully supports building applications running in the cloud. While the full framework still only runs on Windows based servers, .NET Core can deploy to Azure, AWS, and any number of cloud providers running Windows or Linux to give you the scalability you want and need. .NET Core also provides full support for containerization using technologies like Docker.
On top of the cross-platform nature of .NET Core, it is completely open source. Many of the features built into the .NET Core frameworks were developed and released by non-Microsoft employees, and the number of contributors is growing rapidly. The central thread of .NET Core is the C# programming language. It is now the main supported language for .NET Core applications, and will continue to be the main language as .NET Core continues to grow and evolve.
The 3.0 version of .NET Core will add support for smart client applications, expand the capability of the web, Restful services, and mobile applications, as well as support C# 8. From a development perspective, C#, the .NET Framework, and .NET Core provide everything you need to build applications for the client, web, mobile, and cloud.
From the initial introduction of C# in 2002 to the current version (7), the Pro C# books have been there for you for every release. Pro C# 7 With .NET and .NET Core covers everything you need to know to not only understand C#, but how to use it effective. It’s not just a language reference, but also covers Object Oriented Programming, data access with Entity Framework, developing smart client applications with Windows Presentation Foundation, web development with ASP.NET MVC and Restful services with ASP.NET WebAPI. This edition also includes an entire section covering .NET Core, complete with data access using Entity Framework Core, and building web applications and Restful services with C# and ASP.NET Core.