Click here to Skip to main content
15,883,971 members
This competition has ended

Best C# Article of August 2017

Contribute to CodeProject and you'll automatically be in the running for a monthly prize!

Each month at CodeProject we gather together the best of the articles submitted the previous month and ask our readers to choose the best of the best. Entry is automatic - just submit you articke and we'll do the rest.

Check out the submission guidelines for information on posting articles.

Current Entries

Articles that match the contest criteria are automatically entered. The top 50 entries are shown.

Please Sign up or sign in to vote.
29 Aug 2017Arthur V. Ratz
How to implement k-means clustering algorithm to perform graphical raster image segmentation
Please Sign up or sign in to vote.
7 Aug 2017Marc Clifton
Not very classy in C#, but pretty classy in F#.
Please Sign up or sign in to vote.
27 Aug 2017Daniel Vaughan
Use, and learn how to build, a Markdown Monster add-in that outputs HTML compatible with CodeProject's article submission wizard.
Please Sign up or sign in to vote.
8 Aug 2017Afzaal Ahmad Zeeshan, Iqra Ali
Since I wrote an article previously, I had been asked on various occasions to share the code on Yahoo! or Bing, etc. I wanted to write an article, with the code, which covers all of those vendors as well.
Please Sign up or sign in to vote.
30 Aug 2017simonp_ca
Use Excel worksheet's cells as pixels to render real image (for fun and experiment)
Please Sign up or sign in to vote.
24 Aug 2017Daniel Vaughan
Using steganography to conceal text within a document or watermark a code file, using a whitespace encoder. Hide text in plain sight!
Please Sign up or sign in to vote.
21 Feb 2018Yunus Emre Kalkan
How to create custom repostories in ASP.NET Boilerplate and use stored procedure, view, user defined functions inside your repository
Please Sign up or sign in to vote.
19 Aug 2017Afzaal Ahmad Zeeshan
.NET Core 2.0 brings a lot of improvements to the system, and it brings a lot of pain to the developers as well. I had a lot of problems upgrading .NET Core 1.x apps to .NET Core 2.0; I yet have to feel the promise it makes about performance and so, but let us see how to upgrade our existing applica
Please Sign up or sign in to vote.
16 Aug 2017Clifford Nelson
This is a simple behavior that can be attached to a ContentControl and allows zooming and dragging the Content.
Please Sign up or sign in to vote.
26 Aug 2017Dirk Bahle
Implementing a WPF/MVVM Control libray (with backend) that manages a Most Recently Used list of files.
Please Sign up or sign in to vote.
8 Aug 2017LostTime76
A custom panel which allows elements to be resized using splitters
Please Sign up or sign in to vote.
18 Nov 2023Erik Drent
A simple POCO mapper for EPPlus
Please Sign up or sign in to vote.
2 Aug 2017Clifford Nelson
Fairly straight forward way of binding in a HierarchicalDataTemplate or DataTemplate to the parent ViewModel when using the TreeView control.
Please Sign up or sign in to vote.
11 Aug 2017#realJSOP
Handy class to reduce clutter in your code
Please Sign up or sign in to vote.
18 Aug 2017David_Wimbley
Scheduling dependent jobs sequentially with Quartz.net
Please Sign up or sign in to vote.
7 Aug 2017John Newcombe
Taming the Twitter API in C#
Please Sign up or sign in to vote.
22 Aug 2017JUST_Neeraj 1 alternative  
A Simple Messaging\ Workflow \ETL system on MySQL and .NET
Please Sign up or sign in to vote.
7 Aug 2017John Newcombe
Genetic Algorithm Framework
Please Sign up or sign in to vote.
7 Aug 2017John Newcombe
Genetic Algorithm Framework
Please Sign up or sign in to vote.
7 Aug 2017John Newcombe
Hopfield Neural Network for Character Recognition in .NET and C#
Please Sign up or sign in to vote.
30 Aug 2017morzel
Detecting a drone - OpenCV in .NET for beginners (Emgu CV 3.2, Visual Studio 2017)
Please Sign up or sign in to vote.
25 Aug 2017Cédric Bourgeois
How to make it easier to manage StyleSelector and TemplateSelector with AvalonDock, especially when the selection is based on the ViewModel type only.
Please Sign up or sign in to vote.
17 Aug 2017Dennis Wu CA
A demo that generates a simple Excel spreadsheet with subscripts and superscripts
Please Sign up or sign in to vote.
19 Dec 2017trident99
HTLSharp is a C# port and upgrade of the HPC Template Library (HTL).
Please Sign up or sign in to vote.
8 Aug 2017Richard James Moss
How to write custom Markdig extensions
Please Sign up or sign in to vote.
13 Aug 2017Dennis Wu CA
A command line program that resets user access permission in windows
Please Sign up or sign in to vote.
23 Aug 2017Vertical AIT
Automatically bind MVC HTML RenderPartial and Partial view pages to your model's child objects without having to use HTMLFieldPrefix.
Please Sign up or sign in to vote.
18 Aug 2017SierraMike
Read multimedia files details and get them as object properties
Please Sign up or sign in to vote.
25 Aug 2017Imran Khan A
In this article, I have explained how to to Bundle and Minify the external script files and CSS files
Please Sign up or sign in to vote.
31 Oct 2022Graeme_Grant
Working with simple JSON objects and collections to Custom Converters and Transformations into .NET classes - NewtonSoft.Json
Please Sign up or sign in to vote.
24 Jul 2023Sergey Alexandrovich Kryukov
A computer keyboard can be turned into an isomorphic musical instrument, to help in deeper exploration of the Musical Harmony and even to inspire new musical ideas
Please Sign up or sign in to vote.
22 Feb 2022Uzi Granot
This program will solve a Rubik’s cube using algorithms for beginners. It is a WPF open source application written in C# for VS 2022 and .NET6 using 3D graphics and animation.
Please Sign up or sign in to vote.
21 Aug 2017Mehdi Gholam
Cleanup the VS 2017 offline installation folder of old versions
Please Sign up or sign in to vote.
23 Aug 2017Clifford Nelson
This is a generic class that makes it much easier to create another class in the background. It also provides a good sample of how to use the Task.Run with the ContinueWith clause.
Please Sign up or sign in to vote.
10 Sep 2017Bart-Jan Brouwer
Old and new style all in one project
Please Sign up or sign in to vote.
7 Aug 2017Bhairav Thakkar
A basic artificial neural network code for experimenting
Please Sign up or sign in to vote.
29 Aug 2017Clifford Nelson
There are times when want to have associated RadioButton controls on a window, and it would be much easier to interface to these controls with a single property instead of independent properties for each RadioButton. This control allows multiple RadioButton controls to be on a single Binding.
Please Sign up or sign in to vote.
26 Jun 2021Maxim Dobroselsky
Overview of how to use the DryWetMIDI library for high-level managing of a MIDI file data
Please Sign up or sign in to vote.
30 Aug 2017morzel
Detecting a Drone - OpenCV in .NET for Beginners (Emgu CV 3.2, Visual Studio 2017). Part 1
Please Sign up or sign in to vote.
22 Aug 2017David_Wimbley
Reading emails from an inbox with openpop.net
Please Sign up or sign in to vote.
16 Nov 2017raddevus
Complete source code that creates a solution so users never have to make up, memorize or type a password again
Please Sign up or sign in to vote.
8 Aug 2017practicalDeveloper
A panel that has rounded borders, gradients, edges/bevels and a shadow
Please Sign up or sign in to vote.
1 Jul 2020Carsten Keltsch
Brief description of how to access 64-bit DLLs from 32-bit processes using a COM bridge
Please Sign up or sign in to vote.
1 Aug 2017George Swan
A way of adapting a particle swarm optimizer to solve the travelling salesman problem
Please Sign up or sign in to vote.
11 Aug 2017Clifford Nelson
Sometimes want to have some action in a View when there are no items or are items in a collection. It is very easy to do this with a converter and binding to the Collection's Count property
Please Sign up or sign in to vote.
22 Sep 2017Petru Faurescu
Few insights on how to better paginate results in MongoDB, and to achieve excellent performance
Please Sign up or sign in to vote.
2 Aug 2017gggustafson
This article discusses an implementation of a scrolling TextBox and a UI that supports key and mouse events.
Please Sign up or sign in to vote.
1 Aug 2017Rodimus74
Part two of taking the Microsoft Xamarin Weather tutorial to the next level.
Please Sign up or sign in to vote.
2 Aug 2017Richard Deeming
Adding cancellation support to the SendMailAsync method
Please Sign up or sign in to vote.
9 Oct 2017Georgeutc
Adding sliding functionality to UWP XAML SplitView

