Gfe Mayur Vihar Call Girls Service WhatsApp -> 9999965857 Available 24x7 ^ De...
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 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
3. 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
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
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-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
8. 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
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
- 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
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
Common Language
Runtime
CTS
Common Type System
CLS
Common Language
Specification
12abdelrahmanhosny.com
13. 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
14. 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
15. 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
16. 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
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
19. - 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
20. - 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
23. 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
24. - Pro C# 2010 and the .NET 4 platform.
By: Andrew Troelsen
- Microsoft Developers Network (MSDN).
- Wikipedia.
24abdelrahmanhosny.com