net online session

29
Microsoft .NET 4.0 framework Online Session Abd El-Rahman Hosny M. MSP Assiut Uni. The session will start on 2:00 PM

Upload: abd-el-rahman-hosny

Post on 13-Dec-2014

272 views

Category:

Education


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: NET Online Session

Microsoft .NET 4.0 frameworkOnline Session

Abd El-Rahman Hosny M.MSP Assiut Uni.

The session will start on 2:00 PM

Page 2: NET Online Session

Microsoft .NET 4.0 frameworkOnline Session

Abd El-Rahman Hosny M.MSP Assiut Uni.

The session will start in few moments.Thanks for your patience.

Page 3: NET Online Session

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 ?!

3-29

Page 4: NET Online Session

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.

4-29

Page 5: NET Online Session

…………… Previous State of Affairs

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.

5-29

Page 6: NET Online Session

…………… Previous State of Affairs 6-29

Page 7: NET Online Session

…………… Previous State of Affairs

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).

7-29

Page 8: NET Online Session

…………… Previous State of Affairs

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).

8-29

Page 9: NET Online Session

…………… Previous State of Affairs

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.

9-29

Page 10: NET Online Session

…………… Previous State of Affairs

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.

10-29

Page 11: NET Online Session

…………… Previous State of Affairs

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

11-29

Page 12: NET Online Session

?Time for Questions

12-29

Page 13: NET Online Session

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.

13-29

Page 14: NET Online Session

…………… The .NET Solution

.NET Building Blocks

CLRCommon Language

Runtime

CTSCommon Type

System

CLSCommon Language

Specification

14-29

Page 15: NET Online Session

…………… The .NET Solution

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.

15-29

Page 16: NET Online Session

…………… The .NET Solution

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.

16-29

Page 17: NET Online Session

…………… The .NET Solution

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.

17-29

Page 18: NET Online Session

…………… The .NET Solution

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.

18-29

Page 19: NET Online Session

…………… The .NET Solution

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

19-29

Page 20: NET Online Session

…………… The .NET Solution 20-29

Page 21: NET Online Session

…………… The .NET Solution

- 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.

21-29

Page 22: NET Online Session

…………… The .NET Solution

- 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.

22-29

Page 23: NET Online Session

…………… The .NET Solution

SO >>

23-29

Page 24: NET Online Session

?Time for Questions

24-29

Page 25: NET Online Session

What’s Next ?!

25-29

Page 26: NET Online Session

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.

26-29

Page 27: NET Online Session

References

- Pro C# 2010 and the .NET 4 platform.By: Andrew Troelsen

- Microsoft Developers Network (MSDN).

- Wikipedia.

27-29

Page 28: NET Online Session

?Time for Questions

28-29

Page 29: NET Online Session

Thanks

Abd El-Rahman Hosny M.3rd Grade – Faculty of Computers and Information

Microsoft Student Partner – Assiut Uni. [email protected]

@_abdelrahmanhm_ /abdelrahman.hosny.m

29-29