Current Participants

Those with articles that match the contest criteria are automatically entered.

Software Developer (Senior) Paddedwall Software
United States United States
I've been paid as a programmer since 1982 with experience in Pascal, and C++ (both self-taught), and began writing Windows programs in 1991 using Visual C++ and MFC. In the 2nd half of 2007, I started writing C# Windows Forms and ASP.Net applications, and have since done WPF, Silverlight, WCF, web services, and Windows services.

My weakest point is that my moments of clarity are too brief to hold a meaningful conversation that requires more than 30 seconds to complete. Thankfully, grunts of agreement are all that is required to conduct most discussions without committing to any particular belief system.
Software Developer
Pakistan Pakistan
Afzaal Ahmad Zeeshan is a computer programmer from Rabwah, Pakistan, currently living in The Netherlands, likes .NET Core and Node.js for regular everyday development. Afzaal Ahmad works at Adyen as a Developer Advocate.

He is an expert with Cloud, Mobile, and API development. Afzaal has experience with the Azure platform and likes to build cross-platform libraries/software with .NET Core. Afzaal is an Alibaba Cloud MVP, twice he has been awarded Microsoft MVP status for his community leadership in software development, four times CodeProject MVP status for technical writing and mentoring, and 4 times C# Corner MVP status in the same field.
Software Developer (Senior) EpsilonDev
Ukraine Ukraine
I’m software developer, system analyst and network engineer, with over 20 years experience, graduated from L’viv State Polytechnic University and earned my computer science and information technology master’s degree in January 2004. My professional career began as a financial and accounting software developer in EpsilonDev company, located at L’viv, Ukraine. My favorite programming languages - C/C++, C#.NET, Java, ASP.NET, Node.js/JavaScript, PHP, Perl, Python, SQL, HTML5, etc. While developing applications, I basically use various of IDE’s and development tools, including Microsoft Visual Studio/Code, Eclipse IDE for Linux, IntelliJ/IDEA for writing code in Java. My professional interests basically include data processing and analysis algorithms, artificial intelligence and data mining, system analysis, modern high-performance computing (HPC), development of client-server web-applications using various of libraries, frameworks and tools. I’m also interested in cloud-computing, system security audit, IoT, networking architecture design, hardware engineering, technical writing, etc. Besides of software development, I also admire to write and compose technical articles, walkthroughs and reviews about the new IT- technological trends and industrial content. I published my first article at CodeProject in June 2015.
Technical Lead
Netherlands Netherlands
I graduated as Bachelor of Mechanical Engineering. Soon I moved from mechanical to software engineering. With more than 20 years of experience in software design, development, and architecture I love building software that users enjoy en suit their needs.
Software Developer (Senior)
Canada Canada
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.
Technical Lead IBM
Germany Germany
Technical Lead IT Specialist for Cognitive Input Analytics and Input Management at IBM
Switzerland Switzerland
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.
Software Developer (Senior) Clifford Nelson Consulting
United States United States
Has been working as a C# developer on contract for the last several years, including 3 years at Microsoft. Previously worked with Visual Basic and Microsoft Access VBA, and have developed code for Word, Excel and Outlook. Started working with WPF in 2007 when part of the Microsoft WPF team. For the last eight years has been working primarily as a senior WPF/C# and Silverlight/C# developer. Currently working as WPF developer with BioNano Genomics in San Diego, CA redesigning their UI for their camera system. he can be reached at qck1@hotmail.com.
Engineer
Switzerland Switzerland
Daniel is a former senior engineer in Technology and Research at the Office of the CTO at Microsoft, working on next generation systems.

