Code

DevCase for .NET Framework

DevCase for .NET Framework

What is DevCase?

DevCase for .NET Framework - 1
DevCase is a Rapid Application Development (RAD) utility framework containing new APIs and extensions to the core .NET Framework assemblies, that will help complete your developer toolbox as a C# or VB.NET programmer for your business or personal needs.

Using DevCase provides productivity and efficiency to the programmer in day to day software development.

It provides a huge and solid set of sofisticated and generic purpose classes, methods, extensions and user-controls. Everything as easy to consume through three different assemblies:


  • DevCase.Core.dll
    This assembly provides various useful user-controls focused for a WindowsForms based user-interface.
    It also provides hundreds of all kind of generic purpose classes and other members for common business and personal programming scenarios related with: files and folders, networking, mailling, databases, processes, user-accounts, drawing, imaging, mathematics, cryptography, cryptocurrencies, date and time, text files, multi-threading, science, debugging, profilling, keyboard and mouse, inter-process communications, desktop and operating system, among many other scenarios not mentioned, for which you can extend your professional capabilities by using this assembly.
    And it also provides a huge collection of more than a thousand of extension-methods for many of the built-in types in the .NET Framework class library.

  • DevCase.Interop.dll
    This assembly provides inter-operability members to managed and unmanaged code, mainly focused for native Win32 members, .NET compiler features and Reflection.
    It provides the biggest collection of Win32 P/Invokes out there, including functions (with useful overloads), interfaces, structures and enums. This will save to the programmer a lot of time by avoiding the need to figure out how to properly declare a specific Win32 function in managed code, since any Win32 function the programmer could need, he will probably find it in this assembly, and he only will need to call/use it from here.

  • DevCase.ThirdParty.dll
    This assembly provides a humble amount of utility classes and extension-methods to extend the capabilities of common freeware and commercial 3rd party libraries and program, such as for example: AForge APIs, Aspose APIs, DevComponents DotNetBar, FFmpeg, GeckoFx, Google APIs, HtmlAgilityPack, Microsoft APIs, SharpDX, Telerik APIs and VMWare, among many others not mentioned.
    The programmer must consider this assembly as optional, as a bonus feature for which he can benefit from if using a specific 3rd party library.


Which specific programming things can I realize with DevCase?

