Click here to Skip to main content
15,220,398 members

Articles by Paulo Zemek (Articles: 74, Technical Blogs: 14, Tip/Tricks: 8)

Articles: 74, Technical Blogs: 14, Tip/Tricks: 8

RSS Feed

Average article rating: 4.80

Edit Controls
General
Posted: 7 Oct 2009   Updated: 7 Oct 2009   Views: 23,010   Rating: 4.25/5    Votes: 6   Popularity: 3.31
Licence: The Code Project Open License (CPOL)      Bookmarked: 10   Downloaded: 617
Really easy to use framework capable of generating the right controls dynamically for each data type.
Miscellaneous
General
Posted: 5 Aug 2011   Updated: 5 Aug 2011   Views: 27,321   Rating: 4.79/5    Votes: 14   Popularity: 5.49
Licence: The Code Project Open License (CPOL)      Bookmarked: 22   Downloaded: 0
This article will talk about the yield return keyword, will talk about an alternative and will talk about the theory of a better yield return;
Caching
General
Posted: 7 Oct 2009   Updated: 10 May 2010   Views: 36,280   Rating: 4.85/5    Votes: 13   Popularity: 5.23
Licence: The Code Project Open License (CPOL)      Bookmarked: 25   Downloaded: 234
Framework for caching data that includes the possibility to store ViewStates in files, reutilizing identical files as an way to avoid too much HD usage
HTML / CSS
General
Posted: 14 Jan 2014   Updated: 20 Jan 2014   Views: 20,180   Rating: 4.86/5    Votes: 20   Popularity: 6.32
Licence: The Code Project Open License (CPOL)      Bookmarked: 22   Downloaded: 469
A fluent library for interactive animations in JavaScript
Web Security
Security
Posted: 13 Nov 2015   Updated: 13 Nov 2015   Views: 9,470   Rating: 4.49/5    Votes: 12   Popularity: 4.83
Licence: The Code Project Open License (CPOL)      Bookmarked: 13   Downloaded: 0
Lately I am dealing a lot with security issues and, as I am thinking about security all the time, I decided to write this post. Yet, don't expect me to talk about the newest cases.So, first, what is considered a security issue?I don't have a perfect answer but maybe we can say that if anything in an
Database
ADO.NET
Posted: 11 Apr 2013   Updated: 5 May 2013   Views: 46,880   Rating: 4.99/5    Votes: 27   Popularity: 7.06
Licence: The Code Project Open License (CPOL)      Bookmarked: 95   Downloaded: 1,133
This library is intended to "replace" ADO.NET by solving type mismatches and by creating typed readers that are faster and easier to use than DataTables.
Posted: 2 Feb 2014   Updated: 23 Feb 2014   Views: 39,930   Rating: 4.93/5    Votes: 31   Popularity: 7.35
Licence: The Code Project Open License (CPOL)      Bookmarked: 63   Downloaded: 1,826
Generate DataReaders at run-time and get the best performance by avoiding repetitive code and by using the database's most appropriate Get methods.
General
Posted: 25 Sep 2009   Updated: 25 Sep 2009   Views: 27,560   Rating: 4.40/5    Votes: 7   Popularity: 3.72
Licence: The Code Project Open License (CPOL)      Bookmarked: 16   Downloaded: 150
An easy to use framework with multi-tier, user types, and LINQ support.
General Graphics
Bitmaps
Posted: 24 Jan 2010   Updated: 24 Jan 2010   Views: 28,350   Rating: 4.78/5    Votes: 13   Popularity: 4.98
Licence: The Code Project Open License (CPOL)      Bookmarked: 29   Downloaded: 608
This article presents classes that represent bitmaps in full managed code.
Posted: 9 Feb 2010   Updated: 19 Mar 2010   Views: 44,890   Rating: 4.77/5    Votes: 17   Popularity: 5.61
Licence: The Code Project Open License (CPOL)      Bookmarked: 36   Downloaded: 933
This article presents classes that represent bitmaps in full managed code.
Posted: 1 Feb 2013   Updated: 6 Feb 2013   Views: 30,660   Rating: 4.96/5    Votes: 21   Popularity: 6.45
Licence: The Code Project Open License (CPOL)      Bookmarked: 33   Downloaded: 701
Learn how to create your own animation format, capable of doing basic compression.
C / C++ Language
General
Posted: 17 Apr 2014   Updated: 13 May 2014   Views: 105,371   Rating: 4.90/5    Votes: 38   Popularity: 7.74
Licence: The Code Project Open License (CPOL)      Bookmarked: 55   Downloaded: 1,839
This article presents a .NET like Dictionary implemented in C++, which has better performance and consumes less memory than the STL's unordered_map class.
Memory Management
Posted: 19 Mar 2014   Updated: 21 Apr 2014   Views: 106,902   Rating: 4.76/5    Votes: 41   Popularity: 7.57
Licence: The Code Project Open License (CPOL)      Bookmarked: 81   Downloaded: 1,434
A C++ memory/object pool that's always O(1) for allocations and deallocations.
C#
Delegates and Events
Posted: 8 Apr 2009   Updated: 8 Apr 2009   Views: 30,980   Rating: 3.47/5    Votes: 9   Popularity: 3.31
Licence: The Code Project Open License (CPOL)      Bookmarked: 14   Downloaded: 255
This article shows how to use WeakDelegateSet class to create weak events. With weak events, objects can register themselves in events, but are allowed to be collected if the only references for them are such events.
Posted: 1 Oct 2012   Updated: 17 Jan 2014   Views: 121,481   Rating: 4.91/5    Votes: 68   Popularity: 8.96
Licence: The Code Project Open License (CPOL)      Bookmarked: 178   Downloaded: 1,211
This article explores the advantages and disadvantages of interfaces that can be used to replace delegates, considering performance, ease of use and versatility.
General
Posted: 13 Oct 2009   Updated: 13 Oct 2009   Views: 31,170   Rating: 4.80/5    Votes: 12   Popularity: 4.80
Licence: The Code Project Open License (CPOL)      Bookmarked: 22   Downloaded: 0
This article shows the differences of WeakReferences and GCHandles and how to implement a WeakArray.
Posted: 27 Nov 2009   Updated: 6 Mar 2010   Views: 79,340   Rating: 4.57/5    Votes: 34   Popularity: 6.94
Licence: The Code Project Open License (CPOL)      Bookmarked: 33   Downloaded: 124
This article shows why not even the "using" keyword is a failsafe mechanism
Posted: 27 Mar 2010   Updated: 27 Mar 2010   Views: 30,710   Rating: 4.73/5    Votes: 4   Popularity: 2.85
Licence: The Code Project Open License (CPOL)      Bookmarked: 12   Downloaded: 254
This article explains how to create a weak list (a list that allows items to be collected by the GC)
Posted: 28 Oct 2010   Updated: 4 Nov 2010   Views: 46,200   Rating: 5.00/5    Votes: 9   Popularity: 4.77
Licence: The Code Project Open License (CPOL)      Bookmarked: 30   Downloaded: 496
Using structural-typing and duck-typing in .NET via interfaces
Posted: 1 Dec 2011   Updated: 1 Dec 2011   Views: 22,070   Rating: 4.96/5    Votes: 10   Popularity: 4.96
Licence: The Code Project Open License (CPOL)      Bookmarked: 27   Downloaded: 382
This article will present two alternatives to Lazy.
Posted: 17 Sep 2012   Updated: 20 Sep 2012   Views: 30,202   Rating: 4.96/5    Votes: 16   Popularity: 5.98
Licence: The Code Project Open License (CPOL)      Bookmarked: 36   Downloaded: 336
This article explains how to create a class that can handle any kind of data-type conversion by allowing users to register their own conversions and how to make it work both as a global and also as a local solution, so different threads can do different conversions for the same data-types.
Posted: 16 Aug 2012   Updated: 9 Nov 2012   Views: 53,360   Rating: 4.92/5    Votes: 13   Popularity: 4.92
Licence: The Code Project Open License (CPOL)      Bookmarked: 24   Downloaded: 205
This article explains how attributes can violate the single responsibility principle and presents some ideas to avoid the problem.
Posted: 14 May 2013   Updated: 14 May 2013   Views: 22,090   Rating: 5.00/5    Votes: 9   Popularity: 4.77
Licence: The Code Project Open License (CPOL)      Bookmarked: 16   Downloaded: 151
Create data structures that implement the right Clone To Modify Pattern the easy way.
Posted: 25 Oct 2012   Updated: 7 Nov 2013   Views: 52,060   Rating: 4.76/5    Votes: 27   Popularity: 6.57
Licence: The Code Project Open License (CPOL)      Bookmarked: 86   Downloaded: 0
Understand things like OOP, AOP, Loose-coupling, Class Inheritance, Interface Implementation, Open-Closed Principle and others.
Posted: 7 Jun 2013   Updated: 12 Dec 2013   Views: 91,030   Rating: 5.00/5    Votes: 76   Popularity: 9.31
Licence: The Apache License, Version 2.0      Bookmarked: 128   Downloaded: 795
Create methods and types at run-time using an easy and fluent API.
Posted: 18 Dec 2013   Updated: 31 Dec 2013   Views: 26,270   Rating: 4.58/5    Votes: 20   Popularity: 5.75
Licence: The Code Project Open License (CPOL)      Bookmarked: 17   Downloaded: 0
This article explains why the dynamic keyword is not as useful as it should be.
Posted: 27 Sep 2012   Updated: 14 Jan 2015   Views: 30,600   Rating: 4.80/5    Votes: 25   Popularity: 6.70
Licence: The Code Project Open License (CPOL)      Bookmarked: 45   Downloaded: 0
Understand how to create fully configurable frameworks that let your application evolve without creating bottlenecks.
Posted: 8 Jul 2016   Updated: 11 Jul 2016   Views: 15,200   Rating: 5.00/5    Votes: 26   Popularity: 7.07
Licence: The Code Project Open License (CPOL)      Bookmarked: 21   Downloaded: 0
Posted: 3 Nov 2016   Updated: 8 Nov 2016   Views: 13,390   Rating: 4.93/5    Votes: 29   Popularity: 7.21
Licence: The Code Project Open License (CPOL)      Bookmarked: 29   Downloaded: 214
This article presents the PropertyPathObserver class, which allows for faster bindings and more.
Generics
Posted: 18 Feb 2013   Updated: 30 May 2014   Views: 151,134   Rating: 4.98/5    Votes: 57   Popularity: 8.67
Licence: The Code Project Open License (CPOL)      Bookmarked: 94   Downloaded: 1,807
In this article we'll see the differences between using Dictionaries with locking versus the ConcurrentDictionary and also why you should still need or prefer a normal Dictionary (or a home made implementation).
How To
Posted: 28 Feb 2012   Updated: 28 Feb 2012   Views: 16,400   Rating: 5.00/5    Votes: 4   Popularity: 3.01
Licence: The Code Project Open License (CPOL)      Bookmarked: 15   Downloaded: 196
This article presents classes to build new types at run-time without requiring users to understand IL instructions.
Memory Management
Posted: 7 Apr 2009   Updated: 10 Apr 2009   Views: 38,760   Rating: 4.50/5    Votes: 3   Popularity: 2.15
Licence: The Code Project Open License (CPOL)      Bookmarked: 22   Downloaded: 452
This article shows that weak references are a good caching mechanism if used with a KeepAlive structure in mind for recently used objects.
Posted: 6 Oct 2013   Updated: 13 Oct 2013   Views: 123,910   Rating: 4.89/5    Votes: 62   Popularity: 8.70
Licence: The Code Project Open License (CPOL)      Bookmarked: 88   Downloaded: 0
Understand what is a weak reference and how it can help you in caching scenarios or to avoid memory leaks.
Reflection
Posted: 29 Jun 2012   Updated: 6 Aug 2012   Views: 56,240   Rating: 4.93/5    Votes: 31   Popularity: 7.36
Licence: The Code Project Open License (CPOL)      Bookmarked: 78   Downloaded: 1,979
This class makes getting MemberInfos easy, without the use of magic strings (so it is refactoring friendly) and also allows you to create delegates to do fast accesses to those items, much faster than the normal Invoke, GetValue or SetValue methods.
.NET Framework
General
Posted: 22 Apr 2013   Updated: 22 Apr 2013   Views: 18,530   Rating: 5.00/5    Votes: 6   Popularity: 3.89
Licence: The Code Project Open License (CPOL)      Bookmarked: 11   Downloaded: 158
This article presents a class that allows volatile reads and writes as they are expected to work.
Posted: 27 Feb 2015   Updated: 3 Mar 2015   Views: 20,610   Rating: 4.77/5    Votes: 11   Popularity: 4.96
Licence: The Code Project Open License (CPOL)      Bookmarked: 23   Downloaded: 385
Presenting three expandable frameworks built as Portable Class Libraries.
Posted: 29 Apr 2020   Updated: 29 Apr 2020   Views: 9,580   Rating: 4.66/5    Votes: 17   Popularity: 5.48
Licence: The Code Project Open License (CPOL)      Bookmarked: 16   Downloaded: 0
SafeHandles came to solve the problem, but the MSDN documentation on them is also broken.
How To
Posted: 9 Nov 2011   Updated: 27 Feb 2014   Views: 150,851   Rating: 4.97/5    Votes: 106   Popularity: 10.07
Licence: The Code Project Open License (CPOL)      Bookmarked: 230   Downloaded: 3,999
A tutorial explaining how to create a Virtual Machine and a Compiler for such virtual machine
Libraries
General
Posted: 5 Feb 2020   Updated: 5 Feb 2020   Views: 5,470   Rating: 4.68/5    Votes: 10   Popularity: 4.47
Licence: The Code Project Open License (CPOL)      Bookmarked: 2   Downloaded: 0
What is a non-intrusive framework and whether it is really possible for a framework to be non-intrusive
Universal Windows Platform and Windows Runtime
Howto
Posted: 10 Nov 2016   Updated: 10 Nov 2016   Views: 6,440   Rating: 5.00/5    Votes: 4   Popularity: 3.01
Licence: The Code Project Open License (CPOL)      Bookmarked: 5   Downloaded: 0
Small tip on how to use WriteableBitmap for Universal Apps in C#
Windows Presentation Foundation
Applications
Posted: 2 Aug 2011   Updated: 16 Mar 2012   Views: 160,702   Rating: 4.93/5    Votes: 130   Popularity: 10.40
Licence: The Code Project Open License (CPOL)      Bookmarked: 245   Downloaded: 16,552
This article will explain some concepts of game development and how to apply and adapt them for multiplayer development.
Controls
Posted: 17 Apr 2010   Updated: 20 Apr 2010   Views: 33,990   Rating: 4.25/5    Votes: 7   Popularity: 3.59
Licence: The Code Project Open License (CPOL)      Bookmarked: 16   Downloaded: 395
This article explains some advantages and disadvantages of factories, and shows one to use for generating WPF Controls.
Data Binding
Posted: 11 Sep 2014   Updated: 22 Jun 2016   Views: 40,680   Rating: 4.99/5    Votes: 44   Popularity: 8.19
Licence: The Code Project Open License (CPOL)      Bookmarked: 58   Downloaded: 882
Learn how to create a math expression compiler and a special WPF markup extension capable of using it to generate bindings.
General
Posted: 20 Apr 2012   Updated: 10 May 2013   Views: 45,220   Rating: 4.91/5    Votes: 31   Popularity: 7.32
Licence: The Code Project Open License (CPOL)      Bookmarked: 55   Downloaded: 2,639
This article presents a class to manage enumerator based animations in WPF that can deal with different framerated animations independent of the hardware framerate
Libraries
Posted: 1 Nov 2012   Updated: 5 Nov 2012   Views: 18,500   Rating: 5.00/5    Votes: 8   Popularity: 4.52
Licence: The Code Project Open License (CPOL)      Bookmarked: 15   Downloaded: 250
Extend your objects at run-time and create really loosely-coupled applications.
Algorithms & Recipes
Algorithms
Posted: 11 Feb 2014   Updated: 3 Feb 2018   Views: 34,090   Rating: 4.90/5    Votes: 33   Popularity: 7.44
Licence: The Code Project Open License (CPOL)      Bookmarked: 34   Downloaded: 393
A dictionary implementation optimized for caches and the GetOrCreateValue method, supporting real parallelism while reading and avoiding some problems encountered in the ConcurrentDictionary
Evolutional
Posted: 6 Jun 2014   Updated: 12 Jun 2014   Views: 41,931   Rating: 4.94/5    Votes: 32   Popularity: 7.44
Licence: The Code Project Open License (CPOL)      Bookmarked: 81   Downloaded: 982
This article presents a very small evolutionary algorithm capable of discovering some math expressions to give the results for the values you provide.
Posted: 3 Jul 2014   Updated: 14 Dec 2015   Views: 153,270   Rating: 4.88/5    Votes: 99   Popularity: 9.70
Licence: The Code Project Open License (CPOL)      Bookmarked: 179   Downloaded: 10,874
This article presents a Genetic Algorithm that searches for the shortest path to visit many places and return to the original one.
Collections
General
Posted: 17 Mar 2013   Updated: 29 Mar 2013   Views: 44,800   Rating: 4.97/5    Votes: 23   Popularity: 6.77
Licence: The Code Project Open License (CPOL)      Bookmarked: 69   Downloaded: 1,415
This article presents a library that allows you to index large collections of objects by different keys in memory or disk and also explains how it was created.
Posted: 24 Oct 2013   Updated: 25 Oct 2013   Views: 49,471   Rating: 4.87/5    Votes: 33   Popularity: 7.33
Licence: The Code Project Open License (CPOL)      Bookmarked: 46   Downloaded: 0
This is a basic article explaining the Dictionary class in .NET.
Posted: 2 Mar 2014   Updated: 5 Mar 2014   Views: 22,600   Rating: 4.94/5    Votes: 13   Popularity: 5.50
Licence: The Code Project Open License (CPOL)      Bookmarked: 21   Downloaded: 179
This article presents two collections optimized for good memory consumption and for inserts at the end, being always O(1). The AddCollection can also create immutable views without creating copies of the data.
Posted: 28 Mar 2018   Updated: 28 Mar 2018   Views: 9,260   Rating: 4.97/5    Votes: 18   Popularity: 6.12
Licence: The Code Project Open License (CPOL)      Bookmarked: 15   Downloaded: 108
A beginner article about how to write a simple list class in C# and in C++
Cryptography & Security
Cryptography
Posted: 24 Oct 2009   Updated: 24 Oct 2009   Views: 59,940   Rating: 4.93/5    Votes: 29   Popularity: 7.21
Licence: The Code Project Open License (CPOL)      Bookmarked: 73   Downloaded: 1,027
The article explains how to create a secure stream that uses asymmetric cryptography to connect and symmetric cryptography to continue without the need for SSL or Certificates
Game Development
Games
Posted: 8 Aug 2013   Updated: 18 Jun 2016   Views: 81,641   Rating: 4.96/5    Votes: 84   Popularity: 9.55
Licence: The Apache License, Version 2.0      Bookmarked: 112   Downloaded: 4,531
Create animations easily using a Fluent API that integrates well with frame-based animation segments.
General
Posted: 1 Nov 2013   Updated: 6 Nov 2013   Views: 55,640   Rating: 4.99/5    Votes: 73   Popularity: 9.30
Licence: The Code Project Open License (CPOL)      Bookmarked: 107   Downloaded: 0
This is a small tutorial on how to create a Shoot'em Up game in .NET using mostly declarative animations.
Internet / Network
Remoting
Posted: 29 Oct 2009   Updated: 29 Oct 2009   Views: 23,610   Rating: 4.56/5    Votes: 8   Popularity: 4.12
Licence: The Code Project Open License (CPOL)      Bookmarked: 16   Downloaded: 585
This article explains the concept of a stateful remoting framework capable of doing the remoting of any object by interface, and how to use the classes.
Posted: 17 Dec 2009   Updated: 12 Mar 2010   Views: 80,880   Rating: 4.94/5    Votes: 16   Popularity: 5.95
Licence: The Code Project Open License (CPOL)      Bookmarked: 70   Downloaded: 7,325
This article will explain how to create a simple chat program using this remoting technology, which supports web-cam and sending files.
Threads, Processes & IPC
Multi-threading
Posted: 13 Apr 2012   Updated: 13 Apr 2012   Views: 19,690   Rating: 2.92/5    Votes: 6   Popularity: 2.27
Licence: The Code Project Open License (CPOL)      Bookmarked: 14   Downloaded: 0
This article explains how multi-threading could be better in a conceptual level
Threading
Posted: 9 Feb 2011   Updated: 15 Feb 2011   Views: 44,350   Rating: 4.83/5    Votes: 30   Popularity: 7.13
Licence: The Code Project Open License (CPOL)      Bookmarked: 48   Downloaded: 200
How to detect if a thread is in a problematic situation before calling Abort
Posted: 30 Mar 2012   Updated: 11 Apr 2012   Views: 132,667   Rating: 4.85/5    Votes: 33   Popularity: 7.23
Licence: The Code Project Open License (CPOL)      Bookmarked: 66   Downloaded: 1,129
This article will explain how the async/await pair really works and why it could be better if real cooperative threading was used instead.
Threads
Posted: 23 Aug 2011   Updated: 30 May 2014   Views: 84,060   Rating: 4.83/5    Votes: 28   Popularity: 6.91
Licence: The Code Project Open License (CPOL)      Bookmarked: 83   Downloaded: 1,079
Using only Managed Resources to create Thread Synchronization
Design and Architecture
Data Structures
Posted: 2 Aug 2014   Updated: 1 Sep 2014   Views: 82,510   Rating: 4.89/5    Votes: 43   Popularity: 7.94
Licence: The Code Project Open License (CPOL)      Bookmarked: 84   Downloaded: 631
There's a popular book that presents Data Structures tied to procedural code. Well, this article is all about using Data Structures in Object Oriented Programming.
Design and Strategy
Posted: 5 May 2013   Updated: 17 May 2013   Views: 25,050   Rating: 4.69/5    Votes: 8   Popularity: 4.24
Licence: The Code Project Open License (CPOL)      Bookmarked: 22   Downloaded: 0
This article presents a pattern to create immutable objects, which have thread-safe guarantee among others, and which also support modifications through clonning, yet avoiding excessive intermediate clones.
Posted: 24 May 2013   Updated: 26 May 2013   Views: 61,870   Rating: 4.94/5    Votes: 43   Popularity: 8.07
Licence: The Code Project Open License (CPOL)      Bookmarked: 36   Downloaded: 0
A view on the principle including possible solutions to the Rectangle/Square example, also explaining why it is not a good example for real programming situations and presenting a more realistic example that you may find while programming.
Design Patterns
Posted: 3 Jun 2014   Updated: 4 Jun 2014   Views: 13,020   Rating: 4.93/5    Votes: 9   Popularity: 4.71
Licence: The Code Project Open License (CPOL)      Bookmarked: 14   Downloaded: 56
This article talks about Distributable Observable POCOs and an MVVM-like design pattern built to take full advantage of them.
Frameworks
Posted: 11 Jan 2014   Updated: 30 May 2014   Views: 40,290   Rating: 4.95/5    Votes: 38   Popularity: 7.82
Licence: The Code Project Open License (CPOL)      Bookmarked: 68   Downloaded: 505
This article presents important architectural decisions that must be considered if you want to create a really expandable remoting framework and, well, those decisions may apply to any kind of framework.
General
Posted: 8 Jul 2011   Updated: 8 Jul 2011   Views: 20,680   Rating: 4.75/5    Votes: 5   Popularity: 3.32
Licence: The Code Project Open License (CPOL)      Bookmarked: 18   Downloaded: 263
This article gives a little presentation of Control Templates, Data Templates, Inversion of Control, and Factories, explaining why they are all related and how to better use them.
Posted: 4 Aug 2013   Updated: 4 Aug 2013   Views: 13,560   Rating: 5.00/5    Votes: 5   Popularity: 3.49
Licence: The Code Project Open License (CPOL)      Bookmarked: 3   Downloaded: 0
A possible polemic article on why easiness is not always good.
Posted: 10 Nov 2013   Updated: 12 Mar 2014   Views: 74,910   Rating: 4.94/5    Votes: 61   Popularity: 8.75
Licence: The Code Project Open License (CPOL)      Bookmarked: 164   Downloaded: 0
A discussion about architecture in the development of applications, also discussing home-made frameworks and why they can be good.
Posted: 2 Sep 2014   Updated: 18 Sep 2014   Views: 97,740   Rating: 4.95/5    Votes: 91   Popularity: 9.62
Licence: The Code Project Open License (CPOL)      Bookmarked: 165   Downloaded: 797
A deep explanation on when to use interfaces and abstract classes.
Posted: 5 Dec 2013   Updated: 16 Mar 2018   Views: 82,250   Rating: 4.93/5    Votes: 66   Popularity: 8.96
Licence: The Code Project Open License (CPOL)      Bookmarked: 105   Downloaded: 656
Learn how to create a very small (less than 3kb) yet very expandable IoC container.
Methodologies
Posted: 29 Mar 2014   Updated: 7 Apr 2014   Views: 88,871   Rating: 4.92/5    Votes: 53   Popularity: 8.48
Licence: The Code Project Open License (CPOL)      Bookmarked: 75   Downloaded: 0
This is a beginner's article that explains Object Oriented Programming (also known as OOP or OO programming) by my personal view and experience with it.
Testing and QA
General
Posted: 2 Jul 2013   Updated: 8 Jul 2014   Views: 38,111   Rating: 4.88/5    Votes: 36   Popularity: 7.60
Licence: The Code Project Open License (CPOL)      Bookmarked: 57   Downloaded: 0
Make your life easier by having components that never corrupt inner states.
Posted: 5 Jan 2020   Updated: 5 Jan 2020   Views: 4,550   Rating: 4.83/5    Votes: 11   Popularity: 4.61
Licence: The Code Project Open License (CPOL)      Bookmarked: 0   Downloaded: 0
I partially agree with the basic idea, but it fails when we need to deal with an issue no unit-test caught and the good developers and code-reviewers simply can't understand what's going on.

