Download - 3.0 Introduction to .NET Framework
![Page 1: 3.0 Introduction to .NET Framework](https://reader033.vdocuments.site/reader033/viewer/2022061113/5457f8d4af79594f558b51bb/html5/thumbnails/1.jpg)
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
![Page 2: 3.0 Introduction to .NET Framework](https://reader033.vdocuments.site/reader033/viewer/2022061113/5457f8d4af79594f558b51bb/html5/thumbnails/2.jpg)
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 ?!
2 abdelrahmanhosny.com
![Page 3: 3.0 Introduction to .NET Framework](https://reader033.vdocuments.site/reader033/viewer/2022061113/5457f8d4af79594f558b51bb/html5/thumbnails/3.jpg)
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.
3 abdelrahmanhosny.com
![Page 4: 3.0 Introduction to .NET Framework](https://reader033.vdocuments.site/reader033/viewer/2022061113/5457f8d4af79594f558b51bb/html5/thumbnails/4.jpg)
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.
4 abdelrahmanhosny.com
![Page 5: 3.0 Introduction to .NET Framework](https://reader033.vdocuments.site/reader033/viewer/2022061113/5457f8d4af79594f558b51bb/html5/thumbnails/5.jpg)
5 abdelrahmanhosny.com
![Page 6: 3.0 Introduction to .NET Framework](https://reader033.vdocuments.site/reader033/viewer/2022061113/5457f8d4af79594f558b51bb/html5/thumbnails/6.jpg)
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).
6 abdelrahmanhosny.com
![Page 7: 3.0 Introduction to .NET Framework](https://reader033.vdocuments.site/reader033/viewer/2022061113/5457f8d4af79594f558b51bb/html5/thumbnails/7.jpg)
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).
7 abdelrahmanhosny.com
![Page 8: 3.0 Introduction to .NET Framework](https://reader033.vdocuments.site/reader033/viewer/2022061113/5457f8d4af79594f558b51bb/html5/thumbnails/8.jpg)
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.
8 abdelrahmanhosny.com
![Page 9: 3.0 Introduction to .NET Framework](https://reader033.vdocuments.site/reader033/viewer/2022061113/5457f8d4af79594f558b51bb/html5/thumbnails/9.jpg)
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.
9 abdelrahmanhosny.com
![Page 10: 3.0 Introduction to .NET Framework](https://reader033.vdocuments.site/reader033/viewer/2022061113/5457f8d4af79594f558b51bb/html5/thumbnails/10.jpg)
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
10 abdelrahmanhosny.com
![Page 11: 3.0 Introduction to .NET Framework](https://reader033.vdocuments.site/reader033/viewer/2022061113/5457f8d4af79594f558b51bb/html5/thumbnails/11.jpg)
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.
11 abdelrahmanhosny.com
![Page 12: 3.0 Introduction to .NET Framework](https://reader033.vdocuments.site/reader033/viewer/2022061113/5457f8d4af79594f558b51bb/html5/thumbnails/12.jpg)
.NET Building Blocks
CLRCommon Language
Runtime
CTSCommon Type
System
CLSCommon Language
Specification
12 abdelrahmanhosny.com
![Page 13: 3.0 Introduction to .NET Framework](https://reader033.vdocuments.site/reader033/viewer/2022061113/5457f8d4af79594f558b51bb/html5/thumbnails/13.jpg)
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.
13 abdelrahmanhosny.com
![Page 14: 3.0 Introduction to .NET Framework](https://reader033.vdocuments.site/reader033/viewer/2022061113/5457f8d4af79594f558b51bb/html5/thumbnails/14.jpg)
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.
14 abdelrahmanhosny.com
![Page 15: 3.0 Introduction to .NET Framework](https://reader033.vdocuments.site/reader033/viewer/2022061113/5457f8d4af79594f558b51bb/html5/thumbnails/15.jpg)
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.
15 abdelrahmanhosny.com
![Page 16: 3.0 Introduction to .NET Framework](https://reader033.vdocuments.site/reader033/viewer/2022061113/5457f8d4af79594f558b51bb/html5/thumbnails/16.jpg)
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.
16 abdelrahmanhosny.com
![Page 17: 3.0 Introduction to .NET Framework](https://reader033.vdocuments.site/reader033/viewer/2022061113/5457f8d4af79594f558b51bb/html5/thumbnails/17.jpg)
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
17 abdelrahmanhosny.com
![Page 18: 3.0 Introduction to .NET Framework](https://reader033.vdocuments.site/reader033/viewer/2022061113/5457f8d4af79594f558b51bb/html5/thumbnails/18.jpg)
18 abdelrahmanhosny.com
![Page 19: 3.0 Introduction to .NET Framework](https://reader033.vdocuments.site/reader033/viewer/2022061113/5457f8d4af79594f558b51bb/html5/thumbnails/19.jpg)
- 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.
19 abdelrahmanhosny.com
![Page 20: 3.0 Introduction to .NET Framework](https://reader033.vdocuments.site/reader033/viewer/2022061113/5457f8d4af79594f558b51bb/html5/thumbnails/20.jpg)
- Metadatadescribes, 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.
20 abdelrahmanhosny.com
![Page 21: 3.0 Introduction to .NET Framework](https://reader033.vdocuments.site/reader033/viewer/2022061113/5457f8d4af79594f558b51bb/html5/thumbnails/21.jpg)
SO >>
21 abdelrahmanhosny.com
![Page 22: 3.0 Introduction to .NET Framework](https://reader033.vdocuments.site/reader033/viewer/2022061113/5457f8d4af79594f558b51bb/html5/thumbnails/22.jpg)
What’s Next ?!
22 abdelrahmanhosny.com
![Page 23: 3.0 Introduction to .NET Framework](https://reader033.vdocuments.site/reader033/viewer/2022061113/5457f8d4af79594f558b51bb/html5/thumbnails/23.jpg)
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.
23 abdelrahmanhosny.com
![Page 24: 3.0 Introduction to .NET Framework](https://reader033.vdocuments.site/reader033/viewer/2022061113/5457f8d4af79594f558b51bb/html5/thumbnails/24.jpg)
References
- Pro C# 2010 and the .NET 4 platform.By: Andrew Troelsen
- Microsoft Developers Network (MSDN).
- Wikipedia.
24 abdelrahmanhosny.com
![Page 25: 3.0 Introduction to .NET Framework](https://reader033.vdocuments.site/reader033/viewer/2022061113/5457f8d4af79594f558b51bb/html5/thumbnails/25.jpg)
?Time for Questions
25 abdelrahmanhosny.com
![Page 26: 3.0 Introduction to .NET Framework](https://reader033.vdocuments.site/reader033/viewer/2022061113/5457f8d4af79594f558b51bb/html5/thumbnails/26.jpg)
26
To Be Continued ..- Building C# applications.
- Core C# Programming Constructs- Data types and strings.- Type conversions.- Conditions and Looping.- Methods- Arrays.- Enumerations.- Structures.
abdelrahmanhosny.com