SlideShare a Scribd company logo
1 of 45
By 
Email : info@quontrasolutions.co.uk 
Contact : 020-3734-1498 
WebSite : www.quontrasolutions.co.uk
Before .NET 
Windows GUI development: Win32 API, MFC, Visual Basic, COM 
Web development: ASP 
Java – “Write once, run anywhere.” 
Embrace and extend: Visual J++
Life As a C/Win32 API Programmer 
Traditional software development for the Windows. 
• C developers are forced to contend with complex memory 
management and pointer arithmetic. 
• It lacks the benefits provided by the object-oriented approach 
When you combine the thousands of global functions and data types defined 
by the Win32 API to an already formidable language, it is little wonder that 
there are so many buggy applications floating around today.
Life As a C++/MFC Programmer 
 C++ is an object-oriented layer on top of C. 
 Programmers benefit from the famed “pillars of OOP” 
(encapsulation, inheritance, and polymorphism). 
 Microsoft Foundation Classes (MFC) provides a set of C++ classes that 
facilitate the construction of Win32 applications. 
 It wraps a “sane subset” of the raw Win32 API behind a 
number of classes, magic macros, and numerous code-generation 
tools (wizards). 
 Regardless of the helpful MFC, programming for Windows using C++ 
remains a difficult and error-prone experience
Visual Basic 6.0 Programmer 
Ability to build complex user interfaces, code libraries, and data access logic 
with minimal fuss and bother. 
• VB6 hides the complexities of the raw Win32 API from view 
using integrated code wizards, intrinsic data types, classes, and 
VB-specific functions. 
Not fully object-oriented 
• No “is-a” relationships between types (i.e., no classical 
inheritance) 
• No multithreaded applications unless you are willing to drop 
down to low-level Win32 API calls (which is complex at best and 
dangerous at worst).
Life As a Java/J2EE Programmer 
Object oriented with syntactic roots in C++. 
• Java cleans up many unsavory syntactical aspects of C++. 
• Java provides programmers with a large number of predefined 
“packages” that contain various type definitions. 
Limited ability to access non-Java APIs. 
Little support for true cross-language integration. 
• Not appropriate for many graphically or numerically intensive 
applications. 
• A better approach for such programs would be to use a 
language such as C++ where appropriate.
Life As a COM Programmer 
Microsoft’s previous application development framework. 
• reusable binary code. 
• C++ programmers can build COM classes that can be used by VB6. Delphi programmers can 
use COM classes built using C. 
COM’s language independence is limited. 
• COM has no support for classical inheritance). 
COM is extremely complex under the hood. 
• The Active Template Library (ATL) provides a set of C++ classes, templates, and macros to 
ease the creation of COM types.
Windows DNA Programmer 
 Microsoft has been adding more Internet-aware 
features into its family of operating systems 
and products. 
COM-based Windows Distributed interNet 
Applications Architecture (DNA) is quite 
complex. 
 Due to the simple fact that Windows DNA 
requires the use of numerous technologies and 
languages (ASP, HTML, XML, JavaScript, 
VBScript, COM(+), and data access API like 
ADO).
The complete maze… 
Completely unrelated syntaxes. 
JavaScript has a syntax much like C, while VBScript is a subset of VB6. The 
result is a highly confused mishmash of technologies. 
Each language and/or technology has its own type system: 
An “int” in JavaScript is not quite the same as an “Integer” in VB6.
.Net, the Rescuer 
OOP JVM 
.NET 
GUI 
Web 
component-based 
design n-tier design
.Net, the Rescuer
Integrated environment 
.Net provides 
Internet, Desktop , Mobile devices 
consistent object-oriented 
To provide a portable environment 
A managed environment
.NET is a framework 
What Is .NET 
New programming methodology 
.NET is platform independent / cross platform 
.NET is language-insensitive
.NET is cross-platform 
APP.exe 
? 
Win64 Win32 
(XP,2K,98) 
WinCE
Narrow view of .Net applications 
.NET Application 
.NET Framework 
Operating System + Hardware
.Net Framework
.Net Architecture 
.NET architecture is: 
• multi-language 
• cross-platform 
• based on the CLR, FCL, and JIT technology 
• .NET components are packaged as assemblies
.Net Architecture
.Net Technical Architecture 
VB C++ C# 
Common Language Specification 
Windows 
Forms 
ADO.NET: Data and XML 
Base Class Library 
Common Language Runtime 
Visual Studio.NET 
ASP.NET: Web Services 
and Web Forms 
JScript … 
Windows 
Forms
Common Language Runtime 
A common runtime for all .NET languages 
• Common type system 
• Common metadata 
• Intermediate Language (IL) to native code compilers 
• Memory allocation and garbage collection 
• Code execution and security 
Over 15 languages supported today 
• C#, VB, Jscript, Visual C++ from Microsoft 
• Perl, Python, Smalltalk, Cobol, Haskell, Mercury, Eiffel, Oberon, Oz, 
Pascal, APL, CAML, Scheme, etc. 
Rational is working on Java compiler for CLR
The CLR Architecture 
Base Class Library Support 
Thread Support COM Marshaler 
Type Checker Exception Manager 
Security Engine Debug Engine 
Class Loader 
MSIL to Native 
Compilers (JIT) 
Code 
Manager 
Garbage 
Collector (GC)
CLR Execution Model (Narrow) 
Code in VB.NET Code in C# 
Code in another 
.NET Language 
VB.NET compiler C# compiler 
Appropriate 
Compiler 
IL(Intermediate 
Language) code 
CLR just-in-time 
execution
CLR Execution Model 
Source VB 
code 
Compiler 
C# C++ 
Compiler Compiler 
Assembly 
IL Code 
Assembly 
IL Code 
Assembly 
IL Code 
Common Language Runtime 
JIT Compiler 
Native Code 
Operating System Services 
Managed 
code 
Unmanaged 
Component
How CLR works?
CLR based execution 
APP.exe 
other FCL 
components 
JIT Compiler 
obj code 
CLR 
OS Process 
Core 
FCL 
Underlying OS and HW
Common Language Runtime 
Execution Engine 
• Compiles Microsoft Intermediate Language 
(MSIL) into native code 
• Handles garbage collection 
•Handles exceptions 
• Enforces code access security 
• Handles verification 
• Managed v. Unmanaged
Implications of CLR execution model 
1. Clients need CLR & FCL to run .NET apps 
• available via Redistributable .NET Framework 
2. Design trade-off… 
+ managed execution (memory protection, 
verifiable code, etc.) 
+ portability: 
– slower execution?
CLR and JIT compiling 
Indirect execution of .Net applications. 
All .NET languages compile to the same CIL. 
The CLR transforms the CIL to assembly instructions for a particular 
hardware architecture. 
• This is termed jit’ing or Just-in-time compiling. 
• Some initial performance cost, but the jitted code is cached for further 
execution. 
• The CLR can target the specific architecture in which the code is executing, so 
some performance gains are possible.
Advantages of CLR 
Support for developer services (debugging) 
Interoperation between managed code and unmanaged code (COM, DLLs). 
Managed code environment 
Improved memory handling 
Improved “garbage collection”
Advantages of CLR 
 JIT allows code to run in a protected environment as 
