Click here to Skip to main content
14,266,036 members

Best C# Article of June 2017

This competition has ended

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.

12 Jun 2017
Qwertie
It has 41 features in about 1000 lines of code* - but only 3 lines are needed to parse the expressions you type in. Uses WinForms, BackgroundWorker, GDI+ and LES.
1 Jun 2017
Marc Clifton
Three algorithms are presented -- iterative, recursive yield, and recursive step-and-continue, with a real time and interactive UI of the solving process and solution.
26 Jun 2017
Marc Clifton
Among other things, an exploration into writing C# code in a functional programming style.
17 Jul 2017
Vadim Loboda
How to combine the Id-ParentId and HierarchyId approaches to keep and fetch the data in hierarchical and alphabetical order.
10 Apr 2019
Henrique Dal Bello
This article describes a DLL made to help the community when communicating with Tightening Controllers via Open Protocol.
11 Jun 2017
Livio Francescucci
Use a JWTToken to access a .NET Core Web API leveraging IdentityServer4 / OAuth2.
18 Jun 2017
Dr. Song Li
This is a note on Owin (Open Web Interface for .NET) hosted services.
10 Jun 2017
Code Cleaner
Running tasks in parallel while taking into account the dependencies between them
4 Jun 2017
Puresharper
How to generate basic swagger yaml description for WCF automatically on build time with Swagger4WCF .NET 4.0+
5 Jun 2017
Puresharper
In many cases, it is important to know if performance of third party library or own code is efficient or not.
26 Apr 2018
Mason Kuck
I walk you through how to make use Table-valued parameters with one value
21 Jun 2017
M.M.Mohseni
In this sample code, we are going to upload a file via a web method asynchronously.
13 Jun 2017
JeffLan
A responsive, JavaScript-enabled event-calendar using ASP.NET calendar control
20 Jun 2017
Phil J Pearson
A C# class to implement a Pan and Tilt controller using ONVIF
26 Jun 2017
Anton Angelov
Find how to create more refined and more maintainable page objects in WebDriver. These page objects will follow the Single Responsibility Principle more closely.
7 Jun 2017
Hack~ok
This article illustrate how to execute JavaScript on Android using Xamarin.Forms.
6 Jun 2017
Nick Tziamihas
In this article, we show how you can execute asynchronous code on the main thread without async, by replicating Unity's coroutine framework.
19 Jun 2017
Alexander Sharykin
LibraryCommander is a personal desktop application to manage my texts (e-book) collection, classify and search them by categories and tags.
29 Sep 2017
Kannan Ar
Implement an online HTML to Word converter using CKEditor and MariGold.OpenXHTML
15 Jun 2017
Nishant Shrivastava
This article explains how to date validation format in dd/mm/yyyy and check this value with other form attribute by writing custom validator in ASP.NET MVC
2 Feb 2018
Private Dobbs
How to initialise a database and then automatically keep it up to date with version releases
19 Jun 2017
David Fine
Using Attached DependencyProperty to prevent closing of Popup embedded in ToggleButton
22 Jun 2017
Kurt Swendson
How to make the migrations to change data type
11 Jul 2017
Doug Duerner, Yeon-Chang Wang
In this article we explored a theory; would it be better to not utilize a heap construct when dealing with very large objects in .NET, in order to avoid Large Object Heap (LOH) fragmentation?
30 Jun 2017
Adam O'Neil (Travelers Rest, SC)
A new alternative to CRUD data binding in WinForms
25 Jun 2017
mrOneness
Describes how to integrate Stripe payments into a .NET webforms application
14 Jun 2017
Robin Rodricks
.NET core/.NET standard is the latest incarnation of the .NET platform. This tutorial introduces you to this new world, and gives you practical advice to successfully port your .NET Framework library to .NET Core.
7 Feb 2019
pdoxtader
AbstractTcpLib: A TCP library that features asynchronous socket programming, concurrent file transfers per client, AES256 Encryption, LDAP Authentication, Client / Server communication, Peer to Peer communication, Object serialization and raw byte communication in one library for C# & VB.NET
5 Jun 2017
R. Giskard Reventlov
How to add a super simple file based image gallery to your ASP.NET MVC application
9 Jun 2017
Jeremy Madden
An attempt to introduce some Functional Programming concepts into an OOP domain.
1 Oct 2018
Howard 9448490
Creating a reusable editor for C# Applications using the RichTextBox Control
22 Jun 2017
Mustafa Kok
Associating and opening a specific file format with a single instance of a WinForms application.
29 Jun 2017
Shashangka Shekhar
In this post, we are going to explore how to debug client side script in Visual Studio 2017 using Chrome and how to disable it.
11 Dec 2017
Fabrice Lacharme
Yet another slider/trackbar in C#
6 Jun 2017
Akhil Mittal
In this article, we’ll continue to explore the importance of statuscodes and practical examples as well. We’ll also explore resource creation andreturning the child resources as well.
17 Jun 2017
Yaseer Mumtaz
In this article, we will convert our Angular 2 application to Angular 4 and replace the traditional HTML & third-party components with Angular Material components.
25 Jun 2017
Michael Bookatz
The aim of this article is to introduce the area of cloud services from the Microsoft Azure platform
24 Sep 2017
Ioannis Tsepas
A clarification of property-changed interface and where/when to be implemented.
25 Jun 2017
Adam O'Neil (Travelers Rest, SC)
Walkthrough on using AoTestDataGen library in a plausible scenario
8 Jun 2017
Michael Breeden
How to make a self length limiting log file
4 Jun 2017
Puresharper
Postbuild is commonly used to update configuration file, rewrite MSIL, generate additional code, prepare deployment and many other things. The ability to manage it easily can be important to industrialize it.
22 Jun 2017
gggustafson
This article presents an OpenFileDialog for the Web
6 Jun 2017
Mehdi Gholam
File locking in a multi threaded environment
18 Jun 2017
wim4you
DeskTopCircles, hands-on experiment to Organise/Launch a larger number of items in a tabbed circular 2D canvas. Resize thumbs when dragging.
21 Jun 2017
Markus Koppensteiner
The article demonstrates how to use commands of the Emgu CV library to perform face recognition, frame subtraction, and dense optical flow.
21 Jun 2017
Dankwansere
How to insert an image into an "inline shape" in Word Document using Microsoft Open XML SDK
15 Jun 2017
Ordiales
Create default interface implementation or whatever you want with runtime checking not implemented members
3 Jun 2017
Puresharper
There are a lot of articles that explain how to use custom attributes, but it is not always obvious whether this is a good practice or on the contrary a design error that can be expensive
8 Jun 2017
Clifford Nelson
The DatePicker, in my mind, is a partial fix to many of the problems with a simple TextBox date entry. How would you like to be able to type “66” in a text box that takes a date and have it interpret it as “June 6th”? Or enter “FR” and have it interpreted as the previous Friday. Or enter “thanks” an
19 Jun 2017
George Swan
An introduction to the Reservoir Sampling of Data Streams.

