<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Marco González L.</title>
    <description>The latest articles on DEV Community by Marco González L. (@noquierouser).</description>
    <link>https://dev.to/noquierouser</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F22524%2Fed67b2a8-a35f-4ec7-b3c0-31d7590f18db.jpg</url>
      <title>DEV Community: Marco González L.</title>
      <link>https://dev.to/noquierouser</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/noquierouser"/>
    <language>en</language>
    <item>
      <title>Dipping into something done properly</title>
      <dc:creator>Marco González L.</dc:creator>
      <pubDate>Mon, 23 Apr 2018 08:00:36 +0000</pubDate>
      <link>https://dev.to/noquierouser/dipping-into-something-done-properly-1c23</link>
      <guid>https://dev.to/noquierouser/dipping-into-something-done-properly-1c23</guid>
      <description>&lt;p&gt;A few weeks ago I made a decision that I kinda do regularly: dip my feet into something new just for the sake of it. Actually it's not &lt;em&gt;that regularly&lt;/em&gt; and it definitely isn't &lt;em&gt;just for the sake of it&lt;/em&gt;, nevertheless I did it, I liked it and I want to keep on going. Anyway, isn't curiosity the fuel of every programmer ever?&lt;/p&gt;

&lt;h2&gt;
  
  
  Previously on &lt;em&gt;All my circuits&lt;/em&gt;…
&lt;/h2&gt;

&lt;p&gt;I have an IT technical degree —or something like that, career naming is weird among countries— where I was taught mostly old technologies, except for one thing that never gets old: &lt;strong&gt;how to learn&lt;/strong&gt;. That's how I got into many programming languages during my studies until I graduated, and then… well, getting jobs isn't that easy, especially when you're actively avoiding to work on-site on the only —massively bloated and crowded— big city that your country has. But I digress.&lt;/p&gt;

&lt;p&gt;During my career I had a stint with C# and ASP.NET as an assignment that lasted a couple of weeks, nothing particularly memorable or spectacular, and I kinda regret that it was that way because I was somehow expecting to meet with those techonologies, C# in particular. Since I was a kid I hoped that one day I would make a Windows application, no matter how small and irrelevant it might be, so it was quite underwhelming to have had such an unremarkable assignment, which I aced by the way.&lt;/p&gt;

&lt;p&gt;However, and years after that situation, I decided to try again and rekindle my relationship with C# and Windows applications development. So far I've developed mostly Wordpress-based web applications, so I had to prepare myself for &lt;em&gt;an unforgettable luncheon of steamed docs…&lt;/em&gt; thing that happened a couple of weeks ago when I decided to dip my feet again into C# and try to accomplish something more than &lt;em&gt;just a Hello World&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Combat Scenario
&lt;/h2&gt;

&lt;p&gt;Briefly: I'm working on a non-profit community TV network on my hometown as chief technician and IT support. My tasks are many, as we're a really small team that tries to accomplish pretty much every imaginable task that a TV network has. Among those many tasks, &lt;strong&gt;daily programming&lt;/strong&gt; is one of the most important. Every single day at 17:45 the channel's programming begins, with different shows beginning at their specific times during the programming run. Basically, &lt;strong&gt;a playlist&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Now, as our resources are scarce and we have little to no specialized equipment for this, the programming runs from a PC with &lt;a href="https://www.amd.com/en-us/products/graphics/desktop/5000/5450#"&gt;the beefiest video card you could acquire 6 years ago&lt;/a&gt;, using &lt;a href="https://www.vmix.com/"&gt;vMix&lt;/a&gt; as our playout and mixing software. So far, so good.&lt;/p&gt;

&lt;p&gt;But I had a major inconvenience: when I was making those playlists I had no clue about when were those shows being played nor when they ended. All I knew was that the playlist started at 17:45 and that shows lasted between 12 seconds to 2 and a half hours, but I had no way to know if a show was coming out at 18:00 or 19:30, or ending at 20:30 or 20:34. Something had to be done.&lt;/p&gt;

