<commit_before># Mono Heroku Buildpack

This is a [Heroku buildpack](http://devcenter.heroku.com/articles/buildpack) for Mono that will run ASP.NET applications (and other frameworks too).

It serves files using [XSP](http://www.mono-project.com/ASP.NET#ASP.NET_hosting_with_XSP).

## Usage

Example usage:

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

The buildpack will detect your app as Mono if it has the file `global.asax` in the root or at one directory depth.

## TODO

* ~~Store buildoutput in $CACHE_DIR and do incremental builds (also won't cause NuGet packages to be re-downloaded)~~
* Consider inserting environment variables and connectionstrings into Web.config
* 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
* Web.Release.config
* Get bundling and minification to work (likely to be Win/Linux path issues)
* Figure out whether there's hope for EntityFramework (and reliance on `System.Data.Entity` and other)
* Get default Visual Studio templates working
* More Mono/XSP versions and ability to select version
* Visual Basic!

## Pre-compiling Binaries

Use Anvil and buildpack-self<commit_msg>add link to blog post<commit_after># Mono Heroku Buildpack

This is a [Heroku buildpack](http://devcenter.heroku.com/articles/buildpack) for Mono that will run ASP.NET applications (and other frameworks too).

It serves files using [XSP](http://www.mono-project.com/ASP.NET#ASP.NET_hosting_with_XSP).

## Usage

Please see [this blog post](http://friism.com/running-net-on-heroku) for additional details.

Example usage:

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

The buildpack will detect your app as Mono if it has the file `global.asax` in the root or at one directory depth.

## TODO

* ~~Store buildoutput in $CACHE_DIR and do incremental builds (also won't cause NuGet packages to be re-downloaded)~~
* Consider inserting environment variables and connectionstrings into Web.config
* 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
* Web.Release.config
* Get bundling and minification to work (likely to be Win/Linux path issues)
* Figure out whether there's hope for EntityFramework (and reliance on `System.Data.Entity` and other)
* Get default Visual Studio templates working
* More Mono/XSP versions and ability to select version
* Visual Basic!

## Pre-compiling Binaries

Use Anvil and buildpack-self
{'fraction_non_alphanumeric': 0.07700729927007299, 'fraction_numerical': 0.0, 'mean_word_length': 4.571138211382114, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4680334', 'n_tokens_mistral': 785, 'n_tokens_neox': 754, 'n_words': 335}