Newbies What Next ? News Forums Calendar


News Sections
General News (3987/0)
Reviews (637/0)
Press Releases (465/0)
Distributions (197/0)
Software (911/0)
Hardware (537/0)
Security (192/0)
Tutorials (356/0)
Off Topic (181/0)

User Functions


Don't have an account yet? Sign up as a New User

There are no upcoming events

6 Top Free C# Books

6 Top Free C# Books

C# (pronounced C Sharp) is a modern, general-purpose, type-safe, object-oriented, multi-paradigm programming language implementing and expanding on the best features and functions found in other languages.

C# combines the power and flexibility of C++ with the simplicity of Visual Basic. It encompasses strong typing, imperative, declarative, functional, generic, object-oriented (class-based), and component-oriented programming disciplines with support for the concepts of encapsulation, inheritance, and polymorphism. It incorporates many elements of the expression and statement syntax of C, and has a more refined object-oriented programming syntax than C++.

For development of Linux applications, programmers may be interested in Mono, an open source implementation of Microsoft's .NET Framework based on the ECMA standards for C# and the Common Language Runtime. C# is developed by Microsoft.

C# is one of the more popular programming languages, but is not as widely used as say C, Java, C++ or PHP.

The focus of this article is to select some of the finest free C# books which help programmers master this language. To cater for all tastes, we have selected a diverse range of informative books on C#. All of the texts here come with our strongest recommendation. So get reading (and downloading).

1. C# Programming

C# Programming
Author Rob Miles
Format PDF
Pages 201

The C# Book is a book that teaches you how to program using C#. It is the basis of the first year programming course at the Department of Computer Science in the University of Hull.

Chapters cover:

  • Computers and Programs - find out what a computer is and get an understanding of the way that a computer program tells the computer what to do. Discover what you should do when starting to write a program. The chapter finishes with a look at programming in general and the C# language in particular
  • Simple Data Processing - create a genuinely useful program. Start by creating a very simple solution and investigate the C# statements that perform basic data processing. The author then uses additional features of the C# language to improve the quality of the solution
  • Creating Programs - build on our programming abilities to make programs that are broken down into manageable chunks and find out how a program can store and manipulate large amounts of data using arrays
  • Creating Solutions - a case study which will allow you to see the features of C# in a strong context
  • Advanced Programming - looks at the ArrayList class, the List class, the Dictionary class, storing business objects, saving an account, loading an account, multiple accounts, handling different kinds of accounts, business objects and editing, threads and threading, structured error handling, program organisation, a graphical user interface including the XAML markup language, extensible markup languages, XML schema, and debugging
  • Glossary of Terms

2. Dissecting a C# Application

Dissecting a C# Application
Author Christian Holm, Bernhard Spuida, Mike Kruger
Format PDF
Pages 500

SharpDevelop is a free and open source complete Integrated Development Environment, written in C# for the Microsoft .NET, Mono, Gtk#, and Glade platforms. It includes all the advanced features thatprogrammers expect from a modern IDE and, of course, implementing these features has required some advanced programming techniques.

This book shows the reader you the process, thinking and code behind the open-source .NET IDE SharpDevelop that went on to split into the MonoDevelop project.

The book shows the reader how to:

  • Build a highly modular application
  • Provide a flexible, extendable, customizable user interface
  • Manage the efforts of translators for efficient internationalization
  • Represent and manipulate text efficiently
  • Code search and replace functionality
  • Construct reusable controls
  • Implement a parser to provide syntax highlighting auto-completion as users type
  • Use reflection to access information about .NET classes
  • Create a Windows Forms designer
  • Generate code programmatically

3. Threading in C#

Threading in C#
Author Joseph Albahari
Format PDF, HTML
Pages 125

Threading in C# is an extensive online book on multithreading in C#. It presents the reader with useful information on thread safety, Abort, Wait Handles vs Wait and Pulse, the implications of Apartment Threading in Windows Forms, using Thread Pooling, Synchronization Contexts, Memory Barriers and non-blocking synchronization constructs.