There are not enough words to summarize in few paragraphs all the functionalities provided by the members of DevCase assemblies. However, here is a list of some of the interesting things that you can do just by using the members provided in DevCase for .NET Framework assemblies:

  • A low-level keyboard hook in a event-oriented way, by using the built-in KeyboardMonitor class.
  • A low-level mouse hook in a event-oriented way, by using the built-in MouseMonitor class.
  • A most recent used (MRU) system for your application, by using the built-in MruUtil and MruItem classes.
  • A shortcut file (.lnk) manager to create or edit shortcuts, with the built-in ShortcutFileInfo class.
  • A Undo/Redo mechanism for your controls, by using the built-in UndoRedo class.
  • Add a file to Microsoft Windows recent docs, pin or unpin a file into taskbar or startmenu, refresh the Explorer instances.
  • Add magnetism to the borders of your user-interface window, by using the built-in WindowMagnetizer class.
  • Add or remove items to windows startup, by using the built-in WinStartup class.
  • Add, find, remove or edit user accounts, by using the built-in UserAccountUtil class.
  • An application’s log file system, by using the built-in LogfileWriter class.
  • Animate windows, center them to other windows, activate full-screen mode and other features, by using the built-in GraphicalUtil class.
  • Automate external processes and windows, move or resize windows, modify text of an edit-control, flash a window, and more, by using the built-in UIAutomation class.
  • Beuautify XML or JSON documents.
  • Build command-line parameters for CLI applications, by using the built-in CommandlineParameter class.
  • Calculate numeric percentages, determine if number is multiple by, divisible by, prime, positive, negative, and more.
  • Compile C# or VB.NET projects at run-time, or single units of code.
  • Convert an amount of time, from unit of time to other.
  • Convert between units of the Metric System of the International System of Units (SI), by using the built-in Units class.
  • Convert karaoke lyrics, by using the built-in LyricUtil class.
  • Copy or rename files and fodlers, set the user-rights of a file, set file attributes, find files by patterns, compare files byte to byte, create dummy files and hard-links, and much more by using the built-in FileUtil and DirectoryUtil classes.
  • Create a file splitter and a file merger, by using the built-in FileSplitter class.
  • Create and edit .NET managed resources (.resx files) at run-time, by using the built-in ResXManager class.
  • Create and manage INI files for your portable application, by using the built-in IniManager class.
  • Create and represent file signatures, by using the built-in FileSignature class.
  • Create or edit music playlists, by using the built-in PlaylistEditor class.
  • Create, remove, find, backup, copy and edit registry keys or sub-trees, by using the built-in RegistryUtil class.
  • Customize system cursors, wallpapers, fonts, screen saver and visual themes, by using the built-in ThemingUtil class.
  • Determine if a network device or specific webpage is available.
  • Dock your application window to any border of the screen or to another window, by using the built-in WindowToScreenDocker and WindowToWindowDocker classes.
  • Drag controls at run-time in your user-interface, by using the built-in ControlDragger class.
  • Encrypt and decrypt data, text or files, compute and compare file checksums and hashes, generate passwords; all by using the built-in CryptoUtil class.
  • Extend IEnumerable types by using built-in extension-methods to find by index an element, split a collection into a number of sequences, randomize, bubble-sort, and much more.
  • Format a drive, list drives of specific drive-type, get hardware identifiers (CPU, Motherdoard), print a document.
  • Generate captchas for your application, by using the built-in CaptchaGenerator and Captcha classes.
  • Geo-locate addresses, download files, upload to an FTP, send a mail using Gmail or Microsoft Live, create a temporary mail account, and much more.
  • Get the current market price of a cryptocurrency.
  • Kill or close processes by their name, do WMI queries for processes, run and wait until a process is fully loaded.
  • Launch a control-panel applet, arrange desktop icons, show or hide the desktop or taskbar.
  • Let the end-user select and capture a region on the screen, by using the built-in ScreenRegionSelector class.
  • Lock at run-time the components that composes your user-interface, by using the built-in WindowLocker class.
  • Make a borderless Form moveable, by using the built-in FormDragger class.
  • Manage shared-memory blocks for inter-process communication with another application, by using the built-in SharedMemory class.
  • Manage the address mappings of the Microsoft Windows HOSTS file, by using the built-in Hosts class.
  • Manage the environment variables and PATH and EXTPATH contents, by using the built-in EnvironmentVariables and EnvironmentPath classes.
  • Manage the system recycle bins and their items inside, by using the built-in RecycleBin class.
  • Manage the Windows Firewall, enable or disable it, add or remove firewall rules, by using the built-in FirewallUtil class.
  • Measure time as a chronometer or a countdown in a event-oriented way, by using the built-in TimeMeasurer class.
  • Monitor hardware changes about the insertion or removal of drives (eg. useful for USB monitoring), by using the built-in DriveWatcher class.
  • Monitor the system network traffic or a specific application’s traffic, by using the built-in NetworkTrafficMonitor and ProcessTrafficMonitor classes.
  • Perform string operations such as: split bylength, rename using a specific string-case, randomize, measure length, reverse, rotate, and much more
  • Permute all the possible sequences of characters.
  • Print text documents, by using the built-in PrintDocumentBasic and PrintDocumentExpert classes.
  • Record and play music files, by using the built-in WaveRecorder class.
  • Register system-wide hotkeys, by using the built-in Hotkey class.
  • Retrieve S.M.A.R.T. data from disk drives, by using the built-in SMART class.
  • Serialize and deserialize objects as Binary, XML, or JSON formats.
  • Stress a CPU or a disk drive, by using the built-in HardwareStress class.
  • Take screenshots from a screen, a window or a region, by using the built-in ImageUtil class.
  • Test the execution of a target member and the time that the member takes to finish execution.
  • Transform images into black and white or grayscale, set the brightness, gamma, opacity or contrast of a image, resize or scale a image, and much more.
  • Translate words between languages, by using the built-in GoogleTranslator class.
  • Tweak operating system values, by using the built-in TweakingUtil class.
  • Use command-line wrappers for some 3rd part applications such as FFmpeg, dbPoweramp or MP3val, by using the DevCase.ThirdPArt.dll assembly.
  • Validate an ip, url, or mail address.

Also, please let me say that from the beginning of the development of DevCase, since the year 2013 until now, many of these utilities and methods have been shared by myself individually in programming articles at forums or blog entries, and there have been many requests of people to publish them as a supported and consolidated library, which turned into this unified toolkit with name DevCase, that is integrated, documented and fully supported.

Here is a brief list of open-source software repositories whose internal algorithms were developed with the power of DevCase for .NET Framework:

(note that in every of these repositories you can find for free, limited samples of DevCase’s source-code.)


Documentation

All the public members within the DevCase assemblies were built with high quality code, and are fully documented.

You can pop-up the dynamic documentation provided by Visual Studio’s IntelliSense at design-time, like in the next example screenshot:
DevCase for .NET Framework - 2
DevCase for .NET Framework - 3
And apart, you can find an offline documentation available as a .chm file that is included inside the package:
DevCase for .NET Framework - 4
Note that the documentation includes a lot of code examples for most of the classes and methods that may require an example to understand and start using it. Here is an example:
DevCase for .NET Framework - 5


What things are included in the purchase of this product?

When you purchase this product and download the package, you will find:

  • Various builds of the DevCase assemblies compatible with .NET Framework 4.0, 4.5, 4.6 and 4.7 to meet common programming needs; and for running on x86, x64 and AnyCpu platforms.
  • Project templates for C# and VB.NET, for Windows Forms and WPF technologies. (not to confuse with sample projects)
  • The documentation, distributed as XML files for Visual Studio, and a HTML compiled file (.chm).

The package includes a readme.txt file which explains with better details everything that was mentioned above.


