Click here to Skip to main content
15,881,882 members
This competition has ended

Best Article of April 2022

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. Articles entries must follow the CodeProject submission guidelines.
  4. No cheating, lying, plagiarizing articles, chicanery, or kicking.
  5. No author can be nominated twice.
  6. 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.
  7. In the event of a tie, the number of prizes issued is solely at the discretion of the prize issuer.
  8. Multiple votes from the same IP will be automatically disqualified.
  9. The judges’ decision is final and no correspondence will be entered into.
  10. Only those who live in jurisdictions in which this contest is legal may enter.
  11. Any breach of the rules and the prize will be awarded to the runner up.
  12. 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.
  13. 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.

Current Entries

Articles that match the contest criteria are automatically entered.

Please Sign up or sign in to vote.
26 Dec 2023Nick Polyak
This article describes how to test and debug .NET/Avalonia Linux applications using WSL.
Please Sign up or sign in to vote.
19 May 2022Fred Song (Melbourne)
Build a simple finance application with Angular 13 and .NET 6
Please Sign up or sign in to vote.
11 Jan 2023Clark Fieseln
Simulate hardware containing an FPGA programmed in VHDL interactively
Please Sign up or sign in to vote.
26 Dec 2023Nick Polyak
Explain the new code whose purpose is to add Filtering, Layout Saving/Restoring and Column Visibility functionality to Avalonia DataGrid
Please Sign up or sign in to vote.
7 Apr 2022Chris Maunder
A quick overview and a simple Windows CMD script to make your terminal output a little more lively
Please Sign up or sign in to vote.
4 May 2022Xavier Junqué i de Fortuny
Polynomials Math Parser and Evaluator in VB.NET
Please Sign up or sign in to vote.
13 Apr 2022Steve Hageman
A Python Library to help make properly scaled Fourier Transforms including utility functions
Please Sign up or sign in to vote.
7 Apr 2022Chris Maunder
A quick overview and a simple bash script to make your script output a little more lively
Please Sign up or sign in to vote.
6 Apr 2022Michael Sydney Balloni
Minor release improves DLL security, adds registry DLL, enhances exec() error handling
Please Sign up or sign in to vote.
16 Apr 2022Graeme_Grant
Blazor Component method callback from an external RenderFragment Template
Please Sign up or sign in to vote.
18 Apr 2022Bohdan Stupak
A short take on brittle unit-tests and how to avoid them
Please Sign up or sign in to vote.
22 Apr 2022Chris Maunder
Adding AI to your applications doesn’t have to be all about fighting the tools and libraries
Please Sign up or sign in to vote.
22 Apr 2022ADMGNS
A very simple method to resampling points from a digital image and drawing it as antique mosaics, dots (stippling) and Voronoi cells
Please Sign up or sign in to vote.
5 Apr 2022Coding Notes
An introduction to ASP.NET Core MVC
Please Sign up or sign in to vote.
25 Apr 2022tugrulGtx
A small tool for writing various algorithms as if they were CUDA/OpenCL kernels
Please Sign up or sign in to vote.
20 Apr 2022honey the codewitch
Implement a fancy color picker in your ESP32 WROVER or WROOM IoT applications
Please Sign up or sign in to vote.
22 Apr 2022Sean Ewington
This is the third article in our Article FAQ series. In this entry we do a deep dive in how to use the CodeProject article editor.
Please Sign up or sign in to vote.
21 Apr 2022Matt Pogue
Scripting is a crucial skill for any admin to learn. This post walks through the process to develop a batch file download script in Python, demonstrating how to use the interactive Python shell to troubleshoot while writing code.
Please Sign up or sign in to vote.
4 Apr 2022Muhammad Jarir Kanji
This tutorial will go through the GeoPandas GeoDataFrame, quick and easy visualization of the OSM street networks, with additional helper functions for added customization of the resulting maps using OSMnx, with code samples.
Please Sign up or sign in to vote.
3 Apr 2022Truemark Technology
A step-by-step process to rename files so that Git can detect them
Please Sign up or sign in to vote.
11 Apr 2022Dmitry Zaharov
In this article, we’ll look a little deeper into technical debt and explore some solutions for developers to dig themselves out of the hole.
Please Sign up or sign in to vote.
17 Apr 2022Raphael Adeniji
Many a times, we need to programmatically manage GridView/DataGrid in Visual Studio web applications and this looks very difficult because we do not know what properties or events of the control to use. It may also be as a result of time constraint.
Please Sign up or sign in to vote.
17 Apr 2022Pusparag Subudhi
Extending SignalR to push EF change notification to connected client applications
Please Sign up or sign in to vote.
22 Apr 2022Matt Pogue
I was reading a great article recently about subdomain enumeration services and it got me thinking about Let's Encrypt and internal domains.
Please Sign up or sign in to vote.
26 Apr 2022Pete O'Hanlon
A simple web-based calculator shows how to let TypeScript interact with contents of a web page
Please Sign up or sign in to vote.
5 Apr 2022Francis Tay
How to fit a SNMP agent into an Arduino UNO or NodeMCU ESP8266
Please Sign up or sign in to vote.
22 Apr 2022CMYork01
How to schedule generation of all object creation scripts
Please Sign up or sign in to vote.
22 Apr 2022honey the codewitch
How to use GFX to drive multiple screens at the same time on an ESP32
Please Sign up or sign in to vote.
26 Apr 2022Mark Pelf
Discussion about problems with Garbage Collector and possible alternative solutions
Please Sign up or sign in to vote.
18 Apr 2022john morrison leon
Smart numeric conversion casts that resolve the issue of should I write (int) or a static_cast by being a better choice than both
Please Sign up or sign in to vote.
2 Aug 2023Patrice T
How to use bitwise operations on Bitfields as primitive SIMD
Please Sign up or sign in to vote.
25 Apr 2022honey the codewitch
Use batching to increase performance during complex rendering operations.
Please Sign up or sign in to vote.
23 Apr 2022Bruno Tabbia
A standard Notepad++ plugin that allows you to use an external DLL containing an encoding algorithm to be tried and tested
Please Sign up or sign in to vote.
1 Apr 2022Mark Pelf
Tutorial on Decorator Pattern in C#, showing 3 versions in C#
Please Sign up or sign in to vote.
30 Apr 2022Petrov Vladimir
Simple solution for PDF performance from Image files of any kind
Please Sign up or sign in to vote.
11 Apr 2022AdventureDriver
Creating a optionally sheared mirrored image from a source image in a collage
Please Sign up or sign in to vote.
21 Apr 2022Terrence Sheflin
Basics of making third party cookies work again using an example node.js web host
Please Sign up or sign in to vote.
24 Apr 2022Rahul221
Build a simple web page using HTML
Please Sign up or sign in to vote.
12 Apr 2022Lontia Nkhuwa
In this article we create a custom connector, call the API, and create a reservation button.

