Download presentation
Presentation is loading. Please wait.
1
C#/.NET 5/4/2015 1 Ian Cooper http://iancooper.livespaces.com
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 http://iancooper.livespaces.com 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 http://iancooper.livespaces.com 3
4
Who do you think you are? 5/4/2015Ian Cooper http://iancooper.livespaces.com 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 http://iancooper.livespaces.com 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 http://iancooper.livespaces.com 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 http://iancooper.livespaces.com 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 http://iancooper.livespaces.com 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 http://iancooper.livespaces.com 9
10
LINQ 5/4/2015Ian Cooper http://iancooper.livespaces.com 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 http://iancooper.livespaces.com 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 http://iancooper.livespaces.com 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 http://iancooper.livespaces.com 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 http://iancooper.livespaces.com 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 http://iancooper.livespaces.com 15
16
Dynamic Languages? 5/4/2015Ian Cooper http://iancooper.livespaces.com 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++9.938%-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-- 1614 ↓↓ 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 http://iancooper.livespaces.com 17
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.