Version History

Unfortunately, I cannot keep a strict and efficient control of each addition and removal, change or correction that I make to DevCase members. There are many small daily modifications. So please, always keep in mind that I do not specify all the changes made in each version.

Version 3.2

New User-Controls and Components:
  • DevCase.Controls.DevWebBrowser
  • DevCase.Controls.OpenFileOrFolderDialog
  • DevCase.Controls.PropertyGridInputDialog
New Utility Classes:
  • DevCase.Core.Design.EnumFlagsEditor
  • DevCase.Core.Diagnostics.DebuggerNotify
  • DevCase.Core.Diagnostics.PreventDebuggerContext
  • DevCase.Core.IO.LowMemoryNotificationContext
  • DevCase.Core.IO.ShortcutFileInfo
  • DevCase.Core.NET.DevWebClient
  • DevCase.Interop.Unmanaged.PIDL
New Methods:
  • DevCase.Core.Application.UserInterface.Tools.Console.ConsoleUtil.SetConsolefont
  • DevCase.Core.Imaging.Tools.ColorUtil.WinFormsBrushToWpfBrush
  • DevCase.Core.Imaging.Tools.ColorUtil.WinFormsColorToWpfBrush
  • DevCase.Core.Imaging.Tools.ColorUtil.WinFormsColorToWpfColor
  • DevCase.Core.Imaging.Tools.ColorUtil.WpfBrushToWinFormsBrush
  • DevCase.Core.Imaging.Tools.ColorUtil.WpfColorToWinFormsBrush
  • DevCase.Core.Imaging.Tools.ColorUtil.WpfColorToWinFormsColor
  • DevCase.Core.IO.Filesize.ToString
  • DevCase.Core.IO.Tools.MouseUtil.SendMouseButton (x2)
  • DevCase.Core.IO.Tools.MouseUtil.SendMouseButtonAsync (x2)
  • DevCase.Core.IPC.Tools.UIAutomationUtil.GetToolbarButtons
  • DevCase.Core.NET.Tools.WebUtil.SetCookies (x4)
  • DevCase.Interop.Managed.Tools.ReflectionUtil.GetAllBaseTypes
  • DevCase.Interop.Managed.Tools.ReflectionUtil.GetAllDerivedTypes (x2)
  • DevCase.Interop.Unmanaged.Win32.Delegates.ApplicationRecoveryCallback
  • DevCase.Interop.Unmanaged.Win32.Delegates.EnumCodePagesProc
  • DevCase.Interop.Unmanaged.Win32.Delegates.EnumDesktopProc
  • DevCase.Interop.Unmanaged.Win32.Delegates.EnumLocalesProc
  • DevCase.Interop.Unmanaged.Win32.Delegates.EnumUILanguagesProc
New Method-Extensions:
  • DevCase.Core.Extensions.Component.GetEventHandlers
  • DevCase.Core.Extensions.Control.ForEachControl (x2)
  • DevCase.Core.Extensions.Control.GetEventHandlers
  • DevCase.Core.Extensions.Control.SendMouseButton (x2)
  • DevCase.Core.Extensions.Control.SetVisualStyle
  • DevCase.Core.Extensions.EventInfo.RemoveEventHandler
  • DevCase.Core.Extensions.Form.ForEachControl (x2)
  • DevCase.Core.Extensions.Form.GetEventHandlers
  • DevCase.Core.Extensions.Form.SetVisualStyle
  • DevCase.Core.Extensions.Graphics.DrawCross (x3)
  • DevCase.Core.Extensions.Graphics.DrawRoundedRectangle
  • DevCase.Core.Extensions.Graphics.DrawTriangle2D (x2)
  • DevCase.Core.Extensions.Graphics.FillRoundedRectangle
  • DevCase.Core.Extensions.Graphics.FillTriangle2D (x2)
  • DevCase.Core.Extensions.IDictionary.AddRange
  • DevCase.Core.Extensions.Rectangle.RoundCorners
  • DevCase.Core.Extensions.RectangleF.RoundCorners
  • DevCase.Core.Extensions.Type.GetAllBaseTypes
  • DevCase.Core.Extensions.Type.GetAllDerivedTypes (x2)
  • DevCase.Core.Extensions.Vector2.ToNativePoint
  • DevCase.Core.Extensions.Vector2.ToPoint
  • DevCase.Core.Extensions.Vector2.ToPointF
  • DevCase.Core.Extensions.Vector3.ToNativePoint
  • DevCase.Core.Extensions.Vector3.ToPoint
  • DevCase.Core.Extensions.Vector3.ToPointF
New Interfaces:
  • DevCase.Interop.Unmanaged.Win32.Interfaces.IDropSource
  • DevCase.Interop.Unmanaged.Win32.Interfaces.IEnumIDList
  • DevCase.Interop.Unmanaged.Win32.Interfaces.IProgressDialog
  • DevCase.Interop.Unmanaged.Win32.Interfaces.IShellItem
  • DevCase.Interop.Unmanaged.Win32.Interfaces.IShellFolder