managed code. 
 JIT allows the IL code to be hardware independent. 
 CLR also allows for enforcement of code access 
security. 
 Verification of type safety. 
 Access to Metadata (enhanced Type Information)
Common Language 
Infrastructure
CLI
Common Language Infrastructure 
 CLI allows for cross-language development. 
 Four components: 
 Common Type System (CTS) 
 Meta-data in a language agnostic fashion. 
 Common Language Specification – behaviors that all languages need to follow. 
 A Virtual Execution System (VES).
Common Type System (CTS) 
A specification for how types are defined 
and how they behave. 
• no syntax specified 
A type can contain zero or more members: 
• Field 
•Method 
• Property 
• Event
Common Type System (CTS) 
System-defined types 
String Array ValueType Exception Delegate Class1 
Multicast 
Delegate 
Class2 
Class3 
Object 
Enum Structure1 
Enum1 
Primitive types 
Boolean 
Byte 
Int16 
Int32 
Int64 
Char 
Single 
Double 
Decimal 
DateTime 
User-defined types 
Delegate1 
TimeSpan 
Guid
CTS Data Types
Common Data Types 
CLR provides a set of primitive types that all languages must support. The data 
types include: 
• Integer—three types 16/32/64 bits 
• Float—two types: 32/64 bits 
• Boolean and Character 
• Date/time and Time span 
The primitive types can be collected into 
• Arrays 
• Structures 
• Combination of the two
Common Language Specification (CLS) 
Not all languages support all CTS types and 
features 
• C# is case sensitive, VB.NET is not 
• C# supports pointer types (in unsafe mode), VB.NET does not 
• C# supports operator overloading, VB.NET does not 
CLS was drafted to promote language 
interoperability 
• vast majority of classes within FCL are CLS-compliant
Comparison to Java 
compile execute 
Hello.java Hello.class JVM 
Source code Byte code 
compile execute 
Hello.vb Hello.exe CLR 
Source code CIL
Base Class Library @ FCL 
Unified Classes 
Web Classes (ASP.NET) 
Controls, Caching, Security, Session, Configuration etc 
Data (ADO.NET) Windows Forms 
ADO, SQL,Types etc 
XML Classes 
Design, Cmpnt Model etc 
Drawing Classes 
Drawing, Imaging, Text, etc 
XSLT, Path, Serialization etc 
System Classes 
Collections, Diagnostics, Globalization, IO, Security, 
Threading Serialization, Reflection, Messaging etc
Base Class Library 
Similar to Java’s System namespace. 
Used by all .NET applications 
Has classes for IO, threading, database, text, graphics, console, 
sockets/web/mail, security, cryptography, COM, run-time type 
discovery/invocation, assembly generation
Framework Class Library @ BCL 
Single consistent set of object oriented class libraries to enable building 
distributed web applications (Unified Classes) 
Built using classes arranged across logical hierarchical namespaces 
Work with all CLR languages 
• No more “VBRun” or “MFC” divide
Example
Intermediate Language (IL) 
 .NET languages are not compiled to machine code. 
They are compiled to an Intermediate Language 
(IL). 
 CLR accepts the IL code and recompiles it to 
