rubberduck-vba / RubberduckWeb

Project Website for the Rubberduck VBA Editor Add-In
19 stars 12 forks source link

Website revamp #58

Closed Hosch250 closed 4 years ago

Hosch250 commented 5 years ago
  1. Works on Mobile
  2. GitHub webhook to get the latest release version (and maybe trigger updating the DLLs for the web--we'll see)
  3. Cleaner way to update content 3.1. Generate inspection pages from XML content 3.2. Other page content (.md?)
  4. New look
  5. Still possible to run RD features online (indenter, inspections, etc.)
  6. Host docs as .md files in web repo and display as content on website

Discussion: Layout ideas (generic layout and per-page) Features to support online

EBrown8534 commented 5 years ago

I'd recommend moving to a full-fledged Bootstrap or Foundation setup for 1 and 4.

Hosch250 commented 5 years ago

I'm pretty familiar with Bootstrap, so that was my plan.

EBrown8534 commented 5 years ago

The groundwork is already there (CSS / JS / Favicons) but that was 3.3 IIRC, might be worth updating to V4, and redoing the layout to support.

Edit:

Yep, 3.3.6: https://github.com/rubberduck-vba/RubberduckWeb/blob/f28612b9afc6859de5f63bb01231e8ff0c778b36/RubberduckWeb/RubberduckWeb/Content/bootstrap.css#L2

EBrown8534 commented 5 years ago

For point 2:

We did have a Version endpoint:

https://github.com/rubberduck-vba/RubberduckWeb/blob/f28612b9afc6859de5f63bb01231e8ff0c778b36/RubberduckWeb/RubberduckWeb/Controllers/BuildController.cs#L24

Would probably be trivial to use that.

IIRC @retailcoder was manually updating the DLL's, then publishing the site. So the "release" version was derived from the website DLL's, which meant RubberDuck could support an auto-update setup. (Not sure where that ended up.)

EBrown8534 commented 5 years ago

You're more familiar with inspections and indenter than I ever was, so you're probably quite well suited for 5, because I had to get a lot of help from @retailcoder again to get those working right.

Hosch250 commented 5 years ago

Yes. The idea is to keep this and make the update automatic for the release version. I'm less certain about the actual update (we'll be hosting it on Azure), but I think it can be done.

Hosch250 commented 5 years ago

I wonder if I can do this with .NET Core. They have a built-in DI system. The difficulty would be whether it played nice with the Rubberduck DLLs.

EBrown8534 commented 5 years ago

If Rubberduck DLL's are built for .NET Framework, then Core won't work. If you can re-target them to .NET Standard, then Core will work fine. (We've experimented with this a lot at work.)

Hosch250 commented 5 years ago

Awesome. That's not really an option ATM, so I'll do the website on .NET Standard or .NET Framework, whichever ASP.NET MVC supports.

EBrown8534 commented 5 years ago

The website will have to be .NET Framework, because Rubberduck is Framework. Standard isn't really a runtime, it's an SDK target, so if you target Standard you cannot use anything from Framework, even if it runs on Framework. (Does that make sense?) Standard doesn't have appropriate AppDomain stuff to do it dynamically, either.

Hosch250 commented 5 years ago

Yes, that makes sense.

retailcoder commented 4 years ago

Closing this - most content is now retrieved from a SQL Server database with Dapper, and updated from a scheduled task (a .NET Core console app!) running on my own server (i.e. updating the data is no longer the website's job).

Controllers, routing, views have been cleaned up - the only thing missing is a mobile-friendly stylesheet.