SlideShare a Scribd company logo
1 of 36
VS.
Abd El-Rahman Hosny Alaa Attyea M.
Agenda
- Previous State of Affairs.
- Introduction to Java
• Compilers vs. Interpreters.
• Platform-Dependency.
• Hybrid Compiler-Interpreter.
• Java Components (JDK).
• JIT Solution.
- The .NET Solution
• CLR, CTS and CLS.
• Base Class Library.
• .NET Sons.
- What’s Next?!
 Punched Cards
- Piece of paper, that contains digital information.
- Information is represented by the presence or absence of holes
in predefined positions.
Previous State of Affairs ..
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.
Previous State of Affairs ..
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).
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).
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.
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
The Move ...
What is a program & how it runs ?!
Source code and native bits:
- Source code a series of related commands of specific programming languages.
- Actually source code is not what runs on our machines.
- Machines knows only it’s native language (0s&1s).
- Source code must be translated in some way to the machine native language.
Compilers Vs interpreters :
- Compilers and interpreters and some software that acts as
a translator between you (high level language) and the machine (low level
language).
- Actually compilers and interpreters are totally different in the ways how
they treat your code.
- Let’s take a look about how they are working.
What is interpreter ?!
- Interpreters doesn’t behave like compilers.
- It do not translate any programming commands, it takes the code and
executes it line by line.
- Examples for interpreted languages PHP, haskell, aslo shell command in
linux are interpreted.
Platform dependent problem:
- As there are different computer architectures there must exist different
compilers to translate the code.
- Here w have the platform dependent problem.
- However … There another solution for that problem called, hybrid compiler-
interpreter.
- In this case first there will be intermediate code, which will run over the
interpreter and we’ll get the result.
Hybrid Compiler-interpreter:
Java solution and the power of Java:
- Java has the same solution about that issue.
- After we have written our source code, when we compile it using the javac
command, it will generate the intermediate code or what is called byte code.
- This will be at the form of (.class) file.
- JRE can be responsible for running and executing the .class file over the
machine.
Java components:
- The first step to write a java program and run it is to set up something called
JDK (Java Development Kit).
- This includes three main component for java
• JRE (JVM is a part of it).
• Java compiler (javac).
• Java debugger.
- With the help of these component you can run your code wherever and whatever
the architecture or platform of your machine.
- After the programmer have written the source code, he’ll use the javac to
compile the (.java file)
- Then the javac will create an intermediate code that is known as (.class file)
or byte code.
- This byte code can run over any JVM regardless of the machine architecture
or platform.
How the Java Program Runs ?
- It is a set of dynamically loadable libraries that java application uses at run time.
Java Class Library
JCL serves three purposes within the Java Platform:
- They provide the programmer a well-known set of useful facilities.
- Provides an abstract interface to tasks that would normally depend heavily on
the hardware and operating system, such as network access and file access.
- Some underlying platforms may not support all of the features a Java
application expects. In these cases, the library implementation can either
emulate those features or provide a consistent way to check for the presence of
a specific feature.
 JIT:
- Java uses different ways to generate machine the machine code.
- There is a way to produce efficient machine code called JIT (Just In Time
compilation).
- JIT compilers promise to improve the performance of Java applications.
- Rather than letting the JVM run bytecode, a JIT compiler translates code into
the host machine’s native language.
- Thus, applications get the performance enhancement of compiled code while
maintaining Java’s portability.
Java Garbage collector:
- Objects are created in the heap.
- Garbage collector looks for those objects that are not referencing and
memory location and reclaim the heap from those objects.
- Garbage Collection in Java is carried by a daemon thread called Garbage
Collector.
- 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.
The .NET Solution
.NET Building Blocks
CLR
Common Language
Runtime
CTS
Common Type System
CLS
Common Language
Specification
 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.
 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.
 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.
 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.