machine code. The recompilation is just-in-time 
(JIT) meaning it is done as soon as a function or 
subroutine is called. 
 The JIT code stays in memory for subsequent calls. 
In cases where there is not enough memory it is 
discarded thus making JIT process interpretive.
Thank you !!!

More Related Content

What's hot

Net Fundamentals
Net FundamentalsNet Fundamentals
Net FundamentalsAli Taki
 
The how-dare-you-call-me-an-idiot’s guide to the .NET Standard (NDC London 2017)
The how-dare-you-call-me-an-idiot’s guide to the .NET Standard (NDC London 2017)The how-dare-you-call-me-an-idiot’s guide to the .NET Standard (NDC London 2017)
The how-dare-you-call-me-an-idiot’s guide to the .NET Standard (NDC London 2017)citizenmatt
 
Introduction to ,NET Framework
Introduction to ,NET FrameworkIntroduction to ,NET Framework
Introduction to ,NET FrameworkANURAG SINGH
 
Life as an asp.net programmer
Life as an asp.net programmerLife as an asp.net programmer
Life as an asp.net programmerArun Prasad
 
.net CLR
.net CLR.net CLR
.net CLRDevTalk
 
Common language runtime clr
Common language runtime clrCommon language runtime clr
Common language runtime clrSanSan149
 
Presentation1
Presentation1Presentation1
Presentation1kpkcsc
 
Introduction to .net framework
Introduction to .net frameworkIntroduction to .net framework
Introduction to .net frameworkArun Prasad
 
.NET Framework Overview
.NET Framework Overview.NET Framework Overview
.NET Framework OverviewDoncho Minkov
 
Introduction .NET Framework
Introduction .NET FrameworkIntroduction .NET Framework
Introduction .NET Frameworkjavadib
 
Dotnet framework
Dotnet frameworkDotnet framework
Dotnet frameworkNitu Pandey
 
dot net technology
dot net technologydot net technology
dot net technologyImran Khan
 
Architecture of net framework
Architecture of net frameworkArchitecture of net framework
Architecture of net frameworkumesh patil
 
.Net framework
.Net framework.Net framework
.Net frameworkArun Pal
 

What's hot (20)

1.Philosophy of .NET
1.Philosophy of .NET1.Philosophy of .NET
1.Philosophy of .NET
 
Net Fundamentals
Net FundamentalsNet Fundamentals
Net Fundamentals
 
The how-dare-you-call-me-an-idiot’s guide to the .NET Standard (NDC London 2017)
The how-dare-you-call-me-an-idiot’s guide to the .NET Standard (NDC London 2017)The how-dare-you-call-me-an-idiot’s guide to the .NET Standard (NDC London 2017)
The how-dare-you-call-me-an-idiot’s guide to the .NET Standard (NDC London 2017)
 
.Net framework
.Net framework.Net framework
.Net framework
 
Introduction to ,NET Framework
Introduction to ,NET FrameworkIntroduction to ,NET Framework
Introduction to ,NET Framework
 
Life as an asp.net programmer
Life as an asp.net programmerLife as an asp.net programmer
Life as an asp.net programmer
 
Microsoft .NET Framework
Microsoft .NET FrameworkMicrosoft .NET Framework
Microsoft .NET Framework
 
.Net framework
.Net framework.Net framework
.Net framework
 
.net CLR
.net CLR.net CLR
.net CLR
 
DOT Net overview
DOT Net overviewDOT Net overview
DOT Net overview
 
Common language runtime clr
Common language runtime clrCommon language runtime clr
Common language runtime clr
 
Presentation1
Presentation1Presentation1
Presentation1
 
Introduction to .net framework
Introduction to .net frameworkIntroduction to .net framework
Introduction to .net framework
 
.NET Framework Overview
.NET Framework Overview.NET Framework Overview
.NET Framework Overview
 
Introduction .NET Framework
Introduction .NET FrameworkIntroduction .NET Framework
Introduction .NET Framework
 
Dotnet framework
Dotnet frameworkDotnet framework
Dotnet framework
 
dot net technology
dot net technologydot net technology
dot net technology
 
Architecture of net framework
Architecture of net frameworkArchitecture of net framework
Architecture of net framework
 
.Net language support
.Net language support.Net language support
.Net language support
 
.Net framework
.Net framework.Net framework
.Net framework
 

Viewers also liked

A Sneak Peek At Visual Studio 2010 And .Net Framework 4.0
A Sneak Peek At Visual Studio 2010 And .Net Framework 4.0A Sneak Peek At Visual Studio 2010 And .Net Framework 4.0
A Sneak Peek At Visual Studio 2010 And .Net Framework 4.0Antonio Chagoury
 
Using MongoDB with the .Net Framework
Using MongoDB with the .Net FrameworkUsing MongoDB with the .Net Framework
Using MongoDB with the .Net FrameworkStefano Paluello
 
Find out Which Versions of the .NET Framework are Installed on a PC.
Find out Which Versions of the .NET Framework are Installed on a PC.Find out Which Versions of the .NET Framework are Installed on a PC.
Find out Which Versions of the .NET Framework are Installed on a PC.raj upadhyay
 
