Choosing framework to publish a database (mid 2016)

Submitted by admin on

Background and requirements

  • "Publish" a new database to the web
  • Allow users to create and edit records, do reporting. Typical business database application.
  • Language choice:
    • PHP - experienced but don't like it. Nice that it's interpreted.
    • C, C++ experience but not suitable for web work
    • Python - some experience, like it, interpreted.
    • Visual basic - experienced, don't like it much
    • C# - don't know but seems ok
    • Ruby - don't know, not interested
    • Javascript and Node.js - some limited JS expereince
  • So that leaves: Python, PHP or some Microsoft (VB, C#)
  • Open source or commerical okay. Open source preferred.
  • Framework experience:
    • Struts - okay, not great
    • Drupal - experienced, great for some things, can be messy
    • Wordpress - some experience - seems better for non-coded sites
    • ASP and Microsoft - some experience; find it slow to get going, but probably just inexpereince
  • So: Drupal, or ASP or something new
    • So: Dri

Options

PHP Options

  • Drupal
  • LaRavel for code-based solution - would rather Python for code.

Python optoins

  • Django (with maybe a CMS on top?)

Microsoft

  • ASP.NET

Evalulating

Drupal:

SInce we have highly structured data (ie. a relational database), mapping this to the framework is the use-case. Drupal can do this with Nodes/Relation/CCK and the like. However, it's not elegant. In particular, the data is not maintained in a typical RDMS format (ie tables, views, etc), but rather a variety of tables (views, cck, etc). This makes debugging, custom functions and using other tools (eg. to access the database) difficult. However, once setup you get lots of "free extras" from views (suching, autosorts, grids, etc).

Final word: would be possible; prefer to try the others first.

Django:

Seems promising - nice data model, quick (very) to install, good docs, good first tutorial, auto form generation from models, etc.

However, will I have to build everything from scratch? Looking at django paackages, probably not. I'll try and install some.

Tried an Azure Django stack and was really easy. Need to work out a good workflow for editting/running.

Let's install a photo gallery:

  1. - Easy to start with photologue, but failed! ("TemplateDoesNotExist at /photologue/photo/sasdfasdf/")
  2. This is probably my newbie error, but can't fix it in 1 hour.
  3. Ok, got it vaguely working - I don't understand DJango enough
  4. Not a great experience - try another...
  5.  

ASP.NET MVC

Tested with Community Visual Studio and ... good:

  1. https://docs.asp.net/en/latest/tutorials/first-mvc-app/adding-controller...
  2. Install VS Community and .NET Core (with "VS Tooling")

 

MVC is very well defined, tutorial is good, scaffolding is good. Actually appears to be similiar to Django. Benefits are easier debugging with step-through, and easier hosting and Visual Studio. Cons are heavy-weight, and (to be confirmed) less community and good packages available. Apparently less elegant and productive compared to Django and this was my limited experience too.

Very close to Django. It will probably come down to module/package availability:

  1.  Searched for ASP.NET MVC Core Phot.\o Gallery and found NuGet is the package manager. Command-line interface is okay. Tried DotNetGallery but it is not for the new Core.
  2. Tried install-package nugetgallery.core (pre) - nope, this is not for photos
  3. Can't find a simple-to-install photo gallery.
  4. Try a tutorial to reate one: https://chsakell.com/2016/01/01/cross-platform-single-page-applications-...
    1. Lots of install (but probably usefulu and one-off). Lots of warnings...
    2. Fuck - installs billions of packages, hmmm...
    3. Taking ages to do the package dependancies
    4. Huge complicated tutorial to get a simple photo gallery... bailing out.
  5. Try http://dgallery.aspphotogallery.net/ : no, paid
  6. Try tutorial http://www.c-sharpcorner.com/UploadFile/b696c4/creating-image-gallery-in... but again, it's coding from scratch
  7. Surely there is a pre-written one???
  8. Nope, it's all code-it-yourself, although there seems to be good controls / patterns to use.
  9. This is not great - why write a boring photo gallery? Maybe I'm missing something or have the wrong approach?

 

  1. Ok, let's try a simple CMS.
  2. Let's try http://www.orchardproject.net/
  3. Web Installer ok.
  4. Installed well and easy to create a simple blob.
  5. Try to add a ImageGallery... installed but needs jQuery.... probably okay
  6. Generally looks good. Similiar to Drupal interface. Neater.
  7. Finally, can I import this into visual studio? Can I extend it to create a database-driven model still? Or am I locked to this cms now?