- In addition to CLR and CTS/CLS specifications, the .NET platform provides a base
class library that is available to all .NET programming languages
Base Class Library
- 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.
- 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.
- 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.
Criticism
AbdelrahmanHosny.com
AlaaAttya.wordpress.com
A Comparison of .NET Framework vs. Java Virtual Machine

More Related Content

What's hot

신입 SW 개발자 취업 준비
신입 SW 개발자 취업 준비신입 SW 개발자 취업 준비
신입 SW 개발자 취업 준비인서 박
 
C++17 std::byte
C++17 std::byteC++17 std::byte
C++17 std::byte진화 손
 
Oracle Database | Computer Science
Oracle Database | Computer ScienceOracle Database | Computer Science
Oracle Database | Computer ScienceTransweb Global Inc
 
Java lesson khmer
Java lesson khmerJava lesson khmer
Java lesson khmerUl Sovanndy
 
온라인 게임에서 사례로 살펴보는 디버깅 in NDC2010
온라인 게임에서 사례로 살펴보는 디버깅 in NDC2010온라인 게임에서 사례로 살펴보는 디버깅 in NDC2010
온라인 게임에서 사례로 살펴보는 디버깅 in NDC2010Ryan Park
 
Java - Exception Handling
Java - Exception HandlingJava - Exception Handling
Java - Exception HandlingPrabhdeep Singh
 
Oracle database 12c sql worshop 2 student guide vol 1
Oracle database 12c sql worshop 2 student guide vol 1Oracle database 12c sql worshop 2 student guide vol 1
Oracle database 12c sql worshop 2 student guide vol 1Otto Paiz
 
Opendj - A LDAP Server for dummies
Opendj - A LDAP Server for dummiesOpendj - A LDAP Server for dummies
Opendj - A LDAP Server for dummiesClaudio Borges
 
Pl sql student guide v 1
Pl sql student guide v 1Pl sql student guide v 1
Pl sql student guide v 1Nexus
 
Microservicios sobre MEAN Stack
Microservicios sobre MEAN StackMicroservicios sobre MEAN Stack
Microservicios sobre MEAN StackPedro J. Molina
 
C++ Unit Test with Google Testing Framework
C++ Unit Test with Google Testing FrameworkC++ Unit Test with Google Testing Framework
C++ Unit Test with Google Testing FrameworkHumberto Marchezi
 
This keyword and final keyword
This keyword and final  keywordThis keyword and final  keyword
This keyword and final keywordkinjalbirare
 
collection framework in java
collection framework in javacollection framework in java
collection framework in javaMANOJ KUMAR
 
Introduction to Java Programming
Introduction to Java ProgrammingIntroduction to Java Programming
Introduction to Java ProgrammingRavi Kant Sahu
 
서버 개발자가 바라 본 Functional Reactive Programming with RxJava - SpringCamp2015
서버 개발자가 바라 본 Functional Reactive Programming with RxJava - SpringCamp2015서버 개발자가 바라 본 Functional Reactive Programming with RxJava - SpringCamp2015
서버 개발자가 바라 본 Functional Reactive Programming with RxJava - SpringCamp2015NAVER / MusicPlatform
 
Introduction To C#
Introduction To C#Introduction To C#
Introduction To C#rahulsahay19
 

What's hot (20)

신입 SW 개발자 취업 준비
신입 SW 개발자 취업 준비신입 SW 개발자 취업 준비
신입 SW 개발자 취업 준비
 
Java collections notes
Java collections notesJava collections notes
Java collections notes
 
C++17 std::byte
C++17 std::byteC++17 std::byte
C++17 std::byte
 
Oracle Database | Computer Science
Oracle Database | Computer ScienceOracle Database | Computer Science
Oracle Database | Computer Science
 
OOP Concept
OOP ConceptOOP Concept
OOP Concept
 
Java lesson khmer
Java lesson khmerJava lesson khmer
Java lesson khmer
 
