Web app design principles

As en enterprise and solution architect, I rarely participate hands-on in development. But I work closely with the developers in my clients’ projects, so I need to maintain my programming and technology skills to unify project managers, business experts, and developers. Therefore, I’m continually developing a few useful web apps:

  • uml is a simple text-based UML editor based on the PlantUML rendering engine.
  • mon is a monitoring app then demonstrates my recommended implementation of observability.
  • sim is a Monte Carlo simulation app that helps everyone create really useful business cases easily.

My work adheres to the following design principles:

Low costs

To keep costs as low as possible, I use open-source cross-platform technologies that are widely used and continually improved are used. I have chosen the following technologies and tools:

  • C#
    This object-oriented programming language goes hand-in-hand with the .NET technology, and is supported by the free cross-platform development tools, Visual Studio Community and Visual Studio Code. However, I find both these tools difficult to use, so I’m subscribing to JetBrains Rider – luckily at a low cost.
  • JetBrains Rider
    This is my preferred development tool for programming in C#. While Microsoft’s tools are free, I find Rider more intuitive and supportive. Rider is comparable to Visual Studio with the commercial JetBrains add-on ReSharper, which costs the same as Rider.
  • .NET
    This technology includes ASP.NET Core, which in turn offers the Blazor framework for building interactive client-side web apps.
  • SQLite and MySQL
    SQLite is a simple and fast relational database ideal for development and small-scale production. MySQL is great for larger-scale production. Both are supported by the EF Core framework in .NET.
  • MudBlazor
    MudBlazor is the best open-source component library for enriching Blazor with Google Material inspired user interface components.
  • NuGet
    NuGet is a library of reusable components that can be added to the web apps. There are plenty of free open-source NET Core compatible packages to add. SQLite and MySQL connectors, encryption logic, modules that read and write Excel files and so forth.
  • Simply
    One prerequisite to building web apps that just doesn’t come free, is the server it runs on. There a several reasonably priced choices. Currently, I use my webhotel provider, Simply, which also host my website. In the past, I have used SmarterASP.NET, which is also reasonably priced. Technically, it’s the better choice, but I find it impractical to have to renew the subscription quarterly, and I’m not keen on committing to longer periods to lower the costs.