<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>2022-07 on Funky Si's Blog (Dev)</title><link>https://blog-dev.funkysi1701.com/2022/07/</link><description>Recent content in 2022-07 on Funky Si's Blog (Dev)</description><generator>Hugo -- gohugo.io</generator><language>en-gb</language><managingEditor>funkysi1701@gmail.com (Simon Foster)</managingEditor><webMaster>funkysi1701@gmail.com (Simon Foster)</webMaster><lastBuildDate>Mon, 25 Jul 2022 18:00:45 +0000</lastBuildDate><atom:link href="https://blog-dev.funkysi1701.com/2022/07/index.xml" rel="self" type="application/rss+xml"/><item><title>A brief history of Source Control</title><link>https://blog-dev.funkysi1701.com/posts/2022/a-brief-history-of-source-control/</link><author>funkysi1701@gmail.com (funkysi1701)</author><pubDate>Mon, 25 Jul 2022 18:00:45 +0000</pubDate><guid>https://blog-dev.funkysi1701.com/posts/2022/a-brief-history-of-source-control/</guid><category term="SourceControl">SourceControl</category><category term="History">History</category><category term="Bitbucket">Bitbucket</category><category term="AzureDevOps">AzureDevOps</category><category term="GitHub">GitHub</category><category term="Git">Git</category><category term="Subversion">Subversion</category><media:content medium="image" type="image/jpeg" url="https://blog-dev.funkysi1701.com/images/svn.jpg"/><description>&lt;p&gt;I have been thinking back to when I started using source control and some of the different tools I have used over the years.&lt;/p&gt;
&lt;p&gt;When I was learning to code it was some time after I had learned the basics that I learnt about source control. Back when I started writing webpages I would have a folder containing all my html, css, images etc and I would FTP these up to my web server. If I made a change to a file I would reupload the file I changed, or reupload all my files to make sure I didn&amp;rsquo;t miss anything.&lt;/p&gt;
&lt;p&gt;It was sometime later that I learnt about source control. I can&amp;rsquo;t remember exactly when, but I suspect it was after I had used it at work. (between 2006 and 2010 as a best guess, my oldest repo says it is 12 years old!)&lt;/p&gt;
&lt;p&gt;Source control (or version control) is the practice of tracking and managing changes to code. These tools provide a running history of code development and help to resolve conflicts when merging.&lt;/p&gt;
&lt;img src="https://blog-dev.funkysi1701.com/images/svn.jpg" width="400px" style="float: left; margin-right: 1rem; margin-bottom: 0.5rem;" alt="Apache Subversion (SVN) logo" /&gt;
&lt;p&gt;The first source control tool I remember using was subversion. The windows client for this was called &lt;a href="https://tortoisesvn.net/downloads.html" target="_blank" rel="noopener noreferrer"&gt;TortoiseSVN&lt;/a&gt;
and is still available today. I know this as my current job has some legacy code which still uses it.&lt;/p&gt;
&lt;p&gt;Back then, to use Subversion you needed to set up a linux server with subversion on it, and you would then connect over your LAN to it from your development machine. This was before the days of github, where everything was hosted on a SaaS service somewhere. I do not remember the process of getting everything setup, but with it being linux, there was no doubt a load of config files to edit, and different dependencies to install.&lt;/p&gt;
&lt;p&gt;Over the years I installed various web interfaces to allow &amp;ldquo;&lt;em&gt;browsing&lt;/em&gt;&amp;rdquo; of source code, some even had bug trackers built in. The ones I can remember are &lt;a href="https://trac.edgewall.org/" target="_blank" rel="noopener noreferrer"&gt;Trac&lt;/a&gt;
and &lt;a href="https://www.redmine.org/" target="_blank" rel="noopener noreferrer"&gt;Redmine&lt;/a&gt;
. Both look to still be available and you can probably install them if you want to remember way back when.&lt;/p&gt;
&lt;img src="https://blog-dev.funkysi1701.com/images/2022/github-octocat.png" width="400px" style="float: right; margin-left: 1rem; margin-bottom: 0.5rem;" alt="GitHub Octocat mascot" /&gt;
&lt;p&gt;The first hosted source control tool I remember using was &lt;a href="https://bitbucket.org/product/" target="_blank" rel="noopener noreferrer"&gt;bitbucket&lt;/a&gt;
and this as far as I can tell has only ever supported git. So I am guessing I imported my subversion repos into git ones at this point. The reason for bitbucket was chosen was it allowed private repositories for free, at that point github was probably available but only provided public repositories.&lt;/p&gt;
&lt;p&gt;After bitbucket the git repos where moved to Azure DevOps or Visual Studio Team Services as it was called back then. This move was mainly to take advantage of the builds and releases feature and to decommission some aging build servers.&lt;/p&gt;
&lt;img src="https://blog-dev.funkysi1701.com/images/azuredevops.png" width="400px" style="float: left; margin-right: 1rem; margin-bottom: 0.5rem;" alt="Azure DevOps logo" /&gt;
&lt;p&gt;This brings me to today where I have a mix of public repos on github and private repos on Azure DevOps. For building my code I use a mix of github actions and Azure Pipelines. As Microsoft own both services now, there is a fair amount of crossover between the two services, however it is far from certain which service is the future.&lt;/p&gt;
&lt;p&gt;Wow, my code has moved around a lot over the years. From no source control, to subversion, to git, to Bitbucket to Azure DevOps!&lt;/p&gt;</description></item><item><title>Visual Studio Keyboard Shortcuts</title><link>https://blog-dev.funkysi1701.com/posts/2022/keyboard-shortcuts/</link><author>funkysi1701@gmail.com (funkysi1701)</author><pubDate>Tue, 05 Jul 2022 21:00:45 +0000</pubDate><guid>https://blog-dev.funkysi1701.com/posts/2022/keyboard-shortcuts/</guid><category term="VisualStudio">VisualStudio</category><category term="shortcuts">shortcuts</category><media:content medium="image" type="image/png" url="https://blog-dev.funkysi1701.com/images/shortcuts.png"/><description>&lt;p&gt;I use keyboard shortcuts all the time, mostly without thinking, but they can be quite a time saver especially for frequently used tasks.&lt;/p&gt;
&lt;p&gt;I recently came across this list of Visual Studio ones. &lt;a href="https://learn.microsoft.com/en-us/visualstudio/ide/default-keyboard-shortcuts-in-visual-studio?view=vs-2022" target="_blank" rel="noopener noreferrer"&gt;https://learn.microsoft.com/en-us/visualstudio/ide/default-keyboard-shortcuts-in-visual-studio?view=vs-2022&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;I was going to do a top ten, but not really sure how you rank keyboard shortcuts, so instead I will mention some of my favourites.&lt;/p&gt;
&lt;h2 id="build-solution"&gt;Build solution&lt;a class="anchor ms-1" href="#build-solution" aria-label="Permalink: Build solution"&gt;&lt;i class="fas fa-link" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;If you are using Visual Studio you need to build your code. If you are anything like me, after even the smallest change I want to see what affect that has had so a rebuild is often needed.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ctrl + Shift + B / Build Solution&lt;/li&gt;
&lt;li&gt;F5 / Run&lt;/li&gt;
&lt;li&gt;Ctrl + F5 / Run with no debugging&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="cut-copy-paste-undo-redo"&gt;Cut, Copy, Paste, Undo, Redo&lt;a class="anchor ms-1" href="#cut-copy-paste-undo-redo" aria-label="Permalink: Cut, Copy, Paste, Undo, Redo"&gt;&lt;i class="fas fa-link" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Programming is sometimes refered to as copying and pasting from &lt;a href="https://stackoverflow.com/" target="_blank" rel="noopener noreferrer"&gt;StackOverflow&lt;/a&gt;
, but they are always times you want to copy and paste stuff so the standard keyboard shortcuts are all here.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ctrl + C / Copy&lt;/li&gt;
&lt;li&gt;Ctrl + X / Cut&lt;/li&gt;
&lt;li&gt;Ctrl + V / Paste&lt;/li&gt;
&lt;li&gt;Ctrl + Z / Undo&lt;/li&gt;
&lt;li&gt;Ctrl + Y / Redo (or Undo your Undo)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="comments-in-your-code"&gt;Comments in your code&lt;a class="anchor ms-1" href="#comments-in-your-code" aria-label="Permalink: Comments in your code"&gt;&lt;i class="fas fa-link" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Often we like to temporarily comment out a line of code to see what affect it has.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ctrl + K, Ctrl + C / Comment selection&lt;/li&gt;
&lt;li&gt;Ctrl + K, Ctrl + U /Uncomment selection&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="using-statements"&gt;Using statements&lt;a class="anchor ms-1" href="#using-statements" aria-label="Permalink: Using statements"&gt;&lt;i class="fas fa-link" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;I like to keep my using statements tidy, and not clutered up with ones that aren&amp;rsquo;t used anymore.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ctrl + R, Ctrl + G / Remove and Sort Usings&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="go-to-implementation"&gt;Go to Implementation&lt;a class="anchor ms-1" href="#go-to-implementation" aria-label="Permalink: Go to Implementation"&gt;&lt;i class="fas fa-link" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;I like to move quickly between methods that a class is calling to find out what is happening so the go to implementation and go to definition shortcuts are very useful. I tend to use the right click option more than the sortcut, but I would save myself a heap of time if I learnt these shortcuts.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;F12 / Go to Definition&lt;/li&gt;
&lt;li&gt;Alt + F12 / Peek Definition&lt;/li&gt;
&lt;li&gt;Ctrl + F12 / Go to Implementation&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="find-file-in-solution-explorer"&gt;Find file in Solution Explorer&lt;a class="anchor ms-1" href="#find-file-in-solution-explorer" aria-label="Permalink: Find file in Solution Explorer"&gt;&lt;i class="fas fa-link" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;You are editing a file and you have no idea what folder it is in the Solution Explorer. There is a shortcut to find out where you are.&lt;/p&gt;
&lt;p&gt;Ctrl + [, S / Select Active File in Solution Explorer&lt;/p&gt;
&lt;h2 id="search"&gt;Search&lt;a class="anchor ms-1" href="#search" aria-label="Permalink: Search"&gt;&lt;i class="fas fa-link" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Finding references or a certain string is a common activity&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ctrl + F / Find in current file&lt;/li&gt;
&lt;li&gt;Ctrl + H / Replace&lt;/li&gt;
&lt;li&gt;Ctrl + Shift + F / Find in all files&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="visual-studio-tries-to-be-helpful"&gt;Visual Studio tries to be helpful&lt;a class="anchor ms-1" href="#visual-studio-tries-to-be-helpful" aria-label="Permalink: Visual Studio tries to be helpful"&gt;&lt;i class="fas fa-link" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Often Visual Studio will try and be helpful with a lightbulb or similar icon, instead of clicking you can press this shortcut to&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ctrl + . / Show Visual Studio suggestion&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="learn-some-more"&gt;Learn some more&lt;a class="anchor ms-1" href="#learn-some-more" aria-label="Permalink: Learn some more"&gt;&lt;i class="fas fa-link" aria-hidden="true"&gt;&lt;/i&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;As I said before keyboard shortcuts are great time savers. Go check out the complete list and share with me the ones you found most useful.&lt;/p&gt;</description></item></channel></rss>