SlideShare uma empresa Scribd logo
1 de 26
Microsoft .NET
Object Oriented Software Engineering
2
Agenda
 .NET
 C#
 .NET vs. J2EE (C# vs. Java)
 Any .NET or C# programmers here?
3
Definition…
 “Microsoft .NET is a set of Microsoft software
technologies for connecting information, people,
systems and devices.”
 Microsoft’s explanation of .NET:
http://www.microsoft.com/net/basics/whatis.asp
 More of an emphasis on web services (self-describing self
modules wrapped in Internet protocols (XML and SOAP)
 In real terms to the developer:
 A new platform for building applications that run in stand-alone
mode or over the Internet
4
Evolution
 Next Generation of COM:
 Component oriented software:
 Win32/C-style APIs are outdated
 COM was step in right direction, but painful to program with
 COM was restricted to VB, C++
 Binary compatibility/portability an issue: x86 version of COM component
needed to be compiled for e.g. PowerPC
 Memory management also a pain
 Common Object Runtime:
 An execution environment for components written in any language:
 Eventually became .NET with incorporation of Web Services
 Standardised API
 Web Services:
 Interoperability is key in the connected world:
 Require open standards for interoperability and leveraging legacy code
5
Architecture
6
.NET Core Components
• FCL is Framework Class Library, comparable to JDK’s library
7
Java and .NET: Runtime environments
 Java
 Intermediate language is bytecode
 Original design targeted interpretation
 Java VMs with JIT compilation are now also used
 .NET Framework
 Intermediate language is MSIL
 Provides JIT compilation
 What is JIT?
 Just-In-Time compilation: translates a bytecode method
into a native method on the fly, so as to remove
the overhead of interpretation
8
Common Language Runtime
 CLR sits on top of OS to provide a virtual environment
for hosting managed applications
 What is CLR similar to in Java?
 Java Virtual Machine (JVM)
 CLR loads modules containing executable and
executes their code
 Code might be managed or unmanaged
 In either case the CLR determines what to do with it
 Managed Code consists of instructions written in a
pseudo-machine language called common
intermediate language, or IL.
 IL instructions are just-in-time (JIT) compiled into
native machine code at run time
9
Compiling and executing managed code
Source
Code
Language
Compiler
Microsoft
Intermediate
Language
(MSIL)
Compilation
JIT
Compiler
Native
Code
The first time each
method is called
Execution
10
Common Language Runtime
11
.NET languages
 Over 20 .NET-compatible languages
 Most are provided by 3rd
parties
 .NET languages provided by Microsoft
 C++
 Visual Basic
 C#
12
Language Compiler List
 AdaAda
 APLAPL
 Basic (Visual Basic)Basic (Visual Basic)
 C#C#
 CC
 C++C++
 JavaJava
 COBOLCOBOL
 Component PascalComponent Pascal
(Queensland U Tech)(Queensland U Tech)
 ECMAScript (JScript)ECMAScript (JScript)
 EiffelEiffel (Monash U.)(Monash U.)
 Haskell (Utrecht U.)Haskell (Utrecht U.)
 lcclcc
(MS Research Redmond)(MS Research Redmond)
 Mondrian (Utrecht)Mondrian (Utrecht)
 MLML
(MS Research Cambridge)(MS Research Cambridge)
 MercuryMercury
(Melbourne U.)(Melbourne U.)
 OberonOberon
(Zurich University)(Zurich University)
 Oz (Univ of Saarlandes)Oz (Univ of Saarlandes)
 PerlPerl
 PythonPython
 Scheme (Northwestern U.)Scheme (Northwestern U.)
 SmallTalkSmallTalk
13
Why C# ?
 Unofficially: because Sun owns Java
 Important features are spread out over multiple
languages
 Example: do you think developers should have to choose
between pointers (C++) or garbage collection (Java)?
 Old languages + new features = poor syntax
 Garbage collection in C++?
 Event-driven GUIs in Java?
 Increase developer productivity!
 Type safety
 Garbage collection
 Exceptions
14
The safety of Java
 100% object oriented
 Automatic garbage collection
 Array bounds checking at runtime
 Strict type checking
 Structured exception handling
15
The ease of Visual Basic
 First class support for properties
 First class support for events
 foreach loops
16
The power of C++
 Enumerations
 Operator overloading
 Mathematical, Indexing, and Casting
 Function pointers
 Called “delegates”
 Type safe
 Structs
17
The power of C++
 Option to pass parameters by reference
or by value
 Can disable type-safety, garbage
collection, and bounds checking
 Can directly manipulate memory with
pointers
.NET vs. J2EE
19
Basic Truths
 J2EE
 Java-centric and platform-neutral
 J2EE is not a product you buy from Sun.
 J2EE is a set of specifications which indicate how
various J2EE functions must interoperate
 If I don’t buy J2EE from Sun, how does Sun make money?
 J2EE 1.4 released with features to completely
support web services – JAX-RPC 1.1 API, J2EE
Management 1.0 API, web service endpoints etc.
(Hard to learn, hard to implement!)
20
Basic Truths
 .NET
 Windows-centric and language-neutral
 .NET is a Microsoft product strategy that includes a
range of products from development tools and
servers to end-user applications.
 Platform-neutral version of .NET is available
Mono –Novell-sponsored, open source
implementation of the .NET development
environment
( http://www.go-mono.com )
21
Typical N-tier application architecture
22
.NET and Java: application platforms
 .NET
 The .NET Framework
 Java
 Java application servers
 Products include:
 IBM WebSphere Application Server
 BEA WebLogic Application Server
 Sun iPlanet Application Server
 Oracle Application Server
 Many others
23
.NET vs. Java: standard libraries
 .NET Framework class library
 Defined by Microsoft
 Somewhat Windows-oriented
 Organized into a hierarchy of namespaces
 J2SE, J2EE
 Defined by Sun and the Java Community Process
 Not bound to any operating system
 Defined as packages and interfaces
24
.NET Class Library
 IO
 GUI Programming
 System Information
 Collections
 Components
 Application Configuration
 Connecting to Databases (ADO.NET)
 Tracing and Logging
 Manipulating Images/Graphics
25
Class Library
 Interoperability with COM
 Globalization and Internationalization
 Network Programming with Sockets
 Remoting
 Serialization
 XML
 Security and Cryptography
 Threading
 Web Services
Thanks…

Mais conteúdo relacionado

Mais procurados

Module 1: Introduction to .NET Framework 3.5 (Slides)
Module 1: Introduction to .NET Framework 3.5 (Slides)Module 1: Introduction to .NET Framework 3.5 (Slides)
Module 1: Introduction to .NET Framework 3.5 (Slides)Mohamed Saleh
 
Java v/s .NET - Which is Better?
Java v/s .NET - Which is Better?Java v/s .NET - Which is Better?
Java v/s .NET - Which is Better?NIIT India
 
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 FrameWork by QuontraSolutions
Introduction to .net FrameWork by QuontraSolutionsIntroduction to .net FrameWork by QuontraSolutions
Introduction to .net FrameWork by QuontraSolutionsQuontra Solutions
 
Net Fundamentals
Net FundamentalsNet Fundamentals
Net FundamentalsAli Taki
 
C# .NET: Language Features and Creating .NET Projects, Namespaces Classes and...
C# .NET: Language Features and Creating .NET Projects, Namespaces Classes and...C# .NET: Language Features and Creating .NET Projects, Namespaces Classes and...
C# .NET: Language Features and Creating .NET Projects, Namespaces Classes and...yazad dumasia
 
01 intro to programming in .net
01   intro to programming in .net01   intro to programming in .net
01 intro to programming in .netFelisha Hosein
 
Introductionto .netframework by Priyanka Pinglikar
Introductionto .netframework by Priyanka PinglikarIntroductionto .netframework by Priyanka Pinglikar
Introductionto .netframework by Priyanka PinglikarPriyankaPinglikar
 
Lesson 1 Understanding Dot Net Framework
Lesson 1   Understanding Dot Net FrameworkLesson 1   Understanding Dot Net Framework
Lesson 1 Understanding Dot Net Frameworknbaveja
 
.Net overview|Introduction Of .net
.Net overview|Introduction Of .net.Net overview|Introduction Of .net
.Net overview|Introduction Of .netpinky singh
 
1 get started with c#
1   get started with c#1   get started with c#
1 get started with c#Tuan Ngo
 
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
 
Common language runtime clr
Common language runtime clrCommon language runtime clr
Common language runtime clrSanSan149
 
.Net Framework Introduction
.Net Framework Introduction.Net Framework Introduction
.Net Framework IntroductionAbhishek Sahu
 
Presentation1
Presentation1Presentation1
Presentation1kpkcsc
 
Overview of .Net Framework
Overview of .Net FrameworkOverview of .Net Framework
Overview of .Net FrameworkNeha Singh
 

Mais procurados (20)

Java vs .net (beginners)
Java vs .net (beginners)Java vs .net (beginners)
Java vs .net (beginners)
 
Module 1: Introduction to .NET Framework 3.5 (Slides)
Module 1: Introduction to .NET Framework 3.5 (Slides)Module 1: Introduction to .NET Framework 3.5 (Slides)
Module 1: Introduction to .NET Framework 3.5 (Slides)
 
Java v/s .NET - Which is Better?
Java v/s .NET - Which is Better?Java v/s .NET - Which is Better?
Java v/s .NET - Which is Better?
 
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 FrameWork by QuontraSolutions
Introduction to .net FrameWork by QuontraSolutionsIntroduction to .net FrameWork by QuontraSolutions
Introduction to .net FrameWork by QuontraSolutions
 
Net Fundamentals
Net FundamentalsNet Fundamentals
Net Fundamentals
 
C# .NET: Language Features and Creating .NET Projects, Namespaces Classes and...
C# .NET: Language Features and Creating .NET Projects, Namespaces Classes and...C# .NET: Language Features and Creating .NET Projects, Namespaces Classes and...
C# .NET: Language Features and Creating .NET Projects, Namespaces Classes and...
 
01 intro to programming in .net
01   intro to programming in .net01   intro to programming in .net
01 intro to programming in .net
 
Introductionto .netframework by Priyanka Pinglikar
Introductionto .netframework by Priyanka PinglikarIntroductionto .netframework by Priyanka Pinglikar
Introductionto .netframework by Priyanka Pinglikar
 
Lesson 1 Understanding Dot Net Framework
Lesson 1   Understanding Dot Net FrameworkLesson 1   Understanding Dot Net Framework
Lesson 1 Understanding Dot Net Framework
 
.Net overview|Introduction Of .net
.Net overview|Introduction Of .net.Net overview|Introduction Of .net
.Net overview|Introduction Of .net
 
1 get started with c#
1   get started with c#1   get started with c#
1 get started with c#
 
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)
 
1.Philosophy of .NET
1.Philosophy of .NET1.Philosophy of .NET
1.Philosophy of .NET
 
Common language runtime clr
Common language runtime clrCommon language runtime clr
Common language runtime clr
 
.Net Framework Introduction
.Net Framework Introduction.Net Framework Introduction
.Net Framework Introduction
 
Vb.net class notes
Vb.net class notesVb.net class notes
Vb.net class notes
 
Presentation1
Presentation1Presentation1
Presentation1
 
Introduction of .net framework
Introduction of .net frameworkIntroduction of .net framework
Introduction of .net framework
 
Overview of .Net Framework
Overview of .Net FrameworkOverview of .Net Framework
Overview of .Net Framework
 

Destaque (8)

2. java oop
2. java oop2. java oop
2. java oop
 
java vs C#
java vs C#java vs C#
java vs C#
 
Comparison of Programming Platforms
Comparison of Programming PlatformsComparison of Programming Platforms
Comparison of Programming Platforms
 
C#/.NET Little Pitfalls
C#/.NET Little PitfallsC#/.NET Little Pitfalls
C#/.NET Little Pitfalls
 
.NET and C# Introduction
.NET and C# Introduction.NET and C# Introduction
.NET and C# Introduction
 
More Little Wonders of C#/.NET
More Little Wonders of C#/.NETMore Little Wonders of C#/.NET
More Little Wonders of C#/.NET
 
.NET Framework Overview
.NET Framework Overview.NET Framework Overview
.NET Framework Overview
 
C#/.NET Little Wonders
C#/.NET Little WondersC#/.NET Little Wonders
C#/.NET Little Wonders
 

Semelhante a Csharp dot net

Semelhante a Csharp dot net (20)

Csharp dot net
Csharp dot netCsharp dot net
Csharp dot net
 
Introduction to .net framework
Introduction to .net frameworkIntroduction to .net framework
Introduction to .net framework
 
.Net introduction by Quontra Solutions
.Net introduction by Quontra Solutions.Net introduction by Quontra Solutions
.Net introduction by Quontra Solutions
 
ASP.NET Session 1
ASP.NET Session 1ASP.NET Session 1
ASP.NET Session 1
 
Introdot Netc Sharp En
Introdot Netc Sharp EnIntrodot Netc Sharp En
Introdot Netc Sharp En
 
Visula C# Programming Lecture 1
Visula C# Programming Lecture 1Visula C# Programming Lecture 1
Visula C# Programming Lecture 1
 
1..Net Framework Architecture-(c#)
1..Net Framework Architecture-(c#)1..Net Framework Architecture-(c#)
1..Net Framework Architecture-(c#)
 
ASP.Net Technologies Part-1
ASP.Net Technologies Part-1ASP.Net Technologies Part-1
ASP.Net Technologies Part-1
 
.Net overview
.Net overview.Net overview
.Net overview
 
SynapseIndia dotnet development framework
SynapseIndia  dotnet development frameworkSynapseIndia  dotnet development framework
SynapseIndia dotnet development framework
 
tybsc it asp.net full unit 1,2,3,4,5,6 notes
tybsc it asp.net full unit 1,2,3,4,5,6 notestybsc it asp.net full unit 1,2,3,4,5,6 notes
tybsc it asp.net full unit 1,2,3,4,5,6 notes
 
.Net overview
.Net overview.Net overview
.Net overview
 
.Net Overview
.Net Overview.Net Overview
.Net Overview
 
As Pdotnet
As PdotnetAs Pdotnet
As Pdotnet
 
.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
 
Synapse india reviews sharing asp.net
Synapse india reviews sharing  asp.netSynapse india reviews sharing  asp.net
Synapse india reviews sharing asp.net
 
Programming with c#
Programming with c#Programming with c#
Programming with c#
 
Programming in c#
Programming in c#Programming in c#
Programming in c#
 
.net framework
.net framework.net framework
.net framework
 
jhkghj
jhkghjjhkghj
jhkghj
 

Último

The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 

Último (20)

The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 

Csharp dot net

  • 1. Microsoft .NET Object Oriented Software Engineering
  • 2. 2 Agenda  .NET  C#  .NET vs. J2EE (C# vs. Java)  Any .NET or C# programmers here?
  • 3. 3 Definition…  “Microsoft .NET is a set of Microsoft software technologies for connecting information, people, systems and devices.”  Microsoft’s explanation of .NET: http://www.microsoft.com/net/basics/whatis.asp  More of an emphasis on web services (self-describing self modules wrapped in Internet protocols (XML and SOAP)  In real terms to the developer:  A new platform for building applications that run in stand-alone mode or over the Internet
  • 4. 4 Evolution  Next Generation of COM:  Component oriented software:  Win32/C-style APIs are outdated  COM was step in right direction, but painful to program with  COM was restricted to VB, C++  Binary compatibility/portability an issue: x86 version of COM component needed to be compiled for e.g. PowerPC  Memory management also a pain  Common Object Runtime:  An execution environment for components written in any language:  Eventually became .NET with incorporation of Web Services  Standardised API  Web Services:  Interoperability is key in the connected world:  Require open standards for interoperability and leveraging legacy code
  • 6. 6 .NET Core Components • FCL is Framework Class Library, comparable to JDK’s library
  • 7. 7 Java and .NET: Runtime environments  Java  Intermediate language is bytecode  Original design targeted interpretation  Java VMs with JIT compilation are now also used  .NET Framework  Intermediate language is MSIL  Provides JIT compilation  What is JIT?  Just-In-Time compilation: translates a bytecode method into a native method on the fly, so as to remove the overhead of interpretation
  • 8. 8 Common Language Runtime  CLR sits on top of OS to provide a virtual environment for hosting managed applications  What is CLR similar to in Java?  Java Virtual Machine (JVM)  CLR loads modules containing executable and executes their code  Code might be managed or unmanaged  In either case the CLR determines what to do with it  Managed Code consists of instructions written in a pseudo-machine language called common intermediate language, or IL.  IL instructions are just-in-time (JIT) compiled into native machine code at run time
  • 9. 9 Compiling and executing managed code Source Code Language Compiler Microsoft Intermediate Language (MSIL) Compilation JIT Compiler Native Code The first time each method is called Execution
  • 11. 11 .NET languages  Over 20 .NET-compatible languages  Most are provided by 3rd parties  .NET languages provided by Microsoft  C++  Visual Basic  C#
  • 12. 12 Language Compiler List  AdaAda  APLAPL  Basic (Visual Basic)Basic (Visual Basic)  C#C#  CC  C++C++  JavaJava  COBOLCOBOL  Component PascalComponent Pascal (Queensland U Tech)(Queensland U Tech)  ECMAScript (JScript)ECMAScript (JScript)  EiffelEiffel (Monash U.)(Monash U.)  Haskell (Utrecht U.)Haskell (Utrecht U.)  lcclcc (MS Research Redmond)(MS Research Redmond)  Mondrian (Utrecht)Mondrian (Utrecht)  MLML (MS Research Cambridge)(MS Research Cambridge)  MercuryMercury (Melbourne U.)(Melbourne U.)  OberonOberon (Zurich University)(Zurich University)  Oz (Univ of Saarlandes)Oz (Univ of Saarlandes)  PerlPerl  PythonPython  Scheme (Northwestern U.)Scheme (Northwestern U.)  SmallTalkSmallTalk
  • 13. 13 Why C# ?  Unofficially: because Sun owns Java  Important features are spread out over multiple languages  Example: do you think developers should have to choose between pointers (C++) or garbage collection (Java)?  Old languages + new features = poor syntax  Garbage collection in C++?  Event-driven GUIs in Java?  Increase developer productivity!  Type safety  Garbage collection  Exceptions
  • 14. 14 The safety of Java  100% object oriented  Automatic garbage collection  Array bounds checking at runtime  Strict type checking  Structured exception handling
  • 15. 15 The ease of Visual Basic  First class support for properties  First class support for events  foreach loops
  • 16. 16 The power of C++  Enumerations  Operator overloading  Mathematical, Indexing, and Casting  Function pointers  Called “delegates”  Type safe  Structs
  • 17. 17 The power of C++  Option to pass parameters by reference or by value  Can disable type-safety, garbage collection, and bounds checking  Can directly manipulate memory with pointers
  • 19. 19 Basic Truths  J2EE  Java-centric and platform-neutral  J2EE is not a product you buy from Sun.  J2EE is a set of specifications which indicate how various J2EE functions must interoperate  If I don’t buy J2EE from Sun, how does Sun make money?  J2EE 1.4 released with features to completely support web services – JAX-RPC 1.1 API, J2EE Management 1.0 API, web service endpoints etc. (Hard to learn, hard to implement!)
  • 20. 20 Basic Truths  .NET  Windows-centric and language-neutral  .NET is a Microsoft product strategy that includes a range of products from development tools and servers to end-user applications.  Platform-neutral version of .NET is available Mono –Novell-sponsored, open source implementation of the .NET development environment ( http://www.go-mono.com )
  • 22. 22 .NET and Java: application platforms  .NET  The .NET Framework  Java  Java application servers  Products include:  IBM WebSphere Application Server  BEA WebLogic Application Server  Sun iPlanet Application Server  Oracle Application Server  Many others
  • 23. 23 .NET vs. Java: standard libraries  .NET Framework class library  Defined by Microsoft  Somewhat Windows-oriented  Organized into a hierarchy of namespaces  J2SE, J2EE  Defined by Sun and the Java Community Process  Not bound to any operating system  Defined as packages and interfaces
  • 24. 24 .NET Class Library  IO  GUI Programming  System Information  Collections  Components  Application Configuration  Connecting to Databases (ADO.NET)  Tracing and Logging  Manipulating Images/Graphics
  • 25. 25 Class Library  Interoperability with COM  Globalization and Internationalization  Network Programming with Sockets  Remoting  Serialization  XML  Security and Cryptography  Threading  Web Services

Notas do Editor

  1. The term .NET covers a lot of bases. The official marketing line from Microsoft can be seen on the slide here. Pretty vague don’t you think? I’d define it more succinctly as xxx. To you and me, as software developers, I would consider the above to be a good definition of the .NET framework. Not that it allows both standalone windows applications and distributed applications. You can guess which you’ll be building most, as nearly everything has some distributed component these days. Notice I also say Internet. That’s because .NET has embraced internet standards and protocols in a big way. This essentially means web services standards such as SOAP are used a lot. Although you can use your own protocols in your distributed applications using .NET. So, what does this platform offer us to develop with?
  2. Component oriented development has long been recognised as a sensible way of doing large scale development. So little commercial and indeed academic development is done from scratch, we all use other people’s code in some way or another, be it class libraries that come with dev envs, or purchased fro msome vendor, or that we wrote ourselves. Microsoft went a good deal of the way to realising true component oriented development with it’s COM technology…