Current Participants

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

Software Developer (Senior)
Turkey Turkey
a nice person Smile | :)

KISS (keep it simple and smart)
Software Developer (Senior)
South Africa South Africa
Started in 1988 programming in Pascal, making a 68000 emulator on a DOS platform. Then from Pascal to Clipper, to C++ and now using C#. I've been programming for all walks of businesses; opticians, opthomologist, carbage collectors, reinforcement steel producers, retail chains, and more.
I'm now travelling through Africa with a home-build expedition truck.
Team Leader
Ukraine Ukraine
Team leader with 8 years of experience in the industry. Applying interest to a various range of topics such as .NET, Go, Typescript and software architecture.
Software Developer (Senior)
Switzerland Switzerland
C#, SQL (and in the past also: C++, C, VBA)
Founder CodeProject
Canada Canada
Chris Maunder is the co-founder of CodeProject and ContentLab.com, and has been a prominent figure in the software development community for nearly 30 years. Hailing from Australia, Chris has a background in Mathematics, Astrophysics, Environmental Engineering and Defence Research. His programming endeavours span everything from FORTRAN on Super Computers, C++/MFC on Windows, through to to high-load .NET web applications and Python AI applications on everything from macOS to a Raspberry Pi. Chris is a full-stack developer who is as comfortable with SQL as he is with CSS.