New Structures:
  • DevCase.Interop.Unmanaged.Win32.Structures.ConsoleFontInfo
  • DevCase.Interop.Unmanaged.Win32.Structures.ConsoleFontInfoEx
  • DevCase.Interop.Unmanaged.Win32.Structures.CredUiInfo
  • DevCase.Interop.Unmanaged.Win32.Structures.DwmBlurBehind
  • DevCase.Interop.Unmanaged.Win32.Structures.IpStats
  • DevCase.Interop.Unmanaged.Win32.Structures.IShellItem
  • DevCase.Interop.Unmanaged.Win32.Structures.IShellItemImageFactory
  • DevCase.Interop.Unmanaged.Win32.Structures.MouseMovePoint
  • DevCase.Interop.Unmanaged.Win32.Structures.NativeToolBarButton
  • DevCase.Interop.Unmanaged.Win32.Structures.NativeWindowInfo
  • DevCase.Interop.Unmanaged.Win32.Structures.OpenAsInfo
  • DevCase.Interop.Unmanaged.Win32.Structures.ProcessBasicInformation
  • DevCase.Interop.Unmanaged.Win32.Structures.TrayData
New Enums:
  • DevCase.Controls.DevProgressDialogStyle
  • DevCase.Core.Application.UserInterface.VisualStyle
  • DevCase.Interop.Unmanaged.Win32.Enums.ApplicationRestartFlags
  • DevCase.Interop.Unmanaged.Win32.Enums.AppPolicyCreateFileAccess
  • DevCase.Interop.Unmanaged.Win32.Enums.AppPolicyProcessTerminationMethod
  • DevCase.Interop.Unmanaged.Win32.Enums.AppPolicyShowDeveloperDiagnostic
  • DevCase.Interop.Unmanaged.Win32.Enums.AppPolicyThreadInitializationType
  • DevCase.Interop.Unmanaged.Win32.Enums.AutoCompleteFlags
  • DevCase.Interop.Unmanaged.Win32.Enums.BackgroundMode
  • DevCase.Interop.Unmanaged.Win32.Enums.BinaryType
  • DevCase.Interop.Unmanaged.Win32.Enums.CodePage
  • DevCase.Interop.Unmanaged.Win32.Enums.CreateMutexFlags
  • DevCase.Interop.Unmanaged.Win32.Enums.CredentialsDialogOptions
  • DevCase.Interop.Unmanaged.Win32.Enums.CredentialsPackFlags
  • DevCase.Interop.Unmanaged.Win32.Enums.DpiAwareness
  • DevCase.Interop.Unmanaged.Win32.Enums.DwmBlurBehindFlags
  • DevCase.Interop.Unmanaged.Win32.Enums.EnumProcessModulesFilter
  • DevCase.Interop.Unmanaged.Win32.Enums.EnumSystemCodePagesFlags
  • DevCase.Interop.Unmanaged.Win32.Enums.EnumSystemLocalesFlags
  • DevCase.Interop.Unmanaged.Win32.Enums.FiberFlags
  • DevCase.Interop.Unmanaged.Win32.Enums.GetMouseMovePointsResolution
  • DevCase.Interop.Unmanaged.Win32.Enums.GetPathFromIdListOption
  • DevCase.Interop.Unmanaged.Win32.Enums.HandleFlags
  • DevCase.Interop.Unmanaged.Win32.Enums.HeapFlags
  • DevCase.Interop.Unmanaged.Win32.Enums.HeapInformationClass
  • DevCase.Interop.Unmanaged.Win32.Enums.IpStatsForwarding
  • DevCase.Interop.Unmanaged.Win32.Enums.IShellItemImageFactoryGetImageFlags
  • DevCase.Interop.Unmanaged.Win32.Enums.KeyboardLayoutFlags
  • DevCase.Interop.Unmanaged.Win32.Enums.MemoryResourceNotificationType
  • DevCase.Interop.Unmanaged.Win32.Enums.MuiLanguageMode
  • DevCase.Interop.Unmanaged.Win32.Enums.MultiByteCharConversionType
  • DevCase.Interop.Unmanaged.Win32.Enums.OpenAsInfoFlags
  • DevCase.Interop.Unmanaged.Win32.Enums.OpenFolderFlags
  • DevCase.Interop.Unmanaged.Win32.Enums.PathOptions
  • DevCase.Interop.Unmanaged.Win32.Enums.PathResolveFlags
  • DevCase.Interop.Unmanaged.Win32.Enums.ProcessInformationClass
  • DevCase.Interop.Unmanaged.Win32.Enums.ProgressDialogFlags
  • DevCase.Interop.Unmanaged.Win32.Enums.ProgressDialogTimerFlags
  • DevCase.Interop.Unmanaged.Win32.Enums.QueryUserNotificationState
  • DevCase.Interop.Unmanaged.Win32.Enums.RegionCombineMode
  • DevCase.Interop.Unmanaged.Win32.Enums.ShellFolderEnumObjectsFlags
  • DevCase.Interop.Unmanaged.Win32.Enums.ShellFoldermGetDisplayName
  • DevCase.Interop.Unmanaged.Win32.Enums.ShellItemAttributesMask
  • DevCase.Interop.Unmanaged.Win32.Enums.ShellItemCompareFlags
  • DevCase.Interop.Unmanaged.Win32.Enums.ShellItemGetDisplayName
  • DevCase.Interop.Unmanaged.Win32.Enums.SHGetNewLinkInfoFlags
  • DevCase.Interop.Unmanaged.Win32.Enums.SHObjectPropertiesFlags
  • DevCase.Interop.Unmanaged.Win32.Enums.StrFormatByteSizeFlags
  • DevCase.Interop.Unmanaged.Win32.Enums.TokenType
  • DevCase.Interop.Unmanaged.Win32.Enums.WerFaultReporting
  • DevCase.Interop.Unmanaged.Win32.Enums.WerRegisterFileType
  • DevCase.Interop.Unmanaged.Win32.Enums.WerRegisterFileTypeFlags
  • DevCase.Interop.Unmanaged.Win32.Enums.WideCharConversionType
  • DevCase.Interop.Unmanaged.Win32.Enums.WindowsCredentialsDialogOptions
