Click here to Skip to main content
15,884,473 members
This competition has ended

Best C# Article of February 2018

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.

Please Sign up or sign in to vote.
20 Feb 2018Christian Dalle
Calculate a wheel profile matching a road profile.
Please Sign up or sign in to vote.
4 Feb 2018DataBytzAI
Easy way to send email on Azure with no mail server, using DNS MX and SMTP
Please Sign up or sign in to vote.
15 Feb 2018Igor Ladnik
Basic infrastructure for massive continuous data acquisition and processing using ZooKeeper-Kafka and Redis
Please Sign up or sign in to vote.
9 Feb 2018Meshack Musundi
How to highlight TextBlock text using attached properties
Please Sign up or sign in to vote.
10 Apr 2018Nick Polyak
Achieving separation of concerns using Roxy IoC Container and Code Generator.
Please Sign up or sign in to vote.
14 Feb 2018Apurba pan
Creating dynamic object from XML using ExpandoObject and put Intellisense using C#
Please Sign up or sign in to vote.
18 Dec 2021Jose Motta
IoT.Starter.Pi.Thing growing into an embryo of a universal IR remote control
Please Sign up or sign in to vote.
20 Feb 2018jrsell
Use the XHtmlKit Nuget Package to make scraping web pages in C# fun
Please Sign up or sign in to vote.
31 Jan 2018Pawel idzikowski
How to replace the web API request query string to provide case insensitive OData search
Please Sign up or sign in to vote.
4 Mar 2018Gaston Verelst
How to create a Visio Add-in in VS2017
Please Sign up or sign in to vote.
8 Feb 2018Ivan Yakimov
In this short article, I'll describe how to configure JSON serializer error handling differently for each request.
Please Sign up or sign in to vote.
13 Feb 2018Jose Motta
Compose microservices at Raspberry Pi with Linux & .NET Core to start an IoT initiative right now
Please Sign up or sign in to vote.
13 Jun 2018Tom Ling
Creating a serverless REST API with Cosmos DB on Azure
Please Sign up or sign in to vote.
25 Feb 2018GuyThiebaut
Solving the "Store update, insert, or delete statement affected an unexpected number of rows (0)" response.
Please Sign up or sign in to vote.
26 Feb 2018Richard Mneyan
Conditional Formatting in Excel without applying Conditional Formats with EPPlus and LINQ
Please Sign up or sign in to vote.
15 Feb 2018/n software
This article covers general Bluetooth Low Energy (BLE) concepts and gives practical instructions for using / nsoftware IPWorks BLE
Please Sign up or sign in to vote.
16 Aug 2022Bohdan Stupak
"Method can be static" Microsoft Code Analysis warning may hide a violation of object-oriented design
Please Sign up or sign in to vote.
28 Oct 2018Nick Polyak
making decisions when starting and running a software project.
Please Sign up or sign in to vote.
17 Mar 2018CodingCoyote
Learn to use Wix# to create an installer for your application that bundles multiple MSIs, runtimes, and other dependencies
Please Sign up or sign in to vote.
19 Mar 2020RickZeeland
Version all your .NET Core projects in one swoop fell!
Please Sign up or sign in to vote.
6 Feb 2018 Saineshwar Bageri
In this article, we are going to learn how to create a secure Web API in ASP.NET Core MVC.
Please Sign up or sign in to vote.
11 Mar 2018Arthur V. Ratz
In this article we’ll formulate and thoroughly discuss about probabilistic Bayesian classification algorithm and its implementation in Node.JS and JavaScript that can be actively used to detect and locate messages containing potential spam and other unsolicited data.
Please Sign up or sign in to vote.
2 Feb 2018George MVC Study
Step by step instructions on how to host ASP.NET Core in Linux.
Please Sign up or sign in to vote.
7 Feb 2018Member 13652889
Setup nhibernate and fluent mapping for an ASP.NET project
Please Sign up or sign in to vote.
19 Feb 2018Ben Hall (
I regularly come across developers who hold the misconception that code in a method will continue to be executed, in parallel to code in an awaited method call. So I'm going to demonstrate the behaviour we should expect in this article.
Please Sign up or sign in to vote.
9 Feb 2018Tony Zackin
A very simple yet customizable pop-up message box which auto-closes after a specified number of milliseconds.
Please Sign up or sign in to vote.
3 May 2018Måns Tånneryd
Extending the entity framework with bulk operations for both inserts and updates
Please Sign up or sign in to vote.
13 Feb 2018Himanshu Thawait
Python from the .NET developer point of view
Please Sign up or sign in to vote.
20 Feb 2018Byte-Master-101
Now that we got the basics over with, it's time for improvement!
Please Sign up or sign in to vote.
8 Apr 2018Yuancai (Charlie) Ye
Continuous in-line request/result batching, real-time stream sending/processing, asynchronous data transferring and parallel computation for best performance and scalability
Please Sign up or sign in to vote.
6 Feb 2018raddevus
Entry in the Artificial Intelligence and Machine Learning Contest. Here's how I learned / guessed how to find spam.
Please Sign up or sign in to vote.
12 Feb 2018Scott Clayton
Train a binary classifier in Azure and then use it in a C# application.
Please Sign up or sign in to vote.
26 Feb 2018Shailesh Pisat
Open a Phone Dialer on click of a link in Webview
Please Sign up or sign in to vote.
8 Feb 2018trident99
This article provides an example of a C# Multilingual UWP Application in Visual Studio 2017. It does NOT use the Multilingual App Toolkit to achieve this.
Please Sign up or sign in to vote.
5 Feb 2018Robert Vandenberg Huang
A discussion about the problem about deferred execution and how we solve it.
Please Sign up or sign in to vote.
25 Feb 2018ShamimSiddiquee
Manage broken batch packages re-run start point.
Please Sign up or sign in to vote.
19 Feb 2018syed shanu
How to use Dependency Injection in ASP.NET Core 2.0 and use the result to bind in our View page
Please Sign up or sign in to vote.
1 Mar 2018Scott Clayton
Detect the programming language of a code snippet using neural networks in Azure ML Studio
Please Sign up or sign in to vote.
21 Feb 2018Adi Eduard
This article describes how to get a file's encoding with C#
Please Sign up or sign in to vote.
7 Feb 2018Shamnani Kamlesh
C#7.1 and C#7.2 new features in a simple way
Please Sign up or sign in to vote.
7 Feb 2018Matthew Ruffell
A high-performance and well tested C# ADO library for connecting and querying a SQL database
Please Sign up or sign in to vote.
12 Feb 2018hestol
Description to use TFS source code repository to build and deploy server

Current Participants

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

For more than 20 years, software developers for nearly every Fortune 500 and Global 2000 company worldwide have used /n software products to build powerful connected applications. Our mission is to provide enterprise-class communication, security, and e-business components empowering professional developers to rapidly build robust Internet enabled web and desktop applications targeting various platforms and development technologies.
This is a Organisation

2 members
Chief Technology Officer SocialVoice.AI
Ireland Ireland
Allen is CTO of SocialVoice (, where his company analyses video data at scale and gives Global Brands Knowledge, Insights and Actions never seen before! Allen is a chartered engineer, a Fellow of the British Computing Society, a Microsoft mvp and Regional Director, and C-Sharp Corner Community Adviser and MVP. His core technology interests are BigData, IoT and Machine Learning.

When not chained to his desk he can be found fixing broken things, playing music very badly or trying to shape things out of wood. He currently completing a PhD in AI and is also a ball throwing slave for his dogs.
Technical Lead
India India
Microsoft Most Valuable Professional
Code Project Most Valuable Author
C# Corner Most Valuable Professional

I am Senior Technical lead Working on.Net Web Technology
ASP.NET MVC,.Net Core,ASP.NET CORE, C#, SQL Server, MYSQL, MongoDB, Windows
Chief Technology Officer Alpha Beta
Israel Israel
Adi Eduard is a software developer for the last 10 years.
Experienced with management, design, development and deployment of software projects.
Dedicated to the task at hand, works well in a team and has a passion for technology and innovation
Software Developer (Senior)
India India
I have extensive professional experience with Microsoft technologies with an expertise in Microsoft .NET, C#, JavaScript, SQL, and ASP.NET. I also have an advanced understanding of the concepts behind these technologies including Object-Oriented Programming, Relational Data, MVC and MVVM.

Some of my more recent work has been designing and building web applications primarily with JavaScript in conjunction with many of the JavaScript libraries/frameworks including JQuery, AngularJS and Bootstrap and consuming both JSON and REST services.
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.
Software Developer (Senior)
United Kingdom United Kingdom
Ben is the Principal Developer at a and .NET Foundation foundation member. He previously worked for over 9 years as a school teacher, teaching programming and Computer Science. He enjoys making complex topics accessible and practical for busy developers.

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.
Egypt Egypt
Hello, I'm a programmer by day, and a Jedi Ninja by night! I mean... I like programming Neural Networks. I'm kinda experienced with C#, JavaScript, MySQL, Network Programming, Unity Game Programming and a bit of C++. I also tried out freelancing for a few months, and it worked well. If anybody wants to talk to me, you can contact me on email( or on Skype(
Software Developer (Senior)
France France
I have a Master's degree in Electronics Engineering. My job is software developer since 1996. I like programming and I use the c#, javascript, vba, php languages. I made websites in php and ASP.NET, programs in and c#, plugins to Office, mobile project (for bar code reader) and webparts for SharePoint.
I like painting and drawing, and sculpting clay.
Software Developer Tech Friends Inc.
United States United States
Software Developer specializing in Build/Test Automation. Adept Linux User and Cross Platform Developer.
Architect bvba
Belgium Belgium
Gaston Verelst is the owner of, an IT consultancy company based in Belgium (the land of beer and chocolate!) He went through a variety of projects during his career so far. Starting with Clipper - the Summer '87 edition, he moved on to C and mainly C++ during the first 15 years of his career.

He quickly realized that teaching others is very rewarding. In 1995, he became one of the first MCT's in Belgium. He teaches courses on various topics:
• C, C++, MFC, ATL, VB6, JavaScript
• SQL Server (he is also an MSDBA)
• Object Oriented Analysis and Development
• He created courses on OMT and UML and trained hundreds of students in OO
• C# (from the first beta versions)
• Web development (from ASP, ASP.NET, ASP.NET MVC)
• Windows development (WPF, Windows Forms, WCF, Entity Framework, …)
• Much more

Of course, this is only possible with hands-on experience. Gaston worked on many large scale projects for the biggest banks in Belgium, Automotive, Printing, Government, NGOs. His latest and greatest project is all about extending an IoT gateway built in MS Azure.

"Everything should be as simple as it can be but not simpler!" – Albert Einstein

Gaston applies this in all his projects. Using frameworks in the best ways possible he manages to make code shorter, more stable and much more elegant. Obviously, he refuses to be paid by lines of code!

This led to the blog at The articles of this blog are also available on, happy reading!

When he is not working or studying, Gaston can be found on the tatami in his dojo. He is the chief instructor of Ju-Jitsu club Zanshin near Antwerp and holds high degrees in many martial arts as well.

Gaston can best be reached via

Nepal Nepal
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.
Software Developer
Canada Canada
I am working with ASP.NET related technologies.
Software Developer
United Kingdom United Kingdom
Graduated with BSc(hons) in Information Systems in 1992 and have had to learn pretty much everything on the job since then.

Currently: Software Developer (Oracle, .NET and Javascript).
Used to be: Developer (SQL Server and .NET), Analyst(Using Oracle, SAS, Excel...) and before that a SQLServer 2000 DBA, Microsoft XAL developer.

Main skill set includes SQL Server, PL/SQL, C#, Javascript, VB .NET, Access, Excel, Word - VBA, SAS...

Interests include reading and things that fly.
I am a keen origami(paper folding) amateur.
Was once a classical guitarist, however Metallica have corrupted my tastes.

I run as a hobby
Software Developer (Senior) Similix ApS
Denmark Denmark
I have working with C since 1988, and updates to VC++ in 1998. The first software I was making in VC++ was Fan calculation program with graph. This Fan Was integrated with the Oracle system.
I've been working almost exclusively with C# and .NET since
beginning of the technology.
Now I am working with Web API and CRM, MVC 6.0, SQL Server, C# and .NET. The Similix ApS is a IT konsult house and working with GIS (Esri).
In my work, I have gained extensive experience with web security. ADFS etc..
Have also gained experience with DevOps CI and automatic deployment
Technical Lead Sapient Global Market
United States United States
Himanshu Thawait is Associate Arch at Sapient Global Markets.

He is expert in developing EAI, BizTalk with EDI(HIPPA)., Web applications, Micro web services, Angular, ASP.NET MVC, C#, VB.NE T, VB 6, SQL Server, Oracle, No SQL, Classic ASP, XML and JavaScript, IBM MQSC, IBM DB2.
Software Developer (Senior)
Israel Israel

  • Nov 2010: Code Project Contests - Windows Azure Apps - Winner
  • Feb 2011: Code Project Contests - Windows Azure Apps - Grand Prize Winner

Software Developer (Senior) Finstek
China China
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.
Systems Engineer
Brazil Brazil
Electronic Engineer UFRJ 1977, M.Sc. Computer Systems COPPE 1982, CEPEL Researcher until 1985, Mira Informatica CEO until 1995, TRENDnet Brazil CEO until 2015, IoT Systems & Architecture.
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) Tånneryd IT AB
Sweden Sweden
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.
Software Developer (Senior) Self
United States United States
I am a professional software developer, specializing in Microsoft development technologies, with over 18 years experience. I write software and manage software development teams at work, but I also maintain my own apps for personal use.
Software Developer
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
Kenya Kenya
Experienced C# software developer with a passion for WPF.

  • CodeProject MVP 2013
  • CodeProject MVP 2012
  • CodeProject MVP 2021
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
Software Developer (Senior) Polenter - Software Solutions
Germany Germany
I'm C# developer from Cologne, Germany. Here I owe a small software company. My hobby is general optimization - natural talent of all lazy people Wink | ;-)
Software Developer (Senior) RADDev Publishing
United States United States
"Everything should be made as simple as possible, but not simpler."
Software Developer
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
Netherlands Netherlands
Software developer in the Netherlands, currently working on Video Surveillance applications.
Experience: C#, C++, VB, ASP, SQL Server, PostgreSQL, Gitea, TeamCity.
It all started with Black&White, no not the whiskey but the Sinclair ZX81 followed by several Atari's and PC's. The journey continues ...
Software Developer
Taiwan Taiwan
Back-end developer, English learner, drummer, game addict, Jazz fan, author of LINQ to A*
Software Developer
United States United States
Scott enjoys working on proof-of-concept projects for the sake of learning new and interesting ways to solve problems.
Software Developer (Senior)
India India
I am a senior software developer. I work for a web development company as team lead. Most of the solutions developed by myself are for web using DotNet Framework but do have keen interest in developing for mobile app as well. At work I am responsible to provide solutions to clients and work with dynamic teams developing for web and mobile. I have been closely working with teams and mentoring them developing in technologies like ASP.Net and PHP for Web and Objective C, Android SDK and cross platform Mobile app.

I like to try my hands-on various other web and mobile development technologies. My current interests apart from ASP.Net (WebForms, MVC and DotNet Core) is for NodeJS, Angular, React and Typescript for developing Web and Mobile Apps. I have been constantly exploring new technologies and implementations for CI/CD, Source Control & Versioning and Automation. Also, looking forward to work on Bots, Machine learning, IoT, VR & AR.

I use tools to do my work and suit my workflows. I was made aware of blogging during my training at Aptech and has been constantly working on having blogs for myself and my work. Including this blog there are few more links of my online presence mentioned below.
Software Developer
Bangladesh Bangladesh
Working on Microsoft .NET Technology with over 8 years of industry experience. Responsible for developing and managing several applications build on .NET technology. In my day to day, work needs to maintain a set of well-defined engineering practices developed by me and as well as other developer communities, having knowledge in domain-driven design, design architectural framework, user experience, usability engineering and project management.
Technical Lead
India India
Knowledge Seeker for Microsoft Technologies (.NET, ASP.Net, ASP.NET MVC, ADO.NET C#.Net, WCF, WebAPI) AJAX, XML, Jquery, SQL Server, TFS)
Team Leader
India India
Microsoft MVP | Code Project MVP | CSharp Corner MVP | Author | Blogger and always happy to Share what he knows to others. MyBlog

My Interview on Microsoft TechNet Wiki Ninja Link
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.
Software Developer (Senior) Takamomto, LLC
United States United States
I have been doing database related programming in the financial services industry for over 20 years on various platforms. I used to be a UNIX Sybase DBA but now prefer programming in the .NET environment using C# and SQL Server.
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 (Senior)
United States United States
Yuancai (Charlie) Ye, an experienced C/C++ software engineer, lives in Atlanta, Georgia. He is an expert at continuous inline request/result batching, real-time stream processing, asynchronous data transferring and parallel computation for the best communication throughput and latency. He has been working at SocketPro ( for more than fifteen years.

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.


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 Feb - 28 Feb 2018