# data[].attributes.attachment_link.title
.NET Development Company | ASP.NET Development Services

# data[].attributes.attachment_link.description
We are an experienced .NET development company that offers ASP.NET application & web development, integration & migration services to develop robust .NET solutions.

# data[].attributes.attachment_link.readable_text
What is .NET? You might have heard of .NET, .NET Core, the .NET Framework, and even ASP.NET. That can make the entire concept of .NET a little confusing. All these technologies are related to each other, but they're not the same platform. Rather, they're all parts of a larger ecosystem that Microsoft has supported for many years.

Today, there are likely to be at least 7 to 8 million .NET developers globally, with an average salary of $93,076 a year . C#, F#, and Visual Basic programmers can all benefit from the knowledge of the .NET platform. Not only is it a versatile system, but it has a tremendous amount of community support.

In this article, we will take a deeper look at .NET, the .NET Framework, and what makes .NET technology so important.

What is .NET?

Released in 2016, Microsoft .NET (previously known as .NET Core) is an open-source, cross-platform iteration of the previous .NET Framework.

.NET can be used to build a wide variety of applications, including desktop apps, mobile apps, games, web apps, and IoT devices. Because it's open-source, .NET can also take advantage of numerous libraries, languages, and editors.

Programmers can write .NET applications using the C#, Visual Basic, or F#. Applications can then be pushed from .NET to Windows, Linux, or MacOS. Furthermore, .NET has a highly active community of thousands of developers. With such a vibrant community, there's an extensive library of resources available for both beginners and advanced users.

Many conflate .NET with Microsoft Visual Studio and Visual Basic. It's easy to see why.

.NET and Visual Studio are used together to create applications. So, a programmer's primary experience with .NET may occur in the Visual Studio platform.

But they are not the same thing. .NET is the application development tool designed for writing applications, whereas .NET also encompasses the ecosystem and infrastructure designed to support those applications.

What is .NET Framework?

The .NET Framework was an earlier iteration of .NET. It was released in 2002 and only worked on Microsoft Windows for Microsoft Windows application development.

Essentially, the .NET Framework was a framework that Microsoft designed for programming Microsoft Windows applications on Microsoft Windows devices. It has since been replaced by services such as Microsoft's K2.

Originally, .NET was not an open-source product. The .NET Framework was a proprietary solution. But since then, Microsoft has embraced a more open-source methodology and has opened up many of its platforms. The .NET Framework released in 2019 was the last proprietary version of .NET.

What Does .NET Framework Do?

When first conceived and released, the .NET Framework provided a standardized software development framework to facilitate Microsoft Windows development. Today, the .NET product provides an open-source development framework for multiple channels. Developed by the .NET Foundation and released under the MIT License, the .NET Framework is intended to make developing easier, faster, and more consistent.

There is a tremendous ecosystem connected to .NET, including:

WPF (Windows Presentation Foundation). A user-interface tool that helps in designing Windows OS and Desktop applications.

Windows Forms. The .NET Framework GUI Library, which can be used for Windows desktop applications.

ASP.NET Forms. A web application framework that helps in designing secure and accessible web-based applications.

Many developers find .NET a very powerful technology, especially now that it has become open-source. But again, it shouldn't be confused with Visual Studio, though the Visual Studio tool is the most visible component of the ecosystem. A key difference is that Visual Studio actually supports more languages: HTML, CSS, JavaScript, PHP, and Python.

What is .NET Used For?

.NET includes a number of critical components that facilitate development:

Application frameworks and libraries.

Runtime components and language compilers.

Support for languages such as C#, F#, and Visual Basic.

Tools such as Visual Studio.

.NET can be used to create desktop applications, web applications, mobile apps, cloud-native applications, games, and Internet of Things (IoT) devices.

Because .NET has such incredible breadth, it's sought after within many industries. A .NET programmer will find themselves extremely in demand.

At the same time, .NET is just a framework. To produce an end product with .NET, a developer has to know one of the corresponding languages - C#, F#, or Visual Basic.

What Are the Pros and Cons of .NET?

.NET is used by many developers. It's easy to see why. There are a lot of positives:

The Visual Studio IDE. The Visual Studio IDE is an easy-to-use development environment that can support C#, F#, or Visual Basic. Through the IDE, developers will be able to quickly identify syntax or grammar issues and will be able to compile their programs quickly.

Cross-Platform Development. .NET can be used to develop for Windows, Linux, or MacOS, making it a useful cross-platform solution. When .NET is used for web apps, it can be used to create completely platform-agnostic applications.

Open Source Development. .NET became much more powerful when it became an open-source solution. As an open-source solution, it has the support of an extremely large community and has experienced many improvements throughout the years.

