An Independent Look at the Arc of .NET
Total Page:16
File Type:pdf, Size:1020Kb
Past, present and future of C# and .NET Kathleen Dollard Director of Engineering, ROICode [email protected] Coding: 2 Advanced: 2 “In the beginning there was…” Take a look back at over 15 years of .NET and C# evolution and look into the future driven by enormous underlying changes. Those changes are driven by a shift in perception of how .NET fits into the Microsoft ecosystem. You’ll leave understanding how to leverage the .NET Full Framework, .NET Core 1.0, .NET Standard at the right time. Changes in .NET paralleled changes in the languages we’ll reflect on how far C# and Visual Basic have come and how they’ve weathered major changes in how we think about code. Looking to the future, you’ll see both the impact of functional approaches and areas where C# probably won’t go. The story would not be complete without cruising through adjacent libraries – the venerable ASP.NET and rock-star Entity Framework that’s recovered so well from its troubled childhood. You’ll leave this talk with a better understanding of the tool you’re using today, and how it’s changing to keep you relevant in a constantly morphing world. Coding: 2 Advanced: 2 “In the beginning there was…” Take a look back at over 15 years of .NET and C# evolution and look into the future driven by enormous underlying changes. Those changes are driven by a shift in perception of how .NET fits into the Microsoft ecosystem. You’ll leave understanding how to leverage the .NET Full Framework, .NET Core 1.0, .NET Standard at the right time. Changes in .NET paralleled changes in the languages we’ll reflect on how far C# and Visual Basic have come and how they’ve weathered major changes in how we think about code. Looking to the future, you’ll see both the impact of functional approaches and areas where C# probably won’t go. The story would not be complete without cruising through adjacent libraries – the venerable ASP.NET and rock-star Entity Framework that’s recovered so well from its troubled childhood. You’ll leave this talk with a better understanding of the tool you’re using today, and how it’s changing to keep you relevant in a constantly morphing world. Coding: 2 Advanced: 2 “In the beginning there was…” Take a look back at over 15 years of .NET and C# evolution and look into the future driven by enormous underlying changes. Those changes are driven by a shift in perception of how .NET fits into the Microsoft ecosystem. You’ll leave understanding how to leverage the .NET Full Framework, .NET Core 1.0, .NET Standard at the right time. Changes in .NET paralleled changes in the languages we’ll reflect on how far C# and Visual Basic have come and how they’ve weathered major changes in how we think about code. Looking to the future, you’ll see both the impact of functional approaches and areas where C# probably won’t go. The story would not be complete without cruising through adjacent libraries – the venerable ASP.NET and rock-star Entity Framework that’s recovered so well from its troubled childhood. You’ll leave this talk with a better understanding of the tool you’re using today, and how it’s changing to keep you relevant in a constantly morphing world. Coding: 2 Advanced: 2 “In the beginning there was…” Take a look back at over 15 years of .NET and C# evolution and look into the future driven by enormous underlying changes. Those changes are driven by a shift in perception of how .NET fits into the Microsoft ecosystem. You’ll leave understanding how to leverage the .NET Full Framework, .NET Core 1.0, .NET Standard at the right time. Changes in .NET paralleled changes in the languages we’ll reflect on how far C# and Visual Basic have come and how they’ve weathered major changes in how we think about code. Looking to the future, you’ll see both the impact of functional approaches and areas where C# probably won’t go. The story would not be complete without cruising through adjacent libraries – the venerable ASP.NET and rock-star Entity Framework that’s recovered so well from its troubled childhood. You’ll leave this talk with a better understanding of the tool you’re using today, and how it’s changing to keep you relevant in a constantly morphing world. Coding: 2 Advanced: 2 “In the beginning there was…” Take a look back at over 15 years of .NET and C# evolution and look into the future driven by enormous underlying changes. Those changes are driven by a shift in perception of how .NET fits into the Microsoft ecosystem. You’ll leave understanding how to leverage the .NET Full Framework, .NET Core 1.0, .NET Standard at the right time. Changes in .NET paralleled changes in the languages we’ll reflect on how far C# and Visual Basic have come and how they’ve weathered major changes in how we think about code. Looking to the future, you’ll see both the impact of functional approaches and areas where C# probably won’t go. The story would not be complete without cruising through adjacent libraries – the venerable ASP.NET and rock-star Entity Framework that’s recovered so well from its troubled childhood. You’ll leave this talk with a better understanding of the tool you’re using today, and how it’s changing to keep you relevant in a constantly morphing world. Coding: 2 Advanced: 2 “In the beginning there was…” Take a look back at over 15 years of .NET and C# evolution and look into the future driven by enormous underlying changes. Those changes are driven by a shift in perception of how .NET fits into the Microsoft ecosystem. You’ll leave understanding how to leverage the .NET Full Framework, .NET Core 1.0, .NET Standard at the right time. Changes in .NET paralleled changes in the languages we’ll reflect on how far C# and Visual Basic have come and how they’ve weathered major changes in how we think about code. Looking to the future, you’ll see both the impact of functional approaches and areas where C# probably won’t go. The story would not be complete without cruising through adjacent libraries – the venerable ASP.NET and rock-star Entity Framework that’s recovered so well from its troubled childhood. You’ll leave this talk with a better understanding of the tool you’re using today, and how it’s changing to keep you relevant in a constantly morphing world. My other talks at SDDConf • Session: C# 6 & below • Session: C# 7 & above • Session: Visual Studio Tips and Tricks • Workshop: I will make you a better C# programmer Independent? What do I know about this history stuff? • Trained as a research chemist • X-Ray crystallographer & electrochemist with interest in active sites of proteins • Worked in the Microsoft languages space since about 1996 • Previously, Clipper, Fortran, C, C++, FORTH, BASIC, 4GLs • Microsoft MVP since 1998, recognized for community work since 1980’s • I care a lot about community and people in it • Do NOT work for Microsoft • Do respect a lot of people that work at Microsoft (and other places) • Have been giving language feedback since VB4 beta • Contributed at every MVP summit and a number of private design meetings C++ Circa 2000 Visual Basic Circa 2000 Road ahead Circa 2000 OTHER THINGS WERE ALSO HAPPENING AT THE END OF THE LAST CENTURY AND THEN CAME… JAVA .NET JAVA .NET JAVA .NET • Strongly and statically typed with manifest • Strongly and statically typed with manifest • Object oriented, class based • Object oriented, class based • Semi-interpreted (JVM) • Semi-interpreted (MSIL) • Garbage collected (traced) • Garbage collected (traced) • Curly braces • Curly braces (C#) • Reflection • Reflection JAVA .NET • Arbitrary precision (library) • Unsigned ints, decimal (now imaginary, etc.) • Primitive types do not have common root • All types have common root • Primitives wrapped for methods • All types: methods, properties, interfaces • Primitive and reference types • Value and reference types • Defined operators (inclusion of new types) • Enumerations are class based • Enumerations are bit manipulation of integers • Wrappers and adapters • Delegates THE RACE WAS ON… EFFECT ON .NET • Different goals • C# • Visual Basic EFFECT ON .NET • Different goals • C#: Convert Java programmers • Visual Basic: Keep existing VB developers EFFECT ON .NET • Different goals • C#: Convert Java programmers • Visual Basic: Keep existing VB developers • “Fix” possible deficiencies in Java • Common root and methods available on all types • Delegate and event models • Extra types and user-defined value types and operators • Performance was (perceived as) required • Integer checks disabled (for C#) • (One of the reasons) lower array bound restricted to zero • (Later, one of the reasons) List<T> is sealed 2002 2003 2005 2006 2008 2010 2012 .NET and Visual Studio .NET and 2013 2015 • First release of .NET 2002 2003 2005 2006 2008 2010 2012 .NET and Visual Studio .NET and 2013 2015 • First release of .NET (after long beta) 2002 2003 2005 2006 2008 2010 2012 .NET and Visual Studio .NET and 2013 2015 • First release of .NET (after long beta) 4 years after start of project Cool 2002 2003 2005 2006 2008 2010 2012 .NET and Visual Studio .NET and 2013 2015 • First release of .NET (after long beta) 4 years after start of project Cool 2002 • OOP, traced GC, painful changes for VB programmers 2003 2005 2006 2008 2010 2012 .NET and Visual Studio .NET and 2013 2015 • First release of .NET (after long beta) 4 years after start of project Cool 2002 • OOP, traced GC, painful changes for VB programmers • Bug fixes and updates 2003 • .NET Compact Framework 2005 2006 2008 2010 2012 .NET and Visual Studio .NET and 2013 2015 • First release of .NET (after long beta) 4 years after start