&lt;p&gt;In the beginning I was using &lt;a href="http://www.miraclesalad.com/webtools/timesheet.php"&gt;an online time calculator&lt;/a&gt; which was kind of effective for the time being, but my mind was split between knowing which show was next and how much time I had to fill until the next show airs. It was a slow and cumbersome process which I had no way to explain to someone else.&lt;/p&gt;

&lt;p&gt;But, programmer as I am, I knew I could fix this issue with a little application…&lt;/p&gt;

&lt;h2&gt;
  
  
  A c#ild was born
&lt;/h2&gt;

&lt;p&gt;I knew I couldn't fix this with &lt;em&gt;yet another Wordpress plugin&lt;/em&gt;, so I thought that finally the time has come to revisit C# and its powers to be harnessed and vanquish this problem once and for all. So there I went to chew some docs, regain some confidence with a simple Hello World, and come with the Holy Grail that will save us all.&lt;/p&gt;

&lt;p&gt;But facing myself with a programming language that has its own ways of doing things, it was a steep learning curve to overcome. Mostly because, as a Wordpress developer, I never had to deal with classes so heavily before. Or strong typing, because C# and PHP are hugely different monsters. Even XAML is enormously different when compared to HTML and CSS… so there I was, looking at this giant monster from below, googling pretty much every thought that crossed my mind with IntelliSense as my trusted copilot.&lt;/p&gt;

&lt;p&gt;Eventually, after hacking my way through Big Shell, alert phases were called out and I was walking out of Arsenal Gear, victorious: &lt;a href="https://github.com/noquierouser/vMixListMaker"&gt;vMixListMaker was born&lt;/a&gt;. Now, 3 weeks into production, my life as a programmer and also as a programmer is way easier than before.&lt;/p&gt;

&lt;h2&gt;
  
  
  The part where the main title makes sense
&lt;/h2&gt;

&lt;p&gt;As it's been told here on dev.to many times before, &lt;em&gt;working code is better than no code&lt;/em&gt;. But now that code is working, well, it's time to improve it. My code is &lt;em&gt;hacky&lt;/em&gt;, borderline &lt;em&gt;garbage&lt;/em&gt;, but it needs improvement, mostly because I want to add features to what now seems like a &lt;em&gt;small and irrelevant&lt;/em&gt; Windows application. In other words, &lt;strong&gt;I'm asking for help&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;While developing this little app I saw many articles about MVVM (Model-View-ViewModel) and its wonders, about Test Driven Development being the coolest way to develop nowadays, and that many people still use Windows 7 on their vMix rigs and won't be able to run the app because it's a Universal Windows Application.&lt;/p&gt;

&lt;p&gt;So I ask for help, not for pull requests or anything, &lt;strong&gt;but to point me in the right direction&lt;/strong&gt;. So far I've learned a couple of things about how to program in C# and UWP, but I want to learn more about how to implement a MVVM solution, about how to develop using TDD, about how to decouple some logic from my app and make it available to two different versions of the same tool, so I can develop a Windows 7 WPF app alongside the current UWP version.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/noquierouser/vMixListMaker"&gt;Check out the code in my GitHub repo&lt;/a&gt;. I'm open to suggestions about how to improve my code, best practices and libraries. Everything is welcome.&lt;/p&gt;

&lt;p&gt;I've seen many theorical articles, but now I need to see examples, exercises, walkthroughs, documentation. I want to learn to develop properly in C#, best practices and recommendations. Because &lt;em&gt;once you get to code, you've got to code well&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Thank you so much in advance&lt;/strong&gt;. I really, deeply appreciate it.&lt;/p&gt;




&lt;p&gt;Cover photo by &lt;a href="https://unsplash.com/photos/AaEQmoufHLk?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Markus Spiske&lt;/a&gt; on &lt;a href="https://unsplash.com/search/photos/programming?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Unsplash&lt;/a&gt;&lt;/p&gt;

</description>
      <category>csharp</category>
      <category>uwp</category>
    </item>
  </channel>
</rss>
