KEMBAR78
3.0 Introduction to .NET Framework | PPTX
Introduction to Microsoft .NET
Framework 4.0
Abd El-Rahman Hosny Mohammed
Microsoft Student Partner.
4th Grade – Faculty of Computers and Information.
Computer Science Department.
Assiut University.
contact: abdelrahmanhosny.com
Agenda
 Previous State of Affairs
- Punched Cards.
- Assembly Programming.
- C/Windows API
- C++/MFC
- Visual Basic 6.0
- Java
- COM
 The .NET Solution
 What’s next ?!
2abdelrahmanhosny.com
Previous State of Affairs
 Punched Cards
- Piece of paper, that contains digital information.
- Information is represented by the presence or absence of holes
in predefined positions.
3abdelrahmanhosny.com
 Assembly Programming
- More readable for programmers.
- Consists of machine instructions.
- Each computer architecture has its own assembly commands.
- Reduced Instruction Set Computing (RISC).
- Complex Instruction Set Computing (CISC).
- Using assembler: assembly code => executable machine code.
- However, still a low-level programming language.
- High-level assembler for assembly languages that have some
high-level programming features.
4abdelrahmanhosny.com
5abdelrahmanhosny.com
 C/Windows API
- To develop software for Windows operating systems, we use
C programming language with the Windows application
programming interface (API).
- Large number of applications already created with this
approach.
- However …
Manual memory management.
Ugly pointer arithmetic.
Spaghetti code (thousands of functions & data types).
6abdelrahmanhosny.com
 C++/MFC
- Object-oriented layer on top of C.
- Benefits of OOP (Encapsulation, Inheritance, Polymorphism)
- Microsoft Foundation Classes (MFC) are set of C++ classes
that facilitate building Windows applications.
- MFC hade the underlying Windows API and provide classes,
macros and code generation tools (wizards).
- However …
Backward compatibility with C makes it prone to the same
problems (memory management, pointers, constructs).
7abdelrahmanhosny.com
 Visual Basic 6.0
