Code Monkey home page Code Monkey logo

csharpnotes's Introduction

csharpnotes

This is a work in progress, to take David Eck's introductory computer science textbook and convert it from Java to C#. Currently no progress has been made - I'm just getting started. Come back in a few months to see where things are!

This git repository contains the full source files for the free textbook Introduction to Programming Using C#, Version 1. It builds upon David Eck's wonderful work from Introduction to Programming Using Java, Version 9, which has been available on the web in a series of versions since 1996.

Introduction to Programming Using C# is a free introductory textbook covering the C# programming language. This first version covers C# 10 as found in .NET 6. This book's release date is currently still TBD. When published, it will be available online at https://codewren.ch/csharpnotes and the original Java edition can be accessed at https://math.hws.edu/javanotes. The front page of each web site has links for downloading the textbook in web-site, PDF, and eBook formats.

This repository contains the source files that are used to generate the C# edition in all formats. The sources include XML, XSLT, DTD, image, and C# files, plus some scripts for generating the various formats. The scripts were written for Linux but should also work on MacOS, and can also be run on Windows with the help of Docker. Because of the large variety of formats, the whole thing has gotten rather complicated. Since the source files were not originally meant for publication, they are not very cleanly written, and using them would require a lot of expertise.

The sources are stored in a folder named csharpnotes1, which contains everything that is needed to produce the C# edition. To use it to produce the book, you first need to export the files by editing and running the script export-source.sh from the csharpnotes1 folder. (The script must first be edited to specify the correct directory names for the local environment.) The exported directory will contain scripts for building the JavaFX edition in various formats and a file, README.txt, with instructions for using the scripts.

To produce the book from the XML/XSLT files, you will need a copy of the XSLT processor Xalan-J. The XSLT files use some features that are specific to Xalan-J.

(Source files for David Eck's Java edition can be found at https://github.com/davidjeck/javanotes9, or in the java branch of this repository)

csharpnotes's People

Contributors

davidjeck avatar dschilling avatar

csharpnotes's Issues

Create Uno Platform version of book

Uno Platform is one one of the potential options for the GUI framework to use for this book, as mentioned in issue #1. Vote for this issue with ๐Ÿ‘ if you want this.

Create Godot version of book

Godot is one one of the potential options for the GUI framework to use for this book, as mentioned in issue #1. Vote for this issue with ๐Ÿ‘ if you want this.

Create Avalonia UI version of book

Avalonia UI is one one of the potential options for the GUI framework to use for this book, as mentioned in issue #1. Vote for this issue with ๐Ÿ‘ if you want this.

Create MAUI version of book

MAUI is one one of the potential options for the GUI framework to use for this book, as mentioned in issue #1. Vote for this issue with ๐Ÿ‘ if you want this.

Create GtkSharp version of book

GtkSharp is one one of the potential options for the GUI framework to use for this book, as mentioned in issue #1. Vote for this issue with ๐Ÿ‘ if you want this.

Decide which GUI framework to use

The book uses GUI programming to introduce events and event handlers. While there are obvious choices in Java for GUI frameworks suitable for a college & high school computer science textbook, the GUI landscape for C# is... muddier. The framework chosen should be...

  • cross-platform,
  • and open source.

The official cross-platform GUI offering from Microsoft is MAUI, which would almost be a no-brainer... except it doesn't support Linux!! To be seriously used as a college textbook (and also in my home), compatibility with Linux is absolutely necessary.

Potential options are...

  • MAUI
  • Avalonia UI
  • Uno Platform
  • Godot
  • GtkSharp
  • others?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.