Git Product home page Git Product logo

This repository contains the source code of the 2 following products, which share most of their code:

  • OpenSilver (www.opensilver.net) → It compiles C#/XAML/.NET to WebAssembly/HTML/CSS (Free, Open Source, MIT Licensed)
  • CSHTML5 (www.cshtml5.com) → It compiles C#/XAML/.NET to JavaScript/HTML/CSS (Dual Licensed)

The main branches are:

  • develop: this branch is where day to day development occurs
  • master: this branch corresponds to the version of the packages that are on Nuget.org

How to download the software and get started?

Read the "Getting Started" page of the OpenSilver documentation for a step-by-step tutorial.

Basically, you should download the .VSIX file (the extension for Microsoft Visual Studio) which installs the Project Templates:

Then, launch Visual Studio, click "Create a new project", and choose one of the installed templates.

After creating the project, you may then want to update the NuGet package to reference the very latest version (note: in the NuGet Package Manager, be sure to check the option "include pre-releases", otherwise you may not see the latest package version).

How to build the source code in this repository?

  1. Update Visual Studio: Make sure you are using the very latest version of Visual Studio. To check for updates, please launch the Visual Studio Installer from your Start Menu.

  2. Clone the repo: Clone this repository locally or download it as a ZIP archive and extract it on your machine.

  3. Run the restoration .BAT: Execute the .BAT file "restore-packages-opensilver.bat" located at the root of this repository.

  4. Update the OpenSilver compiler assemblies: OpenSilver has a dependency on an older version of OpenSilver to convert xaml files to C#, which is retrieved by the restore batch file (from Step No. 3.). Due to continous updates, this restored version can sometimes have outdated OpenSilver compiler assemblies which might cause unexpected compilation or runtime errors. To fix this, run the "update-compiler.bat" script located in the "build" folder.

  5. Delete bin/obj: Make sure to remove the "bin" and "obj" folders, if any. They can cause issues when building using the ".bat" files.

  6. Launch the Developer Command Prompt: Open the "Developer Command Prompt for VS 2022" (or whatever is the latest version of Visual Studio) from your Start Menu and navigate to the "build" folder of this repository.

  7. Run the compilation .BAT: Launch the file "build-nuget-package-OpenSilver.bat" located inside the "build" folder of this repository, and enter today's date or any other unique identifier to use for the version number (eg. 2023-10-18).

  8. Use the newly built packages: The previous command will create new NuGet packages inside the "build/output/OpenSilver" folder. You can now reference those packages from any OpenSilver application project (here is how) (Note: you may need to check the options "Include prerelease" in the "Manage NuGet Packages" window in order to see the newly created NuGet packages). For example, to use them on a new "Hello World" OpenSilver application, make sure you have the VSIX installed (see the top of this document), then launch Visual Studio, click "Create a new project" -> "OpenSilver application", and replace the default NuGet package references with the new packages that you have built.

For convenience, instead of re-building the whole packages every time that you make a change to the OpenSilver code, you can build only the OpenSilver Runtime DLL.

To reduce the development inner loop time, you can also add a "Post Build" action to the OpenSilver Runtime project that will automatically copy the Runtime DLL from the "bin" folder into the OpenSilver NuGet package folder at "C:\Users\YOUR_USER_NAME.nuget\packages\opensilver\ENTER_LATEST_VERSION_HERE\lib\netstandard2.0"

Note: while rarely needed, there is also a .BAT file for building the Simulator package.

What if I get a compilation error with the code in this repository?

If you get a compilation error, it may be that a Visual Studio workload needs to be installed. To find out, please open the solution "OpenSilver.sln" and attempt to compile it with the latest version of the Visual Studio IDE.

If you are compiling using the Command Prompt, please double-check that you are using the "Developer Command Prompt" instead of the standard Command Prompt, and that the current directory is set to the "build" directory of this repository, because some paths in the .BAT files may be relative to the current directory.

If you still encounter any issues, please contact the OpenSilver team at: https://opensilver.net/contact.aspx

VSIX for OpenSilver

If you're looking to build the VSIX extension for OpenSilver, instructions and the necessary source code are available in our dedicated repository - OpenSilver.VSIX.

OpenSilver's Projects

aframe-htmlembed-component-1.3.0-ready icon aframe-htmlembed-component-1.3.0-ready

HTML Component for A-Frame VR that allows for interaction with HTML in VR. Demo https://supereggbert.github.io/aframe-htmlembed-component/dist/examples/index.html

customerapp icon customerapp

A simple Silverlight application migrated to OpenSilver

lightswitchmigrationsample icon lightswitchmigrationsample

A sample Microsoft LightSwitch project migrated from Silverlight to OpenSilver via the 'LightSwitch Compatibility Pack'.

mvvmlight icon mvvmlight

The main purpose of the toolkit is to accelerate the creation and development of MVVM applications in Xamarin.Android, Xamarin.iOS, Xamarin.Forms, Windows 10 UWP, Windows Presentation Foundation (WPF), Silverlight, Windows Phone.

odata.net icon odata.net

ODataLib: Open Data Protocol - .NET Libraries and Frameworks

openriaservices icon openriaservices

The Open RIA Services project continues what was previously known as WCF RIA Services.

opensilver icon opensilver

This repository contains the source of both OpenSilver and CSHTML5. More information is available at: www.opensilver.net and www.cshtml5.com - Read README.md for the instructions on how to build the source code and how to test it.

opensilver.controlskit icon opensilver.controlskit

The ControlsKit is a collection of additional libraries, controls, and helpers that developers can use directly in their OpenSilver projects, to complement the built-in controls.

opensilver.samples.showcase icon opensilver.samples.showcase

A sample application for OpenSilver and CSHTML5. You can see the CSHTML5 version running live at: http://cshtml5.com/links/showcase.aspx

opensilver.xaml3d icon opensilver.xaml3d

[WORK IN PROGRESS] We are working on the next generation GUI framework. Stay tuned for updates!

prism icon prism

Prism is a framework for building loosely coupled, maintainable, and testable XAML applications in WPF, Windows 10 UWP, and Xamarin Forms.

samplecrm icon samplecrm

A real-world example for developing business applications with OpenSilver

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.