Current Participants

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

R. Giskard Reventlov
Founder
United States United States
No Biography provided
Akhil Mittal
Architect https://codeteddy.com/
India India
Akhil Mittal is a Microsoft MVP(Most Valuable Professional), C# Corner MVP, Codeproject MVP, a blogger, author and likes to write/read technical articles. Akhil has an experience of around 12 years in developing, designing, architecting enterprises level applications primarily in Microsoft Technologies. Akhil enjoys working on technologies like MVC, Web API, Entity Framework, Angular, C# and BlockChain. Akhil is an MCP( Microsoft Certified Professional) in Web Applications (MCTS-70-528, MCTS-70-515) and .Net Framework 2.0 (MCTS-70-536). Visit Akhil Mittal’s personal blog CodeTeddy for some good and informative articles.
LinkedIn: https://www.linkedin.com/in/akhilmittal/
Group type: Collaborative Group

759 members

Adam O'Neil (Travelers Rest, SC)
Software Developer
United States United States
I'm into C#, SQL Server, and MVC. I also love cycling, but I'm really slow these days.
Anton Angelov
CEO Automate The Planet
Bulgaria Bulgaria
Anton Angelov is an IT Consultant and Quality Assurance Architect at Innovative Lab. He is passionate about automation testing and designing test harness and tools, having the best industry development practices in mind. In addition, he is an active blogger and the founder of Automate The Planet. He strives to make the site one of the leading authorities in Automation Testing by presenting compelling articles, inspiring ardent discussions amongst the community. He is also one of the most-rated-answer authors of questions about Test Automation Frameworks (WebDriver) on Stack Overflow.
Clifford Nelson
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.
Code Cleaner
Israel Israel
No Biography provided
Dankwansere
Canada Canada
No Biography provided
David Fine
Israel Israel
No Biography provided
Doug Duerner
United States United States
Doug Duerner is a senior software engineer with more than 15 years designing and implementing large-scale systems with Microsoft technologies. He has worked for several Fortune 500 banking institutions and for a commercial software company that designed and built the large-scale distributed network management system used by the Department of Defense’s Defense Information Systems Agency (DISA) for its “Global Information Grid” and the Department of State (DoS). He is a geek at heart, focusing on all aspects, but enjoys the most complex and challenging technical hurdles, especially those that everyone says “can’t be done.”
Dr. Song Li
United States United States
I have been working in the IT industry for some time. It is still exciting and I am still learning. I am a happy and honest person, and I want to be your friend.
Fabrice Lacharme
Architect
France France
Architect/engineer
George Swan
Student
Wales Wales
No Biography provided
gggustafson
Software Developer (Senior)
United States United States
I started programming more than 42 years ago using AutoCoder and RPG (note no suffixing numbers). Programs and data were entered using punched cards. Turnaround between submitting a job for compilation and execution was about 3 hours. So much for the "good old days!" Today, I particularly enjoy programming real-time software. I consider myself capable in WinForms, Mobile Apps, and C# although there are occasions that I yearn to return to C and the Win32 API.
Hack~ok
United States United States
No Biography provided
Henrique Dal Bello
Software Developer Tech.Fit Apps
Brazil Brazil
No Biography provided
Howard 9448490
United States United States
I am a retired MD who enjoys programming.
Ioannis Tsepas
Software Developer
Greece Greece
No Biography provided
JeffLan
Web Developer
United States United States
I am the senior developer of a mid-sized company with clients and customers in North America and Europe.
Jeremy Madden
Software Developer
United States United States
I started my dev career writing in a custom port of PL/1 for 4 years.

