net framework & c#
DESCRIPTION
.NET Framework & C#. .NET Framework Problem background Solution Common Language Runtime (CLR) MS Intermediate Language MSIL Structure MSIL and Java bytecode Introduction to C# language C# Structure C# Features. Problems Background. Good code is hard to write - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: NET Framework & C#](https://reader036.vdocuments.mx/reader036/viewer/2022081501/5681492d550346895db66993/html5/thumbnails/1.jpg)
.NET Framework&C#
![Page 2: NET Framework & C#](https://reader036.vdocuments.mx/reader036/viewer/2022081501/5681492d550346895db66993/html5/thumbnails/2.jpg)
.NET FrameworkProblem backgroundSolutionCommon Language Runtime (CLR)
MS Intermediate LanguageMSIL StructureMSIL and Java bytecode
Introduction to C# languageC# StructureC# Features
![Page 3: NET Framework & C#](https://reader036.vdocuments.mx/reader036/viewer/2022081501/5681492d550346895db66993/html5/thumbnails/3.jpg)
Problems Background Good code is hard to write All system features in any language COM problems Platform Interoperability Automatic memory management Object-Oriented features in and between all PLs Safety & Security Better Access to OS functions Interoperate with COM (both as client & server)
![Page 4: NET Framework & C#](https://reader036.vdocuments.mx/reader036/viewer/2022081501/5681492d550346895db66993/html5/thumbnails/4.jpg)
Solution (Common Language Runtime) Managed Code in Common Language Runtime
Requests for existing feature New CLR-Only Feature
Common Language Runtime
Managed Code
Win 32 OS
![Page 5: NET Framework & C#](https://reader036.vdocuments.mx/reader036/viewer/2022081501/5681492d550346895db66993/html5/thumbnails/5.jpg)
Solution (Microsoft Intermediate Language)Different Languages are Compiled into MSIL
Source code :Any languages
MS IntermediateLanguage
Platform specificcode
Development tools
Just-In-Time
compiler
![Page 6: NET Framework & C#](https://reader036.vdocuments.mx/reader036/viewer/2022081501/5681492d550346895db66993/html5/thumbnails/6.jpg)
.Net platform features
Automatic memory management Explicit Versioning OO features in any languages Accessing system functionality throw a
hierarchical namespace Code security Interoperability with COM
![Page 7: NET Framework & C#](https://reader036.vdocuments.mx/reader036/viewer/2022081501/5681492d550346895db66993/html5/thumbnails/7.jpg)
Costs:
OS got harder to write More memory and CPU time
![Page 8: NET Framework & C#](https://reader036.vdocuments.mx/reader036/viewer/2022081501/5681492d550346895db66993/html5/thumbnails/8.jpg)
CLR structure
![Page 9: NET Framework & C#](https://reader036.vdocuments.mx/reader036/viewer/2022081501/5681492d550346895db66993/html5/thumbnails/9.jpg)
Compare with traditional waysC# VB C++ J-script other
Compiler
Intermediate Language
JIT econoJIT PreJIT
Executables
.NET CLR
Compiler
C++
Executable
Existing OS
Machine hardware
![Page 10: NET Framework & C#](https://reader036.vdocuments.mx/reader036/viewer/2022081501/5681492d550346895db66993/html5/thumbnails/10.jpg)
A simple example
![Page 11: NET Framework & C#](https://reader036.vdocuments.mx/reader036/viewer/2022081501/5681492d550346895db66993/html5/thumbnails/11.jpg)
Imports Microsoft.VisualBasic
' Declare the namespace that clients will use to access ' the classes in this component
Namespace TimeComponentNS
Public Class TimeComponent
Public Function GetTime(ByVal ShowSeconds As Boolean) As StringIf (ShowSeconds = True) Then
Return Now.ToLongTimeString Else Return Now.ToShortTimeString End If End Function End ClassEnd Namespace
TimeComponent.vb
![Page 12: NET Framework & C#](https://reader036.vdocuments.mx/reader036/viewer/2022081501/5681492d550346895db66993/html5/thumbnails/12.jpg)
using System ;using TimeComponentNS ;
class MainApp { public static void Main()
{
// Declare and create a new component of the class // provided by the VB server we wrote
TimeComponent tc = new TimeComponent ( ) ;
// Call the server's GetTime method. Write its // resulting string to a console window.
Console.Write (tc.GetTime (true)) ; }}
Timeclient.cs
![Page 13: NET Framework & C#](https://reader036.vdocuments.mx/reader036/viewer/2022081501/5681492d550346895db66993/html5/thumbnails/13.jpg)
Assembly
A logical collection of one or more exe and dll file containing an application’s code and resources
It contains
1-Codes in MSIL
2-Manifest
A metadata description of the code and resources
![Page 14: NET Framework & C#](https://reader036.vdocuments.mx/reader036/viewer/2022081501/5681492d550346895db66993/html5/thumbnails/14.jpg)
Metadata
What classes and method it contains What external objects it requires What version of code it represents
![Page 15: NET Framework & C#](https://reader036.vdocuments.mx/reader036/viewer/2022081501/5681492d550346895db66993/html5/thumbnails/15.jpg)
Manifest example (TimeComponent.dll).assembly extern mscorlib{ .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4.. .ver 1:0:2411:0}.assembly extern Microsoft.VisualBasic{ .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: .ver 7:0:0:0}.assembly TimeComponent{ .hash algorithm 0x00008004 .ver 0:0:0:0}.module TimeComponent.dll// MVID: {144ACC38-E825-45C4-83A6-C2A9E5A901DD}.imagebase 0x00400000.subsystem 0x00000002.file alignment 512.corflags 0x00000001// Image base: 0x032a0000
![Page 16: NET Framework & C#](https://reader036.vdocuments.mx/reader036/viewer/2022081501/5681492d550346895db66993/html5/thumbnails/16.jpg)
Private or Public
Private
In client directory Public (shared)
In Global Assembly Cache (GAC)
\\winnt\assembly
![Page 17: NET Framework & C#](https://reader036.vdocuments.mx/reader036/viewer/2022081501/5681492d550346895db66993/html5/thumbnails/17.jpg)
Namespaces
A logical division within which a name need to be unique
The best way to handle a large list of system objects and functions
System namespace (implemented in several separated DLLs
We can import a namespace Your code can have its own namespace
![Page 18: NET Framework & C#](https://reader036.vdocuments.mx/reader036/viewer/2022081501/5681492d550346895db66993/html5/thumbnails/18.jpg)
Versioning
DLL Hell
Replacing a DLL used by an existing client, with a newer version (or vice versa)
.NET provides a standard way to specify
version Each client assembly uses its own
specified versions of related assemblies
![Page 19: NET Framework & C#](https://reader036.vdocuments.mx/reader036/viewer/2022081501/5681492d550346895db66993/html5/thumbnails/19.jpg)
Object oriented programming
Whether to smarten up non-object oriented languages or dump down OO languages
.NET provides all languages with inheritance and constructors features
Virtual Object Model
![Page 20: NET Framework & C#](https://reader036.vdocuments.mx/reader036/viewer/2022081501/5681492d550346895db66993/html5/thumbnails/20.jpg)
All .NET classes inherit from the base class System.Object Equals GetHashCode GetType ToString
![Page 21: NET Framework & C#](https://reader036.vdocuments.mx/reader036/viewer/2022081501/5681492d550346895db66993/html5/thumbnails/21.jpg)
Cross-language inheritance
Because of the standardized IL architecture
you can inherit form a class in another
language
For example:
System.Object
![Page 22: NET Framework & C#](https://reader036.vdocuments.mx/reader036/viewer/2022081501/5681492d550346895db66993/html5/thumbnails/22.jpg)
.NET memory management
.NET CLR provides all languages with automatic memory management.
Garbage collector automatically removesunreferenced objects
You can force a garbage collection manually
![Page 23: NET Framework & C#](https://reader036.vdocuments.mx/reader036/viewer/2022081501/5681492d550346895db66993/html5/thumbnails/23.jpg)
Interoperability with COM objects
.NET Supports interoperation with COM object as client or server via a runtime callable wrapper or a COM Callable Wrapper
![Page 24: NET Framework & C#](https://reader036.vdocuments.mx/reader036/viewer/2022081501/5681492d550346895db66993/html5/thumbnails/24.jpg)
Using COM objects from .NET objects
![Page 25: NET Framework & C#](https://reader036.vdocuments.mx/reader036/viewer/2022081501/5681492d550346895db66993/html5/thumbnails/25.jpg)
Using .NET objects from COM objects
![Page 26: NET Framework & C#](https://reader036.vdocuments.mx/reader036/viewer/2022081501/5681492d550346895db66993/html5/thumbnails/26.jpg)
Transaction in .NET
Transaction ensure the integrity of databases during complex operations
Native .NET objects can also participate in transactions with a simple attribute
![Page 27: NET Framework & C#](https://reader036.vdocuments.mx/reader036/viewer/2022081501/5681492d550346895db66993/html5/thumbnails/27.jpg)
Structured exception handling .NET provides structured exception
handling as a fundamental feature available in and between all languages
The exception handler can tell exactly where the exception originated by using a stack trace
![Page 28: NET Framework & C#](https://reader036.vdocuments.mx/reader036/viewer/2022081501/5681492d550346895db66993/html5/thumbnails/28.jpg)
Code access security Most software comes from web A user doesn’t know whether a Web code is safe
or not .NET allows an administrator to specify
privileges that each managed code has. You can specify these privileges in three level
by modifying XML-based files Enterprise Machine User
\\winnt\microsoft.net\framework\[c.v.]\config\