SlideShare a Scribd company logo
Overview of C# 3.0Presentation created by EriawanKusumawardhono, for RX Communica
C# 3.0 is?A part of .NET programming languages from MicrosoftIt is released with Visual Studio 2008 and .NET 3.5
Historical perspective of C# 3.0A quick tour of historical view
Beginning of C#C# was a first managed language to compete with JavaMicrosoft was lost in court because of J++ implementationC# 1.0 was designed and developed in 1999C# 1.0 has basic OOP of inheritance, polymorphismProperty mechanism is the same concept as VB 4.0+
C# is?Statically typed languageEarly boundBased on CLR and CTS of .NETAlso part of “curly braces” languages such as C, C++, Objective C, JavaImperative language as part of OOP
Managed language is simply virtualizationJust like Java runs in its VMVirtualization promotes cleaner environment, optimization, garbage collection, thread optimization within one “virtual” platformA light lose coupling between OS and application written in managed environment or virtualizationReduced OS version dependency and functionality
So why?It is simply, raising an abstraction, not adding abstractionFocusing more on what you want to be done, not how
The sample of adding abstraction: batch command
Raising level of abstraction
Conceptual difference of abstractionRaising abstractionIntended to be more declarativeDoes not hide the detail of underlying platformStill can access the OS API using P/Invoke in .NET and JNI in JavaAdding abstractionNot intended to be more declarativeOften creating more new conceptual topicsOften hide the detail of the underlying platform
What comes with C# 2.0Adding generics on type and method declarationGeneric type inference on methods and method parametersReflection granularityNullable typesIterator of “yield”Anonymous delegate
Current release of C#: 3.0Present state of C# (2009)
Continuous design from previous releasesNew features are based on previous releasesMaintaining runtime compatibility and based on CLR of .NET 2.0
C# 3.0 themeLINQFunctional programming in style
LINQ is build onQuery comprehensionExtension methodLambda expressionExpression treeProperty initializerAnonymous type initializerLocal variable type inference
Quick feature lookvar x = from c in db.customer        where c.City ==“London”         select c.Name, c.CityLocal type inferQuery comprehensionLambda expressionvar x = db.Customer        .Where(c => c.City == “London”)        .Select(c=> new {c.Name,c.City}Extension methodAnonymous object/type initializer
Query comprehensionAdapting SQL query of SELECTNot a real keyword in C#, it is a pseudo keywordSELECT, WHERE, ORDER BY, GROUP BY is then translated into calls to extension methods
Lambda Expression overviewIt is simply an anonymous delegate but with the functional math syntaxTaken from ideas in Lambda calculus
Extension methodsAdding static method to a class or interfaces without deriving itUse it wiselyCan be a bad smell in coding practice
Next is: C# 4.0Main theme: support for dynamic type
Overview of C# 4.0Dynamic typeCo and Contra varianceOptional and named parametersNo PIA
Beyond C# 4.0Compiler as a serviceTrue meta programmingMethod execution into multi core (parallel)Function purity
End

More Related Content

PPTX
difference between c c++ c#
PPTX
C sharp
PPT
Visual Studio .NET2010
PPT
Intro dotnet
PPTX
C vs c++
PPTX
C vs c++
PDF
Porting VisualWorks code to Pharo
PPTX
C and C ++ Training in Ambala ! BATRA COMPUTER CENTRE
difference between c c++ c#
C sharp
Visual Studio .NET2010
Intro dotnet
C vs c++
C vs c++
Porting VisualWorks code to Pharo
C and C ++ Training in Ambala ! BATRA COMPUTER CENTRE

What's hot (17)

PDF
Differences between c and c++
PPTX
C++ vs C#
PPT
Introduction to programming with c,
PPTX
CSharp Presentation
PPTX
C & C++ Training Centre in Ambala! BATRA COMPUTER CENTRE
PPT
C++ to java
PPT
Programming Methodology
PDF
Oops index
PPTX
Revealing C# 5
PPTX
C# 101: Intro to Programming with C#
PPTX
C#unit4
PPTX
introduction to c language
PPTX
C_Programming_Notes_ICE
PPT
Introduction to C Programming
PPTX
C++vs java
PPT
2. data, operators, io
PPTX
Differences between c and c++
C++ vs C#
Introduction to programming with c,
CSharp Presentation
C & C++ Training Centre in Ambala! BATRA COMPUTER CENTRE
C++ to java
Programming Methodology
Oops index
Revealing C# 5
C# 101: Intro to Programming with C#
C#unit4
introduction to c language
C_Programming_Notes_ICE
Introduction to C Programming
C++vs java
2. data, operators, io
Ad

Viewers also liked (8)

PPTX
Role of serious games and immersive technologies
PPT
Shaspa Intelligent Shared Spaces And Sustainable Development
PPT
Serious Games And Stem Education
PPT
Climate Change And Collaboration Technologies
PPTX
Immersive technologies and recruitment assessment and lifelong learning
PDF
SHASPA Data Visualisation Framework - Intelligent Shared Spaces for Sustainab...
PPT
Serious Games For Health And Science
PPT
Serious Games Past Present And Future
Role of serious games and immersive technologies
Shaspa Intelligent Shared Spaces And Sustainable Development
Serious Games And Stem Education
Climate Change And Collaboration Technologies
Immersive technologies and recruitment assessment and lifelong learning
SHASPA Data Visualisation Framework - Intelligent Shared Spaces for Sustainab...
Serious Games For Health And Science
Serious Games Past Present And Future
Ad

Similar to Introduction to C# 3.0 (20)

PPTX
C#.net Evolution part 1
PPTX
PERTEMUAN 1 - MENGENAL ENVIRONTMENT PROGRAM VISUAL C#.pptx
PDF
A tour of C# - Overview _ Microsoft Learn.pdf
PDF
C# in Depth-Manning Publications (2019).pdf
PPTX
C# 2 to 5 short Introduction
PPT
Testing for share
PPT
Introduction to Csharp (C-Sharp) is a programming language developed by Micro...
PPT
Introduction-to-Csharp programacion orientada a objetos
PPT
Introduction-to-Csharp.ppt
PPT
Introduction-to-Csharp.ppt
PPT
Introduction to-csharp
PDF
21UCAC61 C# and .Net Programming.pdf(MTNC)(BCA)
PPT
C# Overview. Fundamentals of C#.Net Language
PPT
Introduction to c_sharp
DOCX
csharp.docx
PDF
History of c#
PPTX
csharp_dotnet_adnanreza.pptx
PPT
Programming in c#
PPT
Programming with c#
PPT
CSharp.ppt
C#.net Evolution part 1
PERTEMUAN 1 - MENGENAL ENVIRONTMENT PROGRAM VISUAL C#.pptx
A tour of C# - Overview _ Microsoft Learn.pdf
C# in Depth-Manning Publications (2019).pdf
C# 2 to 5 short Introduction
Testing for share
Introduction to Csharp (C-Sharp) is a programming language developed by Micro...
Introduction-to-Csharp programacion orientada a objetos
Introduction-to-Csharp.ppt
Introduction-to-Csharp.ppt
Introduction to-csharp
21UCAC61 C# and .Net Programming.pdf(MTNC)(BCA)
C# Overview. Fundamentals of C#.Net Language
Introduction to c_sharp
csharp.docx
History of c#
csharp_dotnet_adnanreza.pptx
Programming in c#
Programming with c#
CSharp.ppt

Recently uploaded (20)

PDF
NewMind AI Weekly Chronicles – August ’25 Week III
PPTX
O2C Customer Invoices to Receipt V15A.pptx
PDF
Getting Started with Data Integration: FME Form 101
PDF
Architecture types and enterprise applications.pdf
PDF
Hindi spoken digit analysis for native and non-native speakers
PDF
Getting started with AI Agents and Multi-Agent Systems
PDF
Zenith AI: Advanced Artificial Intelligence
PDF
Univ-Connecticut-ChatGPT-Presentaion.pdf
PPTX
Programs and apps: productivity, graphics, security and other tools
PPTX
OMC Textile Division Presentation 2021.pptx
PDF
A contest of sentiment analysis: k-nearest neighbor versus neural network
PDF
A novel scalable deep ensemble learning framework for big data classification...
PPT
Module 1.ppt Iot fundamentals and Architecture
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Developing a website for English-speaking practice to English as a foreign la...
PDF
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PDF
Enhancing emotion recognition model for a student engagement use case through...
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
project resource management chapter-09.pdf
NewMind AI Weekly Chronicles – August ’25 Week III
O2C Customer Invoices to Receipt V15A.pptx
Getting Started with Data Integration: FME Form 101
Architecture types and enterprise applications.pdf
Hindi spoken digit analysis for native and non-native speakers
Getting started with AI Agents and Multi-Agent Systems
Zenith AI: Advanced Artificial Intelligence
Univ-Connecticut-ChatGPT-Presentaion.pdf
Programs and apps: productivity, graphics, security and other tools
OMC Textile Division Presentation 2021.pptx
A contest of sentiment analysis: k-nearest neighbor versus neural network
A novel scalable deep ensemble learning framework for big data classification...
Module 1.ppt Iot fundamentals and Architecture
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Developing a website for English-speaking practice to English as a foreign la...
ENT215_Completing-a-large-scale-migration-and-modernization-with-AWS.pdf
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
Enhancing emotion recognition model for a student engagement use case through...
Assigned Numbers - 2025 - Bluetooth® Document
project resource management chapter-09.pdf

Introduction to C# 3.0

  • 1. Overview of C# 3.0Presentation created by EriawanKusumawardhono, for RX Communica
  • 2. C# 3.0 is?A part of .NET programming languages from MicrosoftIt is released with Visual Studio 2008 and .NET 3.5
  • 3. Historical perspective of C# 3.0A quick tour of historical view
  • 4. Beginning of C#C# was a first managed language to compete with JavaMicrosoft was lost in court because of J++ implementationC# 1.0 was designed and developed in 1999C# 1.0 has basic OOP of inheritance, polymorphismProperty mechanism is the same concept as VB 4.0+
  • 5. C# is?Statically typed languageEarly boundBased on CLR and CTS of .NETAlso part of “curly braces” languages such as C, C++, Objective C, JavaImperative language as part of OOP
  • 6. Managed language is simply virtualizationJust like Java runs in its VMVirtualization promotes cleaner environment, optimization, garbage collection, thread optimization within one “virtual” platformA light lose coupling between OS and application written in managed environment or virtualizationReduced OS version dependency and functionality
  • 7. So why?It is simply, raising an abstraction, not adding abstractionFocusing more on what you want to be done, not how
  • 8. The sample of adding abstraction: batch command
  • 9. Raising level of abstraction
  • 10. Conceptual difference of abstractionRaising abstractionIntended to be more declarativeDoes not hide the detail of underlying platformStill can access the OS API using P/Invoke in .NET and JNI in JavaAdding abstractionNot intended to be more declarativeOften creating more new conceptual topicsOften hide the detail of the underlying platform
  • 11. What comes with C# 2.0Adding generics on type and method declarationGeneric type inference on methods and method parametersReflection granularityNullable typesIterator of “yield”Anonymous delegate
  • 12. Current release of C#: 3.0Present state of C# (2009)
  • 13. Continuous design from previous releasesNew features are based on previous releasesMaintaining runtime compatibility and based on CLR of .NET 2.0
  • 14. C# 3.0 themeLINQFunctional programming in style
  • 15. LINQ is build onQuery comprehensionExtension methodLambda expressionExpression treeProperty initializerAnonymous type initializerLocal variable type inference
  • 16. Quick feature lookvar x = from c in db.customer where c.City ==“London” select c.Name, c.CityLocal type inferQuery comprehensionLambda expressionvar x = db.Customer .Where(c => c.City == “London”) .Select(c=> new {c.Name,c.City}Extension methodAnonymous object/type initializer
  • 17. Query comprehensionAdapting SQL query of SELECTNot a real keyword in C#, it is a pseudo keywordSELECT, WHERE, ORDER BY, GROUP BY is then translated into calls to extension methods
  • 18. Lambda Expression overviewIt is simply an anonymous delegate but with the functional math syntaxTaken from ideas in Lambda calculus
  • 19. Extension methodsAdding static method to a class or interfaces without deriving itUse it wiselyCan be a bad smell in coding practice
  • 20. Next is: C# 4.0Main theme: support for dynamic type
  • 21. Overview of C# 4.0Dynamic typeCo and Contra varianceOptional and named parametersNo PIA
  • 22. Beyond C# 4.0Compiler as a serviceTrue meta programmingMethod execution into multi core (parallel)Function purity
  • 23. End