Object-Oriented Programming. Object-oriented programming makes development easier, faster, and more consistent for developers.

Language Support. As C#, F#, and Visual Basic programmers can all use .NET, it's a very versatile solution.

Universal .NET Standards. The standardization of .NET has been baked in for many years - it's one of the most important components to the .NET Framework and the .NET system. Universal standards make it easier for libraries and components to be designed for .NET, growing the .NET ecosystem.

Community Support. .NET has extraordinary community support. Not only does that mean that documentation is readily available, but it also means that there are code snippets, lessons, courses, and other resources.

But that doesn't mean the solution is perfect. There are downsides, too:

Some Licensing Requirements. Not the entire ecosystem is open source. Some tools do require licensing, especially those that are released and distributed by Microsoft. Microsoft retains control over the product through the Microsoft Foundation.

Memory Leaks. .NET has been known to experience memory leaks as well as issues caching. Of course, this is an issue for many languages - it's not exclusive to .NET. Still, developers who are trying to produce lean products may be more inclined to use another language.

Language. Though .NET does support programming in C#, F#, and Visual Basic, it doesn't support all major programming languages. Developers who program in Java or Python, for instance, will not be able to program in .NET without learning another language entirely.

Some developers consider .NET an archaic or antiquated technology. While this may be true for earlier versions of the .NET Framework, .NET continues to grow and advance as an open-source product fueled by an active community.

How Can You Learn .NET Programming?

Programmers can develop for .NET with C#, F#, or Visual Basic.

.NET Alternatives

.NET is a broad development framework. So, there are a lot of competitors that might be used in tandem to replace its functionality.

One example is the Linux, Apache Server, MySQL, and PHP stack. These are four technologies that can replace a .NET web application. But these are not, in themselves, a framework; to create an actual framework, a PHP MVC framework such as CakePHP would also need to be added.

Other .NET alternatives include:

K2 Software. Microsoft's K2 Software is a proprietary solution that makes it easier to create business applications.

Pega Platform. A software development kit that makes it easier to quickly build applications through visually-driven application development.

OnBase by Hyland. An enterprise content management and project management system geared toward creating usable platforms.

IntelliJ IDEA. A Java-based integrated development environment designed for creating computer software, available in a commercial and non-commercial edition.

As a development framework, the extensiveness and reach of .NET are quite unique. Because it was first developed as a Microsoft-centered methodology of creating Windows applications, it's designed as a fully-featured suite geared toward a singular purpose.

Today, it's far more extensible and flexible. But the .NET ecosystem still represents one of the most feature-complete development systems.

Learning .NET: Taking the Next Steps

So, what is .NET? .NET is an open-source software development framework. .NET is used to build web applications, mobile applications, and desktop applications. The development framework supports C#, F#, and Visual Basic - and it produces fully cross-platform applications.

There's a lot of promise in .NET technology. Through the .NET ecosystem, a software developer can get essentially everything they need in a single, compact system. Visual Basic, ASP.NET, and the .NET Framework; all work together to help create a cohesive development kit.

If you're interested in learning .NET, you should first know one of its three core languages - such as Visual Basic . From there, you can take lessons in .NET, attend a bootcamp, or sign up for a course.

# data[].attributes.attachment_link.title
What is .NET? Why You Should Use This Framework

# data[].attributes.attachment_link.description
In this article, we will take a deeper look at .NET, the .NET Framework, and what makes .NET technology so important.

# data[].attributes.attachment_link.readable_text
You've probably heard the phrase "dot-net framework," but do you know what it is or what it is used for?

The .NET Framework is an essential component of many custom applications. If your firm is building customer apps, of if you're sourcing custom apps to integrate with your systems, you need to understand what .NET Framework is and how it works.

Key takeaways

The .NET Framework is an open-source platform for developing Windows-based applications, often referred to as Microsoft .net

The .NET Framework includes a variety of developer tools and class libraries

The .NET Framework works with applications developed in C#, F#, Visual Basic, and other popular programming languages

You can use the .NET Framework to develop both web-based and forms-based apps, as well as apps that integrate with major database platforms

Understanding .NET Framework

The .NET Framework is a software development platform designed especially for building Windows-based applications. It was developed by Microsoft, which released the first version back in 2002. In the two decades since, .NET Framework became an essential part of custom applications used in companies around the world.

The .NET Framework itself includes its own set of developer tools and class libraries. It works with a variety of popular programming languages and can be used to build apps for a variety of platforms, including desktop, mobile, web, servers, and the Internet of Things (IoT). . The NET Framework can build form-based, web-based and database-based applications.

.NET Framework is related to .NET, a developer platform used to build apps across a variety of operating systems. Think of .NET Framework as a Windows-specific version of .NET.