Previously Daniel was a nine-time Microsoft MVP and co-founder of Outcoder, a Swiss software and consulting company.

Daniel is the author of Windows Phone 8 Unleashed and Windows Phone 7.5 Unleashed, both published by SAMS.

Daniel is the developer behind several acclaimed mobile apps including Surfy Browser for Android and Windows Phone. Daniel is the creator of a number of popular open-source projects, most notably Codon.

Would you like Daniel to bring value to your organisation? Please contact

Blog | Twitter


Xamarin Experts
Windows 10 Experts
Software Developer
United States United States
I'm a software developer and enjoy .net, angular, mvc, and many other different languages.
United States United States
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.
Germany Germany
The Windows Presentation Foundation (WPF) and C# are among my favorites and so I developed Edi

and a few other projects on GitHub. I am normally an algorithms and structure type but WPF has such interesting UI sides that I cannot help myself but get into it.

https://de.linkedin.com/in/dirkbahle
Software Developer (Senior)
Netherlands Netherlands
Freelance Sitecore /.Net developer
Student
Wales Wales
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.
Canada Canada
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.
Software Developer (Senior)
United States United States
In 1964, I was in the US Coast Guard when I wrote my first program. It was written in RPG (note no suffixing numbers). Programs and data were entered using punched cards. Turnaround was about 3 hours. So much for the "good old days!"

