What development environment have you used? I go way back and got started programming with dBase III and Clipper. Our development environment of choice? Why Notepad.exe of course. It was cool. You could copy and paste "stuff". You could save it to your MASSIVE 120MB hard drive and you could... well, you could OPEN it again. Cool eh? But that was nearly 25 years ago. You would think things have changed. I moved from Notepad to VB 3.0 which was a "the heavens opening up and the angels singing" sort of experience.
Over the next 24 years or so it has continued. VB3 to VB5 (did anybody ever use VB4?) to Visual Studio and .NET to C# and XAML, all along the way Visual Studio has constantly gone through makeovers, enhancements and improvements. It seems, though, in recent years those improvements have been seemingly transparent in that they just make life easier and sometimes you aren't even sure why.
I wanted to write about the progression of productivity enhancements that especially have helped memory challenged developers like myself. Part of the great thing about the .NET framework is you can do SO MANY THINGS. The big trouble I have with the .NET framework is that it's almost impossible to know what all those things are. Now, I started before the Internet really existed so our first way to remember all that stuff was to have bookshelves filled with all the reference material. Not terribly productive and difficult to stay current.
Hunt and SearchAlong came the internet and eventually sites like sites like MSDN where you had all sorts of information and, most importantly, including MSDN community forums.. Finding bits of code to help you write "the next great piece of software" could be tedious but you usually could find somebody who had faced the same problem and somebody else who had offered a solution. In the hunt, quite often you had to ask your self "Do I search using this engine or that one?" or "is this answer (or question) really what I was looking for?". There were solutions out there but they were hard to find. Once you did find a solution that worked for you, you had to cut and paste it into your code and then you had to do lots of formatting because sometimes you got HTML buried in the code pieces or line numbers or whatever the author had stuck in there. It was better than books but just barely. Sometimes the author was clever and included a screen cap of the code (so it would look pretty) and you had to transpose it by hand into your code because you can't select text in an image right?
SNIP SNIPIn Visual Studio 2005, Microsoft introduced the concept of code snippets. This was a wonderful innovation for those of us who can never quite remember the syntax for something or, in my case, when I was learning C# after working in VB for so long, remembering the for/next syntax format in C#. Lets not forget those pesky semicolons either. But, the point was that now you had a way to do repetitive coding quickly, easily and accurately. Microsoft published the method for creating snippets so that not only could you use all the ones included by default but you or others could create snippets of things you use over and over again. This kept us developers happy... for a while. However more and more we returned to the Hunt and Search because the quantity of stuff out there kept growing. Code that wasn't in snippets. Code that you needed, maybe, just once so nobody could be bothered to create and distribute a snippet. So back to the Hunt Search we went until...
Bing! and your Productivity ImprovesThis last summer Microsoft Research release what I consider to be one of the single biggest improvements to developer productivity ever created. Microsoft's Bing Developer Assistant for Visual Studio which is a combination of two other Visual extensions (Sample Browser and Bing Code Search). The fun of Hunt and Search but embedded right in Visual Studio and with the code examples already formatted and ready for use as code snippets. Awesome. I can't cover everything it does here and now but have a look at this great Channel 9 video showing off the features.
You are creating some masterpiece and you have to put in some code to do something amazing and for some reason your brain just can't call up the information. No problem, Visual Studio's IntelliSense now gives it all to you without ever having to leave the IDE. As we all know, as soon as you leave the IDE to open a browser, the chances of you being distracted by shiny things goes up. You just have to pause to watch that cat video or whatever. Now, there is no need (although you can still watch those videos on your Windows Phone right?).
An example I like is a simple one. In Universal Apps popping up a message box is just a bit different than in Windows Phone. I can never remember the exact syntax, so I just create the object and IntelliSense does the rest. You can see below that IntelliSense and Bing Developer Assist search millions of code snippets and found the one I might be looking for. In this case it found a snippet of exactly what I was looking for on codeproject. I could just as easily hit the Search More button and gotten a full page of snippets from multiple source I could browse through.
The three major big features with Bing Developer Assist are:
- New Visual Studio IntelliSense experience to find code samples for API
- I live and die by IntelliSense and this just expands it so much you want to do a Snoopy dance (but I won't)
- Sample Browser one-stop shop
- All right inside the IDE with handy copy and paste all built in.
- Offline search
- This one works even if you are not connected to the internet. It uses all the samples you have previously downloaded or MSDN. Very handy when in those tricky places.