This project is read-only.

Abstractions Features

The key features for .net 2.0:
  1. Bootstrapper with start up and shutdown tasks behaviour, stopwatch task
  2. Caching:
    1. Cache startup task
    2. Cache helper that simplifies get and store code
    3. DataKey/LazyDataKey
    4. LinkedCacheDependency,
    5. Decorated, CacheInstrumentation (performance counters), CacheRetryClient, Proxy and Null cache
    6. AbstractCaching implements default algorithm for Increment operation
  3. Cryptography:
    1. Symmetric algorithms key vector providers and helpers, FNV32/64, FNV32a, FNVModified hash algorithms
    2. SymmetricAlgorithmContext, SynchronizedSymmetricAlgorithmContext, SymmetricAlgorithmContextPool
    3. CryptoTransformHelper
  4. Helpers:
    1. Assembly helper (version string format in short and long version),
    2. CollectionHelper, DictionaryHelper (TryGetValue, UniqueueValues), EnumerableHelper (ForEach, Count, ToDictionary, ToNameValueCollection, Translate), ListHelper (AddRange), NameValueCollectionHelper (HasKey, AllPairs, ConvertToInt32, ConvertToBoolean,... handles required values)
    3. DateTimeHelper, Decimal to bytes and back converter
    4. EnumHelper (HasAll / HasAny flags)
    5. ExceptionHelper (list all inner exceptions), GuidHelper (IsEmpty, Shrink to a compact string of length 22)
    6. IpNumberHelper (ToIpNumber from string, ToIpString, ToIpLong)
    7. PasswordHelper (generate a random password for a given character groups)
    8. ObjectHelper (PropertiesToNameValueCollection)
    9. RandomHelper (Seed, NextChar, NextString, NextWord, Next<T> from a sequence of T, NextSentence, NextSentences, NextDate, NextSubstring, NextStartsWith, NextBoolean, FirstRandom from a sequence, TimesRandom, Shuffle sequence, NextSequence based of Func<T>)
    10. UriHelper, parse/build uri query string
    11. RetryHelper, executes a given function Func2<bool> until succeed or the following reached: MaxRetryCount or RetryTimeout. There is a delay between retries (RetryDelay). TimeoutException is thrown in case of RetryFails is true. Uses RetryOptions.
    12. BitConverterHelper, get bytes from a string encoded with BitConverter.GetString.
    13. StringHelper (NullSafe, NullEmpty, WrapAt, AllOf, StripHtml, StipNewLine, StripWhitespace, Capitalize, Contains, Left, Right, Repeat, Join, ParseOptions, Hash)
  5. IO:
    1. IBinaryWriter, IBinaryReader and implementation for Stream
    2. BinaryReaderHelper (ReadTo byte buffer, ReadToken based on predicate)
    3. DecoratedStream
  6. IoC
    1. Dependency resolver (IoC)
  7. Various model abstractions:
    1. Buffer (with EnsureMore) and BufferHive (a pool of buffers)
    2. ByteArrayComparer
    3. ValueObject, LazyObject and LazyPrincipal, Disposable, IValidationState, Pair, Range
    4. Paged List and settings
    5. Encoding: IEncoder, Base64Encoder, HashEncoder, TextEncoder
    6. Pooling:
      1. DecoratedPool, EagerPool, LazyPool, ManagedPool, PooledPool, StackPool
      2. IdleTimeoutPool
      3. KetamaPool (and SynchronizedKetamaPool)
      4. SynchronizedPool, WaitPool
    7. Topic, invoke strategies: publisher, thread pool, synchronization context
    8. Key (an easy way to get a string key out from model to be used as a key for cache), IKeyProvider
  8. Net:
    1. Client (abstraction that relates to client in client-server interaction scenario), Distributed (a pool of Clients), ConnectionOptions, DistributedOptions
    2. ClientFactory
    3. BigEndianConverter
    4. Dns Helper (a timed query for dns information)
    5. SocketHelper (a timed connect)
    6. TcpClientConnection (to be used by Client for client-server network communication)
    7. HttpClient (GET/POST/HEAD form submitting)
  9. Repository pattern:
    1. IRetrieveRepository and IRetrieveMultipleRepository, DbConnectionStringProvider
  10. Serialization:
    1. Object state
    2. Formatters:
      1. Decorated, Array, Null, Simple (Int32, Boolean, etc), Runtime
      2. Compressed (deflate)
      3. Encrypted (symmetric)
      4. Protobuffers (comming soon)
  11. Services:
    1. ApplicatService acting as a bridge between the client code and Repository, includes validation, error handling policy
    2. MailService
    3. TopicCatalog
    4. UnitOfWork pattern
    5. RunOnceService (ensures that give operation is executed only once utilizing a counter in memcached)
  12. Threading:
    1. Abstract background task, plus bootstrapper start all / shutdown all background tasks
    2. LockScope, MonitorLockScope, Reader/Upgrade/Writer LockScope
    3. WaitAsyncResult
    4. AsyncHelper implementing FireAndForget pattern using ThreadPool
  13. Tracing (helpers to System.Diagnostics)
    1. Exception trace policies:
      1. ErrorFormatter
      2. Loaded Assemblies
      3. EventLog
      4. Machine/Process information
      5. Mail see sample here
      6. Ignore (exclude certain exceptions from error reports)
      7. Performance Counter (queries system performance counters)
      8. TransferExceptionHandler
    2. PerformanceCounter
    3. Console trace listener
    4. TraceHelper
  14. WorkItem: a background processing unit with rules sequential workflow

Last edited Jun 15, 2011 at 12:26 PM by akorn, version 10


No comments yet.