GithubHelp home page GithubHelp logo

kojo12228 / pmabolero Goto Github PK

View Code? Open in Web Editor NEW
2.0 2.0 0.0 360 KB

Toy website built using Bolero, F# and WASM

Home Page: https://pmaboleroserver.azurewebsites.net/

License: MIT License

F# 97.06% CSS 0.30% HTML 1.01% JavaScript 1.63%
wasm bolero

pmabolero's Introduction

PMA Bolero - WASM Web Application

Screenshot of homepage

Live version of the website

This is an toy web application for the management of projects. The website specification is based upon a coursework project for Cloud Application Development at the University of Southampton, originally build in Angular.

The aim of the development of this project was see the benefits and pitfalls of Bolero by using a project I understood well.

Build Project

You will need:

To run the application locally, run the command dotnet run -p src/PmaBolero.Server. Within Visual Studio Code (or an application that supports vscode tasks), the task run server runs the aforementioned command.

Lessons

MVU

Model-View-Update is productive and possibly my favourite code structure for building UIs. As I've often found with inherently functional ways of programming, MVU more closely aligns with my thought process for programming. MVU allowed me to spend more time thinking about what I wanted out of the website, and less about how to connect all the parts of the code to get it work.

The messaging system can become a bit convoluted, especially using the parent-child methodology I employed. I could see this quickly become difficult to use for a much large web application. In exchange, however, each part of the website could be built in near isolation.

F# and Bolero

F# and Bolero are promising ways of building web applications. Unlike with Angular development, most of the problems I encountered were spotted through the type system before running the server. I intentionally used templating rather than the more Elmish style of writing the UI in code to more closely match my experience with Angular. I am certain I will be using Bolero more in the future and for personal/small projects it will be my go to over Angular.

Azure

Deploying to Azure App Service and setting up CD using Azure Pipelines was surprisingly simple using Visual Studio 2019. The automated process for setting up Azure was the only aspect that required further configuration:

  • It only looked for .csproj projects.
  • It attempted to drop the release of the client rather than server.

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.