Using The .NET Framework
Using The .NET FrameworkUsing The .NET Framework
Using The .NET FrameworkLearnNowOnline
 
Inside .net framework
Inside .net frameworkInside .net framework
Inside .net frameworkFaisal Aziz
 
.net framework from 1.0 -> 4.0
.net framework from 1.0 -> 4.0.net framework from 1.0 -> 4.0
.net framework from 1.0 -> 4.0ligaoren
 
Dotnet Frameworks Version History
Dotnet Frameworks Version HistoryDotnet Frameworks Version History
Dotnet Frameworks Version Historyvoltaincx
 
Overview of .Net Framework 4.5
Overview of .Net Framework 4.5Overview of .Net Framework 4.5
Overview of .Net Framework 4.5Bhushan Mulmule
 
Introduction to .NET Programming
Introduction to .NET ProgrammingIntroduction to .NET Programming
Introduction to .NET ProgrammingKarthikeyan Mkr
 
Migrating To Visual Studio 2008 & .Net Framework 3.5
Migrating To Visual Studio 2008 & .Net Framework 3.5Migrating To Visual Studio 2008 & .Net Framework 3.5
Migrating To Visual Studio 2008 & .Net Framework 3.5Jeff Blankenburg
 
Visual Studio 2010 and .NET Framework 4.0 Overview
Visual Studio 2010 and .NET Framework 4.0 OverviewVisual Studio 2010 and .NET Framework 4.0 Overview
Visual Studio 2010 and .NET Framework 4.0 OverviewHarish Ranganathan
 
Introduction To Dotnet
Introduction To DotnetIntroduction To Dotnet
Introduction To DotnetSAMIR BHOGAYTA
 
Introduction to .NET Framework
Introduction to .NET FrameworkIntroduction to .NET Framework
Introduction to .NET FrameworkKamlesh Makvana
 

Viewers also liked (19)

.net framework
.net framework.net framework
.net framework
 
A Sneak Peek At Visual Studio 2010 And .Net Framework 4.0
A Sneak Peek At Visual Studio 2010 And .Net Framework 4.0A Sneak Peek At Visual Studio 2010 And .Net Framework 4.0
A Sneak Peek At Visual Studio 2010 And .Net Framework 4.0
 
Introduction to .NET Framework
Introduction to .NET FrameworkIntroduction to .NET Framework
Introduction to .NET Framework
 
Introduction of .net framework
Introduction of .net frameworkIntroduction of .net framework
Introduction of .net framework
 
Using MongoDB with the .Net Framework
Using MongoDB with the .Net FrameworkUsing MongoDB with the .Net Framework
Using MongoDB with the .Net Framework
 
Find out Which Versions of the .NET Framework are Installed on a PC.
Find out Which Versions of the .NET Framework are Installed on a PC.Find out Which Versions of the .NET Framework are Installed on a PC.
Find out Which Versions of the .NET Framework are Installed on a PC.
 
Using The .NET Framework
Using The .NET FrameworkUsing The .NET Framework
Using The .NET Framework
 
Inside .net framework
Inside .net frameworkInside .net framework
Inside .net framework
 
.Net framework
.Net framework.Net framework
.Net framework
 
.net framework from 1.0 -> 4.0
.net framework from 1.0 -> 4.0.net framework from 1.0 -> 4.0
.net framework from 1.0 -> 4.0
 
Dotnet Frameworks Version History
Dotnet Frameworks Version HistoryDotnet Frameworks Version History
Dotnet Frameworks Version History
 
Overview of .Net Framework 4.5
Overview of .Net Framework 4.5Overview of .Net Framework 4.5
Overview of .Net Framework 4.5
 
Introduction to .NET Programming
Introduction to .NET ProgrammingIntroduction to .NET Programming
Introduction to .NET Programming
 
Migrating To Visual Studio 2008 & .Net Framework 3.5
Migrating To Visual Studio 2008 & .Net Framework 3.5Migrating To Visual Studio 2008 & .Net Framework 3.5
Migrating To Visual Studio 2008 & .Net Framework 3.5
 
Dotnet basics
Dotnet basicsDotnet basics
Dotnet basics
 
Introduction to .NET Framework
Introduction to .NET FrameworkIntroduction to .NET Framework
Introduction to .NET Framework
 
Visual Studio 2010 and .NET Framework 4.0 Overview
Visual Studio 2010 and .NET Framework 4.0 OverviewVisual Studio 2010 and .NET Framework 4.0 Overview
Visual Studio 2010 and .NET Framework 4.0 Overview
 
Introduction To Dotnet
Introduction To DotnetIntroduction To Dotnet
Introduction To Dotnet
 
Introduction to .NET Framework
Introduction to .NET FrameworkIntroduction to .NET Framework
Introduction to .NET Framework
 

Similar to How .NET Rescued Developers from a Maze of Technologies

ASP.NET Session 1
ASP.NET Session 1ASP.NET Session 1
ASP.NET Session 1Sisir Ghosh
 
.Net overview
.Net overview.Net overview
.Net overviewmadydud
 
Modified.net overview
Modified.net overviewModified.net overview
Modified.net overviewFaisal Aziz
 
