This project has moved and is read-only. For the latest updates, please go here.

TVA Code Library v4.0.2 Release Notes

New Additions

  • TVA.Core
    • Added support to ignore duplicate keys by default in TVA.StringExtensions.ParseKeyValuePairs() method.
    • Added methods to TVA.Interop.WindowsApi class that can be used to define automation of service failure actions when a service gets installed.
    • Added WinNT DirectoryEntry lookups to TVA.Identity.UserInfo class for local accounts when machine is not joined to a domain.
    • Added Exists and DomainAvailable properties to TVA.Identity.UserInfo class to accommodate testing when domain server is not available.
    • Added TVA.Identity.UserAccountControl class containing helper methods related to UAC.
    • Added AdapterFileExtension and AdapterFileFormat properties to TVA.Adapters.AdapterLoader class to allow loading of serialized adapter instances.
    • Added TVA.Threading.InterprocessLock static class that defines helper methods related to inter-process locking.
    • Added TVA.Threading.InterprocessReaderWriterLock class that represents an inter-process reader/writer lock using Semaphore and Mutex native locking mechanisms.
    • Added TVA.IO.InterprocessCache class that represents a file that can be synchronously saved or read from multiple applications using an inter-process reader/writer lock.
    • Added Reload() and RestoreDefaultUserSettings() methods to TVA.Configuration.ConfigurationFile class to reload the configuration file settings and to restore the default user settings.
    • Added ToNonNullNorEmptyString() and ToNonNullNorWhiteSpace() extension methods to TVA.Common class.
    • Added Merge, Any and All extension methods to TVA.Collections.CollectionExtensions class.
    • Added TVA.Data.AdoDataConnection class to allow creation of any style of ADO database using configuration file ConnectionString and DataProviderString settings (generic database connection).
    • Added extension methods to TVA.Data.DataExtensions class:
      • Added CreateParameterizedCommand() extension method for IDbConnection.
      • Added AddParameterWithValue() and AddParametersWithValues() extension methods to IDbCommand.
      • Added overloads for all PopulateParameters() extension methods so that they could take a "params" style array of values for ease-of-use.
    • Added ExecutionException event to TVA.Adapters.IAdapter interface and TVA.Adapters.Adapter class.
    • Added ReaderWriterSpinLock class for optimized locking when lock times are expected to be very small, reads are very frequent and writes are rare.
    • Added TVA.Media.WaveDataReader for reading wave files without loading them into memory.
    • Added RemoveInvalidFileNameCharacters() and ReplaceInvalidFileNameCharacters() extension methods to TVA.StringExtensions.
  • TVA.Communication
    • Added IntegratedSecurity property to TVA.Communication.TcpServer and TVA.Communication.TcpClient classes to enabled integrated windows authentication.
  • TVA.Security
    • Added TVA.Security.UserDataCache class to allow caching of user information when user is disconnected from domain.
    • Added capability to TVA.Security.LdapSecurityProvider class to automatically cache and load user information when user is disconnected from domain using new TVA.Security.UserDataCache class.
  • TVA.ServiceBus
    • No new additions
  • TVA.ServiceModel
    • Added TVA.ServiceModel.SecureDataServiceHostFactory class for securing WCF Data Services.
  • TVA.ServiceProcess
    • Added TVA.ServiceProcess.ServiceInstallerEx installer class that can be used to define service failure actions at install time.
  • TVA.Web
    • Added new client-side extension methods to TVA.Web.UI.ClientSideExtensions class.
  • TVA.Windows
    • No new additions

Bug Fixes

  • TVA.Core
    • Fixed a bug in TVA.IO.FilePath.GetDirectoryName() method where last directory was being truncated as a file name (i.e., FilePath.GetDirectoryName("C:\Test\sub\") was returning "C:\Test\" instead of "C:\Test\sub\").
    • Fixed a bug in TVA.IO.FilePath.GetFileName() method where the path suffix was being removed before extracting the file name from the path.
    • Fixed bug in TVA.Security.Cryptography.Cipher class that caused system to timeout when no initial Key/IV cached existed.
    • Updated deserialization of KeyIVCache.bin file by TVA.Security.Cryptography.Cipher class to need only "read" access instead of "read/write" access.
    • Updated TVA.Identity.UserInfo.NextPasswordChangeDate property implementation for local WinNT accounts to handle a value of -1 for TVA.Identity.UserInfo.MaxPasswordAge property being returned on some VMs.
  • TVA.Communication
    • Fixed a bug in TVA.Communication.UdpServer class that prevented the ServerStopped event from being raised under certain configuration.
    • Updated TVA.Communication.UdpServer class to use "interface" in the creation of client endpoint so an exception is not thrown when forcing the use of IPv4 on IPv6 enabled OS using "interface".
    • Updated TVA.Communication.TcpClient and TVA.Communication.UdpClient classes to handle loopback address resolution failure on IPv6 enabled OS.
  • TVA.Security
    • No bug fixes
  • TVA.ServiceBus
    • No bug fixes
  • TVA.ServiceModel
    • No bug fixes
  • TVA.ServiceProcess
    • Fixed a bug in Disconnect() method of TVA.ServiceProcess.ClientHelper class that should have checked for null remoting client.
  • TVA.Web
    • Fixed System.NullReferenceException encountered in TVA.Web.SecurityModule when a request handler was not assigned.
  • TVA.Windows
    • Fixed a bug in TVA.Windows.Forms.FormExtensions class related to saving last window size and position that was introduced with cultural option for config file.

Breaking Changes

  • TVA.Core
    • Made TVA.Adapters.IAdapter interface a requirement for using TVA.Adapters.AdapterLoader class to effectively support serialized adapter instances.
    • Changed the signature of TVA.Adapters.AdapterLoader.AdapterLoadException event to not include the adapter Type.
  • TVA.Communication
    • No breaking changes
  • TVA.Security
    • No breaking changes
  • TVA.ServiceBus
    • Moved service bus implementation from TVA.Web.dll assembly to new TVA.ServiceBus.dll assembly.
  • TVA.ServiceModel
    • Moved WCF-related classes from from TVA.Services.dll assembly to new TVA.ServiceModel.dll assembly for better alignment with the .NET Framework.
    • Moved serialization methods from TVA.ServiceModel.Serialization class to TVA.Serialization class in TVA.Core.dll for consolidation.
  • TVA.ServiceProcess
    • Moved Windows Service Template classes from TVA.Services.dll assembly to new TVA.ServiceProcess.dll assembly for better alignment with the .NET Framework.
    • Moved TVA.ServiceProcess.UpdateType enumeration to TVA namespace in TVA.Core.dll for broader usage.
  • TVA.Web
    • Moved TVA.Web.SecurityPolicy class to TVA.ServiceModel namespace in TVA.ServiceModel.dll for better alignment with the .NET Framework.
    • Changed the REST endpoints of embedded SecurityService.svc to use query string for input parameters for security when used over SSL.
    • Changed TVA.Web.SecurityModule to pass a relative referral URL to embedded SecurityPortal.aspx so redirection works correctly when reverse proxy is involved.
  • TVA.Windows
    • No breaking changes

Last edited Aug 29, 2011 at 4:15 PM by pinalpatel, version 9

Comments

No comments yet.