- Programmer is now able to build complex user interfaces and
code libraries.
- Can access databases easily.
- Hide Windows API by using code wizards, VB data types,
classes and VB-specific functions.
- However …
Not fully OO (rather it’s object-based).
No is-a relationship (No inheritance).
No Multi-threaded applications (actually we can use lower
level APIs.
8abdelrahmanhosny.com
 Java
- C-Like
- Pure Object-Oriented.
- Platform independent.
- Developers can build 100% pure java applications.
- However …
Little language integration (must use Java front to back during
the development life cycle.
Limited ability to access non-Java APIs.
9abdelrahmanhosny.com
 COM
- Stands for Component Object Model.
- Microsoft’s previous application development framework.
- “If you build your types in accordance with the rules of COM,
you end up with a block of reusable binary code”.
- Language-Independent.
- ATL ( Active Template Library) provides a set of C++ classes,
templates & macros.
- However … Complex Data Type representation
10abdelrahmanhosny.com
The .NET Solution
- Interoperability with existing source code.
- Support for many programming language.
- Common run-time engine shared by all .NET-aware languages.
- Complete and total language integration.
- Comprehensive base class libraries.
- No COM.
- Simplified deployment model.
11abdelrahmanhosny.com
.NET Building Blocks
CLR
Common Language
Runtime
CTS
Common Type System
CLS
Common Language
Specification
12abdelrahmanhosny.com
 CTS (Common Type System)
- CTS Specification fully describes all possible data types and
programming constructs supported by the run-time.
- CTS specifies how these entities can interact with each other
and how they are represented in the .NET metadata format.
- Some .NET language might not support every feature defined
by the CTS.
13abdelrahmanhosny.com
 CLS (Common Language Specification)
- CLS is a set of rules that describes, in detail, the minimal and
complete set of features a given .NET-aware compiler must
support to produce code that can be hosted by the CLR, while
at the same time can be accessed in a uniform manner by all
languages that the .NET platform support.
- CLS is a subset of the full functionality of CTS.
14abdelrahmanhosny.com
 CLR (Common Language Runtime)
- The CLR locate, load and manage .NET types on your behalf.
- Memory Management (Garbage Collector).
- Application Hosting.
- Handling Threads.
- Security Checks.
15abdelrahmanhosny.com
 CLR (Common Language Runtime) .. cont.
- When an assembly is referenced for use, mscore.dll is loaded
automatically, which loads the required assembly in turn.
(MS Common Object Runtime Execution Engine).
- Creating the required custom types.
- The key assembly is the mscore.dll, which contains a large
number of types, that encapsulate a wide variety of common
programming tasks as well as the core data types used by all
.NET languages.
16abdelrahmanhosny.com
Base Class Libraries
- In addition to CLR and CTS/CLS specifications, the .NET
platform provides a base class library that is available to all
.NET programming languages
17abdelrahmanhosny.com
18abdelrahmanhosny.com
- CIL: the same as Java bytecode, it’ not compiled into platform
specific instructions until absolutely necessary.
- You can view the CIL code of any assembly using either:
ildasm.exe or using Reflector.
19abdelrahmanhosny.com
- Metadata
describes, in detail, the characteristics of every type within the
binary.
- Manifest:
The current version of the assembly.
Culture information (localizing string & image resources).
List of externally referenced assemblies that are required for
the proper execution of the program.
 Single-File assembly vs. Multi-File assembly.
20abdelrahmanhosny.com
SO >>
21abdelrahmanhosny.com
What’s Next ?!
22abdelrahmanhosny.com
 Criticism
- Applications running in a managed environment tend to
require more system resources than similar applications that
access machine resources more directly
- Managed byte code can often be easier to reverse-engineer
than native code.
- The .NET Framework currently does not provide support for
calling Streaming SIMD Extensions (SSE) via managed code.
- While the standards that make up .NET are inherently cross-
platform, Microsoft's full implementation of .NET is only
supported on Windows.
23abdelrahmanhosny.com
- Pro C# 2010 and the .NET 4 platform.
By: Andrew Troelsen
- Microsoft Developers Network (MSDN).
- Wikipedia.
24abdelrahmanhosny.com
25abdelrahmanhosny.com
26
- Building C# applications.
- Core C# Programming Constructs
- Data types and strings.
- Type conversions.
- Conditions and Looping.
- Methods
- Arrays.
- Enumerations.
- Structures.
abdelrahmanhosny.com

3.0 Introduction to .NET Framework

  • 1.
    Introduction to Microsoft.NET Framework 4.0 Abd El-Rahman Hosny Mohammed Microsoft Student Partner. 4th Grade – Faculty of Computers and Information. Computer Science Department. Assiut University. contact: abdelrahmanhosny.com
  • 2.
    Agenda  Previous Stateof Affairs - Punched Cards. - Assembly Programming. - C/Windows API - C++/MFC - Visual Basic 6.0 - Java - COM  The .NET Solution  What’s next ?! 2abdelrahmanhosny.com
  • 3.
    Previous State ofAffairs  Punched Cards - Piece of paper, that contains digital information. - Information is represented by the presence or absence of holes in predefined positions. 3abdelrahmanhosny.com
  • 4.
     Assembly Programming -More readable for programmers. - Consists of machine instructions. - Each computer architecture has its own assembly commands. - Reduced Instruction Set Computing (RISC). - Complex Instruction Set Computing (CISC). - Using assembler: assembly code => executable machine code. - However, still a low-level programming language. - High-level assembler for assembly languages that have some high-level programming features. 4abdelrahmanhosny.com
  • 5.
  • 6.
     C/Windows API -To develop software for Windows operating systems, we use C programming language with the Windows application programming interface (API). - Large number of applications already created with this approach. - However … Manual memory management. Ugly pointer arithmetic. Spaghetti code (thousands of functions & data types). 6abdelrahmanhosny.com
  • 7.
     C++/MFC - Object-orientedlayer on top of C. - Benefits of OOP (Encapsulation, Inheritance, Polymorphism) - Microsoft Foundation Classes (MFC) are set of C++ classes that facilitate building Windows applications. - MFC hade the underlying Windows API and provide classes, macros and code generation tools (wizards). - However … Backward compatibility with C makes it prone to the same problems (memory management, pointers, constructs). 7abdelrahmanhosny.com
  • 8.
     Visual Basic6.0 - Programmer is now able to build complex user interfaces and code libraries. - Can access databases easily. - Hide Windows API by using code wizards, VB data types, classes and VB-specific functions. - However … Not fully OO (rather it’s object-based). No is-a relationship (No inheritance). No Multi-threaded applications (actually we can use lower level APIs. 8abdelrahmanhosny.com
  • 9.
     Java - C-Like -Pure Object-Oriented. - Platform independent. - Developers can build 100% pure java applications. - However … Little language integration (must use Java front to back during the development life cycle. Limited ability to access non-Java APIs. 9abdelrahmanhosny.com
  • 10.
     COM - Standsfor Component Object Model. - Microsoft’s previous application development framework. - “If you build your types in accordance with the rules of COM, you end up with a block of reusable binary code”. - Language-Independent. - ATL ( Active Template Library) provides a set of C++ classes, templates & macros. - However … Complex Data Type representation 10abdelrahmanhosny.com
  • 11.
    The .NET Solution -Interoperability with existing source code. - Support for many programming language. - Common run-time engine shared by all .NET-aware languages. - Complete and total language integration. - Comprehensive base class libraries. - No COM. - Simplified deployment model. 11abdelrahmanhosny.com
  • 12.
    .NET Building Blocks CLR CommonLanguage Runtime CTS Common Type System CLS Common Language Specification 12abdelrahmanhosny.com
  • 13.
     CTS (CommonType System) - CTS Specification fully describes all possible data types and programming constructs supported by the run-time. - CTS specifies how these entities can interact with each other and how they are represented in the .NET metadata format. - Some .NET language might not support every feature defined by the CTS. 13abdelrahmanhosny.com
  • 14.
     CLS (CommonLanguage Specification) - CLS is a set of rules that describes, in detail, the minimal and complete set of features a given .NET-aware compiler must support to produce code that can be hosted by the CLR, while at the same time can be accessed in a uniform manner by all languages that the .NET platform support. - CLS is a subset of the full functionality of CTS. 14abdelrahmanhosny.com
  • 15.
     CLR (CommonLanguage Runtime) - The CLR locate, load and manage .NET types on your behalf. - Memory Management (Garbage Collector). - Application Hosting. - Handling Threads. - Security Checks. 15abdelrahmanhosny.com
  • 16.
     CLR (CommonLanguage Runtime) .. cont. - When an assembly is referenced for use, mscore.dll is loaded automatically, which loads the required assembly in turn. (MS Common Object Runtime Execution Engine). - Creating the required custom types. - The key assembly is the mscore.dll, which contains a large number of types, that encapsulate a wide variety of common programming tasks as well as the core data types used by all .NET languages. 16abdelrahmanhosny.com
  • 17.
    Base Class Libraries -In addition to CLR and CTS/CLS specifications, the .NET platform provides a base class library that is available to all .NET programming languages 17abdelrahmanhosny.com
  • 18.
  • 19.
    - CIL: thesame as Java bytecode, it’ not compiled into platform specific instructions until absolutely necessary. - You can view the CIL code of any assembly using either: ildasm.exe or using Reflector. 19abdelrahmanhosny.com
  • 20.
    - Metadata describes, indetail, the characteristics of every type within the binary. - Manifest: The current version of the assembly. Culture information (localizing string & image resources). List of externally referenced assemblies that are required for the proper execution of the program.  Single-File assembly vs. Multi-File assembly. 20abdelrahmanhosny.com
  • 21.
  • 22.
  • 23.
     Criticism - Applicationsrunning in a managed environment tend to require more system resources than similar applications that access machine resources more directly - Managed byte code can often be easier to reverse-engineer than native code. - The .NET Framework currently does not provide support for calling Streaming SIMD Extensions (SSE) via managed code. - While the standards that make up .NET are inherently cross- platform, Microsoft's full implementation of .NET is only supported on Windows. 23abdelrahmanhosny.com
  • 24.
    - Pro C#2010 and the .NET 4 platform. By: Andrew Troelsen - Microsoft Developers Network (MSDN). - Wikipedia. 24abdelrahmanhosny.com
  • 25.
  • 26.
    26 - Building C#applications. - Core C# Programming Constructs - Data types and strings. - Type conversions. - Conditions and Looping. - Methods - Arrays. - Enumerations. - Structures. abdelrahmanhosny.com