In 1970, when assigned to Washington DC, I started my MS in Mechanical Engineering. I specialized in Transportation. Untold hours in statistical theory and practice were required, forcing me to use the university computer and learn the FORTRAN language, still using punched cards!

In 1973, I was employed by the Norfolk VA Police Department as a crime analyst for the High Intensity Target program. There, I was still using punched cards!

In 1973, I joined Computer Sciences Corporation (CSC). There, for the first time, I was introduced to a terminal with the ability to edit, compile, link, and test my programs on-line. CSC also gave me the opportunity to discuss technical issues with some of the brightest minds I've encountered during my career.

In 1975, I moved to San Diego to head up an IR&D project, BIODAB. I returned to school (UCSD) and took up Software Engineering at the graduate level. After BIODAB, I headed up a team that fixed a stalled project. I then headed up one of the two most satisfying projects of my career, the Automated Flight Operations Center at Ft. Irwin, CA.

I left Anteon Corporation (the successor to CSC on a major contract) and moved to Pensacola, FL. For a small company I built their firewall, given free to the company's customers. An opportunity to build an air traffic controller trainer arose. This was the other most satisfying project of my career.

Today, I consider myself capable.
Technical Lead
Australia Australia
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.
Software Developer Softway Solutions Pvt Ltd
India India
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.
Software Developer
United Kingdom United Kingdom
John is the author of the free Genetic Algorithm Framework for .Net (GAF) and the series of GeoUK NuGet packages. John studied at Leicester De Montfort University and gained a Distinction for the highly regarded Masters Degree in Computational Intelligence and Robotics. John can provide commercial product support for the GAF or GAF based projects and can be contacted via the Code Project, LinkedIn or the usual social channels.
Architect
Norway Norway
I have 14 years of IT experience on the .NET Stack. I am back-end\middleware expert focussing on databases, APIs and integration systems. I have been focussing a lot on AWS in the last 2 years.
https://github.com/WorkMaze
United States United States
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.
Architect Interacx
United States United States
Blog: https://marcclifton.wordpress.com/
Home Page: http://www.marcclifton.com
Research: http://www.higherorderprogramming.com/
GitHub: https://github.com/cliftonm

All my life I have been passionate about architecture / software design, as this is the cornerstone to a maintainable and extensible application. As such, I have enjoyed exploring some crazy ideas and discovering that they are not so crazy after all. I also love writing about my ideas and seeing the community response. As a consultant, I've enjoyed working in a wide range of industries such as aerospace, boatyard management, remote sensing, emergency services / data management, and casino operations. I've done a variety of pro-bono work non-profit organizations related to nature conservancy, drug recovery and women's health.
Team Leader
Russian Federation Russian Federation
My primary skills are C#, WPF and ArcObjects/ArcGIS Pro SDK. Currently I'm working on autotests in Kaspersky Lab as a development team lead.