Average blogs rating: 4.86

Combo & List Boxes
Extending the List Control
Posted: 29 Jan 2015   Updated: 29 Jan 2015   Views: 11,690   Rating: 4.91/5    Votes: 12   Popularity: 5.30
Licence: The Code Project Open License (CPOL)      Bookmarked: 5   Downloaded: 0
A basic tutorial explaining how to create a List class.
C#
General
Posted: 6 Jan 2015   Updated: 6 Jan 2015   Views: 5,560   Rating: 4.67/5    Votes: 4   Popularity: 2.81
Licence: The Code Project Open License (CPOL)      Bookmarked: 2   Downloaded: 0
Shared states in method signatures
Memory Management
Posted: 17 Sep 2015   Updated: 17 Sep 2015   Views: 22,570   Rating: 4.79/5    Votes: 14   Popularity: 5.48
Licence: The Code Project Open License (CPOL)      Bookmarked: 10   Downloaded: 0
Simply put, the this variable is not a smart pointer.
Game Development
General
Posted: 10 Apr 2016   Updated: 12 Apr 2016   Views: 10,860   Rating: 4.54/5    Votes: 4   Popularity: 2.71
Licence: The Code Project Open License (CPOL)      Bookmarked: 8   Downloaded: 0
Infinite maps (for games or similar)
Design and Architecture
Application Design
Posted: 11 Nov 2014   Updated: 11 Nov 2014   Views: 12,760   Rating: 4.97/5    Votes: 15   Popularity: 5.84
Licence: The Code Project Open License (CPOL)      Bookmarked: 18   Downloaded: 0
Design and implementation mistakes - mostly .NET
Posted: 23 Mar 2015   Updated: 9 Apr 2015   Views: 81,992   Rating: 4.91/5    Votes: 48   Popularity: 8.26
Licence: The Code Project Open License (CPOL)      Bookmarked: 97   Downloaded: 0
In this post I present how the same application can be created if it is done without any architecture, with an architecture completely bound to a technology and its limitations and with an architecture that I consider to be "unbound" from technologies and their limitations.
Aspect Oriented Programming
Posted: 18 Nov 2014   Updated: 18 Nov 2014   Views: 7,140   Rating: 4.85/5    Votes: 4   Popularity: 2.92
Licence: The Code Project Open License (CPOL)      Bookmarked: 10   Downloaded: 0
Design and implementation mistakes - Part 2
Installation
General
Posted: 29 May 2015   Updated: 29 May 2015   Views: 4,840   Rating: 4.55/5    Votes: 7   Popularity: 3.84
Licence: The Code Project Open License (CPOL)      Bookmarked: 2   Downloaded: 0
Deployment, SOA and scalability
Work Issues
General
Posted: 18 Jun 2015   Updated: 23 Jun 2015   Views: 26,030   Rating: 4.88/5    Votes: 43   Popularity: 7.96
Licence: The Code Project Open License (CPOL)      Bookmarked: 27   Downloaded: 0
... but unfortunately they do, and those things go into production.
Uncategorised Technical Blogs
General
Posted: 27 Nov 2014   Updated: 28 Nov 2014   Views: 23,520   Rating: 4.97/5    Votes: 9   Popularity: 4.74
Licence: The Code Project Open License (CPOL)      Bookmarked: 6   Downloaded: 0
What if C# evolved differently?
Posted: 5 Dec 2014   Updated: 5 Dec 2014   Views: 7,130   Rating: 5.00/5    Votes: 2   Popularity: 1.51
Licence: The Code Project Open License (CPOL)      Bookmarked: 1   Downloaded: 0
JustificationWhen I finished the Contrained C# post I was talking about multi-threading and locks and I really wanted to write a new post about ideas on how to reduce multi-threading issues by adding more knowledge about shared states to the language itself.Unfortunately, it will not be this time.
Posted: 15 Dec 2014   Updated: 15 Dec 2014   Views: 10,930   Rating: 5.00/5    Votes: 2   Popularity: 1.51
Licence: The Code Project Open License (CPOL)      Bookmarked: 0   Downloaded: 0
Use of brackets
Reviews on Third Party Products and Tools
Community Reviews
Posted: 10 Feb 2015   Updated: 11 Feb 2015   Views: 12,200   Rating: 5.00/5    Votes: 9   Popularity: 4.77
Licence: The Code Project Open License (CPOL)      Bookmarked: 9   Downloaded: 0
A discussion about what is asynchronous execution, how it relates to threads and a brief analysis of its good and bad points.
Posted: 2 Jun 2015   Updated: 2 Jun 2015   Views: 3,780   Rating: 5.00/5    Votes: 2   Popularity: 1.51
Licence: The Code Project Open License (CPOL)      Bookmarked: 0   Downloaded: 0
Breaking changes and Unity