Now I'm an enterprise C# developer in Portland, OR.

I think I'll stick with C#.
Kannan Ar
Software Developer (Senior) self employed
India India
No Biography provided
Kurt Swendson
Software Developer (Senior) Ellie Mae
United States United States
No Biography provided
Livio Francescucci
Architect EF Education First
Switzerland Switzerland
I'm a software engineer, passionate about software development since I was 8yrs old.
I (almost) always worked with Microsoft technologies: from C++, VB and classic ASP, in the early 2thousands I moved to .NET Technologies...
My best expertise is about C# development on Web & Windows platforms, software architectures and design / testing patterns.
M.M.Mohseni
Software Developer (Senior)
Sweden Sweden
Mehdi Mohseni is a Software senior developer in Future Covenant (www.futurecovenant.com), Mehdi has a deep experience in N-Tier software applications as well as MVC design pattern. Henry has led more than 100 Asp.Net C# or VB.Net Automation applications. His latest project is an EHR (Electronic Health Record) based on Asp.Net C# Application, ADO.Net Entity Framework 5.0 and 3 layer architecture.
Marc Clifton
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.
I try to be a behavioral scientist who uses his programming 'skills' to solve problems arising in the field of nonverbal communication.
Mason Kuck
Software Developer
United States United States
I am a .Net developer who mainly focuses on C# WPF/ASP.Net MVC
Mehdi Gholam
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)
Michael Bookatz
Software Developer (Senior) FTSE russell
United Kingdom United Kingdom
Software Engineer who started coding when I was 5. Core focus is to meet clients real business needs through initial consultation, followed by a communicative and collaborative approach. Delivers applications using C# .net and MS SQL Server. Comfortable working independently, in a team, or mentoring to meets deadlines irrelevant of pressure.

