In this article I will explain about C# all versions from C# 1.0 to C# 6.0 and Visual Studio Version from Visual Studio 2002 (7.0) to Visual Studio 2015 (14.0). But discussion will be more emphasized on C# 6 and Visual Studio 2015.
C# 6 introduced about a year ago and it has a lot of new features and after release of Visual Studio 2015 C# 6 became the default language version of C#. If you are creating a project in Visual Studio 2015 with latest version of framework then the default version of C# is C# 6. But you can change it to C# 5 or lower version check it out here.
Before starting discussion on any feature I am going to explain about different versions of C#, ASP.NET, .NET Framework and Visual Studio.
Versions of C#
C# 1.0
- Managed Code
C# 2.0
- Generics
- Partial Types
- Static classes
- Method group conversions
- Co- and Contra-variance for delegates
- Delegate inference
- Anonymous Methods
- Getter/setter separate accessibility
- Nullable types
- Iterator blocks
Andso on.
C# 3.0
- Implicitly typed local variables
- Object and collection initializers
- Auto-Implemented properties
- Partial methods
- Anonymous types
- Extension methods
- Query expressions
- Lambda expressions
- Expression trees
And so on.
C# 4.0
- Dynamic binding
- Named and optional argumentsdetails
- Parallel Programmingmore
- Generic co- and contravariance
- Embedded interop types.
And so on.
C# 5.0
- Asynchronous methods
- Caller info attributes
C# 6.0
- Compiler-as-a-service (Roslyn)
- Getter-Only & Auto Properties Initializersdetails
- Index Initializers details
- Default values for getter-only propertiesdetails
- NULL Conditional Operatordetails
- String Interpolationdetails
- nameof operator
- Dictionary initializer
- Using Static in using block as directive (Import of static type members into namespace)
a. Using Static Classes as Directive details
b. Using Non-Static classes in using block as Directive details
c. Using Enum in using Block as Directive details
- Expression-bodied members
a. Expression-Bodied Properties details
b. Expression-Bodied Methods details
- Exception filters
- Await in catch/finally blocks
Some language features of C# 6 have been modified or removed in latest releases of Visual Studio 2015. You can check it out here.
Versions of Visual Studio
Product Name | Version Number | Codename |
Visual Studio .NET 2002 | 7.0 | Rainier |
Visual Studio .NET 2003 | 7.1 | Everett |
Visual Studio 2005 | 8.0 | Whidbey |
Visual Studio 2008 | 9.0 | Orcas |
Visual Studio 2010 | 10.0 | Dev10/Rosario |
Visual Studio 2012 | 11.0 | Dev11 |
Visual Studio 2013 | 12.0 | Dev12 |
Visual Studio 2015 | 14.0 | Dev14 |
Versions of .NET Frameworks
Version Number | Development Tool | CLR Version | Release Year |
Microsoft .NET Framework 1.0 | Visual Studio .NET 2002 | CLR 1.0 | 2002 |
Microsoft .NET Framework 1.1 | Visual Studio .NET 2003 | CLR 1.1 | 2003 |
Microsoft .NET Framework 2.0 | Visual Studio 2005 | CLR 2.0 | 2005 |
Microsoft .NET Framework 3.0 | Visual Studio 2005 | CLR 2.0 | 2006 |
Microsoft .NET Framework 3.5 | Visual Studio 2008 | CLR 2.0 | 2007 |
Microsoft .NET Framework 4.0 | Visual Studio 2010 | CLR 4 | 2010 |
Microsoft .NET Framework 4.5 | Visual Studio 2012 | CLR 4 | 2012 |
Microsoft .NET Framework 4.5.1 | Visual Studio 2013 | CLR 4 | 2013 |
Microsoft .NET Framework 4.5.2 | Visual Studio 2013 | CLR 4 | 2014 |
Microsoft .NET Framework 4.6 | Visual Studio 2015 | CLR 4 | 2015 |
Microsoft .NET Framework 4.6.1 | Visual Studio 2015 Update 1 | CLR 4 | 2015 |
History of ASP.NET
Name | Release Year |
ASP | 1996 |
ASP.NET | 2002 |
ASP.NET MVC | 2008 |
ASP.NET Web Form | 2010 |
ASP.NET Web API, SignalR | 2012 |
ASP.NET 5 | 2015 |
Visual Studio 2015 new features
- A new setup experience.
- Sign in across multiple accounts (Single sign-in).
- Choose your target platform(s).
a. Cross-platform mobile apps in C# with Xamarin for Visual Studio
b. Cross-platform mobile apps in HTML/JavaScript with Apache Cordova
c. Cross-platform mobile games in C# with Unity
d. Cross-platform apps and libraries for native C++
e. Universal Windows apps for any Windows 10 device
- ASP.NET 5
a. Major update to MVC, WebAPI and SignalR
b. Supported OS: Windows, Mac, and Linux.
c. Visual Studio 2015 tooling is more closely integrated with popular web development tools such as Bower and Grunt.
d. Lean .NET platform for building modern cloud-based apps.
- Classic desktop and Windows Store.
- The .NET Framework
Microsoft .NET Framework 4.6 offers about 150 new APIs. (The latest Framework version is 4.6.1 with VS 2015 SP1)
- C++
Visual C++ provides significant advances in C++11/14 language conformance, support for cross-platform mobile device development, support for resumable functions and await.
- Device Preview menu bar
In Universal Windows Platform projects, the device preview menu bar enables you to see how your XAML-based UI will render on various screen sizes.
- Visual Studio Graphics Diagnostics
- Connect to Services
- Cross-platform debugging support
a. JavaScript / Cordova.
b. C# / Xamarin.
c. C++ / Android.
- Debugging and Diagnostics
a. PerfTips
b. Error List
c. GPU Usage Tool
- Live code analysis (light bulbs)
- IDE improvements
a. Synchronized Settings (Roaming Settings)
b. Automatic Extension Updates
c. Title Case Menus
d. High Resolution Images and Touch Support
e. Custom Layouts
f. Notification Hub
- Design and modeling tools (Enterprise edition only)
a. Code maps and dependency graphs
b. Improved top-down diagrams
c. Test Projects are styled differently and can be filtered
d. Simplified external dependency links
e. Drill-in into dependency links' takes filters into account
f. Code elements are added to a code map with their context
g. Get reactive code maps more quickly
h. Skip rebuilding your solution
i. Filter code element nodes and groups
j. Filter relationships to make diagrams easier to read
k. Create diagrams from the Class View and Object Browser
- Other design and modeling changes
a. Layer diagrams
b. UML diagrams
c. Architecture Explorer
- Visual Studio Extensibility Tools
- Please give feedback
a. Send a smile
b. Send a frown
c. Report crashes, hangs and performance issues
d. Track your issue in Connect
- The .NET Framework 4.6
- Entity Framework 4.6.x
- New Project System
- Cloud Optimized Core CLR
- Unification
- wwwroot Folder
- Project.json File
- Framework and Runtimes
- K Project
a. KRE (K Runtime Environment)
b. KPM (K package Manager)
- Class Libraries
- Custom Windows Layouts
- Azure Tooling
- TypeScript
- IntelliTest
c. Parameterized Unit Tests
d. Test stubs creation
- Better Code Editor
- Application Insights
- Release Management
- Git version control
a. Branches
b. Remotes management
c. Detailed history
- Rebase in Team Explorer
- VSO repositories
- Publish to Visual Studio Online
- CodeLens:Find what happened to your code (Enterprise and Professional editions only)
- Code maps and dependency graphs
- XAML Language Service
- IIS 10 Express for Visual Studio 2015
- Azure SDK 2.7 for .NET
- Windows 10 SDK
- Python Tools for Visual Studio 2.2
- Visual Studio Tools for Unity 2.0
- Node.js Tools for Visual Studio 1.1
- Office Developer Tools for Visual Studio 2015
a. Development with Office 365 APIs
b. SharePoint add-in development
c. Office add-in development
- GitHub Extension for Visual Studio 2015
a. The easiest way to connect to your GitHub repositories in Visual Studio. Easy to instal
b. Connect to GitHub in Visual Studio
c. Create repositories
d. Clone repositories with one click
e. Publish your local work to GitHub
- Shared Project – “All the Things!”
- Cloud-based Load Testing
a. Cloud-based load testing from Azure datacentres worldwide
b. Cloud-based Load Test now supports advanced agent diagnostics
- IntelliSense for Bower and NPM
- Debug Lambdas
- More features for Blend
- XAML IntelliSense
- Peek in XAML
- Visual C++ for Cross-Platform Mobile Development
- NuGet
a. NuGet 2.8.3
b. NuGet Package Manager
c. NuGet Gallery
- Visual Studio Tools for Apache Cordova
- JavaScript
a. JavaScript Editor Support
b. Tooling support for AngularJS
c. New JavaScript language features (from the ES6 version of JavaScript) are supported, including classes, arrow functions, and template strings.
d. Nav bar shared project support
e. New navigation bar
f. JSDoc comments
g. Object literal IntelliSense
h. Expand/collapse. You can expand and collapse more sections of your JavaScript code, including multi-line comments, multi-line arrays, and all multi-line blocks.
i. Task List support
- Visual Studio Emulator for Android
- Visual Studio Tools for Universal Windows App Development
- Language Features
a. Resumable Functions (resume/await)
b. Generic (Polymorphic) Lambda Expressions
c. Generalized Lambda Capture Expressions
d. Binary Literals
e. Return Type Deduction
f. decltype(auto)
g. Implicit Generation of Move Special Member Functions
h. Inheriting Constructors
i. Alignment Query and Control
j. Extended sizeof
k. Constexpr
l. User-Defined Literals (UDLs)
m. Thread-Safe "Magic" Statics
n. Thread-Local Storage
o. noexcept operator
p. Inline Namespaces
q. Unrestricted Unions
r. New Character Types and Unicode Literals
s. __func__
t. __restrict
u. Typename keyword
v. The globals void operator delete(void *, std::size_t) noexcept and void operator delete[](void *, std::size_t) noexcept can now be overloaded. C++14
w. Digit separators
x. Universal character names in literals
y. Non-static data member initializers
z. Attributes
aa. User-Defined Literals (UDLs)
bb. Data-dependency ordering attributes
cc. New rules for auto with braced-init-lists
- Visual C++ Library Features
- Visual C++ Faster Builds
- Visual C++ Performance and Code Quality
- Visual C++ Productivity, Debugging, and Diagnostics
And many more features.