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

  • 505 views
Published

C#

C#

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

Views

Total Views
505
On SlideShare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
33
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 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
    LINQ
    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