Since I've started this website, I've tried to help out my fellow programmer by posting snippets of code that I felt would be useful. As time has gone on, finding any or all of these items on the site can be a bit of a chore. As such, I've designed this library (CUL, pronounced "cull") as a set of utilities to deal with fairly common issues, as well as some uncommon ones, with regard to development including:
- Encryption
- AES
- Caesar
- DES
- RSA
- TripleDES
- Vernam
- Hashing
- Compression
- Serialization (XML, SOAP, and binary)
- File management (including FTP and HTTP)
- Email
- Pop3 client (SSL capable)
- MIME parser
- SMTP email sending (SSL capable)
- Exchange inbox email retrieval
- HTML related functions
- Javascript related functions (including minification)
- CSS related functions (including minification)
- Image manipulation
- Cropping, resizing, rotating, flipping
- To black and white or sepia tone
- Threshold and edge detection
- Text drawing, watermarks, object drawing helpers
- Taking a screenshot which spans monitors
- RGB Histograms
- Various convolution filters such as sharpen, sobel emboss, etc. along with the ability to create your own easily.
- Various other filters such as "jitter", pixelate, sin wave, median filter, and dilation, red/green/blue filters,
- Multiple blurring techniques including box blur, Gaussian blur, Kuwahara, and Symmetric Nearest Neighbor blur
- Bump map and Normal map helpers
- ASCII art generator
- Adjust brightness, gamma, and contrast
- Active Directory querying
- Includes functions for active users, all users, all groups, active members in groups, etc.
- Exchange querying
- Free/Busy data
- Get next/previous available time for appointments
- Get contacts
- Get appointments/events
- Get emails
- Get the GAL
- SQL query helper
- File formats/Microformats
- XMDP
- RSS (with iTunes/Zune information embedded for podcasts)
- vCard/hCard
- vCalendar/hCalendar
- iCalendar (with email sending capabilities, cancellation, and automatically putting it in Exchange)
- APML
- OPML
- FOAF
- XFN
- CSV
- RSD
- BlogML
- INI
- Code to render a web page to BMP file
- Icon extraction from a file
- WebBrowser control cache clearing class
- Reflection helper
- Randomization
- Including string randomization based on allowable characters, date randomization, Color, Enum, TimeSpan, and Lorem Ipsum generation.
- Environment information
- Process management
- Error/Information gathering
- Track back and ping back helper classes
- Math related classes
- Data types
- Pair
- Triple
- Vector
- Bag
- List
- ListMapping
- Base classes for various patterns including
- OAuth helper class
- Classes to help with various media services including
- Classes to help with events
- WMI query helpers
- SQL Server structural analysis helpers
- And some basic data conversion
The zip file contains the solution (Visual Studio 2010), all source files (in C#), compiled DLLs (against .Net 4.0) and documentation. Most of the classes should work with .Net 2.0/3.5 but only a few will work with anything earlier.
Download Craig's Utility Library