Average tips rating: 4.64

C#
General
Posted: 5 Sep 2011   Updated: 2 Oct 2011   Views: 15,750   Rating: 0.00/5    Votes: 0   Popularity: 0.00
Licence: The Code Project Open License (CPOL)      Bookmarked: 0   Downloaded: 0
I think the start is wrong... we can pass types as parameters.A method like this:void ShowName(Type type){ Console.WriteLine(type.FullName);}can be called as:ShowName(typeof(object));or as this:ShowName(someObject.GetType());If you are trying to say that we can't...
Reflection
Posted: 19 Feb 2013   Updated: 19 Feb 2013   Views: 12,040   Rating: 4.25/5    Votes: 3   Popularity: 2.03
Licence: The Code Project Open License (CPOL)      Bookmarked: 3   Downloaded: 0
Tired of casts when parsing enums? Do you need a faster alternative to Enum.Parse? So, try this.
Windows Presentation Foundation
Templates
Posted: 18 Aug 2014   Updated: 21 Aug 2014   Views: 17,900   Rating: 4.95/5    Votes: 10   Popularity: 4.95
Licence: The Code Project Open License (CPOL)      Bookmarked: 13   Downloaded: 216
Avoid generating strings as templates. Avoid the complicated FrameworkElementFactory. Create templates that use a delegate to create new instances, so you can use normal code to do the job.
Programming Tips
General
Posted: 8 Jul 2011   Updated: 9 Jul 2011   Views: 14,600   Rating: 5.00/5    Votes: 14   Popularity: 5.40
Licence: The Code Project Open License (CPOL)      Bookmarked: 4   Downloaded: 0
The easiest singleton pattern is the one you used to the lock object itself.Creating any variable as static readonly and initializing it directly (or via a static constructor) will already make it singleton.Also, considering that "lock" clears all the caches, you don't need to declare the...
Posted: 27 Oct 2011   Updated: 30 Oct 2011   Views: 8,810   Rating: 4.00/5    Votes: 4   Popularity: 2.41
Licence: The Code Project Open License (CPOL)      Bookmarked: 1   Downloaded: 0
The problem with alternative 3 and 4 is that it is not multi-threaded.Two threads may check for null, then the two will create the new instance. The race condition only happens at the first accesses. If a single thread accesses the object, then later many threads do the access, there is no...
Posted: 1 Nov 2011   Updated: 6 Nov 2011   Views: 12,280   Rating: 5.00/5    Votes: 4   Popularity: 3.01
Licence: The Code Project Open License (CPOL)      Bookmarked: 11   Downloaded: 0
Using a BackgroundLoader instead of Lazy to make your application more responsive.
Posted: 2 Dec 2011   Updated: 25 Dec 2011   Views: 18,400   Rating: 0.00/5    Votes: 0   Popularity: 0.00
Licence: The Code Project Open License (CPOL)      Bookmarked: 0   Downloaded: 0
This code is buggy.See the line:if (Monitor.TryEnter(po1) && Monitor.TryEnter(po2)) return;Imagine that the lock to po1 is true, but for po2 is false (or vice-versa).It will not return, and later will lock po1 again.So, when unlocking, it will unlock the wrong number of...
Design and Architecture
General
Posted: 5 Oct 2011   Updated: 5 Oct 2011   Views: 8,680   Rating: 0.00/5    Votes: 0   Popularity: 0.00
Licence: The Code Project Open License (CPOL)      Bookmarked: 1   Downloaded: 0
All classes are naturally Lazy loaded.So a better implementation will be:public class Singletonwhere T: new(){ public static readonly T Instance = new T();}You will notice that before calling the singleton class, the object will not be loaded.Surely there are...
No reference articles have been posted.
No projects have been posted.

Paulo Zemek
Software Developer (Senior) Niantic
United States United States
I started to program computers when I was 11 years old, as a hobbyist, programming in AMOS Basic and Blitz Basic for Amiga.
At 12 I had my first try with assembler, but it was too difficult at the time. Then, in the same year, I learned C and, after learning C, I was finally able to learn assembler (for Motorola 680x0).
Not sure, but probably between 12 and 13, I started to learn C++. I always programmed "in an object oriented way", but using function pointers instead of virtual methods.

At 15 I started to learn Pascal at school and to use Delphi. At 16 I started my first internship (using Delphi). At 18 I started to work professionally using C++ and since then I've developed my programming skills as a professional developer in C++ and C#, generally creating libraries that help other developers do their work easier, faster and with less errors.

Want more info or simply want to contact me?
Take a look at: http://paulozemek.azurewebsites.net/
Or e-mail me at: paulozemek@outlook.com

Codeproject MVP 2012, 2015 & 2016
Microsoft MVP 2013-2014 (in October 2014 I started working at Microsoft, so I can't be a Microsoft MVP anymore).