온라인 게임에서 사례로 살펴보는 디버깅 in NDC2010
온라인 게임에서 사례로 살펴보는 디버깅 in NDC2010온라인 게임에서 사례로 살펴보는 디버깅 in NDC2010
온라인 게임에서 사례로 살펴보는 디버깅 in NDC2010
 
Java - Exception Handling
Java - Exception HandlingJava - Exception Handling
Java - Exception Handling
 
Spring Boot Tutorial
Spring Boot TutorialSpring Boot Tutorial
Spring Boot Tutorial
 
Oracle database 12c sql worshop 2 student guide vol 1
Oracle database 12c sql worshop 2 student guide vol 1Oracle database 12c sql worshop 2 student guide vol 1
Oracle database 12c sql worshop 2 student guide vol 1
 
Opendj - A LDAP Server for dummies
Opendj - A LDAP Server for dummiesOpendj - A LDAP Server for dummies
Opendj - A LDAP Server for dummies
 
Pl sql student guide v 1
Pl sql student guide v 1Pl sql student guide v 1
Pl sql student guide v 1
 
Microservicios sobre MEAN Stack
Microservicios sobre MEAN StackMicroservicios sobre MEAN Stack
Microservicios sobre MEAN Stack
 
C++ Unit Test with Google Testing Framework
C++ Unit Test with Google Testing FrameworkC++ Unit Test with Google Testing Framework
C++ Unit Test with Google Testing Framework
 
This keyword and final keyword
This keyword and final  keywordThis keyword and final  keyword
This keyword and final keyword
 
collection framework in java
collection framework in javacollection framework in java
collection framework in java
 
Introduction to Java Programming
Introduction to Java ProgrammingIntroduction to Java Programming
Introduction to Java Programming
 
서버 개발자가 바라 본 Functional Reactive Programming with RxJava - SpringCamp2015
서버 개발자가 바라 본 Functional Reactive Programming with RxJava - SpringCamp2015서버 개발자가 바라 본 Functional Reactive Programming with RxJava - SpringCamp2015
서버 개발자가 바라 본 Functional Reactive Programming with RxJava - SpringCamp2015
 
Introduction To C#
Introduction To C#Introduction To C#
Introduction To C#
 
Scala cheatsheet
Scala cheatsheetScala cheatsheet
Scala cheatsheet
 

Similar to A Comparison of .NET Framework vs. Java Virtual Machine

3.0 Introduction to .NET Framework
3.0 Introduction to .NET Framework3.0 Introduction to .NET Framework
3.0 Introduction to .NET FrameworkAbdelrahman Hosny
 
.Net overview|Introduction Of .net
.Net overview|Introduction Of .net.Net overview|Introduction Of .net
.Net overview|Introduction Of .netpinky singh
 
.NET Core, ASP.NET Core Course, Session 3
.NET Core, ASP.NET Core Course, Session 3.NET Core, ASP.NET Core Course, Session 3
.NET Core, ASP.NET Core Course, Session 3aminmesbahi
 
Inside .net framework
Inside .net frameworkInside .net framework
Inside .net frameworkFaisal Aziz
 
ASP.NET 01 - Introduction
ASP.NET 01 - IntroductionASP.NET 01 - Introduction
ASP.NET 01 - IntroductionRandy Connolly
 
.Net overviewrajnish
.Net overviewrajnish.Net overviewrajnish
.Net overviewrajnishRajnish Kalla
 
Chapter 1 introduction to .net
Chapter 1 introduction to .netChapter 1 introduction to .net
Chapter 1 introduction to .netRahul Bhoge
 
Session2 (3)
Session2 (3)Session2 (3)
Session2 (3)DrUjwala1
 
election survey comapny in delhi|election survey company|election survey comp...
election survey comapny in delhi|election survey company|election survey comp...election survey comapny in delhi|election survey company|election survey comp...
election survey comapny in delhi|election survey company|election survey comp...dnnindia
 
Dotnet framework
Dotnet frameworkDotnet framework
Dotnet frameworkNitu Pandey
 
ASP.NET Session 1
ASP.NET Session 1ASP.NET Session 1
ASP.NET Session 1Sisir Ghosh
 
Introduction to .NET by QuontraSolutions
Introduction to .NET by QuontraSolutionsIntroduction to .NET by QuontraSolutions
Introduction to .NET by QuontraSolutionsQUONTRASOLUTIONS
 
Learn the java basic programming with example and syntaxchapter1-part-b.pptx
Learn the java basic programming with example and syntaxchapter1-part-b.pptxLearn the java basic programming with example and syntaxchapter1-part-b.pptx
Learn the java basic programming with example and syntaxchapter1-part-b.pptxGaytriMate
 
Introduction to .net FrameWork by QuontraSolutions
Introduction to .net FrameWork by QuontraSolutionsIntroduction to .net FrameWork by QuontraSolutions
Introduction to .net FrameWork by QuontraSolutionsQuontra Solutions
 

Similar to A Comparison of .NET Framework vs. Java Virtual Machine (20)

3.0 Introduction to .NET Framework
3.0 Introduction to .NET Framework3.0 Introduction to .NET Framework
3.0 Introduction to .NET Framework
 
.Net overview|Introduction Of .net
.Net overview|Introduction Of .net.Net overview|Introduction Of .net
.Net overview|Introduction Of .net
 
.NET Core, ASP.NET Core Course, Session 3
.NET Core, ASP.NET Core Course, Session 3.NET Core, ASP.NET Core Course, Session 3
.NET Core, ASP.NET Core Course, Session 3
 
Inside .net framework
Inside .net frameworkInside .net framework
Inside .net framework
 
ASP.NET 01 - Introduction
ASP.NET 01 - IntroductionASP.NET 01 - Introduction
ASP.NET 01 - Introduction
 
Introduction to .net
Introduction to .netIntroduction to .net
Introduction to .net
 
.Net overviewrajnish
.Net overviewrajnish.Net overviewrajnish
.Net overviewrajnish
 
Tutorial c#
Tutorial c#Tutorial c#
Tutorial c#
 
Chapter 1 introduction to .net
Chapter 1 introduction to .netChapter 1 introduction to .net
Chapter 1 introduction to .net
 
Session2 (3)
Session2 (3)Session2 (3)
Session2 (3)
 
NETOverview1ppt.pptx
NETOverview1ppt.pptxNETOverview1ppt.pptx
NETOverview1ppt.pptx
 
NETOverview1.ppt
NETOverview1.pptNETOverview1.ppt
NETOverview1.ppt
 
election survey comapny in delhi|election survey company|election survey comp...
election survey comapny in delhi|election survey company|election survey comp...election survey comapny in delhi|election survey company|election survey comp...
election survey comapny in delhi|election survey company|election survey comp...
 
VB IMPORTANT QUESTION
VB IMPORTANT QUESTIONVB IMPORTANT QUESTION
VB IMPORTANT QUESTION
 
Dotnet framework
Dotnet frameworkDotnet framework
Dotnet framework
 
ASP.NET Session 1
ASP.NET Session 1ASP.NET Session 1
ASP.NET Session 1
 
Introduction to .NET by QuontraSolutions
Introduction to .NET by QuontraSolutionsIntroduction to .NET by QuontraSolutions
Introduction to .NET by QuontraSolutions
 
Learn the java basic programming with example and syntaxchapter1-part-b.pptx
Learn the java basic programming with example and syntaxchapter1-part-b.pptxLearn the java basic programming with example and syntaxchapter1-part-b.pptx
Learn the java basic programming with example and syntaxchapter1-part-b.pptx
 
Introduction to .net FrameWork by QuontraSolutions
Introduction to .net FrameWork by QuontraSolutionsIntroduction to .net FrameWork by QuontraSolutions
Introduction to .net FrameWork by QuontraSolutions
 
Dot net
Dot netDot net
Dot net
 