In the late 1990s, he and his business partner David Cunningham recognized the need for a platform that would facilitate knowledge-sharing among developers, leading to the establishment of CodeProject.com in 1999. Chris's expertise in programming and his passion for fostering a collaborative environment have played a pivotal role in the success of CodeProject.com. Over the years, the website has grown into a vibrant community where programmers worldwide can connect, exchange ideas, and find solutions to coding challenges. Chris is a prolific contributor to the developer community through his articles and tutorials, and his latest passion project, CodeProject.AI.

In addition to his work with CodeProject.com, Chris co-founded ContentLab and DeveloperMedia, two projects focussed on helping companies make their Software Projects a success. Chris's roles included Product Development, Content Creation, Client Satisfaction and Systems Automation.
Germany Germany
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.
Software Developer (Senior) Marlow Solutions Ltd.
United Kingdom United Kingdom
Developer (VB and SQL Server) and IT consultant in business operations and financial services sectors.
Also capable with DevExpress (ASP.NET)
Can also do VBA and Crystal Reports...
Software Developer
Vietnam Vietnam
I am a teacher, a software developer. I love reading, travelling and I am also blogging on ngocminhtran.com(in VietNamese).
United States United States
Dmitry Zaharov is an experienced developer and has written for ContentLab in the past. He holds a Master's degree in Applied Math from Ukrainian University and has worked for nearly 20 years taking on various tech challenges in the insurance industry. Dmitry has a solid background in computer imaging, DSP, and compiler theory.
Singapore Singapore
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.
Software Developer (Senior)
Australia Australia
Fred is a senior software developer who lives in Melbourne, Australia. In 1993, he started Programming using Visual C++, Visual Basic, Java, and Oracle Developer Tools. From 2003, He started with .Net using C#, and then expertise .Net development.

Fred is often working with software projects in different business domains based on different Microsoft Technologies like SQL-Server, C#, VC++, ASP.NET, ASP.Net MVC, WCF,WPF, Silverlight, .Net Core and Angular, although he also did some development works on IBM AS400.
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.
United States United States
Just a shiny lil monster. Casts spells in C++. Mostly harmless.
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.
Retired
Spain Spain
Software Author with engineering, science and mathematical background.