.Net overviewrajnish
.Net overviewrajnish.Net overviewrajnish
.Net overviewrajnishRajnish Kalla
 
1 get started with c#
1   get started with c#1   get started with c#
1 get started with c#Tuan Ngo
 
Net Framework overview
Net Framework overviewNet Framework overview
Net Framework overviewMohitKumar1985
 
Microsoft .NET (dotnet) Framework 2003 - 2004 overview and web services…
Microsoft .NET (dotnet) Framework 2003 - 2004 overview and web services…Microsoft .NET (dotnet) Framework 2003 - 2004 overview and web services…
Microsoft .NET (dotnet) Framework 2003 - 2004 overview and web services…Lorenz Lo Sauer
 
CS4443 - Modern Programming Language - I Lecture (1)
CS4443 - Modern Programming Language - I Lecture (1)CS4443 - Modern Programming Language - I Lecture (1)
CS4443 - Modern Programming Language - I Lecture (1)Dilawar Khan
 
.Net framework
.Net framework.Net framework
.Net frameworksanya6900
 
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
 
.Net Framework
.Net Framework.Net Framework
.Net FrameworkMohamadKrm
 
Microsoft .NET Platform
Microsoft .NET PlatformMicrosoft .NET Platform
Microsoft .NET PlatformPeter R. Egli
 

Similar to How .NET Rescued Developers from a Maze of Technologies (20)

ASP.NET Session 1
ASP.NET Session 1ASP.NET Session 1
ASP.NET Session 1
 
.Net overview
.Net overview.Net overview
.Net overview
 
Modified.net overview
Modified.net overviewModified.net overview
Modified.net overview
 
.Net overviewrajnish
.Net overviewrajnish.Net overviewrajnish
.Net overviewrajnish
 
1 get started with c#
1   get started with c#1   get started with c#
1 get started with c#
 
Net Framework overview
Net Framework overviewNet Framework overview
Net Framework overview
 
.Net overview by cetpa
.Net overview by cetpa.Net overview by cetpa
.Net overview by cetpa
 
Microsoft .NET (dotnet) Framework 2003 - 2004 overview and web services…
Microsoft .NET (dotnet) Framework 2003 - 2004 overview and web services…Microsoft .NET (dotnet) Framework 2003 - 2004 overview and web services…
Microsoft .NET (dotnet) Framework 2003 - 2004 overview and web services…
 
Net overview
Net overviewNet overview
Net overview
 
Net overview
Net overviewNet overview
Net overview
 
.Net overview
.Net overview.Net overview
.Net overview
 
Dotnet1
Dotnet1Dotnet1
Dotnet1
 
Microsoft.Net
Microsoft.NetMicrosoft.Net
Microsoft.Net
 
CS4443 - Modern Programming Language - I Lecture (1)
CS4443 - Modern Programming Language - I Lecture (1)CS4443 - Modern Programming Language - I Lecture (1)
CS4443 - Modern Programming Language - I Lecture (1)
 
.Net framework
.Net framework.Net framework
.Net framework
 
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...
 
.Net Framework
.Net Framework.Net Framework
.Net Framework
 
Microsoft .NET Platform
Microsoft .NET PlatformMicrosoft .NET Platform
Microsoft .NET Platform
 

More from Quontra Solutions

Java Constructors with examples - Quontra Solutions
Java Constructors with examples  - Quontra SolutionsJava Constructors with examples  - Quontra Solutions
Java Constructors with examples - Quontra SolutionsQuontra Solutions
 
Oracle-12c Online Training by Quontra Solutions
 Oracle-12c Online Training by Quontra Solutions Oracle-12c Online Training by Quontra Solutions
Oracle-12c Online Training by Quontra SolutionsQuontra Solutions
 
Test Automation Framework Online Training by QuontraSolutions
Test Automation Framework Online Training by QuontraSolutionsTest Automation Framework Online Training by QuontraSolutions
Test Automation Framework Online Training by QuontraSolutionsQuontra Solutions
 
Automation with Selenium Presented by Quontra Solutions
Automation with Selenium Presented by Quontra SolutionsAutomation with Selenium Presented by Quontra Solutions
Automation with Selenium Presented by Quontra SolutionsQuontra Solutions
 
Automated Software Testing Framework Training by Quontra Solutions
Automated Software Testing Framework Training by Quontra SolutionsAutomated Software Testing Framework Training by Quontra Solutions
Automated Software Testing Framework Training by Quontra SolutionsQuontra Solutions
 
DataMining and OLAP Technology Concepts Presented By Quontra Solutions
DataMining and OLAP Technology Concepts Presented By Quontra SolutionsDataMining and OLAP Technology Concepts Presented By Quontra Solutions
DataMining and OLAP Technology Concepts Presented By Quontra SolutionsQuontra Solutions
 
Network security by quontra solutions uk
Network security by quontra solutions ukNetwork security by quontra solutions uk
Network security by quontra solutions ukQuontra Solutions
 
Informatica Metadata Exchange Frequently Asked Questions by Quontra Solutions
Informatica Metadata Exchange Frequently Asked Questions by Quontra SolutionsInformatica Metadata Exchange Frequently Asked Questions by Quontra Solutions
Informatica Metadata Exchange Frequently Asked Questions by Quontra SolutionsQuontra Solutions
 