Other Changes:
  • DevCase.UserControls.dll assembly: All the contents of this assembly were moved to DevCase.Core.dll assembly, under the namespace: DevCase.Controls
  • DevCase.Interop.Unmanaged.Win32.NativeMetods Class: Increased the amount (unmeasurable) of new Win32 functions.
  • DevCase.Core.IO.MemoryStress Class: Added these properties: AvailablePhysicalMemory, AvailableVirtualMemory, TotalPhysicalMemory and TotalVirtualMemory
  • DevCase.Core.IO.MouseButton Enum: Added missing values/support for mouse wheel.
  • DevCase.Core.Shell.Tools.WindowsUtil.MostRecentInstalledFrameworkVersion Property: Updated to support .NET 4.7.1, 4.7.2 and 4.8
  • Other minor fixes and code refactorizations not mentioned.

Version 3.1

New Utility Classes:
  • DevCase.Core.Application.UserInterface.ConsoleRectangle
  • DevCase.Core.IO.CpuStress
  • DevCase.Core.IO.DevFileSystemWatcher
  • DevCase.Core.IO.DiskStress
  • DevCase.Core.IO.MemoryStress
  • DevCase.Core.IPC.WindowInfo
  • DevCase.Core.Shell.PreventShutdownContext
New Methods:
  • DevCase.Core.Application.UserInterface.Tools.Console.ConsoleUtil.ConsoleTextBlink
  • DevCase.Core.Cryptography.Tools.CryptoUtil.ComputeCRC32OfBytes
  • DevCase.Core.Cryptography.Tools.CryptoUtil.ComputeCRC32OfFile
  • DevCase.Core.Cryptography.Tools.CryptoUtil.ComputeCRC32OfString
  • DevCase.Core.Cryptography.Tools.CryptoUtil.ComputeCRC64OfBytes
  • DevCase.Core.Cryptography.Tools.CryptoUtil.ComputeCRC64OfFile
  • DevCase.Core.Cryptography.Tools.CryptoUtil.ComputeCRC64OfString
  • DevCase.Core.IO.Tools.DeviceUtil.GetHardDriveHandle
  • DevCase.Core.IO.Tools.DeviceUtil.GetWin32DiskDrive
  • DevCase.Core.IO.Tools.DeviceUtil.GetWin32LogicalDisk
  • DevCase.Core.IO.Tools.KeyboardUtil.SendKeyAsync
  • DevCase.Core.IPC.Tools.ProcessUtil.GetProcessPerformanceCounter
  • DevCase.Core.IPC.Tools.UIAutomationUtil.EnumerateChildWindows
  • DevCase.Core.IPC.Tools.UIAutomationUtil.EnumerateWindows
  • DevCase.Core.Text.Tools.StringUtil.GenerateLoremIpsumText
  • DevCase.Core.Text.Tools.StringUtil.GenerateRandomParagraph
  • DevCase.Core.Text.Tools.StringUtil.GenerateRandomString
  • DevCase.Interop.Unmanaged.Tools.NativeUtil.GetHiWord
  • DevCase.Interop.Unmanaged.Tools.NativeUtil.GetLoWord
