Do NOT use for questions about .NET Core - use [.net-core] instead. The .NET framework is a software framework designed mainly for the Microsoft Windows operating system. It includes an implementation of the Base Class Library, Common Language Runtime (commonly referred to as CLR), Common Type System (commonly referred to as CTS) and Dynamic Language Runtime. It supports many programming languages, including C#, VB.NET, F# and C++/CLI.
The .NET Framework is not specific to any programming language. Programming languages from Microsoft, like c#, vb.net, visual-c++ CLI, and f#, as well as many other languages from other vendors, all use the same .NET Framework.
The .NET Framework includes a large library of functions as part of the Base Class Library (BCL), including those related to user interface design, data access, database connectivity, cryptography, development of web applications, mathematical algorithms, and network communications. This extensive library simplifies development and makes it easy to rapidly develop new applications.
As such, questions like "How do I do file I/O in C#?" should really be "How do I do file I/O with .NET?". Because such a question concerns the file I/O libraries provided by the .NET Framework, it should be tagged with both the .net tag, and with the c# tag, to indicate that you'd like the answer to be written in the C# programming language.
See also: mono, .net-core (do NOT use the .net tag for questions about .NET Core).
Getting help
- What are some useful online resources for .NET developers?
- What podcasts are there that cover .NET?
- .NET Framework Wikipedia Link
- .NET documentation site
Versions of .NET
.net-1.0 .NET Framework 1.0 - CLR 1.0 - 2002-02-13
.net-1.1 - .NET Framework 1.1 - CLR 1.1 - 2003-04-24
.net-2.0 - .NET Framework 2.0 - CLR 2.0 - 2005-11-07
.net-3.0 - .NET Framework 3.0 - CLR 2.0 - 2006-11-06
.net-3.5 - .NET Framework 3.5 - CLR 2.0 - 2007-11-19
.net-4.0 - .NET Framework 4.0 - CLR 4 - 2010-04-12
.net-4.5 - .NET Framework 4.5 - CLR 4 - 2012-08-15
.net-4.5.1 - .NET Framework 4.5.1 - CLR 4 - 2013-10-17
.net-4.5.2 - .NET Framework 4.5.2 - CLR 4 - 2014-05-05
.net-4.6 - .NET Framework 4.6 - CLR 4 - 2015-07-20
.net-4.6.1 - .NET Framework 4.6.1 - CLR 4 - 2015-11-30
.net-4.6.2 - .NET Framework 4.6.2 - CLR 4 - 2016-08-02
.net-4.7 - .NET Framework 4.7 - CLR 4 - 2017-04-05
.net-4.7.1 - .NET Framework 4.7.1 - CLR 4 2017-10-17
.net-4.7.2 - .NET Framework 4.7.2 - CLR 4 2018-02-05
.net-4.8 - .NET Framework 4.8 - CLR 4 2019-04-18
Performance
- How can I measure performance of my .NET applications?
- How to monitor .NET Application Performance?
- What are some common profilers used in .NET?
Garbage collector
- Fundamentals of Garbage Collection.
- How does the .NET Garbage Collector work?
- When should I use GC.SuppressFinalize()?
- When does the .NET Garbage Collector suspend all threads?
Free .NET Programming Books (C# / F# / VB / Nemerle / Visual Studio)
- C# Programming - Wikibook
- C# Yellow Book (intro to programming)
- Charles Petzold's .NET Book Zero
- Entity Framework
- Moving to Microsoft Visual Studio 2010
- Programming in F# 3.0
- Programmer's Heaven C# School Book
- Threading in C#
- Visual Studio Tips and Tricks (VS 2003-2005 only)
- Foundations Of Programming
Reference Source
API Guide
Database
- BrightstarDb - BrightstarDB is a native .NET RDF triple store
- Event Store - The open-source, functional database with Complex Event Processing in JavaScript. https://eventstore.org/
- LiteDB - A .NET NoSQL Document Store in a single data file - http://www.litedb.org
- RavenDB - A LINQ-enabled document database for .NET
- Marten - PostgreSQL as a document database and event store for .NET applications
- Realm Xamarin - A fast, easy-to-use alternative to SQLite & ORMs - https://realm.io/docs/dotnet/latest/
- Streamstone - Event store for Azure Table Storage
- Ignite - Distributed in-memory platform: document database with SQL and LINQ support; distributed computations; distributed services and events.
- Yessql - A .NET document database working on any RDBMS
- JsonFlatFileDataStore - Simple JSON flat file data store with support for typed and dynamic data
Database Drivers
- MySQL Connector - Connector/Net is a fully-managed ADO.NET driver for MySQL
- Npgsql - .NET data provider for PostgreSQL
- MongoDB - Official MongoDB C# driver
- RethinkDb.Driver - A RethinkDB database driver in C# striving for 100% ReQL API compatibility and completeness.
- ServiceStack Redis - .NET's leading C# Redis client
- StackExchange Redis - General purpose Redis client from Stack Exchange
- Cassandra - DataStax .NET driver for Apache Cassandra
- Couchbase - Official Couchbase .NET client library, based on the Enyim Memcached client
- Firebird.NET - The .NET Data provider is written in C# and provides a high-performance, native implementation of the Firebird API
Useful .NET Libraries
Mathematics
- Math.NET Numerics - special functions, linear algebra, probability models, random numbers, interpolation, integral transforms and more
Package managers for external libraries
- NuGet (formerly known as NuPack) - Microsoft (developer-focused package management system for the .NET platform intent on simplifying the process of incorporating third-party libraries into a .NET application during development)
Build Tools
- Prebuild - Generate project files for all Visual Studio versions, including major IDEs and tools like SharpDevelop, MonoDevelop, NAnt and Autotools
Dependency Injection/Inversion of Control
- Unity Framework - Microsoft
- StructureMap - Jeremy Miller
- Castle Windsor
- Ninject
- Spring Framework
- Autofac
- Simple Injector
- Managed Extensibility Framework
- TinyIoC
Logging
- Logging Application Block - Microsoft
- Log4Net - Apache
- Error Logging Modules and Handlers (ELMAH)
- NLog
- Logging Abstraction API "Common.Logging"
Validation
- Validation Application Block - Microsoft
- Fluent Validation
Design by Contract
Compression
- SharpZipLib
- DotNetZip
- YUI Compressor (CSS and JavaScript minification)
Ajax
- Ajax Control Toolkit - Microsoft
- AJAXNet Pro
Data Mapper
- Dapper
- Massive
- Data accessors from the Data Access Application Block
ORM
- Entity Framework - Microsoft
- NHibernate and FluentNHibernate
- Castle ActiveRecord
- Subsonic
Charting/Graphics
- Microsoft Chart Controls for ASP.NET 3.5 SP1
- Microsoft Chart Controls for Windows Forms
- NPlot - Charting for ASP.NET and Windows Forms
PDF Creators/Generators
Unit Testing/Mocking
Automated Web Testing
Misc Testing/Quality Support/Behavior Driven Development (BDD)
- BDD specflow
URL Rewriting
Web Debugging
- Glimpse - Firebug for your webserver
Controls
- Krypton - Free Windows Forms controls
- Source Grid - A Grid control
MS Word/Excel Documents Manipulation
- DocX to create, read, manipulate formatted word documents. Easy syntax, working nicely, actively developed. No Microsoft Office necessary.
- Excel XML Writer allows creation of .XLS (Excel) files. No Microsoft Office necessary. It has been a while since it has been updated. It also provides a code generator to create code from already created XLS file (saved as XML). Haven't tested this but looks very promising. The author hasn't updated this in awhile.
- Excel Reader allows creation/reading of .XLS (Excel) files. No Microsoft Office necessary. It has been awhile since it has been updated.
- Excel Package allows creation/reading of .XLSX (Excel 2007) files. No Microsoft Office necessary. The author is gone, so it's out of date.
- EPPlus is based on Excel Package and allows creation/reading of .XLSX (Excel 2007). It is actually the most advanced even comparing to NPOI.
- NPOI is the .NET version of POI Java project at https://poi.apache.org/. POI is an open source project which can help you read/write Excel, Word, and PowerPoint files. Latest sources available at GitHub repository
Serialization
- sharpSerializer - XML/binary serializer for WPF, ASP.NET AND Silverlight
- protobuf-net - .NET implementation of Google's cross-platform binary serializer (for all .NET platforms)
Machine learning
- Encog C# - Neural networks
- AForge.net - AI, computer vision, genetic algorithms, machine learning
Chat room
Chat about .NET with other Stack Overflow users
RESTFul Web Services
- RestSharp - Simple REST and HTTP API Client for .NET
Unclassified
- CSLA Framework - Business Objects Framework
- Enterprise Library 5.0 - Logging, Exception Management, Caching, Cryptography, Data Access, Validation, Security, Policy Injection - Microsoft patterns & practices
- File helpers library
- C5 Collections - Collections for .NET
- Quartz.NET - Enterprise Job Scheduler for .NET Platform
- MiscUtil - Utilities by Jon Skeet
- Noda Time - DateTime replacement (idiomatic port of Joda Time from Java)
- Lucene.net - Text indexing and searching
- Json.NET - LINQ over JSON
- PostSharp - AOP
- IKVM - brings the extensive world of Java libraries to .NET.
- C# Webserver - Embeddable webserver
- .NET Engines for the GOLD Parsing System
- Smart Thread Pool - Thread Pool management library
- NCQRS - library for event-driven architectures (CQRS).
- NBug - Automated exception and error reporting tool (can generate minidumps)
- Pex - a tool for automatic test case generation
- Lidgren Network - a networking library for .NET Framework which uses a single UDP socket to deliver a simple API for connecting a client to a server, reading and sending messages.
- LINQPad - Scripting IDE for C# / VB / SQL with emphasis on LINQ to databases