Many years using C++ to develop responsive visualisations of fine grained dynamic information largely in the fields of public transport and supply logistics. Currently interested in what can be done to make the use of C++ cleaner, safer, and more comfortable.
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.
Software Developer
Serbia Serbia
Mark Pelf is the pen name of just another Software Engineer from Belgrade, Serbia.
My Blog https://markpelf.com/
Systems Engineer
United States United States
Old-school hacker from the STL, 25 year IT veteran, Systems Director @ Worldwide Freight Management, author of The Solo Admin blog (https://thesoloadmin.com) and founder of Darkstar Consulting, LLC (https://darkstarconsulting.net).
Software Developer
United States United States
Michael Balloni is a manager of software development at a cybersecurity software and services provider.

Check out https://www.michaelballoni.com for all the programming fun he's done over the years.

He has been developing software since 1994, back when Mosaic was the web browser of choice. IE 4.0 changed the world, and Michael rode that wave for five years at a .com that was a cloud storage system before the term "cloud" meant anything. He moved on to a medical imaging gig for seven years, working up and down the architecture of a million-lines-code C++ system.

Michael has been at his current cybersecurity gig since then, making his way into management. He still loves to code, so he sneaks in as much as he can at work and at home.
United States United States
Muhammad Jarir Kanji is a data science, artificial intelligence, and machine learning enthusiast with a background in physics. He has authored articles with ContentLab, and he's currently pursuing a Master's degree in Analytics at Georgia Tech. Muhammad plans to delve into machine learning research in the future.
Architect AWebPros
United States United States
I am a software architect and a developer with great passion for new engineering solutions and finding and applying design patterns.

I am passionate about learning new ways of building software and sharing my knowledge with others.

I worked with many various languages including C#, Java and C++.

I fell in love with WPF (and later Silverlight) at first sight. After Microsoft killed Silverlight, I was distraught until I found Avalonia - a great multiplatform package for building UI on Windows, Linux, Mac as well as within browsers (using WASM) and for mobile platforms.

I have my Ph.D. from RPI.

here is my linkedin profile
Database Developer
France France
I am a professional programmer.
Problem analyse is certainly what I am best at.
My main programming expertise is in the xBase languages (dBase, Clipper, FoxPro, Harbour, xHarbour), then VBA for Excel and advanced Excel WorkBooks.

I also have knowledge on C/C++, d language, HTML, SVG, XML, XSLT, Javascript, PHP, BASICs, Python, COBOL, Assembly.
My personal interests goes to algorithm optimization and puzzles.
CEO
United Kingdom United Kingdom
A developer for over 30 years, I've been lucky enough to write articles and applications for Code Project as well as the Intel Ultimate Coder - Going Perceptual challenge. I live in the North East of England with 2 wonderful daughters and a wonderful wife.

I am not the Stig, but I do wish I had Lotus Tuned Suspension.
Russian Federation Russian Federation
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.
Architect Infosys Limited
India India
Since my first handshake with coding in 1996, I knew its a world for me. Started the professional deep dive in 2006 and never felt like leaving the pool since.
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.
CEO Completesoft Global Solutions Limited
Unknown
Adeniji, Raphael ‘Gbenga BSc (Hons), MSc, MCSD
Mr. Adeniji Raphael Gbenga graduated with second class upper division from the Computer Science department of the Federal University of Technology, Akure in 1995. He also has Masters in Computer Science from the University of Lagos in 2005/2006..
He was one of the first few people to bag the highest level of Microsoft Certification, Microsoft Certified Solutions Developer (MCSD - Aug 2001), in the early days of Microsoft certifications- August 2001.

He has worked with different software houses at home and abroad. He has visited India, United Arab Emirates, United Kingdom and United States for the purpose of software development and boosting in Africa. He worked in Wadof Software Consulting, Computer Systems Associates (CSA) and Precise Financial Systems (PFS) before starting Completesoft Global Solutions Ltd in Jan 2007. He rose to the level of General Manager (GM) and Chief Technology Officer (CTO) in PFS before his final disengagement to form CompleteSoft Global Solutions Limited (Formerly Completesoft Company Ltd) with some of his colleagues. He has also worked as a Contractor and Consultant to Ericsson North America (Plano Texas, USA).
He currently works as Managing Partner and Cloud Architect/Consultant of the Company.
Technical Writer CodeProject
Canada Canada
Sean Ewington is the Content Manager for CodeProject.

His background in programming is primarily C++ and HTML, but has experience in other, "unsavoury" languages.

He loves movies, and likes to say inconceivable often, even if it does not mean what he thinks it means.
Engineer AnalogHome.com
United States United States
Steve Hageman has been a confirmed “Analog-Crazy” since about the fifth grade. He has had the pleasure of designing op-amps, switched-mode power supplies, gigahertz-sampling oscilloscopes, Lock In Amplifiers, Radio Receivers, RF Circuits to 50 GHz and test equipment for digital wireless products. Steve knows that all designs can’t be done with Rs, Ls, and Cs, so he dabbles with programming PC's and embedded systems just enough to get the job done (like for this project).
Team Leader
Canada Canada
I am a Lead Software Architect (UI/UX), focusing mainly on developing with JavaScript, C#, ASP.NET WebApi and MVC.
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.
Turkey Turkey
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.
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. Articles entries must follow the CodeProject submission guidelines.
  4. No cheating, lying, plagiarizing articles, chicanery, or kicking.
  5. No author can be nominated twice.
  6. 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.
  7. In the event of a tie, the number of prizes issued is solely at the discretion of the prize issuer.
  8. Multiple votes from the same IP will be automatically disqualified.
  9. The judges’ decision is final and no correspondence will be entered into.
  10. Only those who live in jurisdictions in which this contest is legal may enter.
  11. Any breach of the rules and the prize will be awarded to the runner up.
  12. 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.
  13. 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 Apr - 30 Apr 2022