Also I'm writing music which led me to starting the DryWetMIDI project on the GitHub. DryWetMIDI is an open source .NET library written in C# for managing MIDI files and MIDI devices. The library is currently actively developing.
Architect -
United Kingdom United Kingdom
Mehdi first started programming when he was 8 on BBC+128k machine in 6512 processor language, after various hardware and software changes he eventually came across .net and c# which he has been using since v1.0.
He is formally educated as a system analyst Industrial engineer, but his programming passion continues.

* Mehdi is the 5th person to get 6 out of 7 Platinum's on Code-Project (13th Jan'12)
* Mehdi is the 3rd person to get 7 out of 7 Platinum's on Code-Project (26th Aug'16)
Software Developer
Poland Poland
Architect
Denmark Denmark
My name is Petru Faurescu and I am a solution architect and technical leader. Technical blog: QAppDesign.com
Software Developer
Other Other
.NET, Web developer
MSc in Computer Science
Software Developer (Senior) RADDev Publishing
United States United States
"Everything should be made as simple as possible, but not simpler."
Software Developer CodeProject
United Kingdom United Kingdom
I started writing code when I was 8, with my trusty ZX Spectrum and a subscription to "Input" magazine. Spent many a happy hour in the school's computer labs with the BBC Micros and our two DOS PCs.

After a brief detour into the world of Maths, I found my way back into programming during my degree via free copies of Delphi and Visual C++ given away with computing magazines.

I went straight from my degree into my first programming job, at Trinet Ltd. Eleven years later, the company merged to become ArcomIT. Three years after that, our project manager left to set up Nevalee Business Solutions, and took me with him. Since then, we've taken on four more members of staff, and more work than you can shake a stick at. Smile | :)

Between writing custom code to integrate with Visma Business, developing web portals to streamline operations for a large multi-national customer, and maintaining RedAtlas, our general aviation airport management system, there's certainly never a dull day in the office!

Outside of work, I enjoy real ale and decent books, and when I get the chance I "tinkle the ivories" on my Technics organ.
Software Developer (Senior)
United Kingdom United Kingdom
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.
Web Developer
Australia Australia
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.
Architect
United States United States
Physics, physical and quantum optics, mathematics, computer science, control systems for manufacturing, diagnostics, testing, and research, theory of music, musical instruments… Contact me: https://www.SAKryukov.org
Software Developer
France France
I'm a Software Developer since my young days, started using Basic on a "Sinclair ZX Spectrum +2", then used GWBasic, QuickBasic, Visual Basic from version 1.0 to 6.0, then turned to C# since 2004 and never went away.
I made lots of web applictions using ASP, then ASP.NET, and a lot of Winform applications.
Software Developer
Canada Canada
Yet another jack-of-all-trades programmer?