New Method-Extensions:
  • DevCase.Core.Extensions.Action.InvokeRepeat
  • DevCase.Core.Extensions.Bitmap.Center
  • DevCase.Core.Extensions.Bitmap.Stretch
  • DevCase.Core.Extensions.Bitmap.Tile
  • DevCase.Core.Extensions.Bitmap.Zoom
  • DevCase.Core.Extensions.Color.Darken
  • DevCase.Core.Extensions.Color.Lighten
  • DevCase.Core.Extensions.Control.SendKey
  • DevCase.Core.Extensions.DataColumnCollection.AddRange
  • DevCase.Core.Extensions.Decimal.GetDecimalPlaces
  • DevCase.Core.Extensions.DirectoryInfo.CreateZipFile
  • DevCase.Core.Extensions.Double.GetDecimalPlaces
  • DevCase.Core.Extensions.FileInfo.CreateZipFile
  • DevCase.Core.Extensions.FileInfo.ExtractIcon
  • DevCase.Core.Extensions.FileSystemInfo.GetFileHandle
  • DevCase.Core.Extensions.Guid.AsNumber
  • DevCase.Core.Extensions.IDictionary.AddOrGet
  • DevCase.Core.Extensions.IDictionary.ToExpandoObject
  • DevCase.Core.Extensions.IDictionary.ToHashtable
  • DevCase.Core.Extensions.IDictionary.ToNameValueCollection
  • DevCase.Core.Extensions.IDictionary.ToSortedDictionary
  • DevCase.Core.Extensions.IEnumerable.AsReadOnly
  • DevCase.Core.Extensions.Image.Center
  • DevCase.Core.Extensions.Image.Stretch
  • DevCase.Core.Extensions.Image.Tile
  • DevCase.Core.Extensions.Image.Zoom
  • DevCase.Core.Extensions.IWin32Window.PostMessage
  • DevCase.Core.Extensions.IWin32Window.SendKeyAsync
  • DevCase.Core.Extensions.IWin32Window.SendMessage
  • DevCase.Core.Extensions.ListViewGroupCollection.AsEnumerable
  • DevCase.Core.Extensions.ListViewItem.ForEach
  • DevCase.Core.Extensions.ListViewItemCollection.AsEnumerable
  • DevCase.Core.Extensions.ListViewItemCollection.ForEach
  • DevCase.Core.Extensions.Message.ToNativeMessage
  • DevCase.Core.Extensions.Point.ToNativePoint
  • DevCase.Core.Extensions.Rectangle.ToNativeRectangle
  • DevCase.Core.Extensions.Single.GetDecimalPlaces
  • DevCase.Core.Extensions.Size.ToNativeSize
  • DevCase.Core.Extensions.TextFieldParser.ToDataTable
  • DevCase.Core.Extensions.Thread.PostThreadMessage
  • DevCase.Core.Extensions.TreeNodeCollection.AddDirectory
  • DevCase.Core.Extensions.TreeNodeCollection.AddFile
  • DevCase.Core.Extensions.TreeNodeCollection.AsEnumerable
  • DevCase.Core.Extensions.TreeView.EnumerateAllNodes
New Shared Properties:
  • DevCase.Core.Shell.Tools.TweakingUtil.AutoEndTasks
Other Changes:
  • Reunified all the 3rd party assemblies (DevCase.ThirdParty.{ProductName}.dll) in a single assembly with name: DevCase.ThirdParty.dll.
  • DevCase.Interop.Unmanaged.Win32.NativeMetods Class: Increased the amount (unmeasurable) of new Win32 functions, with their respective structures implementation, interfaces and enums.
  • Added a public constructor for the next classes:
    DevCase.Interop.Unmanaged.Win32.SafeHandles.SafeBitmapHandle
    DevCase.Interop.Unmanaged.Win32.SafeHandles.SafeCursorHandle
    DevCase.Interop.Unmanaged.Win32.SafeHandles.SafeIconHandle
    DevCase.Interop.Unmanaged.Win32.SafeHandles.SafeModuleHandle
    DevCase.Interop.Unmanaged.Win32.SafeHandles.SafeRegionHandle
    DevCase.Interop.Unmanaged.Win32.SafeHandles.SafeWindowHandle

Version 2.6 to 3.0

This release is the result of patience and dedication for improving this product during the last year. There have been many changes in the assemblies, always for the good, adding new things and improvements, which are too many to mention all of them.
As you can see, the name of the product has been changed. And as consequence, the name of the namespaces within the assemblies has changed too.
I’m sorry if this change can cause any inconvenience when updating code that used previous versions of the product, but it was a necessary change, and it’s just a matter of getting used to the new namespace: DevCase.

Version 2.5

New Components:
  • DevCase.Core.Threading.DevBackgroundWorker
New Interfaces:
  • DevCase.Core.NET.ICryptocurrency
  • DevCase.Core.NET.IDisposableMail
New Utility Classes:
  • DevCase.Core.Application.CommandLineArgumentsNotifier
  • DevCase.Core.Application.UserInterface.NativeWindowEventNotifier
  • DevCase.Core.LazyAsync
  • DevCase.Core.NET.CryptoCurrencies.Bitcoin
  • DevCase.Core.NET.CryptoCurrencies.Cardano
  • DevCase.Core.NET.CryptoCurrencies.Dash
  • DevCase.Core.NET.CryptoCurrencies.Ethereum
  • DevCase.Core.NET.CryptoCurrencies.LiteCoin
  • DevCase.Core.NET.CryptoCurrencies.Ripple
  • DevCase.Core.NET.TenMinuteMail
  • DevCase.Core.NET.Tools.CryptocurrencyUtil
