All Projects → Protobuild → Protobuild

Protobuild / Protobuild

Licence: mit
This project has been retired.

Projects that are alternatives of or similar to Protobuild

Skiasharp.extended
SkiaSharp is a cross-platform, comprehensive 2D graphics API for all .NET platforms. And, here is where you will find all sorts of extras that you can use with it.
Stars: ✭ 118 (-22.88%)
Mutual labels:  cross-platform, xamarin, dot-net
Skiasharp
SkiaSharp is a cross-platform 2D graphics API for .NET platforms based on Google's Skia Graphics Library. It provides a comprehensive 2D API that can be used across mobile, server and desktop models to render images.
Stars: ✭ 2,493 (+1529.41%)
Mutual labels:  cross-platform, xamarin, dot-net
Tensorflowsharp
TensorFlow API for .NET languages
Stars: ✭ 3,027 (+1878.43%)
Mutual labels:  xamarin, dot-net
Open Source Xamarin Apps
📱 Collaborative List of Open Source Xamarin Apps
Stars: ✭ 318 (+107.84%)
Mutual labels:  cross-platform, xamarin
Essential Ui Kit For Xamarin.forms
Free and beautiful XAML template pages for Xamarin.Forms apps.
Stars: ✭ 780 (+409.8%)
Mutual labels:  cross-platform, xamarin
CreatingPlatformPlugins
A set of examples and documentation to aid in the development of cross-platform libraries and plugins.
Stars: ✭ 48 (-68.63%)
Mutual labels:  xamarin, dot-net
Mutatio
Visual Studio for Mac add-in/extension for converting old PCLs to .NET Standard 2.0 targeting projects automatically.
Stars: ✭ 27 (-82.35%)
Mutual labels:  xamarin, dot-net
Xamarin.forms
Xamarin.Forms Official Home
Stars: ✭ 5,485 (+3484.97%)
Mutual labels:  cross-platform, xamarin
Litenetlib
Lite reliable UDP library for Mono and .NET
Stars: ✭ 2,179 (+1324.18%)
Mutual labels:  cross-platform, dot-net
Httptransfertasks
Cross Platform HTTP Transfers for downloading and uploading (supports background operations)
Stars: ✭ 87 (-43.14%)
Mutual labels:  cross-platform, xamarin
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.
Stars: ✭ 973 (+535.95%)
Mutual labels:  cross-platform, xamarin
Reactivemvvm
Cross-platform ReactiveUI sample app built for a talk at MSK .NET conf.
Stars: ✭ 94 (-38.56%)
Mutual labels:  cross-platform, xamarin
Punchclock
Make sure your asynchronous operations show up to work on time
Stars: ✭ 235 (+53.59%)
Mutual labels:  cross-platform, xamarin
Fusillade
An opinionated HTTP library for Mobile Development
Stars: ✭ 269 (+75.82%)
Mutual labels:  cross-platform, xamarin
Akavache
An asynchronous, persistent key-value store created for writing desktop and mobile applications, based on SQLite3. Akavache is great for both storing important data as well as cached local data that expires.
Stars: ✭ 2,185 (+1328.1%)
Mutual labels:  cross-platform, xamarin
Uno
Build Mobile, Desktop and WebAssembly apps with C# and XAML. Today. Open source and professionally supported.
Stars: ✭ 6,029 (+3840.52%)
Mutual labels:  cross-platform, xamarin
Uno.quickstart
An Uno "Hello world!" project using Windows UWP, iOS, Android and WebAssembly
Stars: ✭ 157 (+2.61%)
Mutual labels:  cross-platform, xamarin
Brainpowerapp
A visual memory training game, a mobile game made with Xamarin for both Android and IOS .
Stars: ✭ 17 (-88.89%)
Mutual labels:  cross-platform, xamarin
Essentials
Essential cross platform APIs for your mobile apps.
Stars: ✭ 1,344 (+778.43%)
Mutual labels:  cross-platform, xamarin
Expressive
Expressive is a cross-platform expression parsing and evaluation framework. The cross-platform nature is achieved through compiling for .NET Standard so it will run on practically any platform.
Stars: ✭ 113 (-26.14%)
Mutual labels:  cross-platform, xamarin

Protobuild

Cross-platform project generation for C#

Define your project content once and compile code for every platform, in any IDE or build system, on any operating system. See https://protobuild.readthedocs.io/en/latest/ for more information.

