This library extension creates a WCF wrapper around your ASP.Net membership provider. You can use most any standard ASP.Net membership provider as your underlying security. You can use this provider to easily build out web farms using a common web services security end point. (This is a beta project seems to work, but we don't haven't deployed this into a production environment). See
documentation for details.
ScrimpNet.Core is a library of miscellaneous utilities we have found to be useful in our real applications. Of course we might have thrown in something cool just for fun. Most of these classes and functions are nothing new or reflect some radical new thought. They are just helper functions and libraries which we found helpful from time to time.
We have tried to organize the urchins in the same categories as the .Net System and Microsoft namespaces. Of course the squirrely things might end up anywhere. We didn't create and collect ScrimpNet.Core as some science experiment or a demo or some code mash thing. We are not in the business of building framework libraries or tools. This library is in actual production systems. Thus as we find bugs (and yes there are some) or we find ways to refactor, we'll fix, fold, spindle, remove, mutilate, morph, or simply change what we want to. You are free to use the library but by doing so, you acknowledge the fact that we don't owe anything to you.
You are looking at a library, not especially a framework. That means the classes and functions here were not necessarily built for extensibility. You might find places in the code where we think we might find it helpful to extend. So we don't forget where they were we marked those places with the //EXTENSION comment flag.
ScrimpNet.Core is currently targeted for .Net 3.5 or better. We have tried to keep the library as generic as possible but we do use Extensions and the newer thread locking mechanisms.
We hope you find these functions will help you handle some tedious tasks faster so you can focus on delivering excellent code and solving real problems.
| Namespace | Summary | Examples and Notes |
| Collections | Handles things like data structures and groups of objects | AsyncBuffer - a multi-threaded FIFO buffer. Used in our logging subsystem but can be used anytime you need out of band buffering. Tree - supports traditional tree operations |
| Configuration | Retrieve strong typed values from .config | Robust methods and patterns for grabbing and using values from configuration files |
| Cryptography | Encode & decode objects using internal and external keys | Decrypt, Encrypt,Hash (Rijndael with 256 bit key) |
| Diagnostics | A log wrapper to easily integrate logging and tracing | A zero-config (no configuration necessary), out-of-band, high speed rolling file name logging facade. Stand-alone or integrates with log4Net, EntLib.Logging, .Net tracing, and NLog. |
| i18N | Utilities around dealing with various kinds of spatial, globalization, and internationalization | Coordinate - mathematical, comparison, and ToString(). Culture Codes enumeration - RFC1766 collection. DistanceSpan - operations and conversions around distance. Supports both Metric and English systems. |
| IO | Deals with streams and file based operations | ToBytes - convert an object into byte array. CleanFileName - remove operating system invalid characters from a string. StreamToBytes - convert any stream into byte array. BytesToStream - convert array of bytes to stream |
| Net | Operations relating to network protocols | MIME - supports MIME types, determining MIME types from file extensions, getting an icon for a particular MIME type, etc. Very helpful when we were receiving files from callers or streaming a requested file back to a caller. |
| Reflection | Interrogates runtime environment | AssemblyVersion - retrieves values stored typically stored in the AssemblyInfo.cs file of projects. ProviderFactory - load and instantiate classes from file system. Resources - open/read files embedded in an assembly |
| Presentation | Light weight helper library to easily incorporate common MVVM functionality into your WPF ViewModels including Command management, IDataErrorInfo, IPropertyChanged, and IDisposable. (ScrimpNet.Presentation.dll) |
| Serialization | Lightweight wrappers around common conversion patterns | Supports JSON, SOAP and XML. Includes Extension overloads |
| ServiceModel | Patterns around WCF | Self hosting library particularly useful for short console applications or exercising your services without IIS. Great for development and testing scenarios. |
| Text | String construction and manipulation | Code snippets for things such as Left, Right, MaskRight/MaskLeft (for partial masking such as SSN and CreditCard |
| Web | Web centric helper methods | RequestToString - build a string of the complete HTTP Request. Used especially for logging and debugging. |
| (core) | Contains functionality that doesn't fall within other namespaces. | Also contains all extension classes (thus if you are using down level frameworks you can exclude all extensions easily). |
| Validation | Methods to validate data, particularly used in parameter validation areas | Guard.* validates data and throws an exception if the validation fails. Check.* validates data and returns boolean. Especially helpful when validating DateTime and floating point (single, double, float) values. These classes are modeled after .Net and NUnit assertions and are heavily overloaded while supporting .Net native types. Some sample validations are: LessThan/GreaterThan, Between/NotBetween, MatchesPattern/MatchesWildCard, Equal/NotEqual, Null/NotNull, EmptyGuid/NotEmptyGuid, EMailValid |
| Transform | Modeled after .Net Convert methods | Used often in configuration and ADO operations. Supports default values on conversion failure. Cool feature is that it supports Boolean couplets of {Yes,No},{ On, Off}, {true, false}, and {0,1} which makes our configurations less fragile. Often includes more detailed conversion error information than .Net. |
| Utils.Date | A DateTime library | Manipulates days (e.g. DayBegin, DayEnd) weeks, months, quarters, fiscal (e.g. Quarter, MonthNumber) and calendar years. Key function is SqlDate that coverts .Net Datetime value into something safe for Microsoft SQLServer. |
| Extensions | Wrappers around existing library methods. | Commonly used ones are:<StringBuilder>.AppendLine,<Exception>.Expand,<IDataRecord>.GetValue,<DateTime>.SqlDate,object>.ConvertTo |
| CoreConfig | | All configuration that is specific to the ScrimpNet.Core classes |