There are no licensing costs or fees required to run the .NET Framework. It's completely free, even for commercial use. That's because .NET Framework, like.NET, is an open-source platform. The current stable release is .NET Framework 4.8.

10 reasons to use .NET Framework

The .NET Framework has become ubiquitous in the programming world, especially in the development of web-based and business applications. It was ranked the "most loved" framework in the 2020 Stack Overflow Development Survey, used by 71.5% of developers in the survey.

This ongoing popularity is because .NET Framework offers multiple benefits to developers, including the following ten:

1. Language compatibility

The .NET Framework works with a wide variety of programming languages, including:

C++

C#

F#

IronPython

IronRuby

Visual Basic

Visual COBOL

Developers can work in their language of choice and know that it's compatible with the .NET Framework.

2. Version compatibility

Unlike some other frameworks, older versions of .NET Framework are fully compatible with more recent versions. The old code works just fine when .NET upgrades-o modifications are necessary.

3. Portability

The .NET Framework is also extremely portable. All applications developed on the .NET Framework can work on any Windows platform. When .NET Framework is integrated into the larger .NET platform, developers can create apps that run on all major operating systems, including Linux, macOS, and Windows. That makes it easy for developers to create apps with cross-platform capability.

4. Speed

Another thing that developers like about .NET and the .NET Framework is that they're fast-really fast. According to the TechEmpower benchmark, .NET is faster than any competing web-application framework.
image source
5. Memory management

The .NET Framework uses the Common Language Runtime for application memory management. The CLR automatically identifies and closes unused system resources to free up memory at regular intervals.

6. Reliability

.NET Framework benefits from decades of use and development. Its reliability in running thousands of custom applications is unsurpassed.

7. Easy deployment

.NET Framework is also easy to deploy. The framework offers a variety of tools developers can use to package .NET applications. When these packages are distributed, they automatically install the application. Most developers use Microsoft's Visual Studio to code in .NET, but it also works in many IDE and code editors.

8. Large class library

The .NET Framework comes with a large class library of pre-tested code that developers can use in their apps. This Framework Class Library helps to increase developer productivity and minimize development time.

9. Side-by-side execution

Because the .NET Framework enables multiple versions of the Common Language Runtime to run on the same machine, developers can run different app versions side-by-side. This enables a comparison of different versions and eases troubleshooting.

10. Security

.NET Framework validates apps before granting access to the app or its source code. This results in an extremely secure development environment and apps that are more resistant to malicious actions.

Understanding the .NET Framework architecture

The .NET Framework architecture provides an execution environment that integrates a variety of compatible programming languages. In essence, the architecture works like this:

1. An application is written in one of a variety of compatible programming languages (the most popular being C#, F#, and Visual Basic)

2. The application is compiled to the Common Intermediate Language (CIL)

3. The Common Language Runtime (CLR) executes the application on the user's machine, converting the CIL to machine code

image source
Essential components of the .NET Framework

There are several essential components of the .NET Framework, including the Framework Class Library, the Common Intermediate Language and the Common Language Runtime.

Framework Class Library

The Framework Class Library (FCL) provides a variety of APIs and types that provide common functionality across apps. There are APIs for:

Reading files

Writing files

Connecting to databases

Types are provided for strings, numbers, dates, etc.

Common Intermediate Language

The Common Intermedia Language (CIL) stores code created by the source compliers. The compiled code is stored in files with a .DLL or .EXE extensions.

Common Language Runtime

The Common Language Runtime (CLR) is the Framework's execution engine. It executes the CIL code by converting it into machine languages. In addition to running the applications, it includes a variety of useful services, including:

App models in the .NET Framework

The .NET Framework supports a number of app models for building software applications. The most popular include:

ADO.net, used to develop applications that interact directly with databases, such as Microsoft SQL Server

ASP.Net, used to develop web-based applications that are served over the Internet and run inside users' web browsers

WinForms, used to develop forms-based applications that run on users' computers

Optimizely fully supports .NET and the .NET Framework

Optimizely's Digital Experience Platform fully supports both the latest versions of .NET (asp.NET Core) and the .NET Framework. This makes it easy to develop custom apps that fully integrate with Optimizely's software solutions. Talk to the experts at Optimizely to learn more about working with .NET Framework and the Optimizely platform.

The .NET Framework is an open-source platform for developing Windows-based applications, often referred to as Microsoft .net

The .NET Framework includes a variety of developer tools and class libraries

The .NET Framework works with applications developed in C#, F#, Visual Basic, and other popular programming languages

You can use the .NET Framework to develop both web-based and forms-based apps, as well as apps that integrate with major database platforms

1. An application is written in one of a variety of compatible programming languages (the most popular being C#, F#, and Visual Basic)

2. The application is compiled to the Common Intermediate Language (CIL)

3. The Common Language Runtime (CLR) executes the application on the user's machine, converting the CIL to machine code

ADO.net, used to develop applications that interact directly with databases, such as Microsoft SQL Server

ASP.Net, used to develop web-based applications that are served over the Internet and run inside users' web browsers

WinForms, used to develop forms-based applications that run on users' computers

# data[].attributes.attachment_link.description
Discover what .NET Framework is, how it works, what types of apps you can build with it, and why it's so popular.

# data[].attributes.attachment_link.readable_text
The .Net Framework is an open-source development platform. It is used to create a wide range of applications and accepts several coding languages. Since its launch, it has proven to be very advantageous to many businesses operating in diverse fields.

.Net is also a cross-platform framework that features large coding libraries that make it easier to create applications for desktops, mobile devices, and the web. This is an element that you should consider if you want to hire .Net developers.

As a business owner, proficient use of the .Net framework can increase your earnings in terms of partnership since most companies find it highly useful. Dot net has also been adopted across various industries due to its ease of use and versatility. Today, you will even find people going online to search for the skills needed for a .Net developer to become more acquainted with the sector.

What Is the .Net Framework?

As mentioned earlier, .Net is a development framework. It enables professionals to create mobile, web, IoT, cloud, and desktop applications. After its release by Microsoft back in 2002, it finally became a free and fully open-source platform in 2014. Today, the platform has more than a hundred thousand contributors worldwide. Some of the more prominent companies that use the platform to build software include UPS, GE Aviation, and Dell.

For a developer, .Net includes elements like reusable components, libraries, programming languages, and various tools that assist developers in creating, compiling, and deploying modern software for literally any niche.

Primary Components of the .Net Framework

Another aspect of the .Net framework is that it was designed to offer essential assistance for building web and form-based applications. It also helps to create other kinds of web services.

The two major components of the .Net Framework are as follows:

CLR (Common Language Runtime)

The CLR is the platform on which dot net applications are executed. It enables features like exception handling garbage collection, and most importantly, works in conjunction with several programming languages. In addition to C# and visual basic, the .Net framework can accommodate twenty-five different programming languages.

Framework Class Library

This element of the .Net framework includes several libraries, functions, and a collection of methods divided into system and Microsoft namespaces. For instance, whenever a file needs to be read or written, corresponding methods are equipped to deal with all file-level operations.

Advantages of the .Net Framework

As a development framework, .Net has managed to outshine other application development processes by building apps that run on more than one platform. This is achieved using less coding, early binding, caching services, and native optimization support features for higher performance. The platform also helps to eliminate memory leaks and offers simple code execution programs.

.Net is also capable of supporting several operating systems for secure web applications that host feature-rich apps and offer a good level of consistency, making it the preferred Framework for any company using dot net.

With that said, there are other advantages of using the .Net Framework. They are discussed below:

Reliability and Scalability

When it comes to developing commercial apps, the .Net framework for web development has proven to be very strong and trustworthy. This, in turn, has allowed it to be extensively utilized by small, medium, and big businesses.

In terms of reliability and scalability, it provides a solid foundation for improving business applications, making them fast and efficient with the help of Visual Studio. The ASP.Net web development framework also naturally adapts itself to the ever-changing web demands.

Flexibility

Flexibility is one of the primary advantages of the .Net framework. For instance, it can be deployed separately or integrated into your program. It is capable of performing such functions because its modular design considers all of the dependencies you will require. The other great thing about this is that the whole process is as simple as copying a folder.

Interoperability

Through invoke services, the .Net system framework can foster compatibility features with unmanaged programs. For instance, the runtime of C++ interoperability, COM interoperability, and InteropServices namespace all get better with time when one is using the dot net framework.

Security and Safety

Another essential advantage of the dot net framework is its ability to provide security and safety for all users, particularly business owners. This is accomplished by allowing them to obstruct barriers in their code through dot net mandated permissions and other enforcement types. Both these features also help prevent malicious code from getting information or stop it from engaging in any undesired activities.

To Conclude

Every business hopes to get ahead of its competitors; after all, it is the only way of ensuring your growth and survival in the market. One of the best ways of doing this is by making your applications better than those of your counterparts. However, with the advancement of technology frameworks, this task has become equally complicated for business owners. Today, they have to choose a framework that suits their industry. As a result, one should carefully consider the advantages of the dot net framework mentioned above. Doing so will enable you to make the right decision for your business.

# data[].attributes.attachment_link.title
Advantages of the .NET Framework - Guru Blog

# data[].attributes.attachment_link.description
As a development framework, .NET has managed to outshine other application development processes by building apps that run on more than one platform. The platform also helps to eliminate memory leaks and offers simple code execution programs. Continue reading to learn more about how .NET can benefit your business.

# data[].attributes.attachment_link.readable_text
C#'s design started on a blank page, taking into account the current state of programming languages. The designers drew on the strengths of existing languages and avoided their flaws. What emerged is a full-featured, object-oriented language of rare beauty and grace. Based on C, C++, and, most would say, Java, C# is a strongly typed language that C++ and Java developers will find very familiar. It is easy to learn and has none of the backward-compatibility issues of C or C++. Created for the .NET environment, C# has a thoroughly modern syntax with accessors (properties), a concept borrowed from COM, and new operators, such as implicit and explicit. While affording easy access to the framework's class library, it also allows direct memory and pointer access with the unsafe keyword. There is also talk of extending language support to templates, or parameterized types.

Among the stated design goals of the C# inventors, Anders Hejlsberg, Scott Wiltamuth, and Peter Golde, was the creation of a modern, simple, general-purpose programming language. They also intended to craft a language flexible enough to handle the contradictory demands of hosted and 10 C# Corner embedded systems running on distributed networks. As you become familiar with C#, you might agree that the inventors have more than succeeded.

You should be aware of an important limitation of C#: When exceptional or time-critical performance is required, it is probably wise to retreat to C or C++. In the C# specifications submitted to the ECMA, the section outlining C#'s design goals clearly states that C# is not intended to compete directly with C or assembly language on performance or executable file size.

Managed Code

Managed code is simply code written to execute in the .NET environment. Managed code offers a few benefits in terms of integrated security, type-safe code, and automatic memory allocation and deallocation.

In the .NET world, there is no delete keyword. No longer are hours, if not days, spent tracking down a stubborn memory leak. Memory allocation and deallocation is done via the common language runtime (CLR). This garbage collection is handled by the System.GC, which periodically walks the heap to clean up obsolete objects. Although you are not required to dereference objects with null, it is still good programming practice to do so; and it delivers added benefit in that the Garbage Collector (GC) is given early notice that the object is not needed.

Security is integrated into .NET from the ground up. With .NET comes support for role-based security and code access security. In traditional role-based security, authentication (the verification of a person or process) and authorization (a means of determining that a person or process is permitted to perform a requested process) are carried out by any one of many commonly used mechanisms, such as .NET Passport, NTLM, or an application-defined mechanism. Code access security takes a different approach. The idea behind this .NET innovation is that code itself can be malicious, as any victim of a virus or worm will attest. Code access security allows code behavior to be restricted by varying degrees, depending on the code's origin and identity.

Currently, most application boundaries are normally confined to the process level. Any communication outside of the process requires specialized handling such as a COM component. Application domains, a concept introduced in .NET, permit multiple applications to run in a single process. Before managed code runs, it goes through a verification procedure to establish that it will not access memory or perform an action that would cause the process to crash. If the code passes this verification, it is said to be type safe. Type-safe code allows the CLR to define application domains, which carry the same level of isolation and protection as a process. While not totally free of charge, interapplication communication, across application domains, avoids most of the performance penalties associated with interprocess communication.

Cross-Language Operation

The hurdle of calling methods across different languages is almost as high as the barrier to interaction between different operating systems. TCP/IP aided in communication between operating systems, just as COM components went a long way to facilitate cross-language conversations. But there were constraints. Visual Basic only has signed integer and long data types, while Unicode characters are not native to C++. In many instances, performance would suffer as data was converted or cast back and forth. In .NET, all compliant languages are equal; and, with Microsoft Intermediate Language (MSIL), all operating systems are potentially equal as well. Efforts toward platform independence are taking shape with the Mono Project, a .NET implementation on Linux. A .NET-compliant language is one that adheres to the Common Language Specification (CLS) and the Common Type System (CTS) laid out in the CLI. It is now possible to have C#, managed C++, and VB.NET code in the same module. Other compliant languages include J# (Java Sharp), Cobol, .NET and the .NET Framework 11 and Perl. MSIL has made programming languages transparent. Systems can be developed in the language or languages of choice.

Of course, becoming a compliant language might force some concessions to be made. Visual Basic appears to have mutated to such an extent that VB.NET could qualify as a new .NET language along with C#. C++ is confined to single inheritance. In all likelihood, other languages that adhere to the CLS will have minor restrictions placed upon them.

This newfound freedom may come at a cost. It brings to mind an old adage in the C world: C gives the developer plenty of freedom-enough to hang himself! In the same way, developing an application in multiple .NET languages sows the seeds for project failure. An application written using C#, VB.NET, J#, Cobol, and Perl requires an army of skill sets, rather than a cohesive team, to maintain the code. C# will likely be the language of choice for most projects, because of current and future features such as the unsafe keyword and possible support for templates. Other serious contenders are probably VB.NET and J#.

The Class Library

What can be said about the framework's class library? It is extensive and extensible. There is finally a consistent method to access system resources spanning the many .NET-compliant languages. Certainly, at first glance, the number of namespaces, classes, and interfaces can be daunting, and here seasoned C++ and Java developers will hit a learning curve. Developers migrating to the .NET Framework from C++ or Java should have an easier transition because they have already grasped object-oriented concepts. Those coming from a procedural language world, such as Visual Basic and Cobol, face a much sharper bend on the road to mastering the .NET Framework.

The class library is broken down into a hierarchy of namespaces. Each namespace's name describes its general purpose. Contained in each namespace are the classes and interfaces, which define specific behaviors and data that contribute to the namespace's functionality. The class library is not language specific and may used by any of .NET's compliant languages.

In conjunction with the CLR, the class library supports not only dynamic runtime binding but also dynamic compile-time binding. Although the term compile-time binding is open to debate, the practice isn't. If an object is not present, it is possible for an application to obtain the source code and compile it on the fly. Calling the compiler, in the System.CodeDom.Compiler namespace, with either a string or a file name returns a reference to the executable code. The results can then be loaded and the object's methods executed, thus giving a whole new meaning to late binding.

The class library is a comprehensive implementation that addresses 80 percent of problem domain needs with an out-of-the-box answer. But, as is always the case, a customized solution is the only alternative in some situations. In designing the class library, the developers paid a great deal of attention to extensibility. The library features a rich set of virtual and abstract classes and methods, as well as a wide range of interfaces to tackle any customization requirement.

Deployment

Windows application distribution has always been fraught with potential disaster. COM executables and DLLs have to be registered. Likely, every developer has had nightmares involving the Windows registry. Did I register everything? Are all the proxy/stubs accounted for? And that's only for local machine registry-in DCOM the proxy/stub has to be registered on both client and server machines. And if you're using a customized surrogate, you had better start writing an installation application. Microsoft describes this situation as "DLL Hell."

Updating shared DLLs is also a form of DLL Hell and commonly creates havoc. The newer DLL versions overwrite the current ones, or registration conflicts occur. The newer versions are backward-compatible with only some of the existing software. Consequently, some applications run normally while others inexplicably crash. Tracking down which DLL is the culprit and where the bug is can be a long, agonizing task. .NET eliminates the clash of old and new with assemblies.

An assembly, the name .NET uses for an executable or DLL, contains a manifest and metadata in addition to the compiled source code. Together, the manifest and metadata fully describe the contents of the assembly. Each assembly is a self-contained unit with compiled source code, a full description of the code and its dependencies, a version number, and security settings. Assemblies can be private or shared. In most cases, to install private assemblies, it is a simple matter of using XCOPY. To uninstall, use DEL. Shared assemblies require a bit more work and are discussed in detail in Chapter 26. Shared assemblies are installed in the global assembly cache (GAC).

Common Language Infrastructure

In previous sections, terms such as CLI and CTS have been bandied about without any explanation. Beginning with this section, we'll start to explore what makes .NET run. The CLI can be broken down into three main components:

Common Type System

The CTS lays out the basic data types in order for compiler designers to build a .NET-compliant language.

Common Language Specification

The CLS establishes the minimum set of rules to promote language interoperability. In conjunction with the CTS, it describes the contract all compilers must meet when targeting .NET.

Virtual Execution System

The VES is responsible for loading and running programs and providing services for those programs.

These three elements, and the use of metadata by the VES, constitute the CLI. Without putting too fine a point on it, the CLI can almost be thought of as specifications for a virtual operating system or machine. In the Windows world, the CLI comes to life in the CLR.

Metadata

Aside from the three main components, a fourth component in the CLI is metadata, or data about data. From a CLI perspective, metadata is information about every element in an assembly. The importance of metadata cannot be overstated. One feature of .NET that is well known to Java developers but unknown in the C++ world is reflection, the ability to interrogate assemblies and objects at runtime. Reflection enables dynamic creation and invocation.

Enough metadata is in an assembly that the CLR can control all aspects of execution, including loading, execution, and inspecting the execution state (i.e., walking the stack); enforcing security; and establishing runtime context boundaries (i.e., where one application domain begins and another ends).

Common Type System

The CTS is one of the cornerstones of .NET. This type system permits .NET to support multiple languages-a reasonable expectation, considering that languages have great difficulty interoperating if they are based on dissimilar types. This multilanguage support must take into account both procedural and object-oriented languages. How is this accomplished? The quick answer is that all types are objects.

Although the CTS is a hierarchy of types, as shown in Figure 2.1, it can be distilled down to two root types: value and reference. The single most distinguishing feature between these basic types is memory allocation. Value types are allocated on the stack, while reference types are allocated on the heap.
Figure 1: The CTS Type Hierarchy
Although accurate, the earlier statement that all types are objects is somewhat misleading. For each value type, the CTS supports a corresponding reference type. Therefore 2.ToString() is a valid statement.

The built-in value types consist of primitive types such as integers and longs. User-defined value types are types such as structures and enumerations. An object reference type can be said to be a class. An interface reference type has no implementation but simply defines method and property signatures that must be implemented by an object. A pointer reference type is a value that identifies a memory location in the heap.

Common Language Specification

The CLS defines the minimum requirements that must be realized before a language is considered .NET compliant. It is primarily of use to language and framework designers. It specifies a minimum subset of CTS types to be supported and a set of usage rules. From an application developer's perspective, where language interoperability is crucial, Table 2 lists the types supported by the CLS. This is likely to be the only instance where the CLS need be consulted.

Supported CLS types are only a small subset of defined CTS types. Keep this in mind if language interoperability is a requirement. C# supports unsigned and signed values, whereas VB.NET supports only signed types. Therefore, to be CLS compliant, a C# component should expose only signed types and use unsigned types only with an accessibility level of private or internal or as locally scoped variables. (This rule is opposite for int8 or Byte, whose unsigned value is CLS compliant and whose signed value is not).
Figure 2: The CTS type hierarchy
Common Intermediate Language

The Common Intermediate Language (CIL), more commonly known as Microsoft Intermediate Language (MSIL) or simply Intermediate Language (IL), is a CPU-independent instruction set that allows .NET to support multiple languages. It also has the potential to be operating system-independent as long as the platform can host an implementation of the CLI. The major difference between IL and Java's byte code is that IL is only an intermediate step on the path to execution. The Java Virtual Machine runs an application by interpreting its byte codes. .NET compilers, on the other hand, produce an assembly that is loaded by the CLR at runtime.

Common Language Runtime

The CLR provides the environment in which managed code is executed. In addition to implementing the CLI, the CLR adds Windows-specific functionality, such as security, GUI capabilities for the Win32 environment, and COM interoperability. Again, without stretching the point too far, the CLR may be perceived as a virtual machine but, in fact, it isn't. The CLR reads an assembly and compiles it to the native instruction set of the processor, via a Just-In-Time (JIT) compiler, prior to execution.

Figure 3 shows the sequence of steps taken to compile an assembly.

Before an application can run in the .NET environment, a runtime host, which is a stub of unmanaged code, must load and initialize the CLR. An example of such a host is aspnet_isapi.dll, an Internet Server API extension DLL that loads the CLR and creates the application domain for an application's subsequent ASP.NET Web requests. Various runtime hosts are currently distributed with the .NET Framework, including one for Microsoft Internet Explorer and one for all shell executable applications. It is likely that future versions of operating systems that support the CLR will have any required runtime hosts built in.

The sequence of loading and executing an application is graphically illustrated in Figure 4.
Figure 3: The C# Compiling Sequence
Once the CLR has been loaded and initialized and an application domain created, the application is ready to run. At this point, the CLR loads the application in the domain and then verifies that the IL compiled code is type safe. If verification fails, an exception is thrown. Verification can be skipped if a security policy (see Chapter 22 for a detailed explanation) is in place to do so. Once verification succeeds or is skipped, the JIT compiler compiles the IL to native code. 16 C# Corner Not all the code in an assembly is verified and compiled at the outset. The JIT converts the IL to native code as an object's methods are called during program execution. The resulting native code is cached and used for subsequent calls of the method. It does this by marking the method, which in turn points to subsequent calls to the binary code.

Conclusion

Hope this article would have helped you in understanding benefits of the .NET Framework. See my other articles on the website on .NET and C#.
Figure 4: Running an Application

# data[].attributes.attachment_link.description
In this article, I will explain about benefits of the .NET Framework.

# data[].attributes.attachment_link.readable_text
.NET Framework is a technology that supports building and running Windows apps and web services. .NET Framework is designed to fulfill the following objectives:

Provide a consistent, object-oriented programming environment whether object code is stored and executed locally, executed locally but web-distributed, or executed remotely.

Provide a code-execution environment that:

Minimizes software deployment and versioning conflicts.

Promotes safe execution of code, including code created by an unknown or semi-trusted third party.

Eliminates the performance problems of scripted or interpreted environments.

Make the developer experience consistent across widely varying types of apps, such as Windows-based apps and Web-based apps.

Build all communication on industry standards to ensure that code based on .NET Framework integrates with any other code.

Note

.NET Framework is serviced monthly with security and reliability bug fixes. .NET Framework will continue to be included with Windows, with no plans to remove it. You don't need to migrate your .NET Framework apps, but for new development, use .NET 6 or later.

.NET Framework consists of the common language runtime (CLR) and the .NET Framework class library. The common language runtime is the foundation of .NET Framework. Think of the runtime as an agent that manages code at execution time, providing core services such as memory management, thread management, and remoting, while also enforcing strict type safety and other forms of code accuracy that promote security and robustness. In fact, the concept of code management is a fundamental principle of the runtime. Code that targets the runtime is known as managed code, while code that doesn't target the runtime is known as unmanaged code. The class library is a comprehensive, object-oriented collection of reusable types that you use to develop apps ranging from traditional command-line or graphical user interface (GUI) apps to apps based on the latest innovations provided by ASP.NET, such as Web Forms and XML web services.

.NET Framework can be hosted by unmanaged components that load the common language runtime into their processes and initiate the execution of managed code, thereby creating a software environment that exploits both managed and unmanaged features. .NET Framework not only provides several runtime hosts but also supports the development of third-party runtime hosts.

For example, ASP.NET hosts the runtime to provide a scalable, server-side environment for managed code. ASP.NET works directly with the runtime to enable ASP.NET apps and XML web services, both of which are discussed later in this article.

The following illustration shows the relationship of the common language runtime and the class library to your apps and to the overall system. The illustration also shows how managed code operates within a larger architecture.

The following sections describe the main features of .NET Framework in greater detail.

Features of the common language runtime

The common language runtime manages memory, thread execution, code execution, code safety verification, compilation, and other system services. These features are intrinsic to the managed code that runs on the common language runtime.

Regarding security, managed components are awarded varying degrees of trust, depending on a number of factors that include their origin (such as the Internet, enterprise network, or local computer). This means that a managed component might or might not be able to perform file-access operations, registry-access operations, or other sensitive functions, even if it's used in the same active app.

The runtime also enforces code robustness by implementing a strict type-and-code-verification infrastructure called the common type system (CTS). The CTS ensures that all managed code is self-describing. The various Microsoft and third-party language compilers generate managed code that conforms to the CTS. This means that managed code can consume other managed types and instances, while strictly enforcing type fidelity and type safety.

In addition, the managed environment of the runtime eliminates many common software issues. For example, the runtime automatically handles object layout and manages references to objects, releasing them when they are no longer being used. This automatic memory management resolves the two most common app errors, memory leaks and invalid memory references.

The runtime also accelerates developer productivity. For example, programmers write apps in their development language of choice yet take full advantage of the runtime, the class library, and components written in other languages by other developers. Any compiler vendor who chooses to target the runtime can do so. Language compilers that target the .NET Framework make the features of the .NET Framework available to existing code written in that language, greatly easing the migration process for existing apps.

While the runtime is designed for the software of the future, it also supports software of today and yesterday. Interoperability between managed and unmanaged code enables developers to continue to use necessary COM components and DLLs.

The runtime is designed to enhance performance. Although the common language runtime provides many standard runtime services, managed code is never interpreted. A feature called just-in-time (JIT) compiling enables all managed code to run in the native machine language of the system on which it's executing. Meanwhile, the memory manager removes the possibilities of fragmented memory and increases memory locality-of-reference to further increase performance.

Finally, the runtime can be hosted by high-performance, server-side apps, such as Microsoft SQL Server and Internet Information Services (IIS). This infrastructure enables you to use managed code to write your business logic, while still enjoying the superior performance of the industry's best enterprise servers that support runtime hosting.

.NET Framework class library

The .NET Framework class library is a collection of reusable types that tightly integrate with the common language runtime. The class library is object oriented, providing types from which your own managed code derives functionality. This not only makes the .NET Framework types easy to use but also reduces the time associated with learning new features of the .NET Framework. In addition, third-party components integrate seamlessly with classes in the .NET Framework.

For example, the .NET Framework collection classes implement a set of interfaces for developing your own collection classes. Your collection classes blend seamlessly with the classes in the .NET Framework.

As you would expect from an object-oriented class library, the .NET Framework types enable you to accomplish a range of common programming tasks, including string management, data collection, database connectivity, and file access. In addition to these common tasks, the class library includes types that support a variety of specialized development scenarios. You can use .NET Framework to develop the following types of apps and services:

The Windows Forms classes are a comprehensive set of reusable types that vastly simplify Windows GUI development. If you write an ASP.NET Web Form app, you can use the Web Forms classes.

See also

# data[].attributes.attachment_link.title
Overview of .NET Framework - .NET Framework

# data[].attributes.attachment_link.description
Read an overview about .NET Framework, which is a technology that supports building and running Windows apps and web services.