C# and becoming Trilingual
Anyway, I took part in my first demonstration to a client of a product, the product in this case being the close to finished version of the Umbraco website I mentioned in my last blog post.
Bugs, bugs everywhere.
I was surprised at how, despite my best efforts to try and break my own work, it only takes one person saying: "What happens if I do this?" and everything seemingly comes apart at the seams. To detail a few things; the navigation bar had an odd bug that would add random empty unordered sublists after certain pages, the CSS controls I added to prevent certain content elements from breaking the page didn't do as much prevention as I had hoped and the responsive page sizing wasn't quite as perfect as it could have been.
That said, if the presentation had gone perfectly and these errors hadn't been found, my first real published product would have been fraught with minor bugs, which I'm obviously pretty eager to prevent. So a bit too much pointing at a screen and saying: "Yes I'll fix that as soon as we're done." did have some positive effects.
As well as exposing bugs, I got some valuable one on one insight into how the customer wanted certain things to work, whether that was more CSS controls for him to use in controlling the content via Umbraco or a minor aesthetic tweak to how the header would display.
I'm confident that when the website is released he will be very happy with the final result, featuring the lovely clean look of Bootstrap and the capability to fit on any screen, big or small.
Sticking to the Program
The road map for my time at Antelle now has me firmly into learning C#, a universally used and extremely powerful language that is opening my eyes to the power that words in a file can apply to the real world. So far I've only dipped my toe in the proverbial pond of C# and it's been a blast so far.
I think Tony has been reading over my last blog post and saw that I what I said about my learning process and promptly handed me a task to solve. As I write this I've "finished" a small program that takes an XML file containing various queries to be passed to SQL Server and returns data that is then converted into a CSV format.
Making this program has taught me two important lessons at the very least:
Bigger isn't always better, at various times throughout making my first actually useful C# Tool I tried again and again to over-encapsulate my work, most of my source control comments at the mid point of the Tool's history tend to be:
"Added working classes for XYZ"
Shortly followed by:
"Working classes for XYZ removed, pointless"
Through learning resources it was emphasised again and again how important it was to try and use classes to make everything organised, to encapsulate things as it is a good practice for C# developers.
While this holds true for much, much larger programs than my own. It only ended up confusing me by making a Class with very little too it and then referencing three class in a row in my main program, with something this small it really is not necessary to over-encapsulate.
The other thing I learned is that if I'm looking to add something to my program, odds are that someone far more talented than me (for now) has already made a framework for it. In this case it was logging errors to the Event Log. I tried to do it on my own for a brief period, resulting in some humorously mind boggling issues with eternal errors refusing to ever stop being passed on.
So, I switched to a framework at the behest of Tony, and no surprises with what happened next, my work was done far, far quicker.
Thanks for Reading
Come back for more ramblings soon!