IMPORTANT: Project retirement

This project will be retired and archived as of 1st Jan 2020. Given the improvements the .NET ecosystem has made over the past few years with regard to cross-platform support for projects (particularly through .NET Core and .NET Standard), Protobuild is no longer relevant for new cross-platform .NET development.

Getting Started

Whether you're looking to start using Protobuild in your own project, or using it to generate an existing project, documentation such as usage guides can be found on Read the Docs.

Build Status

Status
Core Projects
Protobuild
Protobuild Manager
Protobuild for Visual Studio

Overview

The goal of Protobuild is to enable developers to easily write cross-platform .NET software for all platforms. Unlike solutions such as Shared Code Projects and PCLs, Protobuild allows projects to have different references per platform while also taking full advantage of the native APIs available on each platform.

Protobuild offers the following features:

  • Protobuild ships as a single executable in your repository; your users don't need to install any software to use it
  • Generate C# and C++ solutions and projects for any platform that supports .NET
  • Two-way project synchronisation; changes you make in your IDE (adding or removing files) are synchronised automatically back to the cross-platform definition files
  • Full cross-platform package management, with packages seperated based on platform instead of frameworks
  • Support for content projects, which define assets for inclusion in cross-platform projects
  • Support for include projects, which define sets of files for inclusion in other cross-platform projects
  • A optional, separately-installed graphical interface which allows you to manage cross-platform projects: https://github.com/hach-que/Protobuild.Manager
  • A cross-platform automated build framework for use on build servers

We put a high focus on the following important principles:

  • Zero maintainance - We ensure that you never need to maintain or update your project definitions when new versions of Protobuild are released, because Protobuild ships as a single executable in your repository. There's nothing for you or your users to install in order to generate projects.
  • Guaranteed backwards and forwards compatibility - When you include a third-party that's also using Protobuild, we guarentee that the version of Protobuild in your repository will be able to invoke the third-party library's copy of Protobuild, even when they're different versions.
  • Complete customizability - When you need to do something custom in your project, Protobuild offers you the flexibility to do so, without forking Protobuild. Almost all of Protobuild's project generation is driven by embedded XSLT files; it offers an option --extract-xslt with which you can extract those XSLT templates to your repository. Protobuild will then use your versions of the templates for generating projects.

Documentation

We have full and extensive documentation available on Read the Docs.

Supported Platforms

Protobuild supports the following platforms out-of-the-box, but by customizing the project generation you can support any platform you like:

  • Android (via Xamarin)
  • iOS (via Xamarin)
  • tvOS (via Xamarin)
  • Linux
  • MacOS
  • Ouya (via Xamarin)
  • PCL (for Bait-and-Switch PCL only)
  • Windows
  • Windows8
  • WindowsPhone
  • WindowsPhone81
  • WindowsUniversal
  • Web (via JSIL)

For example, to generate for the WindowsPhone platform, use Protobuild.exe --generate WindowsPhone.

How to Build

If you wish to open Protobuild in your IDE, double-click Protobuild.exe to generate the solution, and then open the solution in your IDE. If you are on Mac or Linux, you will need to run mono Protobuild.exe from the command-line.

If you want to prepare your changes for submission in a PR, run Protobuild.exe --automated-build before you commit in order to run the tests and prepare the final Protobuild executable. Even when you submit a PR, we will still re-run this step to ensure integrity of the executable.

How to Contribute

To contribute to Protobuild, refer to the contributor documentation.

The developer chat is hosted on Gitter

Gitter

Providing Feedback / Obtaining Support

To provide feedback or get support about issues, please file a GitHub issue on this repository. Additional support options are available according to the support documentation.

License Information

Protobuild is licensed under the MIT license.

Copyright (c) 2015 Various Authors

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

Related Projects

  • Protobuild.Manager: A stand-alone graphical tool for creating and opening Protobuild modules
  • Protobuild.IDE.VisualStudio: A Visual Studio extension that provides support services for cross-platform projects in Visual Studio
  • Protobuild.IDE.MonoDevelop: A MonoDevelop / Xamarin Studio extension that provides support services for cross-platform projects in MonoDevelop and Xamarin Studio
  • Protobuild.Docs: The documentation for Protobuild, for the source files to the documentation, please see this repository

Community Code of Conduct

This project has adopted the code of conduct defined by the Contributor Covenant to clarify expected behavior in our community. For more information see the .NET Foundation Code of Conduct.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].