More from Abdelrahman Hosny

Confirming dna replication origins of saccharomyces cerevisiae a deep learnin...
Confirming dna replication origins of saccharomyces cerevisiae a deep learnin...Confirming dna replication origins of saccharomyces cerevisiae a deep learnin...
Confirming dna replication origins of saccharomyces cerevisiae a deep learnin...Abdelrahman Hosny
 
iPhone Architecture - Review
iPhone Architecture - ReviewiPhone Architecture - Review
iPhone Architecture - ReviewAbdelrahman Hosny
 
Implementing a Caching Scheme for Media Streaming in a Proxy Server
Implementing a Caching Scheme for Media Streaming in a Proxy ServerImplementing a Caching Scheme for Media Streaming in a Proxy Server
Implementing a Caching Scheme for Media Streaming in a Proxy ServerAbdelrahman Hosny
 
Microsoft SharePoint 2010 Overview
Microsoft SharePoint 2010 OverviewMicrosoft SharePoint 2010 Overview
Microsoft SharePoint 2010 OverviewAbdelrahman Hosny
 
1.0 Introduction to Hardware Computer Architecture
1.0 Introduction to Hardware Computer Architecture1.0 Introduction to Hardware Computer Architecture
1.0 Introduction to Hardware Computer ArchitectureAbdelrahman Hosny
 
2.0 Introduction to Computer Science and Programming
2.0 Introduction to Computer Science and Programming2.0 Introduction to Computer Science and Programming
2.0 Introduction to Computer Science and ProgrammingAbdelrahman Hosny
 

More from Abdelrahman Hosny (16)

Teaching Philosophy
Teaching PhilosophyTeaching Philosophy
Teaching Philosophy
 
Confirming dna replication origins of saccharomyces cerevisiae a deep learnin...
Confirming dna replication origins of saccharomyces cerevisiae a deep learnin...Confirming dna replication origins of saccharomyces cerevisiae a deep learnin...
Confirming dna replication origins of saccharomyces cerevisiae a deep learnin...
 
A Study On Deep Learning
A Study On Deep LearningA Study On Deep Learning
A Study On Deep Learning
 
My Teaching Philosophy
My Teaching PhilosophyMy Teaching Philosophy
My Teaching Philosophy
 
iPhone Architecture - Review
iPhone Architecture - ReviewiPhone Architecture - Review
iPhone Architecture - Review
 
Implementing a Caching Scheme for Media Streaming in a Proxy Server
Implementing a Caching Scheme for Media Streaming in a Proxy ServerImplementing a Caching Scheme for Media Streaming in a Proxy Server
Implementing a Caching Scheme for Media Streaming in a Proxy Server
 
A Servant Leader
A Servant LeaderA Servant Leader
A Servant Leader
 
Microsoft SharePoint 2010 Overview
Microsoft SharePoint 2010 OverviewMicrosoft SharePoint 2010 Overview
Microsoft SharePoint 2010 Overview
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
 
Office365
Office365Office365
Office365
 
The Silent Presentation
The Silent PresentationThe Silent Presentation
The Silent Presentation
 
Team Building
Team BuildingTeam Building
Team Building
 
Introduction to Marketing
Introduction to MarketingIntroduction to Marketing
Introduction to Marketing
 
Interviewing
InterviewingInterviewing
Interviewing
 
1.0 Introduction to Hardware Computer Architecture
1.0 Introduction to Hardware Computer Architecture1.0 Introduction to Hardware Computer Architecture
1.0 Introduction to Hardware Computer Architecture
 
2.0 Introduction to Computer Science and Programming
2.0 Introduction to Computer Science and Programming2.0 Introduction to Computer Science and Programming
2.0 Introduction to Computer Science and Programming
 

Recently uploaded

The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 

Recently uploaded (20)

The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 