Currently interested in cloud computing with a focus on Microsoft Azure
Michael Breeden
Software Developer (Senior) Magellan Health Services
United States United States
No Biography provided
mrOneness
United Kingdom United Kingdom
No Biography provided
Mustafa Kok
Software Developer (Senior) Freelance
Sweden Sweden
Experienced senior C# developer, sometimes codes in Java and C++ also. He designs and codes desktop applications (WinForms, WPF), windows services and Web APIs (WCF, ASP.Net MVC). He is currently improving his ASP.Net MVC and JavaScript capabilities. He acts as an architect, coder and trainer.
He is mostly experienced in Media Asset Management (MAM) applications, broadcasting sector and medical applications.

LinkedIn: www.linkedin.com/in/mustafa-kok-75352944/
GitHub: github.com/nthdeveloper
StackOverflow: stackoverflow.com/users/1844220/nthdeveloper
Nick Tziamihas
Software Developer (Senior) CREAT3D Productions
Greece Greece
Former Lead Programmer, CEO and Project Manager at InsurgentX Entertainment Ltd.

Current CO-Founder, Project Manager and Lead Programmer at CREAT3D Productions, developing the PC video game Stellar Codex.

More than 10 years of experience in programming on various languages, like C#, VB.Net, PHP, Javascript, C, C++, Objective-C, etc.

Lecturer and part time tutor on Software development.

Extensive experience in Networking, and specialist on Artificial Intelligence.
Nishant Shrivastava
Software Developer
Australia Australia
Software developer having 10+ year of experience working in Microsoft Technologies.
Ordiales
Software Developer (Senior)
Spain Spain
No Biography provided
pdoxtader
President Doxtader Industries LLC
United States United States
I've been in IT for the last 20 years in one capacity or another - always as either a network engineer or a developer... or both. At the moment I have an IT consultancy in Long Island, NY offering software development and network engineer services.
Phil J Pearson
Software Developer (Senior)
England England
Started my career as an electronics engineer.

Started software development in 4004 assembler.

Progressed to 8080, Z80 and 6802 assembler in the days when you built your own computer from discrete components.

Dabbled in Macro-11 and Coral66 by way of a small digression.

Moved on to C, first on Z80s and then on PCs when they were invented.

Continued to C++ and then C#

Now working mostly in C# and XAML while maintaining about half a million lines of C++
Private Dobbs
Software Developer (Senior)
United Kingdom United Kingdom
No Biography provided
Puresharper
Architect
France France
After working in electronics, I fall in love with software development which is a real passion for me, particulary architecture concerns for productivity.
Qwertie
Software Developer None
Canada Canada
Since I started programming when I was 11, I wrote the SNES emulator "SNEqr", the FastNav mapping component, the Enhanced C# programming language (in progress), the parser generator LLLPG, and LES, a syntax to help you start building programming languages, DSLs or build systems.

My overall focus is on the Language of your choice (Loyc) initiative, which is about investigating ways to improve interoperability between programming languages and putting more power in the hands of developers. I'm also seeking employment.
No Biography provided
Shashangka Shekhar
Technical Lead Royal Green Ltd
Bangladesh Bangladesh
Hi, I am Shashangka Shekhar,

Working with Microsoft Technologies. Since March 2011, it was my first step to working with Microsoft Technologies, achieved bachelor’s degree on Computer Science from State University of Bangladesh(Dhaka). Have 7+ years of professional experience, currently working as Development Lead at Royal Green Ltd.

I believe in desire of learning & also love to be a part of .Net Community by sharing knowledge’s.
Vadim Loboda
Russian Federation Russian Federation
"It is best to erase all personal history, because that would make us free from the encumbering thoughts of other people."

Journey to Ixtlan by Carlos Castaneda
wim4you
Netherlands Netherlands
Retired hobby programmer.
Yaseer Mumtaz
Software Developer (Senior)
United States United States
A senior software engineer with more than thirteen years of experience in application development. I mostly work in .NET, Angular, MEAN stack technologies and love to share what I do and learn during my day to day job. Please check my tutorials and blog:
https://fullstackhub.io
https://fullstackhubblog.com

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 Jun - 30 Jun 2017