Your SlideShare is downloading. ×
  • Like
Introduction to C# 3.0
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.


Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Introduction to C# 3.0




Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads


Total Views
On SlideShare
From Embeds
Number of Embeds



Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

    No notes for slide


  • 1. Overview of C# 3.0
    Presentation created by EriawanKusumawardhono, for RX Communica
  • 2. C# 3.0 is?
    A part of .NET programming languages from Microsoft
    It is released with Visual Studio 2008 and .NET 3.5
  • 3. Historical perspective of C# 3.0
    A quick tour of historical view
  • 4. Beginning of C#
    C# was a first managed language to compete with Java
    Microsoft was lost in court because of J++ implementation
    C# 1.0 was designed and developed in 1999
    C# 1.0 has basic OOP of inheritance, polymorphism
    Property mechanism is the same concept as VB 4.0+
  • 5. C# is?
    Statically typed language
    Early bound
    Based on CLR and CTS of .NET
    Also part of “curly braces” languages such as C, C++, Objective C, Java
    Imperative language as part of OOP
  • 6. Managed language is simply virtualization
    Just like Java runs in its VM
    Virtualization promotes cleaner environment, optimization, garbage collection, thread optimization within one “virtual” platform
    A light lose coupling between OS and application written in managed environment or virtualization
    Reduced OS version dependency and functionality
  • 7. So why?
    It is simply, raising an abstraction, not adding abstraction
    Focusing 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 abstraction
    Raising abstraction
    Intended to be more declarative
    Does not hide the detail of underlying platform
    Still can access the OS API using P/Invoke in .NET and JNI in Java
    Adding abstraction
    Not intended to be more declarative
    Often creating more new conceptual topics
    Often hide the detail of the underlying platform
  • 11. What comes with C# 2.0
    Adding generics on type and method declaration
    Generic type inference on methods and method parameters
    Reflection granularity
    Nullable types
    Iterator of “yield”
    Anonymous delegate
  • 12. Current release of C#: 3.0
    Present state of C# (2009)
  • 13. Continuous design from previous releases
    New features are based on previous releases
    Maintaining runtime compatibility and based on CLR of .NET 2.0
  • 14. C# 3.0 theme
    Functional programming in style
  • 15. LINQ is build on
    Query comprehension
    Extension method
    Lambda expression
    Expression tree
    Property initializer
    Anonymous type initializer
    Local variable type inference
  • 16. Quick feature look
    var x = from c in db.customer
    where c.City ==“London”
    select c.Name, c.City
    Local type infer
    Query comprehension
    Lambda expression
    var x = db.Customer
    .Where(c => c.City == “London”)
    .Select(c=> new {c.Name,c.City}
    Extension method
    Anonymous object/type initializer
  • 17. Query comprehension
    Adapting SQL query of SELECT
    Not a real keyword in C#, it is a pseudo keyword
    SELECT, WHERE, ORDER BY, GROUP BY is then translated into calls to extension methods
  • 18. Lambda Expression overview
    It is simply an anonymous delegate but with the functional math syntax
    Taken from ideas in Lambda calculus
  • 19. Extension methods
    Adding static method to a class or interfaces without deriving it
    Use it wisely
    Can be a bad smell in coding practice
  • 20. Next is: C# 4.0
    Main theme: support for dynamic type
  • 21. Overview of C# 4.0
    Dynamic type
    Co and Contra variance
    Optional and named parameters
    No PIA
  • 22. Beyond C# 4.0
    Compiler as a service
    True meta programming
    Method execution into multi core (parallel)
    Function purity
  • 23. End