Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.
C# and the Evolution of a
Programming Language
Jon Limjap
Microsoft MVP forVisual Studio and DevelopmentTechnologies
Phili...
About Me
Senior Software Architect, Beam And Go
Microsoft MVP forVisual Studio and Development
Technologies
Philippine ...
Philippine
.NETUsers
Group
(PHINUG)
facebook.com/groups/phinug
@phinug
phinug.doorkeeper.jp
Agenda
.NET Defined
What is C#?
A brief history of C#
A preview of C# 7
.NET Defined
Microsoft’s open source software development ecosystem
Ecosystem
Common
Language
Runtime
C#C# Visual Basic.NETVisual Basic.NET F#F#
Common Language RuntimeCommon Language Runtime
PC /Tabl...
Tools
VisualStudio 2015
Community Edition
More on open
sourced .NET
Visit http://microsoft.github.io
What isC#?
See sharp. Not see hash, or see pound
C# as a
language
Object Oriented
StronglyTyped
Declarative
Imperative
Functional
Generic
History
Continuous evolution of the C# language
History
Designed by Anders Hejlsberg
Originally named COOL (C-like Object-Oriented
Language)
First released in 2000
C#...
Fanboy
Moment 
C# 2.0
November 2005
Generics
Partial Classes
Anonymous Methods
Iterators
NullableTypes
Static Classes
More…
C# 3.0
Novermber 2007
Implicitly typed variables aka var keyword
Object and collection initializers
Auto-properties
An...
C# 4.0
April 2010
Dynamic Binding
Named and Optional Parameters
Generic Covariance and Contravariance
More…
C# 5.0
August 2012
Asynchronous methods (async and await
keywords)
Caller info attributes
C# 6.0
July 2015
Using statements for static members
Auto-property Initializers
Getter-only automatic properties
Dicti...
C# 7.0
It’s getting funkier every version!
Local
Functions
class Program
{
static void Main(string[] args)
{
void testingLocalFunctions()
{
Console.WriteLine("Hello ...
Digit
separators
int bin = 0b1001_1010_0001_0100;
int hex = 0x1b_a0_44_fe;
int dec = 33_554_432;
int weird = 100_000;
doub...
Binary Literals int nineteen = 0b10011;
Pattern
Matching
int? age = 5;
if (age is int newVal)
{
Console.WriteLine($"Your age is {newVal}");
}
Ref returns
and Ref Locals
string[] myArray = { "one", "two", "three" };
WriteLine($"The first element of the array is {my...
C# 7 features
that will
probably be
released but
are not
available yet 
Tuples
public (int x, int y) Compute(){}
// Call the method
var (x,y) = Compute();
public (int sum, int count) Tally(IEnum...
RecordTypes
//Instead of:
public class Cube
{
public int Width { get; set; }
public int Height { get; set; }
public int De...
Question &Answer
Thank youandplease join the
PHINUGFBGroup!facebook.com/groups/phinug
Próxima SlideShare
Cargando en…5
×

C# and the Evolution of a Programming Language

821 visualizaciones

Publicado el

This presentation discusses an overview of the .NET framework, a little history of C#, and the evolution of C# from its early days up to its current form including a preview of C# 7.0

Publicado en: Tecnología
  • Sé el primero en comentar

C# and the Evolution of a Programming Language

  1. 1. C# and the Evolution of a Programming Language Jon Limjap Microsoft MVP forVisual Studio and DevelopmentTechnologies Philippine .NET Users Group Lead
  2. 2. About Me Senior Software Architect, Beam And Go Microsoft MVP forVisual Studio and Development Technologies Philippine .NET Users Group Lead @lattex | jonlimjap@gmail.com
  3. 3. Philippine .NETUsers Group (PHINUG) facebook.com/groups/phinug @phinug phinug.doorkeeper.jp
  4. 4. Agenda .NET Defined What is C#? A brief history of C# A preview of C# 7
  5. 5. .NET Defined Microsoft’s open source software development ecosystem
  6. 6. Ecosystem
  7. 7. Common Language Runtime C#C# Visual Basic.NETVisual Basic.NET F#F# Common Language RuntimeCommon Language Runtime PC /TabletPC /Tablet Windows Phone (RIP) Windows Phone (RIP) Windows Server Windows Server Mac / Linux Mac / Linux Android / iOS Android / iOS Intermediate LanguageIntermediate Language
  8. 8. Tools
  9. 9. VisualStudio 2015 Community Edition
  10. 10. More on open sourced .NET Visit http://microsoft.github.io
  11. 11. What isC#? See sharp. Not see hash, or see pound
  12. 12. C# as a language Object Oriented StronglyTyped Declarative Imperative Functional Generic
  13. 13. History Continuous evolution of the C# language
  14. 14. History Designed by Anders Hejlsberg Originally named COOL (C-like Object-Oriented Language) First released in 2000 C# 7 is in Preview
  15. 15. Fanboy Moment 
  16. 16. C# 2.0 November 2005 Generics Partial Classes Anonymous Methods Iterators NullableTypes Static Classes More…
  17. 17. C# 3.0 Novermber 2007 Implicitly typed variables aka var keyword Object and collection initializers Auto-properties AnonymousTypes Extension Methods Language Integrated Query (LINQ) Lambda Expressions More…
  18. 18. C# 4.0 April 2010 Dynamic Binding Named and Optional Parameters Generic Covariance and Contravariance More…
  19. 19. C# 5.0 August 2012 Asynchronous methods (async and await keywords) Caller info attributes
  20. 20. C# 6.0 July 2015 Using statements for static members Auto-property Initializers Getter-only automatic properties Dictionary Initializers Expression-bodied members Await inside a finally block Exception Filters Null-conditional operators String interpolation And a few more…
  21. 21. C# 7.0 It’s getting funkier every version!
  22. 22. Local Functions class Program { static void Main(string[] args) { void testingLocalFunctions() { Console.WriteLine("Hello World!"); } testingLocalFunctions(); } }
  23. 23. Digit separators int bin = 0b1001_1010_0001_0100; int hex = 0x1b_a0_44_fe; int dec = 33_554_432; int weird = 100_000; double real = 1_000.111_1e-1_000;
  24. 24. Binary Literals int nineteen = 0b10011;
  25. 25. Pattern Matching int? age = 5; if (age is int newVal) { Console.WriteLine($"Your age is {newVal}"); }
  26. 26. Ref returns and Ref Locals string[] myArray = { "one", "two", "three" }; WriteLine($"The first element of the array is {myArray[0]}"); ref string n = ref FirstElement(myArray); n = "other"; //myArray[0] now equals "other" WriteLine($"The first element of the array has become {myArray[0]}");
  27. 27. C# 7 features that will probably be released but are not available yet 
  28. 28. Tuples public (int x, int y) Compute(){} // Call the method var (x,y) = Compute(); public (int sum, int count) Tally(IEnumerable<int> values) { sum = 0; count = 0; foreach (var value in values) { sum += value; count++; } return (sum,count); }
  29. 29. RecordTypes //Instead of: public class Cube { public int Width { get; set; } public int Height { get; set; } public int Depth { get; set; } } //We write this: public class Cube(int Width, int Height, int Depth)
  30. 30. Question &Answer Thank youandplease join the PHINUGFBGroup!facebook.com/groups/phinug

×