.NET Framework FundamentalsLevel – 200Duration – 60 minutesTheory session : .NET Framework FundamentalsLevel – 200Duration – 60 minutesTheory session Design and Presentation : CareerFruits – path to success…© CareerFruits Inc. All rights reserved. PART 1 of 2
Agenda : Agenda .NET Framework Design Goals
High level .NET Architecture
.NET Versions
.NET Execution Model
CLR - Overview
Managed Vs Unmanaged Code
Metadata and Reflection
Framework Base Classes
.NET Framework – What /Why? : .NET Framework – What /Why? The .NET Framework is an integral Windows component that supports building and running the next generation of applications and XML Web services.
Objectives
To provide a consistent object-oriented programming environment
To provide a code-execution environment that
minimizes software deployment and versioning conflicts
promotes safe execution of code
eliminates the performance problems of scripted or interpreted environments
To make the developer experience consistent across widely varying types of applications
To build all communication on industry standards to ensure that code based on the .NET Framework can integrate with any other code
.NET Design Goals : .NET Design Goals Component Infrastructure
Language Integration
Simplified Development
Simplified Deployment
Reliability
Interoperability
Security
Portability
.NET Framework Layers : .NET Framework Layers Windows Platform Common Language Runtime(CLR)
(debug, exception, CTS, Memory Management, Life Cycle Management) Framework Base Classes
(IO, net, security, threading, text, reflection, collections etc.) Web Services Web Forms
(ASP. NET) Windows Forms .NET Framework
.NET Framework Versions : .NET Framework Versions http://en.wikipedia.org/wiki/.NET_Framework_version_list
CLI – Common Language Infrastructure : CLI – Common Language Infrastructure The purpose of the CLI is to provide a language-agnostic
platform for application development and execution, including
functions for exception handling, garbage collection, security,
and interoperability.
Microsoft's implementation of the CLI is called the Common Language Runtime, or CLR. The CLR is composed of four primary parts:
Common Type System (CTS)
Common Language Specification (CLS)
Metadata
Virtual Execution System (VES)
The Common Language Runtime : The Common Language Runtime The common language runtime provides an execution environment for .NET Framework applications
The common language runtime includes these features:
Common type system
Just-in-time compiler
Security support
Garbage collection and memory management
Class loader
COM interoperability
CLR Features : CLR Features 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.
Architecture of the .NET Framework : Architecture of the .NET Framework Others VB C# VB compiler C# compiler Microsoft Intermediate Language (MSIL) Etc… Common Language Runtime (CLR) Win32 API CLS Compiler MyClass Source Code Compiler Operating System Base Class Libraries
Execution model : Execution model VB.NET MC++ C# MSIL code
(plus metadata) Loader/verifier Uncompiled
method call Language compilers .NET languages JIT compiler
Managed Vs Unmanaged Code : Managed Vs Unmanaged Code
Managed Code – What? : Managed Code – What? Gets benefits from CLR features
cross-language integration
cross-language exception handling
enhanced security
versioning and deployment support
a simplified model for component interaction
debugging and profiling services.
What is a .NET Assembly? : What is a .NET Assembly? Unit of deployment
MSIL code is housed in .NET assemblies
Assemblies are stored in the Portable Executable (PE) format, common on the Windows platform for all DLL and EXE files
The assembly consists of one or more files, but one of these must contain the manifest, which has the metadata for the assembly
What is Metadata? : What is Metadata? Metadata is machine-readable information about a resource, or "data about data.“
In .NET Metadata includes:
type definitions
version information
external assembly references
other standardized information
Metadata is usually generated by language compilers but developers can create their own metadata through custom attributes.
More about Metadata : More about Metadata language compilers emits metadata that describes the types, members, and references in your code.
Metadata is stored with the code; every loadable common language runtime portable executable (PE) file contains metadata.
As part of their metadata, all managed components carry information about the components and resources they were built against
The runtime uses metadata to locate and load classes, lay out instances in memory, resolve method invocations, generate native code, enforce security, and set run-time context boundaries
Reflection Overview : Reflection Overview All types in the CLR are self-describing
CLR provides a reader and writer for type definitions
System.Reflection & System.Reflection.emit
You can ‘read’ programs
You can map between type systems
You can interrogate objects and types inside a running program
.NET Reflection Core Concepts : .NET Reflection Core Concepts Metadata
Single location for type information and code
Code is literally contained within type information
Every .NET object can be queried for its type
Types' metadata can be explored with Reflection
Dynamic Type System
Highly dynamic and language independent
Types may be extended and built at run-time
Allows on-the-fly creation of assemblies
.NET Compilers use .NET to emit .NET code
Manifest : Assembly Metadata : Manifest : Assembly Metadata Metadata that describes everything about the assembly, including
Its identity,
list of files belonging to the assembly,
references to external assemblies,
Exported types,
exported resources
permission requests.
In short, it describes all the details that are required for component plug-and-play.
.NET Framework Class Library : .NET Framework Class Library Collection of reusable types
tightly integrate with the common language runtime.
object oriented, providing types from which your own managed code can derive functionality.
enable you to accomplish a range of common programming tasks, including tasks such as string management, data collection, database connectivity, and file access
includes types that support a variety of specialized development scenarios.
What Are Namespaces? : What Are Namespaces? What Are Namespaces?
Namespaces are collections of names that are organized in functional groupings, such as classes, interfaces, and enumerators
Namespaces are used in everyday life and in computing
How Are Namespaces Referenced? : How Are Namespaces Referenced? Classes and types are packaged as assemblies
A namespace can be partitioned over several assemblies
An assembly can contain types from several namespaces
Assemblies are an important part of the .NET Framework
To add a reference to an assembly in your project:
In Solution Explorer, right-click the References folder
Select the assembly you require
Application Type and Services : Application Type and Services Console applications
Windows GUI applications (Windows Forms)
Windows Presentation Foundation (WPF) applications
ASP.NET applications
Web services
Windows services.
Service-oriented applications using Windows Communication Foundation (WCF)
Workflow-enabled applications using Windows Workflow Foundation (WF).
Resources and Next Steps : Resources and Next Steps Attend Part II
C# Language Programming
Ask Questions
Articles
MSDN Links
Study Material @CareerFruits
Provide Feedback