New Shared Properties:
  • DevCase.Core.Application.Tools.AppUtil.BrowserEmulationMode
New Methods:
  • DevCase.Core.Application.Tools.AppUtil.GetIEBrowserEmulationMode (x2)
  • DevCase.Core.Application.Tools.AppUtil.SetIEBrowserEmulationMode (x2)
  • DevCase.Core.IO.Tools.Directories.GetSymbolicLinkTarget (x2)
  • DevCase.Core.IO.Tools.Directories.IsSymbolicLink (x2)
  • DevCase.Core.IO.Tools.Files.GetSymbolicLinkTarget (x2)
  • DevCase.Core.IO.Tools.Files.IsSymbolicLink (x2)
  • DevCase.Core.NET.Tools.CryptocurrencyUtil.GetCryptoCurrencyPrice
  • DevCase.Core.NET.Tools.CryptocurrencyUtil.GetCryptoCurrencyPriceAsync
  • DevCase.Core.Processes.IPC.Tools.SharedMemory.Write (x2)
  • DevCase.Core.Processes.IPC.Tools.SharedMemory.WriteAt (x2)
New Extension-Methods:
  • DevCase.Core.Extensions.Control.GetControlStyle
  • DevCase.Core.Extensions.Control.SetControlStyle
  • DevCase.Core.Extensions.Form.GetHorizontalBorderSize
  • DevCase.Core.Extensions.Form.GetTitleBarBounds
  • DevCase.Core.Extensions.Form.GetVerticalBorderSize
  • DevCase.Core.Extensions.Form.LockFormRegionToControls (x2)
  • DevCase.Core.Extensions.HtmlDocument.GetCookieCollection
  • DevCase.Core.Extensions.HtmlDocument.GetCookieContainer
  • DevCase.Core.Extensions.NameValueCollection.ToUri
  • DevCase.Core.Extensions.Screen.CreateDeviceContext
  • DevCase.Core.Extensions.Screen.GetScreenHandle
  • DevCase.Core.Extensions.WebBrowser.GetCookieCollection
  • DevCase.Core.Extensions.WebBrowser.GetCookieContainer
New Enums:
  • DevCase.Core.NET.Enums.IEBrowserEmulationMode
  • DevCase.Core.Threading.Enums.DevBackgroundWorkerState
  • DevCase.Interop.Win32.Enums.CreateFileFlags
  • DevCase.Interop.Win32.Enums.DirectoryManagementControlCodes
  • DevCase.Interop.Win32.Enums.FileAccessRights
  • DevCase.Interop.Win32.Enums.ReparseDataBufferFlags
  • DevCase.Interop.Win32.Enums.ReparsePointTags
New Win32 P/Invokes:
  • DevCase.Interop.Win32.NativeMethods.CreateFile (x5)
  • DevCase.Interop.Win32.NativeMethods.DeviceIoControl (x2)
  • DevCase.Interop.Win32.NativeMethods.SetWindowTheme
New 3rd Party Members:
  • DevCase.ThirdParty.Google.Gmail.GmailClient.DeleteMessage
  • DevCase.ThirdParty.Google.Gmail.GmailClient.GetFolderByDisplayName
  • DevCase.ThirdParty.Google.Gmail.GmailClient.GetFolderById
  • DevCase.ThirdParty.Google.Gmail.GmailClient.GetFolderByKnownId
  • DevCase.ThirdParty.Google.Gmail.GmailClient.GetMessages
  • DevCase.ThirdParty.Google.Gmail.GmailClient.RecycleMessage
  • DevCase.ThirdParty.Google.Gmail.GmailClient.SendMessageHtml (x12)
  • DevCase.ThirdParty.Google.Gmail.GmailClient.SendMessageHtmlAsync (x12)
  • DevCase.ThirdParty.Google.Gmail.GmailClient.SendMessageText (x12)
  • DevCase.ThirdParty.Google.Gmail.GmailClient.SendMessageTextAsync (x12)
  • DevCase.ThirdParty.HtmlAgilityPack.Extensions.HtmlNode
  • DevCase.ThirdParty.HtmlAgilityPack.Extensions.String
  • DevCase.ThirdParty.HtmlAgilityPack.Extensions.WebResponse

Version 2.4

New Utility Classes:
  • DevCase.Interop.Tools.RegistrationUtil
  • DevCase.Interop.Tools.VisualStudioUtil
  • DevCase.Core.Application.StringLengthComparer
  • DevCase.Core.Application.UserInterface.ConsoleProgressBar
  • DevCase.Core.Maths.ChemicalElement
  • DevCase.Core.Text.FormattableString