Informatica metadata exchange frequently asked questions by quontra solutions
Informatica metadata exchange frequently asked questions by quontra solutionsInformatica metadata exchange frequently asked questions by quontra solutions
Informatica metadata exchange frequently asked questions by quontra solutionsQuontra Solutions
 
Dataware house Introduction By Quontra Solutions
Dataware house Introduction By Quontra SolutionsDataware house Introduction By Quontra Solutions
Dataware house Introduction By Quontra SolutionsQuontra Solutions
 
Selenium overview ppt by quontra solutions
Selenium overview ppt by quontra solutionsSelenium overview ppt by quontra solutions
Selenium overview ppt by quontra solutionsQuontra Solutions
 

More from Quontra Solutions (12)

Java Constructors with examples - Quontra Solutions
Java Constructors with examples  - Quontra SolutionsJava Constructors with examples  - Quontra Solutions
Java Constructors with examples - Quontra Solutions
 
Oracle-12c Online Training by Quontra Solutions
 Oracle-12c Online Training by Quontra Solutions Oracle-12c Online Training by Quontra Solutions
Oracle-12c Online Training by Quontra Solutions
 
Test Automation Framework Online Training by QuontraSolutions
Test Automation Framework Online Training by QuontraSolutionsTest Automation Framework Online Training by QuontraSolutions
Test Automation Framework Online Training by QuontraSolutions
 
Enterprise java beans
Enterprise java beansEnterprise java beans
Enterprise java beans
 
Automation with Selenium Presented by Quontra Solutions
Automation with Selenium Presented by Quontra SolutionsAutomation with Selenium Presented by Quontra Solutions
Automation with Selenium Presented by Quontra Solutions
 
Automated Software Testing Framework Training by Quontra Solutions
Automated Software Testing Framework Training by Quontra SolutionsAutomated Software Testing Framework Training by Quontra Solutions
Automated Software Testing Framework Training by Quontra Solutions
 
DataMining and OLAP Technology Concepts Presented By Quontra Solutions
DataMining and OLAP Technology Concepts Presented By Quontra SolutionsDataMining and OLAP Technology Concepts Presented By Quontra Solutions
DataMining and OLAP Technology Concepts Presented By Quontra Solutions
 
Network security by quontra solutions uk
Network security by quontra solutions ukNetwork security by quontra solutions uk
Network security by quontra solutions uk
 
Informatica Metadata Exchange Frequently Asked Questions by Quontra Solutions
Informatica Metadata Exchange Frequently Asked Questions by Quontra SolutionsInformatica Metadata Exchange Frequently Asked Questions by Quontra Solutions
Informatica Metadata Exchange Frequently Asked Questions by Quontra Solutions
 
Informatica metadata exchange frequently asked questions by quontra solutions
Informatica metadata exchange frequently asked questions by quontra solutionsInformatica metadata exchange frequently asked questions by quontra solutions
Informatica metadata exchange frequently asked questions by quontra solutions
 
Dataware house Introduction By Quontra Solutions
Dataware house Introduction By Quontra SolutionsDataware house Introduction By Quontra Solutions
Dataware house Introduction By Quontra Solutions
 
Selenium overview ppt by quontra solutions
Selenium overview ppt by quontra solutionsSelenium overview ppt by quontra solutions
Selenium overview ppt by quontra solutions
 

Recently uploaded

Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Krashi Coaching
 
Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxpboyjonauth
 
Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Educationpboyjonauth
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxheathfieldcps1
 
mini mental status format.docx
mini    mental       status     format.docxmini    mental       status     format.docx
mini mental status format.docxPoojaSen20
 
Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxNirmalaLoungPoorunde1
 
How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17Celine George
 
Solving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxSolving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxOH TEIK BIN
 
Science 7 - LAND and SEA BREEZE and its Characteristics
Science 7 - LAND and SEA BREEZE and its CharacteristicsScience 7 - LAND and SEA BREEZE and its Characteristics
Science 7 - LAND and SEA BREEZE and its CharacteristicsKarinaGenton
 
URLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppURLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppCeline George
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxiammrhaywood
 
Concept of Vouching. B.Com(Hons) /B.Compdf
Concept of Vouching. B.Com(Hons) /B.CompdfConcept of Vouching. B.Com(Hons) /B.Compdf
Concept of Vouching. B.Com(Hons) /B.CompdfUmakantAnnand
 
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTiammrhaywood
 
Alper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentAlper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentInMediaRes1
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationnomboosow
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxmanuelaromero2013
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformChameera Dedduwage
 

Recently uploaded (20)

Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
 
Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptx
 
Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Education
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
 
mini mental status format.docx
mini    mental       status     format.docxmini    mental       status     format.docx
mini mental status format.docx
 
Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptx
 
How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17
 
Solving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxSolving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptx
 
Science 7 - LAND and SEA BREEZE and its Characteristics
Science 7 - LAND and SEA BREEZE and its CharacteristicsScience 7 - LAND and SEA BREEZE and its Characteristics
Science 7 - LAND and SEA BREEZE and its Characteristics
 
URLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppURLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website App
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
 
