- New: Credential, CredentialType, CredentialPersistence, CredentialManager, SecureStringHelper and SecurePasswordBindingBehavior added to ITCC.WPF
- New:
MaxConcurrentRequests
,MaxRequestQueue
andConfigurationViewEnabled
added toHttpServerConfiguration
- Edit: Dependencies updated
- New :
DebugLogsEnabled
andRequestTracingEnabled
added toStaticServer
(can be turned on during startup via config and changed in runtime) - Fix : Do not throw in Logger::FlushAsync if email logger is registered but not started
- Fix : Pass
checkDescription
toApiViewCheckAttribute
viaCallerMemberName
- Fix : Thread pool usage statistics fixed in
StaticServer
- New: Library can now be built for NuGet deploy
- New:
ITCC.HTTP.API.Documentation
added for automatic docs generation - New:
ITCC.HTTP.API
extended (a lot of attributes for method and view descriptions) - Edit: BREAKING CHANGE: solution layout changed (src/tests/build)
- Edit: BREAKING CHANGE: .NET Standard projects upgraded to new .csproj format (requires Visual Studio 2017)
- Edit: Requeired .NET Framework vesrion downgraded to 4.5
- Edit: pre-build scripts removed
- Edit: Dependencies updated
- Edit:
ITCC.HTTP.Server.Core.RequestProcessor
now uses properties instead of fields and implementsIRequestProcessor
- Edit: Dependencies updated
- New:
EnumInfoProvider
andEnumValueInfoAttribute
added toITCC.HTTP.API
- New:
StaticServer
now ensures all file sections exist at startup
- Fix:
StaticServer::Start
error handlers fixed - Fix:
ServerStatistics
CPU counter fixed
- New:
EnumDescriptionTypeConverter
andLocalizedDescriptionAttribute
added toITCC.WPF
- Fix: Request logging with files turned off fixed in
StaticServer
- Edit: BREAKING CHANGE: ItemsFilter removed from submodules
- New:
HEAD
requests API forRegularClient
/StaticClient
- New:
StaticServer
statistics now includes CPU usage. Now for process, but machine total - Edit:
BufferedFileLogger
/PortableBufferedFileLogger
now have optionalmaxQueueSize
constructor parameter - Edit:
RequestResult<TResult>::Headers
now include content headers (such asContent-Length
) - Edit:
RegularClient
/StaticClient
logs now include content headers (such asContent-Length
)
- Edit: Newtonsoft.Json downgrade to 9.0.1
- Edit: Prebuild scripts should go to lib\ folder
- New:
ITCC.UI
project added - New: github pages enabled (https://opexgroup.github.io/ITCC.Library)
- Edit: BREAKING CHANGE: A lot of classes moved from
ITCC.WPF
toITCC.UI
- Edit: BREAKING CHANGE:
IFlushableLogReceiver
interface changed (void Flush() => Task FlushAsync()
). - Edit: BREAKING CHANGE:
Logger
interface changed (void FlushAll() => Task FlushAllAsync()
). - Edit: BREAKING CHANGE:
UiThreadRunner
replaced byAsyncUiThreadRunner
. - Edit: BREAKING CHANGE:
ObservableLogger
now acceptsUiThreadRunner
instead ofAsyncUiThreadRunner
. - New: Commands added to
ITCC.WPF
:DelegateCommand
,IAsyncCommand
,AsyncCommand
,AsyncCommand<TResult>
,NotifyTaskCompletion<TResult>
,AsyncCommandFactory
- Edit: BREAKING CHANGE:
HttpServerConfiguration
now takesIBodyEncoder
list instead ofBodyEncoder
list. Several implementations added. - Edit:
StaticServer
now requires prebuild script - Edit:
StaticServer
services refactor - Edit:
StaticServer
now adds list of supported content types with406 Not Acceptable
- Edit: All nuget dependencies updated to last versions
- Fix:
StaticServer
now starts correctly if static files are disabled
- Fix: Prevent files from multiple gzipping in
FilePreprocessorController
- Fix: Unlock files correctly after processing in
FilePreprocessorThread
- Fix:
StaticClient
andRegularClient
Content-Type
fix forPOST
requests
- Fix:
StaticClient
andRegularClient
fix in caseTResponseSuccess
is raw string
- New:
StaticServer
now supports background file gzipping - Fix: Minor fixes after PVS-studio check
- Fix: Possible race conditions fixed in FilePreprocessController
- New:
StaticServer
memory overhead warnings added - New:
CriticalMemoryValue
andMemoryAlarmStrategy
added toHttpServerConfiguration
- Fix:
RegularClient::SerializeHttpRequestMessage
headers format fixed
- Edit:
Logger
portability improved - Fix: Small docs fixes
- Edit: BREAKING CHANGE:
RegularClient
andStaticClient
API breaking changes - Edit:
Either<TFirst, TSecond>
does not accept nulls in costructors - Edit: Several minor fixes
- New:
415 Unsupported Media Type
is now processed byStaticServer
,RegularClient
andStaticClient
- New:
ViewSetConflict
errors construction - Edit:
RequestProcessor::Method
now defaults toGET
- Fix: Encoder selection fixed in
ResponseFactory
- Fix: Display generic types correctly in
ApiErrorView::ViewType
- New:
NonSerializableTypes
option added toHttpServerConfiguration
- New: Files HEAD requests implemented
- Edit: BREAKING CHANGE: Loggers splitted into desktop and portable versions
- Edit: BREAKING CHANGE:
*FileLogger
,*ConsoleLogger
,RotatingRequestLogger
moved to ITCC.Logging.Core - Edit:
IDisposable
implemented in classes with timers - Edit:
ItemsFilter
updated
- Edit: Build
ITCC.Logging.Core
andITCC.HTTP.API
against netstandard 1.3 - Edit: Build all desktop projects against .Net 4.6
- New: API error tree generation added
- Edit: Several docs fixes
- New:
ITCC.HTTP.API
library added - Edit: Build library against .Net 4.5.2
- Edit:
ITCC.Logging.Core
now can be used under Windows Phone 8.1
- New:
RequestBodyLogLimit
added toHttpServerConfiguration
- Fix: Several encoder issues fixed (for multiple encoders in
StaticServer
)
- New:
ITCC.HTTP.Server.Testing
util added - Edit:
406 Not Acceptable
is now processed inStaticClient
- Fix: Encoder selection and response
Content-Type
fixed (correctAccept
parsing)
- New:
StaticServer
now supports several body encoders - Edit: BREAKING CHANGE:
ITCC.UI
namespace renamed toITCC.WPF
- Fix: POST requests handler fixed in
FileRequestController
- Fix:
SerializeHttpRequest
fixed
- Fix:
Range:
headers parsing fix - Edit: Use larger copy buffers for large files (gives significant performance improvement)
- Fix: Do not log binary request bodies on server
- New: ThreadPool usage added to ServerStatistcs
- Edit: Better statistics representation
- Fix: Server debug build fixed
- New: Memory usage and internal error contexts are now displayed in server statistics
- New:
Logger
now supports output with conditional compilation - Fix:
BufferedFileLogger
fixes: correct frequency value in all constructors + redundant line break removed
- New:
ITCC.HTTP.SslConfigUtil
added: core API, WPF GUI, basic console - New: Started to implement LogReader for structured log files reading
- New:
SslConfigUtil
integrated intoStaticServer
- Edit:
LogWindow
rendering improved drammatically - Edit:
Newtonsoft.Json
removed fromServer
dependencies - Edit: BREAKING CHANGE:
ITCC.HTTP
splitted - Edit: BREAKING CHANGE:
ITCC.UI
renamed toITCC.WPF
- Edit:
ItemsFilter
submodule added
- Fix:
LogWindow
large messages display fix
- Edit:
LogWindow
rendering optimized even more
- Edit:
LogWindow
rendering optimized (linked-list usage, internal buffer)
- Edit: Make URIs case-insensitive is
StaticServer
- Fix: Request logging fixed in
StaticServer
.- This way uses reflection and private field access. This causes possible lack of portability and backward/forward compatibility
- Note: this is a hack. Request logging will be used only if
TRACE
preprocessor constant is defined. It is not recommended for production usage for now
- Fix:
StaticClient::PostRawAsync
fixed (recursion was wrong)
- New: Build configurations for different platforms (finally :) )
- Edit: HTTP server core refactoring and simplification
- Fix:
ITCC.Geocoding
prebuild fixed - Fix: HEAD requests work again
- New:
ITCC.Logging.Core
extracted as portable class library. - New:
StaticServer
files API improvements
- New: Griffin.Framework removed from dependencies
- Edit: Docs splitted
- New: Server configuration breaking change
- New: Critical information protection added for
StaticServer
,RegularClient
andStaticClient
- New:
RotatingRequestLogger
added
- New: More info for server message sending
- New: 202, 206, 416, 503 codes processing added in
RegularClient
andStaticClient
- New:
Range
header processing for files added inStaticServer
- New: Image compression (on
POST
and in background) added - New:
FilesPreprocessingEnabled
,FilesPreprocessorThreads
andExistingFilesPreprocessingFrequency
options added toHttpServerConfiguration
- New:
TemporaryUnavailable
value added toServerResponseStatus
enumeration - New:
uiThreadRunner
param recommendations added toREADME.md
forObservableLogger
- Edit:
Newtonsoft.Json
updated to 9.0.1 - Edit: Set vertical text alignment to
Top
for text-wrapped DataGrid cells
- Fix: Do not log binary files' data on receiving
- Edit: Changing log level in
LogWindow
does not need confirmation
- New:
DebugLogger
added toITCC.Logging
- New:
Logger::Level
can be changed inLogWindow
GUI
- Fix: Fix in
ResponseFactory
- Fix: Response logging fix in
StaticServer
- Fix: Request logging fix in
StaticServer
- Edit: Better log for servers with gzip enabled
- Fix: Authentification fix for servers with gzip enabled
- New: Full redirect (301, 302) support added in
StaticServer
,StaticClient
andRegularClient
- Fix: Decompression method selection fixed
- New: GZip compression is implemented and enabled by default in
StaticServer
,StaticClient
andRegularClient
- Fix:
GetFileAsync
,PutFileAsync
andPostFileAsync
file sharing fix forStaticClient
andRegularClient
- New:
GetFileAsync
andPutFileAsync
added forStaticClient
andRegularClient
- New:
outputStream
param added forRegularClient::PerformRequestAsync
- Edit:
RequestProcessor::LegacyName
removed
- Fix:
AuthentificationResult
constructor fix
- Edit:
AuthentificationResult
now hasAdditionalHeaders
instead ofUserdata
- Edit:
DataGridHelper::HandleAutogeneratinColumn
does not uselastColumnName
- New:
DataGridColumnStyleAttribute
added
- Fix: Google geocoder fix
- New: Google maps API support
- Fix:
Logger
made static
- New:
IFlushableLogReceiver
interface added - New:
Logger::FlushAll(void)
method added - New:
BufferedRotatingFileLogger
added - New:
EmailLogger
new implementsIFlushableLogReceiver
- New:
ITCC.Geocoding
project added - New:
MaxFileSize
added toFileSection
.413 Request Entity Too Large
support added - Edit: General HTTP refactor (See
HandlerResult
andRequestResult
)
- New:
EmailLogger
will now report about it's start
- New:
MaxQueueSize
parameter added toEmailLogger
configuration
- Edit: More accurate time counters in
ServerStatistics
- Fix: Fixed service requests performance measuring in
StaticServer
- New:
DataGridIgnoreAttribute
added
- New: Email logger added
- New:
RequestMaxServeTime
added toHttpServerConfiguration
- New: ITCC.UI added
- Fix: Statistic fixed for file requests
- Fix: Respond with 400 instead of 500 for bad file requests
- New: Server asynchronous stop supported
- New: Use reserved uris and methods set
- Edit: More thorough server configuration check
- Fix: Correct timeout/cancellation conditions in
RegularClient
- Edit: Enum element renamed from
RequestCanceled
toRequestCancelled
- New: Test project added
- Fix: Log entries' time fixed
- Fix: Statistics improved
- Fix: Use ling in processor selection
- Fix:
PostFileAsync
returnsServerResponseStatus.Ok
on good codes - Edit:
POST
for files returns201 Created
instread of200 OK
- Fix: Request processor selection fixed
- Fix: Wrong
Method Not Allowed
condition fixed
- Edit: Griffin.Framework updated
- Fix: ResponseFactory type initialization fixed
- New:
Method Not Allowed
responses added - Edit: Do not log full or partial response bodies if TRACE constant is not defined
- New:
BodyEncoding
,LogResponseBodies
andResponseBodyLogLimit
added toHttpServerConfiguration
- New: Correct request timeout processing added to client (
ServerResponseStatus.RequestTimeout
) status - Edit: Critical log colour changed in
ColouredConsoleLogger
- Edit: Changelog format changed
- Fix: Possible
Logger
concurrency issues fixed - Fix: Possible
ServerStatistics
concurrency issues fixed
- Edit: Performans stats output enhanced
- Edit: Datetime format changed for
ITCC.Logging
- New: Performance measuring added
- Fix: File sections fix
- Fix: Statistics authorization mechanism fix
- New:
SuitableSslProtocols
added toHttpServerConfiguration
- New: Client SSL cipher suite information is avaible in logs (per connection) and in /statistics section
- New:
StatisticsAuthorizer
added toHttpServerConfiguration
- Edit: GET for files uses actual content types (
MimeTypes
added)
- New: File sections with separate access rights added (
FileSections
added toHttpServerConfiguration
) - Edit:
FilesAuthorizer
signature changed (now it also takes requestedFileSection
)
- Edit: Small statistics enhancement
- Fix:
IsFilesRequest
fixed for servers with files disabled
- Edit: Better thread info in logger output
- New: Non-static HTTP client (
RegularClient
) added
- Fix: Correct prebuild
- Fix: Prebuild added (correct submodule build)
- New: Library created (HTTP and Logging modules)