United States United States
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.
Canada Canada
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.
CEO Vertical AIT (Vertical Automation & Information Te
United States United States
Software Architect and CEO of Vertical AIT.

We build intuitive Data Acquisition, Control, and Automation systems. We offer software for all of the Verticals of your business from firmware and data acquisition to web dashboards and reporting.

Education:
BS Computer Science + MBA
Texas A&M University
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Contest Entries and Requirements

  1. The contest period covers the the first day of the month 12AM US Eastern Standard Time and ends the final day of the month at 11:59:59 PM US Eastern Standard Time. All entries must be submitted during this period in order to qualify.
  2. Entries must be an article, or blog entry.
  3. With the exception of the Everything Else category, the article must be tagged with at least one of the tags corresponding to that competition's category (for example, to enter the C# Competition you would need to tag your article with a C# tag).
  4. Articles entries must follow the CodeProject submission guidelines.
  5. No cheating, lying, plagiarizing articles, chicanery, or kicking.
  6. Articles may only be considered for a single category. If an article is eligible for multiple categories (for example, it pertains to both the C# and Web Dev categories), CodeProject editors and judges will decide which category the article shall be entered in.
  7. No author can be nominated twice in the same category.
  8. If an author writes has two separate articles, each article may be considered in their respective categories provided none of the aforementioned rules are broken. For example, if an author wrote two separate articles, one related to C# and one related to VB.NET, the author and articles could be nominated in the C# and VB.NET competitions, respectively.
  9. In the event an author wins multiple competitions, and repeat, identical prizes, the number of prizes issued is solely at the discretion of the prize issuer.
  10. In the event an article has multiple authors and/or contributors, the number of prizes issued is solely at the discretion of the prize issuer.
  11. In the event of a tie,  the number of prizes issued is solely at the discretion of the prize issuer.
  12. Multiple votes from the same IP will be automatically disqualified.
  13. The judges’ decision is final and no correspondence will be entered into.
  14. Only those who live in jurisdictions in which this contest is legal may enter.
  15. Any breach of the rules and the prize will be awarded to the runner up.
  16. By entering the contest you agree to the rules, conditions of entry, and agree that your member alias and any submitted material can be used for promotional purposes by CodeProject.
  17. Entries shall be deemed to be submitted by the authorized account holder of the email address submitted at the time of entry unless clearly indicated otherwise. "Authorized account holder" is defined as the natural person who is assigned to an email address by an internet access provider, on-line service provider, or other organization (e.g. business, educational institution, etc.) that is responsible for assigning email addresses for the domain associated with the submitted email address.

Eligibility

This competition is open to software development professionals & enthusiasts who are of the age of majority in their jurisdiction of residence; however, residents of Quebec and of the following countries are ineligible to participate due to legal constraints: Cuba, Iran, Iraq, Libya, North Korea, Sudan, and Syria. Employees (or a member of their immediate family) of CodeProject or any of their affiliates, subsidiaries, advertising or promotional agencies are also ineligible to participate. Void where prohibited by law.

How to Enter

Entry is by the submission process described above. Please read the submission requirements before submitting your entry and ensure the article is tagged with at least one of the tags corresponding to that competition's category.

Lost, late, misdirected, or illegible entries will be disqualified. Any entry containing content that CodeProject deems objectionable for any reason will be disqualified. All decisions of CodeProject with respect to any aspect of the competition, including, without limitation, the eligibility of entries, are final and binding on all entrants in all matters as they relate to this competition. CodeProject reserves its right to modify the Rules.

CodeProject assumes no responsibility for lost, late, delayed, destroyed or misdirected mail, voice messages, email or any computer errors or malfunctions. No correspondence will be entered into with entrants.

CodeProject does not assume any responsibility for incorrect or inaccurate capture of entry information, technical malfunctions, human or technical error, lost, delayed or garbled data or transmissions, omission, interruption, deletion, defect or failures of any telephone or computer line or network, computer equipment, software or any combination thereof. Entry materials/data that have been tampered with or altered are void. If for any reason, in the opinion of CodeProject in its sole discretion, the competition is not capable of running as originally planned, or if the administration, security, fairness, integrity or the proper conduct of the competition is corrupted or adversely affected, including by reason of infection by computer virus, bugs, tampering, unauthorized intervention, fraud, technical failures or any other causes beyond its control, CodeProject reserves its right to cancel, terminate, modify, amend, extend or suspend the competition including cancelling any method of entry, and select a winner from previously received eligible entries. CodeProject reserves its right in its sole discretion to disqualify any individual it finds to be tampering with the entry process or the operation of the competition or to be acting in violation of the Rules or otherwise in a disruptive manner. CodeProject reserves its right to seek remedies and damages to the fullest extent of the law for any attempts to deliberately damage the competition web site or to undermine the legitimate operation of this competition. CodeProject shall not be held responsible for any errors or negligence that may arise or occur in connection with the competition including any damage to an entrant's computer equipment, system, software or any combination thereof, as a result of their participation in this competition or from downloading any material from the competition website where applicable.

You must sign in to participate in this contest.
This contest has ended.
1 Aug - 31 Aug 2017