/heroku-buildpack-mono

ASP.NET buildpack. Deploys app on of Mono with XSP and nginx.

Primary LanguageShell

Mono Heroku Buildpack

This is a Heroku buildpack for Mono that will run ASP.NET and Katana/OWIN applications.

It uses nginx as the web server and runs on Mono 4.0.1.

Changes from Friism's version

  • Downloads Mono packages from GitHub, not S3
  • Runs on Mono 4.0.1, not 3.10.0

Usage

Additional details and guides:

Example usage:

$ heroku create --buildpack http://github.com/yngndrw/heroku-buildpack-mono.git
$ git push heroku master

The buildpack will detect your app as ASP.NET if it has the file global.asax in the root or at one directory depth or as .NET if it has a .sln file.

TODO

  • Consider inserting environment variables and connectionstrings into Web.config
  • Web.Release.config
  • Figure out whether there's hope for EntityFramework (and reliance on System.Data.Entity and other)
  • More Mono/XSP versions and ability to select version, like Python buildpack
  • Visual Basic!
  • Store buildoutput in $CACHE_DIR and do incremental builds (also won't cause NuGet packages to be re-downloaded)
  • Less simplistic nginx setup, see nginx buildpack
  • Factor repeated code into functions like PHP buildpack
  • Remove original source code before slug is tarred up
  • Slim down Mono runtime to reduce slug size and build time
  • Avoid copying Mono runtime to build /app and ${BUILD_DIR} during build
  • Get bundling and minification to work (likely to be Win/Linux path issues)
  • Get default Visual Studio templates working (you just have to fix casing problems

Compiling Binaries