paint-brush
Learning Fundamentals of C# and .Net Frameworkby@sitwat
2,196 reads
2,196 reads

Learning Fundamentals of C# and .Net Framework

by Sitwat MaroofMay 17th, 2020
Read on Terminal Reader
Read this story w/o Javascript
tldt arrow

Too Long; Didn't Read

C# is a hybrid language of not just C or C++ but is inspired by design and features of Java, Modula 3, Eiffel etc., and run on.Net framework. C# works by combining the computing power and programming ease of C++ & Visual Basic to facilitate services and information’s smooth interchange on Web. The language is a general purpose object oriented programming language that was developed by Microsoft to contest Sun Microsystems’ reflective language called Java. It employs web services based on. extensible markup language XML specification powered by W3C.

Companies Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - Learning Fundamentals of C# and .Net Framework
Sitwat Maroof HackerNoon profile picture

We are always talking about the mainstream programming languages to an extent where Python, Java, SQL, etc, are all that we see mostly. There are many other dynamic frameworks and languages like our topic of choice today; C sharp or C#, which are playing an integral part in global software development communities. Let's take an in-depth look at the fundamentals of C# as well as the .Net framework to better understand the exclusivity, features, and their advantages.

Computer programming languages are either reliant on platform or framework to function despite mostly being standalone products. C# or C sharp is a hybrid language of not just C or C++ but is inspired by design
and features of Java
, Modula 3, Eiffel etc., and run on .Net framework.

This article is focused on explaining the fundamentals
of a programming languages as well as the essentials of a platform the language is dependent on. So, let us begin then!

What is C#?

C# is a general purpose object oriented programming language that was developed by Microsoft to contest with Sun Microsystems’ reflective language called Java. It employs web services based on extensible markup language XML specification powered by World Wide Web consortium W3C.

The XML enables programmers, developer, designers etc., the customizing liberty to create tags, transmission, definition, validation, and data interpretation applications and organizations.

There are many C# features like garbage collection, type declarations, type-safety, versioning & scalability support etc., that authenticate its design to improve the productivity and make web applications development easier for MS strategic block approach’s extension called component object model COM+.

This structured language is also recognized by international standards bodies like European Computer Manufacturers Association (ECMA) and International Standards Organization (ISO) as a standard that led to various companies developing C# variations.

There are many high tech organizations such as, Apex Software, devSoft, FarPoint Technologies, Bunka Orient, Component Source, LEAD Technologies etc., that have
C# supported frameworks as a fundamental foundation.

How Does C# work?

C# works by combining the computing power and programming ease of C++  & Visual Basic to facilitate services and information’s smooth interchange on Web. The MS aimed to simplify programming through the integration of XML and simple object access protocol (SOAP) to allow developers to create highly scalable and portable applications.

The XML and SOAP specification provides programmers object and/or method programming accessibility without the need for additional code on every step of the program. Which makes C# programming swift and inexpensive because building on existing code instead of repeatedly duplicating the whole exercise makes for an expensive MO to bring forth new products and services.

General Features of C#

Due to the overall inspiration and the object oriented and component oriented inclination, the basic construct, thus features of C# are similar to
various high-level languages.

Yet, the general and distinguished classifications of wide ranging C# features set the language apart from other programming languages in terms of variety of functions that translates in highly competitive programs and software applications.

Some of the general C# programming features include:

  • Simple
  • Modern Programming Language
  • Object Oriented
  • Type Safe
  • Interoperability
  • Scalable and Updateable
  • Component Oriented
  • Structured Programming Language
  • Huge Library
  • Speed

These are only few of the general features for a multi-paradigm
programming language like C# include long arrays of programming disciplines. Each comes with its own set of features to be able to make the C# implementations supportive of software engineering principles.

This compatibility facilitates the development of software components that can be deployed in any distributed environment. The process for all the meticulous engineering requires exceptional features to assist the programmers in their developing endeavors.

The distinguished category of frequently used C# features include:

  • Boolean conditions
  • Automatic garbage collection
  • Meta programming
  • Delegates and events management
  • Probability
  • Indexers
  • Conditional compilation
  • LINQ and lambda expressions

Exclusivity of C#

Since 2002, the time of C# inception with .Net framework 0.1, the language is continuously being subjected to revisions in coordination with .NET updates to now become one of the most popular programming languages that creates Windows programs as well as web applications. Although, to an extent C# is a derivative of C and C++ and naturally has similar operators, object oriented case sensitivity, identical syntax etc., there are some major distinctions that sets this multi-paradigm language apart from all its applied languages.

Following are some of the noticeable differences between C# and C++:

  • The pointers of C or C++ e.g., are used as objects with methods and properties in C# programming.
  • C# does not recognize data types such as Boolean or bool as
    integer like other languages do.
  • The representation, function, and call upon of many keywords like typedef, default, extern, delegate, static etc., are completely different in C# than they are in any of the inspired programming languages.
  • The case to case fall through of switch statement in C or C++ programming is not supported by C#.
  • C++ support for global variables and methods does not extend
    to C# programming.

Since C# was designed for specific Microsoft's .Net framework, the developers have access to not only feature of C# itself but to all the features of .Net application programming interface (API).

While that serves to provide huge benefit, the .Net framework dependability also render C# applications run limited to platforms that are .Net runtime supportive platforms e.g., Windows, Windows server & phone etc., unless the codes for C# programs are first compiled through some conversion
tool like that of Microsoft .Net native.

What is .Net framework?