New Methods:
  • DevCase.Core.Application.Tools.AppUtil.CreateMutex (x3)
  • DevCase.Core.Application.UserInterface.Tools.Graphical.GraphicalUtil.ShakeControl
  • DevCase.Core.Application.UserInterface.Tools.Graphical.GraphicalUtil.ShakeForm
  • DevCase.Core.Diagnostics.Tools.DebugUtil.EvaluateStructureInstanceSize
  • DevCase.Core.Diagnostics.Tools.DebugUtil.MiniDumpToFile (x2)
  • DevCase.Core.Diagnostics.Tools.DebugUtil.MiniDumpToMemoryStream (x2)
  • DevCase.Core.Maths.Tools.CombinatoricsUtil.CalculatePermutations (x2)
  • DevCase.Core.NET.Tools.WebUtil.PostXmlHttpRequest (x6)
  • DevCase.Core.NET.Tools.WebUtil.PostXmlHttpRequestAsync (x6)
  • DevCase.Core.Processes.Tools.ProcessUtil.GetProcessSecurityDescriptor (x3)
  • DevCase.Core.Processes.Tools.ProcessUtil.SetProcessSecurityDescriptor (x3)
  • DevCase.Core.Text.Tools.Textfiles.GetEncoding (x2)
  • DevCase.Interop.Tools.CompilerUtil.TelerikCodeConvert
  • DevCase.Interop.Tools.CompilerUtil.TelerikCodeConvertAsync
  • DevCase.Interop.Tools.ReflectionUtil.GetAllConstructors
  • DevCase.Interop.Tools.ReflectionUtil.GetAllEnums
  • DevCase.Interop.Tools.ReflectionUtil.GetAllFields
  • DevCase.Interop.Tools.ReflectionUtil.GetAllInterfaces
  • DevCase.Interop.Tools.ReflectionUtil.GetAllMethods
  • DevCase.Interop.Tools.ReflectionUtil.GetAllProperties
  • DevCase.Interop.Tools.ReflectionUtil.TypeHasPublicConstructor
  • DevCase.Interop.Tools.ReflectionUtil.TypeHasPublicDefaultConstructor
  • DevCase.Interop.Tools.RegistrationUtil.GACInstallAssembly (x3)
  • DevCase.Interop.Tools.RegistrationUtil.GACUninstallAssembly (x3)
  • DevCase.Interop.Tools.RegistrationUtil.IsAssemblyInGAC (x3)
  • DevCase.Interop.Tools.RegistrationUtil.RegisterManagedAssembly (x3)
  • DevCase.Interop.Tools.RegistrationUtil.RegisterNativeDll (x2)
  • DevCase.Interop.Tools.RegistrationUtil.UnregisterManagedAssembly (x3)
  • DevCase.Interop.Tools.RegistrationUtil.UnregisterNativeDll (x2)
  • DevCase.Interop.Tools.UnmanagedUtil.CallNativeFunction
  • DevCase.Interop.Tools.UnmanagedUtil.GetNativeFunction
  • DevCase.Interop.Tools.VisualStudioUtil.IsVisualStudioInstalled (x2)
New Extension-Methods:
  • DevCase.Core.Extensions.Mutex.GetOwnerProcess
  • DevCase.Core.Extensions.Mutex.GetOwnerProcessId
  • DevCase.Core.Extensions.Mutex.GetOwnerThreadId
  • DevCase.Core.Extensions.Mutex.IsAbandoned
  • DevCase.Core.Extensions.Mutex.IsOwnedByCaller
  • DevCase.Core.Extensions.SplitContainer.ChangeOrientation
  • DevCase.Core.Extensions.XmlNodeList.ToDataTable
New Shared Properties:
  • DevCase.Core.Application.Tools.AppUtil.AssemblyGuid
  • DevCase.Core.Application.Tools.AppUtil.IsCurrentAssemblyInGAC
  • DevCase.Core.Application.UserInterface.Tools.Console.ConsoleUtil.DisplayMode
  • DevCase.Core.System.Tools.SystemInfo.Windows.SystemIdleTime
New Enums:
  • DevCase.Core.Application.Enums.MutexScope
  • DevCase.Interop.Enums.TelerikCodeConverterMethod
  • DevCase.Interop.Enums.VisualStudioVersion
New 3rd Party Members:
  • DevCase.ThirdParty.Google.Drive.DriveClient.DownloadFile (x3)
  • DevCase.ThirdParty.Google.Drive.DriveClient.DownloadFileAsync (x6)
  • DevCase.ThirdParty.ScintillaNet.Tools.ScintillaNetUtil.AddLineNumbers
  • DevCase.ThirdParty.ScintillaNet.Tools.ScintillaNetUtil.DisableControlKeysPrint
  • DevCase.ThirdParty.ScintillaNet.Tools.ScintillaNetUtil.EnableControlKeysPrint
  • DevCase.ThirdParty.ScintillaNet.Tools.ScintillaNetUtil.RemoveLineNumbers (x2)
  • DevCase.ThirdParty.ScintillaNet.Tools.ScintillaNetUtil.SetCSharpDarkStyle
  • DevCase.ThirdParty.ScintillaNet.Tools.ScintillaNetUtil.SetCSharpLightStyle
  • DevCase.ThirdParty.ScintillaNet.Tools.ScintillaNetUtil.SetCSharpSystemStyle
  • DevCase.ThirdParty.ScintillaNet.Tools.ScintillaNetUtil.SetVbNetSystemStyle
by
by
by
by
by
by