In the last few days I got involved in an interesting question – if you to have an internal conference with 250 presenters, multiple timeslots, live sessions, recordings, materials and more – and you need to create a website for it, what would you do?
One of the obvious choices is to write a custom app for it, has a database (document db or graph db or something similar NOSQL), a 2/3 tier architecture, etc. Or… if I’m anyway trying to understand the options around document generation, I could generate the website from some lousy excel sheets and upload to a CMS that would handle commenting and links and similar.
So I did the latter, using a little bit of XLSX parsing, use of good old Apache (N)Velocity (currently maintained by the Castle team), a little bit of window dressing and figuring out some stupid limitations around transposing arrays with double nested loops using the Velocity language, and:
Another day – another open source project from my team, this time a small nifty tool called “please”, akin something that already been mentioned in one of the ADRs (ADR003):
- We would depend on using an eng/Dependencies.props file instead of having the versions of Nuget files repeatedly entered into the csproj files - We would use automated tooling to achieve the maintenance of Dependencies.props file
So, in the end, not only these, but a bunch of other small functionality has been added to this swiss knife of a tool that you can just ask to do stuff, nicely 🙂
It can easily:
Consolidate nuget packages across a solution, or only a subset of them
Keep package versions in a central props file and maintain that file
Move and rename projects
Clean up in case you manually moved and renamed
Clean up <Compile Remove="..." /> items, with or without globbing
To find stray projects
To remove ‘junk’ from solution directory
To change the PATH variable (useful when working with dotnet tools)