.Net framework - pronounced and often written as dot net – the Microsoft
developed software framework
to principally run on Microsoft applications. The .Net is central component to MS overall development strategies as well as its Java auxiliary in MS development environment. 

Its huge standard class library called framework class library (FCL) enables
wide ranging language interoperability among various programming languages where all the languages are compatible with codes written in other languages and yet be referred as managed code.

For the .Net framework performs in software exclusive environment like application virtual machine called common language runtime (CLR) – MS implementation of common language infrastructure (CLI) - that along with FCL sustain the whole platform.

While CLR facilitates security, exception handling, thread execution, and memory management services, the FCL enables development
of network communications, web application, and numeric algorithms by providing database connectivity, data accessibility, and user interface.

The MS has also created an integrated development environment called Visual Studio for Windows applications that are developed by aligning the .Net framework supported code with various libraries.

Principal Design Features of .Net Framework

The primary objective of .Net framework design is to increase the productivity and minimize the margin of programming errors through modular approach integration into the software structure. 

This MS software development framework provides Windows exclusive operating systems (OS) software’s smooth development, installation, and execution through controlled programming environment which is orchestrated by the following feature:

Interoperability:

It facilitates the accessibility for programs developed in .Net to the
functionalities of programs that are developed outside of .Net framework.

Common language runtime:

The CLR or sometimes also regarded as common runtime engine, streamlines the common behavior among .Net framework supported programs’ thread execution, memory usage, security management, and exception handling.

Language Independence:

This independence stemmed from common the specification of common language infrastructure enables data type exchangeability among programs that are developed by using various languages at the same time.

Base Class Library:

It is basically a code library comprised of several encrypted functions from common to exceptional usability to prevent code repetition or rewriting for same purpose. It allows programmer enhanced productivity and few errors.

Ease of Deployment:

.Net frameworks has number of in-built tools that ensure easy program deployment - installing to execution - without disrupting the environment created by formerly installed applications.

Security:

.Net security is known for its compelling solutions that are based on a transparent control security model. .Net developed software applications are put to through specific model for the code behavior monitoring in all circumstances for the purpose of risk mitigation in applications including client, web, and server-side.

How the .NET Framework works

The .Net framework is a concentrated developer platform which is comprised of several tools, libraries, programming languages, and features to develop widely varying applications. It works by compiling the source code of one language in an intermediate language (IL) that is usually put in disk storage in a file called assembly which can be executed.

Since .Net, MS developed programming infrastructure to develop, deploy, and run multiple services and applications e.g., desktop and web app that are based on .Net technologies, the assembly file contains directions of information for security and type of used code. After the assembly file is uploaded and validated by the CLR, the IL compiled code is interpreted to become instructions written in native machine code.

The .Net framework utilizes three principal process fragment that include:

  • Common language runtime
  • Framework class library
  • ASP.Net

Implementations of .Net framework

.NET Framework led to a grand family of multiple .NET platforms e.g., Net, .Net framework, and .Net core - beside the primary implementation of entire MS .Net technologies that are designed exclusively to accommodate object code regardless of the storage and execution - that are individually focused on:

  • Mobile computing
  • Embedded devices
  • Alternative operating systems
  • Web browser plug-ins

The .Net framework is consisted of various implementations that allow codes developed in this MS environment to execute in number of different platforms such as, Linux, macOS, Windows, iOS, Android etc. Following are some of the most frequently used .Net implementations that include:

.Net framework is the primary implementation of whole .Net family which is used to support websites functionality, web & desktop app development, delivery of numerous IT services, and much more on Windows operating systems.

.NET Core is an open source cross-platform implementation that also supports websites functions, IT services along with the development of console apps on not only Windows, but also on Linux and macOS. 

Xamarin/Mono is .Net framework’s developer platform for mobile implementation that supports application development, running, and
functionalities on almost all of the major mobile operating systems, including iOS, Android, tvOS, watchOS, macOS etc.

.NET Standard is a not an implementation itself but is more of an API
specification that lies across all .Net implementations for the purpose of
facilitating the usability of the same code and libraries to smoothly run on
number of different implementations.

There is also a reduced version of .Net framework known as .Net compact
framework which is available for various Windows CE platforms along with Windows mobile devices e.g., smartphones. This micro variation of .Net framework was developed to basically encompass devices that are extremely resource constrainedly embedded. Some of the compacted .Net
implementations include:

  • Silverlight – essentially a web browser plugin 
  • Mono - is compatible with variety of web operating systems and smartphone operating systems such as, android, iOS etc., along with being customizable into game engines. 
  • .NET Core - is focused on cloud computing, cross platform suitability, and universal Windows platform (UWP) accessibility.

Advantages of C# & .Net programming

  • C# being object-oriented language allows modular application development and code reusability.
  • The CLR integration makes for C# programs’ smooth assimilation with code component from other languages.
  • The .Net framework support make C# programming interpretable among all .Net technologies. 
  • Due to the formal all-set method approach, the C# coding becomes significantly more intelligible and eliminates the need to be concerned about header files.
  • The massive choice of Microsoft stack and rich library, the C# provides tool for just about every function and implementation which allow programmers to freely experiment with new compositions and code compilation.
  • The .Net framework provides in-house MS support for C# programming which is quite unlike other languages where programmers are solely dependent on communities for support.
  • Backward compatibility arises from Microsoft continuous discarding of old Window platform which requires .Net framework upgrade. The externally instilled need to incessantly improve the configuration serves to give user afresh motivation to work hard.