Concept of Vouching. B.Com(Hons) /B.Compdf
Concept of Vouching. B.Com(Hons) /B.CompdfConcept of Vouching. B.Com(Hons) /B.Compdf
Concept of Vouching. B.Com(Hons) /B.Compdf
 
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
 
9953330565 Low Rate Call Girls In Rohini Delhi NCR
9953330565 Low Rate Call Girls In Rohini  Delhi NCR9953330565 Low Rate Call Girls In Rohini  Delhi NCR
9953330565 Low Rate Call Girls In Rohini Delhi NCR
 
Alper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentAlper Gobel In Media Res Media Component
Alper Gobel In Media Res Media Component
 
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communication
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptx
 
Model Call Girl in Bikash Puri Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Bikash Puri  Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Bikash Puri  Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Bikash Puri Delhi reach out to us at 🔝9953056974🔝
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy Reform
 

How .NET Rescued Developers from a Maze of Technologies

  • 1. By Email : info@quontrasolutions.co.uk Contact : 020-3734-1498 WebSite : www.quontrasolutions.co.uk
  • 2. Before .NET Windows GUI development: Win32 API, MFC, Visual Basic, COM Web development: ASP Java – “Write once, run anywhere.” Embrace and extend: Visual J++
  • 3. Life As a C/Win32 API Programmer Traditional software development for the Windows. • C developers are forced to contend with complex memory management and pointer arithmetic. • It lacks the benefits provided by the object-oriented approach When you combine the thousands of global functions and data types defined by the Win32 API to an already formidable language, it is little wonder that there are so many buggy applications floating around today.
  • 4. Life As a C++/MFC Programmer  C++ is an object-oriented layer on top of C.  Programmers benefit from the famed “pillars of OOP” (encapsulation, inheritance, and polymorphism).  Microsoft Foundation Classes (MFC) provides a set of C++ classes that facilitate the construction of Win32 applications.  It wraps a “sane subset” of the raw Win32 API behind a number of classes, magic macros, and numerous code-generation tools (wizards).  Regardless of the helpful MFC, programming for Windows using C++ remains a difficult and error-prone experience
  • 5. Visual Basic 6.0 Programmer Ability to build complex user interfaces, code libraries, and data access logic with minimal fuss and bother. • VB6 hides the complexities of the raw Win32 API from view using integrated code wizards, intrinsic data types, classes, and VB-specific functions. Not fully object-oriented • No “is-a” relationships between types (i.e., no classical inheritance) • No multithreaded applications unless you are willing to drop down to low-level Win32 API calls (which is complex at best and dangerous at worst).
  • 6. Life As a Java/J2EE Programmer Object oriented with syntactic roots in C++. • Java cleans up many unsavory syntactical aspects of C++. • Java provides programmers with a large number of predefined “packages” that contain various type definitions. Limited ability to access non-Java APIs. Little support for true cross-language integration. • Not appropriate for many graphically or numerically intensive applications. • A better approach for such programs would be to use a language such as C++ where appropriate.
  • 7. Life As a COM Programmer Microsoft’s previous application development framework. • reusable binary code. • C++ programmers can build COM classes that can be used by VB6. Delphi programmers can use COM classes built using C. COM’s language independence is limited. • COM has no support for classical inheritance). COM is extremely complex under the hood. • The Active Template Library (ATL) provides a set of C++ classes, templates, and macros to ease the creation of COM types.
  • 8. Windows DNA Programmer  Microsoft has been adding more Internet-aware features into its family of operating systems and products. COM-based Windows Distributed interNet Applications Architecture (DNA) is quite complex.  Due to the simple fact that Windows DNA requires the use of numerous technologies and languages (ASP, HTML, XML, JavaScript, VBScript, COM(+), and data access API like ADO).
  • 9. The complete maze… Completely unrelated syntaxes. JavaScript has a syntax much like C, while VBScript is a subset of VB6. The result is a highly confused mishmash of technologies. Each language and/or technology has its own type system: An “int” in JavaScript is not quite the same as an “Integer” in VB6.
  • 10. .Net, the Rescuer OOP JVM .NET GUI Web component-based design n-tier design
  • 12. Integrated environment .Net provides Internet, Desktop , Mobile devices consistent object-oriented To provide a portable environment A managed environment
  • 13. .NET is a framework What Is .NET New programming methodology .NET is platform independent / cross platform .NET is language-insensitive
  • 14. .NET is cross-platform APP.exe ? Win64 Win32 (XP,2K,98) WinCE
  • 15. Narrow view of .Net applications .NET Application .NET Framework Operating System + Hardware
  • 17. .Net Architecture .NET architecture is: • multi-language • cross-platform • based on the CLR, FCL, and JIT technology • .NET components are packaged as assemblies
  • 19. .Net Technical Architecture VB C++ C# Common Language Specification Windows Forms ADO.NET: Data and XML Base Class Library Common Language Runtime Visual Studio.NET ASP.NET: Web Services and Web Forms JScript … Windows Forms
  • 20. Common Language Runtime A common runtime for all .NET languages • Common type system • Common metadata • Intermediate Language (IL) to native code compilers • Memory allocation and garbage collection • Code execution and security Over 15 languages supported today • C#, VB, Jscript, Visual C++ from Microsoft • Perl, Python, Smalltalk, Cobol, Haskell, Mercury, Eiffel, Oberon, Oz, Pascal, APL, CAML, Scheme, etc. Rational is working on Java compiler for CLR
  • 21. The CLR Architecture Base Class Library Support Thread Support COM Marshaler Type Checker Exception Manager Security Engine Debug Engine Class Loader MSIL to Native Compilers (JIT) Code Manager Garbage Collector (GC)
  • 22. CLR Execution Model (Narrow) Code in VB.NET Code in C# Code in another .NET Language VB.NET compiler C# compiler Appropriate Compiler IL(Intermediate Language) code CLR just-in-time execution
  • 23. CLR Execution Model Source VB code Compiler C# C++ Compiler Compiler Assembly IL Code Assembly IL Code Assembly IL Code Common Language Runtime JIT Compiler Native Code Operating System Services Managed code Unmanaged Component
  • 25. CLR based execution APP.exe other FCL components JIT Compiler obj code CLR OS Process Core FCL Underlying OS and HW
  • 26. Common Language Runtime Execution Engine • Compiles Microsoft Intermediate Language (MSIL) into native code • Handles garbage collection •Handles exceptions • Enforces code access security • Handles verification • Managed v. Unmanaged
  • 27. Implications of CLR execution model 1. Clients need CLR & FCL to run .NET apps • available via Redistributable .NET Framework 2. Design trade-off… + managed execution (memory protection, verifiable code, etc.) + portability: – slower execution?
  • 28. CLR and JIT compiling Indirect execution of .Net applications. All .NET languages compile to the same CIL. The CLR transforms the CIL to assembly instructions for a particular hardware architecture. • This is termed jit’ing or Just-in-time compiling. • Some initial performance cost, but the jitted code is cached for further execution. • The CLR can target the specific architecture in which the code is executing, so some performance gains are possible.
  • 29. Advantages of CLR Support for developer services (debugging) Interoperation between managed code and unmanaged code (COM, DLLs). Managed code environment Improved memory handling Improved “garbage collection”
  • 30. Advantages of CLR  JIT allows code to run in a protected environment as managed code.  JIT allows the IL code to be hardware independent.  CLR also allows for enforcement of code access security.  Verification of type safety.  Access to Metadata (enhanced Type Information)
  • 32. CLI
  • 33. Common Language Infrastructure  CLI allows for cross-language development.  Four components:  Common Type System (CTS)  Meta-data in a language agnostic fashion.  Common Language Specification – behaviors that all languages need to follow.  A Virtual Execution System (VES).
  • 34. Common Type System (CTS) A specification for how types are defined and how they behave. • no syntax specified A type can contain zero or more members: • Field •Method • Property • Event
  • 35. Common Type System (CTS) System-defined types String Array ValueType Exception Delegate Class1 Multicast Delegate Class2 Class3 Object Enum Structure1 Enum1 Primitive types Boolean Byte Int16 Int32 Int64 Char Single Double Decimal DateTime User-defined types Delegate1 TimeSpan Guid
  • 37. Common Data Types CLR provides a set of primitive types that all languages must support. The data types include: • Integer—three types 16/32/64 bits • Float—two types: 32/64 bits • Boolean and Character • Date/time and Time span The primitive types can be collected into • Arrays • Structures • Combination of the two
  • 38. Common Language Specification (CLS) Not all languages support all CTS types and features • C# is case sensitive, VB.NET is not • C# supports pointer types (in unsafe mode), VB.NET does not • C# supports operator overloading, VB.NET does not CLS was drafted to promote language interoperability • vast majority of classes within FCL are CLS-compliant
  • 39. Comparison to Java compile execute Hello.java Hello.class JVM Source code Byte code compile execute Hello.vb Hello.exe CLR Source code CIL
  • 40. Base Class Library @ FCL Unified Classes Web Classes (ASP.NET) Controls, Caching, Security, Session, Configuration etc Data (ADO.NET) Windows Forms ADO, SQL,Types etc XML Classes Design, Cmpnt Model etc Drawing Classes Drawing, Imaging, Text, etc XSLT, Path, Serialization etc System Classes Collections, Diagnostics, Globalization, IO, Security, Threading Serialization, Reflection, Messaging etc
  • 41. Base Class Library Similar to Java’s System namespace. Used by all .NET applications Has classes for IO, threading, database, text, graphics, console, sockets/web/mail, security, cryptography, COM, run-time type discovery/invocation, assembly generation
  • 42. Framework Class Library @ BCL Single consistent set of object oriented class libraries to enable building distributed web applications (Unified Classes) Built using classes arranged across logical hierarchical namespaces Work with all CLR languages • No more “VBRun” or “MFC” divide
  • 44. Intermediate Language (IL)  .NET languages are not compiled to machine code. They are compiled to an Intermediate Language (IL).  CLR accepts the IL code and recompiles it to machine code. The recompilation is just-in-time (JIT) meaning it is done as soon as a function or subroutine is called.  The JIT code stays in memory for subsequent calls. In cases where there is not enough memory it is discarded thus making JIT process interpretive.