Presentation is loading. Please wait.

Presentation is loading. Please wait.

C#/.NET 5/4/2015 1 Ian Cooper

Similar presentations


Presentation on theme: "C#/.NET 5/4/2015 1 Ian Cooper"— Presentation transcript:

1 C#/.NET 5/4/ Ian Cooper

2 The shape of things to come (1)  Who are you?  What is your language  Why do you use it?  What kind of projects is it most suited to?  What kind of projects is it least suited to?  What are you using it for today?  3 exciting new developments  Frameworks that fuel adoption 5/4/2015Ian Cooper 2

3 The shape of things to come (2)  What is the future for your language?  What is the future for dynamic and scripting languages in general?  What other languages do you use? 5/4/2015Ian Cooper 3

4 Who do you think you are? 5/4/2015Ian Cooper 4 Foxpro C++ MFC Win 32 COM ATL Windows C#.NET Wilson NHibernate Nant NUnit Wix LDNUG MVP 1992: 1994: 2002: Monorail

5 Cool, sharp, lightning  1997: Project Lightning  COM+ 2.0  The Universal Runtime  Project Cool  Anders Hejlsberg worked on derailed J++  C# shows J++ heritage (delegates, WFC)  C#  C-family language for.NET  Open source and commercial implementations 5/4/2015Ian Cooper 5

6 Why? using System; namespace ShowFeatures { class Program { static void Main(string[] args) { Program program = new Program(); program.PrintGreeting(args[0]); } private void PrintGreeting(string to) { System.Console.WriteLine("Hello {0}", to); } 5/4/2015Ian Cooper 6 Garbage Collection Object Oriented C family language Access to extensive.NET libraries Strongly Typed

7 Where can you use it? 5/4/2015Ian Cooper 7.NET Framework C#VBOthers… ADO.NET Windows Forms Windows Presentation Foundation Windows Communication Foundation ASP.NET XAML … Base Class Library Common Language Runtime

8 Where is it not suitable?  Not a systems development language  Restricts ‘unsafe’ operations like pointer manipulation  Overhead of runtime, not ‘to the metal’ 5/4/2015Ian Cooper 8

9 What are you using it for today?  Web based underwriting system  Geographically distributed user base  Internet and intranet access  Highly scalable  Document Generation system  Highly reliable, scalable, and robust  Multi-threaded  Extensible pipes and filters architecture 5/4/2015Ian Cooper 9

10 LINQ 5/4/2015Ian Cooper 10.NET Language Integrated Query C# 3.0VB 9.0Others… LINQ to Objects LINQ to SQL LINQ to XML LINQ to Entities LINQ to DataSets Objects Relational XML

11 C# 3.0 Language Extensions 5/4/2015Ian Cooper 11 var contacts = from c in customers where c.State == "WA" select new { c.Name, c.Phone }; var contacts = customers.Where(c => c.State == "WA").Select(c => new { c.Name, c.Phone }); Extension methods Lambda expressions Query expressions Object initializers Anonymous types

12 Workflow Foundation Classes  Workflow Runtime Engine  In-process, multiple hosting options  Provides support for long-running transactions  Leverages idea of code as data  Activities are.NET components  Both off-the-shelf and custom  Both simple and composite  Flow is described by XAML  Both rules and conditions supported 5/4/2015Ian Cooper 12

13 Dynamic Language Runtime  Services that run on top of CLR  Dynamic type system  Dynamic method invocation  Implement dynamic languages like Python and Ruby on the.NET Framework  Microsoft issued under permissive source, so can ship with open source projects like Moonlight  VBx  VB to be recast as scripting language? 5/4/2015Ian Cooper 13

14 What drives adoption?  Windows Forms  RAD smart-client development  Successor to VB, PowerBuilder, et al.  Webforms  Moved rich-client developers to web  Incorporates ASP.NET Ajax  Monorail challenging page controller approach  Silverlight  Rich media content via CLR on the browser 5/4/2015Ian Cooper 14

15 The future  Cw or Comega  Asynchronous concurrency constructs  PLINQ may use Cw features  F#  Mixed functional/imperative language  Influenced by Ocaml  DSLs  Partial methods and classes, Guidance Toolkit  Software factories, MDA, something else? 5/4/2015Ian Cooper 15

16 Dynamic Languages? 5/4/2015Ian Cooper 16 Position Sep 2007 Position Sep 2006 Delta in Position Programming Language Ratings Sep 2007 Delta Sep 2006 Status 11 = Java21.701%+0.17% A 22 = C14.908%-3.15% A 34 ↑ (Visual) Basic10.748%+0.12% A 45 ↑ PHP10.204%+1.08% A 53 ↓↓ C %-0.82% A 66 = Perl5.416%-0.01% A 78 ↑ C#3.583%+0.59% A 87 ↓ Python3.025%-0.12% A 99 = JavaScript2.722%+0.28% A 1013 ↑↑↑ Ruby2.065%+1.13% A 1112 ↑ PL/SQL1.860%+0.82% A 1211 ↓ SAS1.395%-0.54% A 1316 ↑↑↑ D1.370%+0.82% A 1410 ↓↓↓ Delphi1.224%-0.88% A 1517 ↑↑ ABAP0.706%+0.15% A ↓↓ Lisp/Scheme0.633%-0.02% B 1715 ↓↓ COBOL0.630%+0.07% B 1850 ↑↑↑↑↑↑↑↑↑↑↑ Lua0.572%+0.51% B 19 = Ada0.566%+0.03% B 2021 ↑ Fortran0.478%+0.08% B Source: Tiobe Programming Community Index

17 Guilty Pleasures  Don’t use others but  Learning Ruby, because the smart kids are.  Early Ruby adoption around Watir or scripting  Later Ruby adoption around IronRuby  Intrigued by Boo  Used by Monorail for Brail  Little Knowledge outside.NET space 5/4/2015Ian Cooper 17


Download ppt "C#/.NET 5/4/2015 1 Ian Cooper"

Similar presentations


Ads by Google