A Comparison of .NET Framework vs. Java Virtual Machine

  • 1. VS. Abd El-Rahman Hosny Alaa Attyea M.
  • 2. Agenda - Previous State of Affairs. - Introduction to Java • Compilers vs. Interpreters. • Platform-Dependency. • Hybrid Compiler-Interpreter. • Java Components (JDK). • JIT Solution. - The .NET Solution • CLR, CTS and CLS. • Base Class Library. • .NET Sons. - What’s Next?!
  • 3.  Punched Cards - Piece of paper, that contains digital information. - Information is represented by the presence or absence of holes in predefined positions. Previous State of Affairs ..
  • 4. 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. Previous State of Affairs ..
  • 6. 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. 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. 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. 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. What is a program & how it runs ?! Source code and native bits: - Source code a series of related commands of specific programming languages. - Actually source code is not what runs on our machines. - Machines knows only it’s native language (0s&1s). - Source code must be translated in some way to the machine native language.
  • 12. Compilers Vs interpreters : - Compilers and interpreters and some software that acts as a translator between you (high level language) and the machine (low level language). - Actually compilers and interpreters are totally different in the ways how they treat your code. - Let’s take a look about how they are working.
  • 13. What is interpreter ?! - Interpreters doesn’t behave like compilers. - It do not translate any programming commands, it takes the code and executes it line by line. - Examples for interpreted languages PHP, haskell, aslo shell command in linux are interpreted.
  • 14. Platform dependent problem: - As there are different computer architectures there must exist different compilers to translate the code. - Here w have the platform dependent problem. - However … There another solution for that problem called, hybrid compiler- interpreter. - In this case first there will be intermediate code, which will run over the interpreter and we’ll get the result.
  • 16. Java solution and the power of Java: - Java has the same solution about that issue. - After we have written our source code, when we compile it using the javac command, it will generate the intermediate code or what is called byte code. - This will be at the form of (.class) file. - JRE can be responsible for running and executing the .class file over the machine.
  • 17. Java components: - The first step to write a java program and run it is to set up something called JDK (Java Development Kit). - This includes three main component for java • JRE (JVM is a part of it). • Java compiler (javac). • Java debugger. - With the help of these component you can run your code wherever and whatever the architecture or platform of your machine.
  • 18. - After the programmer have written the source code, he’ll use the javac to compile the (.java file) - Then the javac will create an intermediate code that is known as (.class file) or byte code. - This byte code can run over any JVM regardless of the machine architecture or platform. How the Java Program Runs ?
  • 19. - It is a set of dynamically loadable libraries that java application uses at run time. Java Class Library
  • 20. JCL serves three purposes within the Java Platform: - They provide the programmer a well-known set of useful facilities. - Provides an abstract interface to tasks that would normally depend heavily on the hardware and operating system, such as network access and file access. - Some underlying platforms may not support all of the features a Java application expects. In these cases, the library implementation can either emulate those features or provide a consistent way to check for the presence of a specific feature.
  • 21.  JIT: - Java uses different ways to generate machine the machine code. - There is a way to produce efficient machine code called JIT (Just In Time compilation). - JIT compilers promise to improve the performance of Java applications. - Rather than letting the JVM run bytecode, a JIT compiler translates code into the host machine’s native language. - Thus, applications get the performance enhancement of compiled code while maintaining Java’s portability.
  • 22. Java Garbage collector: - Objects are created in the heap. - Garbage collector looks for those objects that are not referencing and memory location and reclaim the heap from those objects. - Garbage Collection in Java is carried by a daemon thread called Garbage Collector.
  • 23. - 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. The .NET Solution
  • 24. .NET Building Blocks CLR Common Language Runtime CTS Common Type System CLS Common Language Specification
  • 25.  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.
  • 26.  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.
  • 27.  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.
  • 28.  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.
  • 29. - In addition to CLR and CTS/CLS specifications, the .NET platform provides a base class library that is available to all .NET programming languages Base Class Library
  • 30.
  • 31. - 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.
  • 32. - 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.
  • 33.
  • 34. - 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. Criticism