Skip to content

liaskast/project-icsharp

Repository files navigation

You can find a thorough description explaining the context of this project here.

Build Status

Interactive C# Notebook

ICSharp is a C# language kernel for Jupyter. It allows users to use Jupyter's Notebook frontend, except where Jupyter executes python code, ICSharp can execute C# code. It is based on Roslyn REPL engine of scriptcs., so all the advantages of such scriptcs come along with it.

This is on top of all of Jupyter's other frontend features like Markdown rendering, HTML rendering, saving notebooks for later use and even the ability to view ICSharp Notebooks in Jupyter's NBViewer.

Project Context Description

Our C# Kernal caters to users who want to learn how to program in C# through a notebook environment like that of Azure Notebooks. Along with the C# Kernal we designed and created a complementary Azure Notebook to attract and drive users to discover C#. The complementary notebook takes the user through a tour of the C# Language highlighting all the concepts and features that come along with it! The completion of this project marked the first time I was able to work on a large scale commercial software project.

Disclaimer

The development of this language kernel for C# is at it's very early stages. This is the Alpha stage.

Installation

BUILD ISSUE FIX AND INSTALLATION (Windows confirmed working for now)

Clone the respository and make sure that the submodule engine has been cloned by using the command:

git clone --recurse-submodules -j8 git://github.com/MohamedEihab/icsharp

Update and restore the nuget dependencies using the following commands:

nuget\Nuget.exe update -self
.nuget\Nuget.exe restore
cd Engine
.nuget\Nuget.exe update -self
.nuget\Nuget.exe restore

Open the project on Visual Studio and attempt to build, follow the remaining instructions below after successful build to launch Jupyter Notebooks with the newly installed C# Kernel.

Feedback

Feedback is welcome from anyone who has attempted to use ICSharp. We would love to hear some thoughts on how to improve ICSharp.

Known Issues

  • Console.WriteLine does not print output in the notebook
  • Console.ReadLine does not work currently

Ideas for Future Developement

Code to write

  • Intellisense Support
  • YellowBook addition

Current

  • Syntax Highlighting - Mohamed
  • Jupyter Notebook Fix - Mostafa

Done

About

Microsoft C# Kernal for Azure Notebooks

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published