Welcome to Egon's C# and .NET Page
![]() |
Welcome Visitor, This is my personal homepage and it's dedicated to C# Programming. Here you will find some C# Snippets, Articles i've written (most of them are in german language), Some small projects and Links to Resources i found useful. If you have any questions regarding this Site, take a look at the About Section and feel free to contact me. Don't write me if you feel that this page needs a new look'n'feel, i am stilly too lazy to create something more sophisticated ;-) |
Things on this Site:
The Mono Pages
The Java Pages
The C++ Pages
The Nuts & Bolts Pages
Snippets
Articles
Projects
Patterns
Links
Kater Web
About me
I am currently in the process of learning the C# Language and the .NET Framework on Microsoft Windows (Ok, this sentence is written here since the beginning of this Webpage in Fall 2004, but ey Software Development is always learning!). Below you will find some snippets of Code i created during my learning time. Most of them are not useful in any way except as a reminder for me personally. All the Source Codes found below in this Section are GPL'ed.
| Snippet | Description |
| Operator overloading Example | How to overload some of the operators (+, >>, true/false) on Classes so that they can be used like the built-in data types. |
| Delegate Example | How to call delegates |
| Generics - Part 1 | How to use Generics, Part 1 |
| Events and Delegates | How to use Events and Delegates |
| Object Serialization | How to serialize and de-serialize a object into and from a File Stream |
| Windows Forms Fullscreen | How to make a Windows Form Application to run Fullscreen (also shows some simple usage on using the Table Layout Control) |
| Windows Forms and Threads | How to manipulate Windows Forms Controls from within another Thread |
| P/Invoke and native Callbacks | How to use P/Invoke with Methods that require a Callback Function |
| Traverse Directory | How to traverse a Directory from a given root |
| Windows Message Queuing | How to use Windows Message Queuing Services |
| Implementing a Enumerator | How to implement the Interfaces necessary for the C# 'foreach' Keyword |
| Enumerating Performance Objects | How to enumerate all Performance Objects available on the local System |
| Delegates without 'delegate' | How to implement a Delegating Mechanism without using the 'delegate' Keyword (Java Style) |
| Anonymous Delegates | How to use anonymous Delegates |
| OpenGL & WinForms | How to use TAO's OpenGL inside of Windows Forms |
| Implicit and Explicit Type conversion | How to implement a Type Converter for a custom Type (Implicit and Explicit Conversion covered) |
| Fast GDI+ Graphics | How to perform relativly fast GDI+ Graphic Operations using Back-Buffers |
| Bit Operations | How to use Bit Operations (NOT,AND,OR,XOR and Bitshifting) |
| Double-Linked Dynamic Lists | How to create a double-linked Dynamic List (VS2005 Project in ZIP File) |
| Asynchronus Method Call's | How to make use of Asynchronus Method Calls using Delegates |
| Keep Window in Background | How to make a Windows Form which is always in the Background and cannot be activated |
| Tab Page Hide | How to hide and Show Pages in a Tab Control |
| Multithreaded Bitmap Access | How to draw to a Bitmap from different Threads at the same time |
| Generic Iterators | How to implement Generic Iterators (for the foreach statement) |
| SDL inside Windows Forms | How to Display a SDL Window (and other Applications like Notepad) inside your Windows Forms Application |
| Custom Settings Provider | How to implement a custom Settings Provider for reading standard INI Files while using the .NET 2.0 Configuration Model |
| Observer/Subject Pattern | How to implement the Observer/Subject Pattern in C# |
| GTK# Intro | How to create a simple GTK# Application. In this Snippet we create a Text Viewer for .NET and Mono |
| The MVC Pattern | How to implement the MVC Pattern in C# |
| The Concrete Factory Pattern | How to implement the Concrete Factory Pattern in C# |
| Memory Copy | How to implement a memcpy like Functionality in pure C# (and the OS specific methods where available) |
| Transparent BitBlt | How to use BitBlt for copying transparent Images |
| C# 3.0 Features | A short overview of the new Features in C# 3.0 (excluding LINQ) |
| CRC32 Calculation | How to calculate a CRC32 Checksum for a given File |
| Check .NET Assembly | How to check if a given File (DLL,EXE) is executable by the CLR or not |
| Lambda Expressions | Simple example on how to use Lambda Expressions |
| Points in a Line | How to calculate the intermediate Points between two given Points in a Kartesian Coordinate System |
| NetworkStream Serialisation | How to Serialise/Deserialise a Object over a NetworkStream |
| Numeric Datatype Conversion | A short Reference on How numeric Datatype conversion works (German Language) |
| Generic Iterators II | Another example for a generic Iterator, this time two different methods (Interface and yield) |
| Unsafe Code | How to use unsafe Code and other unsafe Memory operations |
| Cast operator Overloading | How to overload the cast operators |
| Generic Constraint | How to use constraints on Generics |
| LINQ and Lambda Expressions | Short snippet on how to use Lambda Expressions and LINQ (to Objects) |
Articles (written for the nice Community over at myCSharp.de):
Publicly available projects (... and other stuff not fitting into the other sections):
All Source Codes found below in this Section are GPL'ed
| Project Name | Description |
| String Tokenizer | A fully fledged String Tokenizer |
| Syntax Highlighting | A Quick and Dirty approach on Syntax Highlighting |
| Breath-First Pathfinding | A Demonstration of the Breath-First Pathfinding Algorithm |
| Time Frame Control | A Windows Forms Control for selecting Time Frames during a Week |
| Advanced MessageBox | A Replacement for the oldening Windows MessageBox Control |
| Game of Life | A simple Implementation of Conway's Game of Life in .NET |
| Delbut | A simple Tool for negative Deletion of Files based on Regular Expressions |
| AVICap Library | A simple Library for accessing Video for Windows in .NET |
| Dragable ListBox | A simple Control which implements Image-aware and Dragable Entries |
| Code Weaver | A Proof-of-concept for inserting IL Code into already compiled Assemblies |
| Parallax Scrolling | A simple Demo on how to do fast Parallax Scrolling using pure .NET |
| XSens MTX Library | A Library for accessing XSens MTX AHRS Data from within .NET |
| GtkGlAreaSharp Demo | A Demo on how to use the GtkGlAreaSharp Widget in combination with Tao |
| CIL Disassembler | A simple Disassembler for CIL Code |
| Expression Solver .NET | A port of my originally Java based Expression Solver class |
| Battery Monitor | A simple Tool which shows you the status of your Notebooks Battery in the Taskbar |
| C# Scripting Engine | A simple and robust Scripting Engine for C# |
| NDocConvert | A server based conversion Tool for Office Documents |
| Genetic Pathfinding | A little Demo on how to implement a Genetic Algorithm to do Pathfinding |
| P/Invoke Microbenchmark | A little Microbenchmark i wrote for a Forum to show the different speeds (and ways) of calling a native Library's function on Linux |
| Turing Machine | A very basic Turing machine |
| Motion Detection | A little Demo on how to perform motion detection on a input v4l video stream |
| Mandelbrot | A simplet Mandelbrot Fractal Generator with Zoom Ability |
| Link | Description |
| msdn.microsoft.com | Microsoft Developer Network - Useful resources for the Programming with Microsoft Technologies and/or Operating Systems |
| www.codeproject.com | Useful Snippets of Code for most popular programming languages |
| www.ondotnet.com | O'Reilly's Page on DotNet |
| www.mycsharp.de | German C# and .NET Community. |
| www.theserverside.net | Latest news on .NET in the Enterprise Environment |
| www.gotdotnet.com | Microsoft's .NET Community |
| www.dotnet247.com | Extensive Class Documentation |
| www.go-mono.com | Main Page for the Mono Project, a free and open-source implementation of .NET |
| www.gotmono.com | The Community Page for the Mono Project |
| www.pinvoke.net | The Reference for Win32 API Calls from within .NET using Interop Services |
Links to Software Tools i found useful:
| Link | Description |
| www.dependencywalker.com | A Tool for retrieving the Dependencys of PE Files. Also shows all exported Symbols of a DLL |
| www.aisto.com/roeder/dotnet | Lutz Roeder's Reflector and Resourcer, two useful tools for inspecting .NET Assemblys and Resources |
| www.sliver.com/dotnet/SnippetCompiler | A simple tool for testing out Code Snippets in C# |
| regex.osherove.com | A Tool for analyzing Regular Expressions |
| manoli.net/csharpformat | A little Tool for formatting C# Code - used in my Snippets above |
| www.jetbrains.com/resharper | A professional Add-On to Visual Studio 2003/05 for Refactoring, Instant error checking and much, much more |
| www.jetbrains.com/profiler | A professional Profiler for CIL Code |
| www.altova.com | A nice XML Editor |
| nsis.sourceforge.net | The installer i prefer for deploying my Applications |
| madebits.com/netz | A compressor for .NET Executables |
Books i found useful during my study time: