"You must remember this, A kiss is just a kiss, a sigh is just a sigh. The fundamental things apply. As time goes by..."
Fundamental to TechNet are the contributors.
As time goes by, their contributions become enriched and read by generations to come.
They will always be remembered, and potentially for a very long time!
As we draw to an end of January submissions for TechNet Guru, let's remind ourselves of some of the amazing [Windows development related] gold medal winners of 2013.
Over a series of blogs I will highlight some of the Gold medal winners in the categories I help to judge, I'll list some of the comments and some further analysis - or just plain gushing!
There's a lot of winners to cover, and I want to give each some time and don't want to lose you, so I'll break it into chunks, starting with the first three months of May, June and July.
|Visual Basic Technical Guru - May 2013|
|Reed Kimble||How to Create Video Games in VB.Net (Windows Forms)||
This sensational article shines as an example of how to entice the next generation of developers into the world of game design.
Articles like this remind me of when I was just 14 (1984) and the hours I'd spend copying in literally many full pages worth of 0s & 1s (binary) of a complete 3D maze game into my Sinclair ZX Spectrum, from magazines like Crash to make my first computer games. The pain. The pleasure! How times change. Here is a great '84 interview with Sinclair, discussing their newest technologies. Some things never change!
|Visual C# Technical Guru - May 2013|
|Sachin||Spelling Check in Windows Store App||
This was a great example of exactly the kind of thing TechNet readers love to read, and Microsoft love to support.
This article provides a great example and downloadable project for using the ISpellCheckerFactory and ISpellChecker interfaces. The factory is for determining which language to choose and instantiating the appropriate spell checker. The article itself also shows quite a nice example of how to create wrappers over Win32 libraries and APIs.
To learn more about the Spell Checker API, start here.
|Windows Phone Technical Guru - May 2013|
|isenthil||Retrieving the Screen Resolution for Windows Phone 8 Emulator||
Senthil was the only WP entrant in the first month's competition, which was not a full month anyway. However, he still won gold, for this very short entry. The reason is because this is an example of how simple your contribution can be. If it adds value, saves someone time, answers someone's need, it's a TechNet "most wanted". Even this small article has been altered 13 times since conception. Note the comments, he even made it to the front page of TechNet Wiki, as well as a featured blog!
|Visual Basic Technical Guru - June 2013|
|Reed Kimble||How to Communicate with a Microcontroller or Other Serial Device in VB.Net||Richard Mueller: "A well written article with great information and a detailed code example. The explanation should allow someone to adapt this for many applications."
MR: "Well written and very descriptive."
Anthony D. Green: "This article has the most interesting topic."
SB: "I like the article - I've seen many issues in the past with serial communication and its always a bit of a vague topic so any article is a positive in my opinion.... Article is well written with good clean examples."
Ed Price: "Incredibly in depth with beautifully formatted code!"
This is another great primer for hobby and professional developers alike to salivate over. Again taking me back to my early youthful "experimental" days 🙂
By which, I mean shoving wires into the serial port of my beloved ZX Spectrum, in an attempt to wire up my house to my home computer (akin to today's Interior Automation projects).
My earliest 1980s experiments ended in tears, with a pop and a puff of smoke, and weeks playing no games, waiting for repair... o_O
This article makes use of that very useful SerialPort Class. Serial communications sound simple, but there are many pitfalls you have to consider and protectively code for.
In my experience some considerations are aborted sessions, break in communications, missing or corrupted information.
If you have control of both ends, like a microcontroller, it is therefore often a good idea to implement a protocol on top, like a basic version of TCP/IP, a "handshake" protocol.
|Visual C# Technical Guru - June 2013|
|Dan Randolph||Named Pipes IO for Inter-process Communication||CW: "..this article provides a simple sample of using named pipes in c# code between two components."
Christian Lukito: "Good proof of concept showing how to use the API"
Ed Price: "Very clear and easy to read! Great code snippets with good formatting!"
A simple but perfect example of what is essentially an old and underused, but very useful method of communicating both within an application, and separate processes across networks.
Named Pipes can be duplex, and work over a network, even if the servers have the same name. Named Pipes also support impersonation which allow for permissions.
|Windows Phone Technical Guru - June 2013|
|Tiziano Cacioppolini||Maps and clusters||Peter Laker: "Excellent subject, nice detail!"
Ed Price: "Great code and explanations! It could benefit from code blocks and headers/sections to break it up a little more. Great article!"
This really is a great primer for the simply awesome Microsoft.Phone.Maps namespace.
I've had a lot of fun with the Windows Phone Maps API, you couldn't want for a better set of such powerful classes to turbo boost your Windows development.
Tiziano gives a great explanation in this article. If you want to read more, start here.
|Windows Store Apps Technical Guru - June 2013|
|Sachin S||Building an App using the DataviewModel from external XML||Peter Laker: "Nice introduction to the subject. Excellent example and explanation."
Ed Price: "The image at the top catches your interest, and then the code blocks are great as well!"
This is a very clever article, well worth the gold. It basically explains how to rebuild your own relational database from data stored in XML files.
If you wanted an MS SQL solution, I'll slip in a mention for FOR XML and OPENXML, providing an ability to import and export data as XML.
|WPF Technical Guru - June 2013|
|Gaurav Khanna||Set Brush for ScrollViewer Thumb||Peter Laker: "Good to know if you're not adept at Blend"
Ed Price: "Great formatting on the code blocks!"
This was a worthy winner, because one thing this shows is both how flexible WPF and SIlverlight can be, and also how deep sometimes you have to go to alter something as simple as the ScrollViewer thumb.
For more examples, here are a few from me:
- WPF Styles and Control Templates - Made in code
- Overriding SystemColors in WPF
- WPF Themes - Using and tweaking
|Visual Basic Technical Guru - July 2013|
|Reed Kimble||How to Handle a Huge Collection of Strings in VB.Net||MR: "Extremely well written article. Great details about trade-offs of memory vs. performance. "
Ed Price: "It looks fantastic and is easy to read. Great introductions/explanations for each code snippet!"
Richard Mueller: "Outstanding article. Clear explanations and clear code. This can be extremely useful in cases where a dictionary object doesn't help."
SB: "A nice article which details a problem, identifies a solution and gives credible numbers in the summary to show the performance improvement. The code is simple to understand and deals with a number of issues. with a nice description and the relevant code."
Anthony D. Green: "I love how the author introduces the text with several practical examples of where such a technique might be valuable. Good coverage of implementing the .NET collection pattern and a more performant alternative to linear search."
This is such a useful article, useful in many scenarios. For example, if we were to crawl the Wiki for keywords, for converting into links to portals, or description pages, this explains a great way to do that.
This kind of article gets loved for generations, probably lauded and taught in classrooms across the globe. This is TechNet at it's best, thanks Reed!
|Visual C# Technical Guru - July 2013|
|Jaliya Udagedara||Connecting to SSAS Cube using Silverlight||Christian Lukito: "Nice article about Silverlight, WCF and SSAS"
Ed Price: "A fantastic solution that's presented well!"
I am also a big fan of the AdomdClient namespace, as it has often come to my aide, pulling SSAS data into my Silverlight charts, just as Jaliya discusses.
This really is the best of both worlds for data mining and navigating multidimensional data models (like time-stamped snapshots of table data for trend analysis)
Another good launch page into this namespace is in TechNet Library: Developing with ADOMD.NET
|Windows Phone Technical Guru - July 2013|
|Senthil Kumar (isenthil)||Location API in Windows Phone 8||JS: "Best written and most complete"
Ed Price: "This is a very well rounded article. Good fix by Isenthil from feedback in the comments!"
Back for another gold in June was Senthil, with a nice tutorial on the Location API.
Again to me, this triggers off the desire to begin another pet project. This is such a useful article which again I have found personally rewarding.
I must also point anyone interested in this technology as much as I am to the most awesome resource of all, MSDN's Windows Sensor and Location Platform!
|Windows Store Apps Technical Guru - July 2013|
|Ken Tucker||Create an Analog Clock in a Windows Store Application||RC: "Clocks are a classic Xaml demo!"
Ed Price: "This is a great topic! "
As RC says, a classic demo subject indeed. RenderTransform makes life very easy in this respect.
No doubt just a coincidence but maybe Ken took inspiration from me for this idea, as earlier that month, I had published my own example in an MSDN sample project about Button content:
|WPF Technical Guru - July 2013|
|Magnus MM8 (Magnus Montin)||WPF/MVVM: Binding the IsChecked property of a CheckBox to several other CheckBoxes||AN: "Very detailed, nice images, excellent explanations"
Ed Price: "Strong introduction and good explanations for each code snippet. Terrific!"
Welcome Magnus to the community with a great example of a commonly sought solution on the forums.
Both Magnus and I have answered countless similar questions on the WPF forum (where I am also a moderator) and if this is of help to you, please also review some of my similar MSDN Gallery sample projects:
- Creating & Grouping Expanders - Just One Expanded (Accordion like) and Animating
- Grouping Buttons (as ToggleButtons) and Changing IsChecked Background Colour
- The "Select all" CheckBox in column header
- Synchronising Listbox selected items
- How to manage available/selected lists. Simple examples. MVVM and Code behind
- Hiding Selected Items From Other Lists (ComboBoxes)
- TreeView SelectedItem TwoWay MVVM (plus expand to selected and close all others)
In fact I have over 80 WPF related projects in MSDN Gallery that you can download and learn from. I hope you find them useful.
Let's finish with a final tally of Guru Gold winners for May, June and July, in order of medals, then simply mentions:
Reed Kimble - [VB May] [VB June] [VB July]
Senthil Kumar (isenthil) - [WP May] [WP July]
Sachin - [C# May]
Dan Randolph - [C# June]
Tiziano Cacioppolini - [WP June]
Sachin S - [App June]
Gaurav Khanna - [WPF June]
Jaliya Udagedara - [C# July]
Ken Tucker [Apps July]
Magnus MM8 (Magnus Montin) [WPF July]
Congratulations to all the authors above.
We are very lucky to have had the first three months of our competition supported by such big hitters in the community.
In my next blog of this series I will look more closely at the Guru competitions in August and September of 2013, when everyone has settled into the idea of this new competition and more gems arrived for our delectation!
For a complete list of competitions, winners and contributions by category, START HERE!