An example web application using Saturn, F#, and onion architecture
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.paket
src
tools/xunit
.gitignore
README.md
SaturnAppTemplate.sln
b-art.txt
build-art.txt
build-dotnet.cmd
build-dotnet.fsx
build-dotnet.sh
fsc.props
global.json
paket.dependencies
paket.lock

README.md

Saturn Example

See my blog for more details.

Saturn with CAS Single Sign-On Sample Application

The Saturn App Template is best developed with Visual Studio Code or Visual Studio 2017 (Community works).

More about Saturn

https://saturnframework.org/docs/

http://kcieslak.io/Reinventing-MVC-for-web-programming-with-F

This is for pure F# web applications and should be preferred over the original web app template.

You can target netstandard2.0, but in that case you wont be able to use the FSharp.Data SqlCommandProvider and some other F# type providers.

Here is a list of the possible target frameworks. https://docs.microsoft.com/en-us/dotnet/standard/frameworks

Features

  • Example CAS setup
  • Examples of an access restricted application using two routes
    • Logged In View
    • Default View
  • How to setup a config using FSharp.Configuration and YAML

How to get me running

  1. Clone me
  2. Copy config_design.yaml and rename it to config.yaml
  3. Install packages with .paket/paket.exe install
  4. Run the build and launch the app
    1. in bash sh build-dotnet.sh Run
    2. in cmd build-dotnet.cmd Run

Optional libraries

Instead of Chessie for error handling I recommend the builtin Result type or FsToolkit.ErrorHandling which provides more utilities

https://demystifyfp.gitbook.io/fstoolkit-errorhandling/

FsToolkit.ErrorHandling has been installed in Infrastructure and WebHost

Test Framework

Required

  • xUnit

  • FsUnit

Optional Recommendations

How to host development on IIS

By default this template will run as self-hosted using Kestrel, but you can host on IIS too.

  1. Add a site to IIS and point it to the WebHost folder
  2. Configure the bindings to whatever port you want to run it on. The template uses 8085.
  3. Configure the Application Pool to use No Managed Code
  4. Configure the web.config file
    1. Make sure processPath points to where the executable is stored when the project is built. This is template puts it here: .\bin\Debug\net461\Template.Saturn.WebHost.exe

You can also host on IIS as a published site

The above steps will get you there but instead of pointing to the WebHost folder, use Visual Studio or dotnet publish to create a published site and use that in IIS. You may need to copy over the web.config file manually. I don't know why.

I might be running on Azure

https://saturn-example.azurewebsites.net/

You can login with your Net ID.