Chapters cover:

  • Getting Started:
    • Introduction and Concepts
    • Creating and Starting Threads - looks at passing data to a thread, naming threads, foreground vs background, thread priority, and exception handling
    • Thread Pooling - cuts overheads by sharing and recycling threads
  • Basic Synchronization:
    • Synchronization Essentials - coordinating the actions of threads for a predictable outcome
    • Locking - examines the lock construct, mutex and semaphores before moving on to coverage on reader/writer locks
    • Thready Safety - achieved primarily with locking and by reducing the possibilities for thread interaction
    • Signaling with Event Wait Handles - they come in three types: AutoResetEvent, ManualResetEvent, and CountdownEvent
    • Synchronization Contexts - looks at reentrancy
  • Using Threads:
    • The Event-Based Asynchronous Pattern - provides a simple means by which classes can offer multithreading capability without consumers needing to explicitly start or manage threads, a cooperative cancellation model, the ability to safely update WPF or Windows Forms controls, and forwarding of exceptions to the completion event
    • BackgroundWorker - a helper class in the System.ComponentModel namespace for managing a worker thread
    • Interrupt and Abort - looks at Thread.Interrupt and Thread.Abort
    • Safe Cancellation - including Cancellation Tokens
    • Lazy Initialization - Lazy of T class, and LazyInitializer
    • Thread-Local Storage - explores three ways to implement thread-local storage
    • Timers - multithreaded and single-threaded timers
  • Advanced Topics:
    • Nonblocking Synchronization - memory barriers and volatility, interlocked
    • Signaling with Wait and Pulse - looks at how to use Wait and Pulse, Producer/Consumer queue, wait timeouts, two-way signaling, simulating wait handles, writing a CountdownEvent, and thread rendezvous
    • The Barrier Class - a signaling construct new to Framework 4.0. It implements a thread execution barrier, which allows many threads to rendezvous at a point in time
    • Reader/Writer Locks - designed to provide maximum-availability locking
    • Suspend and Resume - explains that t is safe to call Suspend on the current thread
    • Aborting Threads - looks at complications with Thread.Abort, ending application domains and processes
  • Parallel Programming:
    • Why PFX?
    • PLINQ - automatically parallelizes local LINQ queries
    • The Parallel Class
    • Task Parallelism - the lowest-level approach to parallelization with PFX
    • Working with AggregateException - provides a couple of methods to simplify exception handling: Flatten and Handle
    • Concurrent Collections - Framework 4.0 provides a set of new collections in the System.Collections.Concurrent namespace
    • SpinLock and SpinWait - the SpinLock struct lets you lock without incurring the cost of a context switch, at the expense of keeping a thread spinning. SpinWait helps you write lock-free code that spins rather than blocks

Next Section: 6 Top Free C# Books - Part 2

Bookmark and Share

Last Updated Saturday, July 04 2015 @ 12:16 PM EDT

We have written a range of guides highlighting excellent free books for popular programming languages. Check out the following guides: C, C++, C#, Java, JavaScript, CoffeeScript, HTML, Python, Ruby, Perl, Haskell, PHP, Lisp, R, Prolog, Scala, Scheme, Forth, SQL, Node.js (new), Fortran (new), Erlang (new), Pascal (new), and Ada (new).

Group Tests
100 Essential Apps
All Group Tests

Top Free Software
5 Office Suites
3 Lean Desktops
7 Document Processors
4 Distraction Free Tools
9 Project Management
4 Business Solutions
9 Groupware Apps
14 File Managers
10 Databases
21 Backup Tools
21 Productivity Tools
5 Note Taking Apps
9 Terminal Emulators
21 Financial Tools
5 Bitcoin Clients
21 Text Editors
21 Video Emulators
21 Home Emulators
42 Graphics Apps
6 CAD Apps
42 Scientific Apps
10 Web Browsers
42 Email Apps
12 Instant Messaging
10 IRC Clients
7 Twitter Clients
12 News Aggregators
11 VoIP Apps
42 Best Games
9 Steam Games
42 Audio Apps
5 Music Streaming
42 Video Apps
5 YouTube Tools
80 Security Apps
9 System Monitoring
8 Geometry Apps
Free Console Apps
14 Multimedia
4 Audio Grabbers
9 Internet Apps
3 HTTP Clients
5 File Managers
8 Compilers
9 IDEs
9 Debuggers
7 Revision Control Apps
6 Doc Generators
Free Web Software
21 Web CMS
14 Wiki Engines
8 Blog Apps
6 eCommerce Apps
5 Human Resource Apps
10 ERP
10 CRM
6 Data Warehouse Apps
8 Business Intelligence
6 Point-of-Sale

Other Articles
Migrating from Windows
Back up your data
20 Free Linux Books
24 Beginner Books
12 Shell Scripting Books

Older Stories
Sunday 04/12
  • First Peek at XBian on the Raspberry Pi 2 (0)

  • Saturday 04/04
  • First Look at OSMC RC on the Raspberry Pi 2 (0)

  • Sunday 03/29
  • First Steps with OpenELEC on the Raspberry Pi 2 (0)
  • Ubuntu MATE 15.04 for Raspberry Pi 2 (0)

  • Monday 03/16
  • MIPS Creator CI20 v Raspberry Pi 2 (0)
  • Raspberry Pi 2: Raspbian (ARMv6) v Linaro (ARMv7) (0)

  • Friday 03/06
  • Raspberry Pi 2 review (0)

  • Sunday 02/22
  • Chess in a Few Bytes (0)
  • Learn the Art of Computer Programming With These Great Free Beginner Books (2)
  • CD Audio Grabbers (0)

  • Vote

    What Linux distribution do you run on your main computer?

    841 votes | 3 comments

    Built with GeekLog and phpBB
    Comments to the webmaster are welcome
    Copyright 2009 - All rights reserved