The Philosophy of .NET
C# programming language and the .NET platform were introduced by Microsoft in 2002 and have quickly become a need for modern-day software development.
Initial look at the .NET Platform
Before .NET, Windows programming using the Microsoft platform was divided into a number of branches. At that time, C, C++, and Visual Basic were used. Some C and C++ programmers were using raw win32 API and most of the programmers were using MFC (Microsoft Foundation Classes), while the others had moved to COM.
Despite the complexity and limitations of COM, countless applications have been successfully created with this architecture. But nowadays, desktop applications, web applications, OS Services, and libraries of reusable data access/business logic are created using them. NET.
What is the .NET Framework?
- “.NET framework is a software platform designed to build systems on Windows, Mac OS, and Linux/Unix distributions.”
- “NET framework is the managed code and platform-independent programming model. It provides a highly productive environment for software developers and offers excellent skills reuse across multiple application architectures.”
Some Key Benefits of the .NET Platform
.NET framework was designed to address the problems and limitations faced by old programming techniques. Some of the key benefits of the .NET framework are mentioned below.
- Multiple Platforms: It runs on a broad range of computers from Servers and desktop machines to PDAs and cell phones.
- Security: It provides a much safer execution environment even in the presence of the code obtained from the suspect source.
- Interoperability with existing code: A program written in one .NET language can be used and even inherited from the class written in another .NET language.
- Platform Invoke: .NET Framework provides a feature called platform invoke (P/Invoke) which allows you to use code written for .NET in code not written in. NET.
- Interoperability with COM: The .NET framework provides interoperability with COM. COM components can call .NET components and .NET components can call COM components.
- Support for numerous languages: .NET application can be written in any number of programming languages for example (C#, Python, F#, VB.NET, etc.).
- Communication using Industry Standards: The system uses industry-standard communication protocols such as HTTP, SOAP, XML, WSDL, and JSON.
- Object-Oriented Development Environment: The CLR, BCL, and C# are designed to be object-oriented and act as a well-integrated environment.
- Simplified Development: .NET libraries are not registered in the registry. In addition, .NET allows multiple versions of the same .dll to exist on a machine.
Introducing CLR, CTS, and CLS
- From a programmer’s point of view, .NET can be understood as a runtime environment and a comprehensive base class library. The runtime environment is known as Common Language Runtime (CLR). The primary role of CLR is to manage, load, and locate .NET objects on your behalf. CLR also takes care of memory management, application hosting, and thread management, and performs basic security features.
- Another block of .NET framework is the Common Type System (CTS). The CTS describes all possible data types and all programming constructs supported by runtime. (Scroll down for more information on CTS).
- A .NET-aware language might not support every features defined by the CTS. The Common Language Specification CLS is a specification that defines a subset of common types and programming constructs that all .NET programming languages can agree on. So, if you build a .NET type that follows only CLS features, then you can assure that every .NET aware language can use them. Or, if you are using data type or programming construct that is outside of the specifications of the CLS, you cannot guarantee that every .NET programming language can interact with your code.
Role of Framework Class Library (FCL)
- .NET framework provides an extensive library called Base Class Library which is sometimes also called Framework Class Library (FCL). You can use these libraries when writing your programs some of them are XML classes, collection classes, threading and synchronization classes etc. Not only does BCL provide collection of classes, but it also provides support for services required by applications.
- You can use these libraries to build any type of software application. For example, you can use ASP.NET to build web-based applications, REST services, WCF to build distributed systems, WPF to build desktop applications etc.
- You can use these libraries to build any type of software application. For example, you can use ASP.NET to build web-based applications, REST services, WCF to build distributed systems, WPF to build desktop applications etc.

The CLR, CTS, CLS, and base class library relationship.

What Makes C# a Popular Programming Language?
C# programming language is written in C and C++ whose syntax is similar to the syntax of JAVA. However, calling C# a copy or duplicate of Java is inaccurate. C# and java, both belong to the C family. Here is the list of core C# features that are found in all versions of the language.
- No pointers are required.
- Automatic memory management through garbage collection.
- Constructs according to the syntax for classes, delegates, interfaces, structs, and enumerations.
- Ability to overload operators like C++, without complexity.
- Support for attribute-based programming.
With the release of .NET 2.0 in 2005, more functionalities were added in C#.
- The ability to build generic types and generic members.
- Support for anonymous methods.
- Ability to define single type across multiple code files using the partial
.NET 3.5 (released in 2008) added even more functionality to the C# programming language.
- Support for strongly typed queries (LINQ).
- Support for extension methods.
- Addition of Lambda expression, which simplifies working with delegates.
.NET 4.0 (released in 2010) updated C# with more features.
- Support for optional method parameters as well as named method arguments.
- Support of Dynamic
- COM interop.
.NET 4.5 added more functionality to the C# programming language.
- Inline initialization for automatic properties as well as support for read-only automatic properties.
- Support for static which provides direct access to the static members within a namespace.
- A null conditional operator helps check for null parameters in a method.
- Support for string interpolation.
- Ability to filter exceptions using the when







SubashPosted Mar 19, 2017, 4:21 AM
Very nice keep writing