New Http.sys application type. Http.sys is the Windows Kernel mode driver which is the core of IIS. Http.sys IntraWeb applications are also stand alone, blazing fast, easy to debug and deploy because they don’t require IIS!
IW Bootstrap is now included with IntraWeb. All IDEs are supported (from Delphi 2009 to 10.2 Tokyo). Full source code included.
New zlib library. IW zlib is based on zlib Cloudflare code base and is more than 8x faster than Delphi XE7 zlib (x64). Still almost 2x faster than Delphi XE8-10.2 (x64). IW zlib is the fastest zlib available for Delphi! From now on we build our own zlib so you can have the best performance ever!
New TIWTemplateParserHTML. Template parsing and processing is more than 300% faster than IW 14 version.
Removed /$/ (Exec command) from URL in browser. Exec command “/$/” is still used internally though.
SameSite cookie attribute is now supported in all IntraWeb application modes (except ASPX Library, because ASP.NET doesn’t support it directly). Improves security and prevents CSRF attacks. Read more about it here: https://www.owasp.org/index.php/SameSite
IW 15 requires new license, i.e. existing IW 14 licenses won’t work at all with IW 15. A new license has been generated for all paid customers with valid subscription and the new license can be obtained online at https://app.atozed.com
Improved IWModalWindow: New properties HasHeader, HasFooter, BorderWidth and CloseOnClick
Extended HTML 5 attributes (Autocomplete, Spellcheck, Placeholder) for TIWEdit, TIWMemo and descendant classes
jQuery version updated to version 1.12.4 (same used by IW Bootstrap library). jquerymaskedinput.js updated to latest version 1.3.1
Templates: Attributes are allowed inside template control tags
LockSessionTimeout property in ServerController (in milliseconds). Default is 30000 milliseconds
New event ServerController.OnBind which can be used to set HTTP and HTTPS at runtime (Ultimate only)
New methods in THttpRequest: THttpRequest.HasField(), THttpRequest.GetQueryFieldValue()
TIWLinkBase and descendants have new property HasTabOrder
New feature CheckWindowId which allows applications to detect when a link to a valid IW application session is used in another browser tab
ISAPI applications now allow redirection from HTTP to HTTPS. It is much easier to do that from IntraWeb than from IIS or other server. Requires: ServerController.SSLOptions.NonSSLRequest = nsRedirect; ServerController.ProxyPortRedirection.Active; ServerController.ProxyPortRedirection.HttpsPort > 0
New TContentBase.RequiresSession property (default True). When false, a content handler can be executed before session validation. It can be used, for instance, to provide custom static content which don’t require a user session.
Remove Styles from IWControls when rendering in Async, if TemplateProcessor.RenderStyles = False. This fixes several problems when using templates
Set Password type for inputs during async
IWImageList.ExtractImageToCache is made virtual (makes it compatible with IW 12 implementation)
Stack trace of all threads included in IWJclStackTrace
IW.Common.System renamed to IW.Common.SysTools. Applications shouldn’t use IW.Common.System directly. However, existing applications will still build/work when using IW.Common.System (a wrapper unit for compatibility is provided). Name has been changed due to issues caused by name conflicts in some versions of C++ Builder compiler.
IWPaintHandlers: Use an ancestor paint handler at design time, when a specific paint handler is not registered
Several fixes regarding IPv6 in SA mode
TIWCustomRegion.get_HTMLName made protected and virtual so it can be overridden in descendant classes
CheckConnectionMode (secure/non secure) executed before Form execution
New SessionLocked.html exception. New default colors for built-in Exception renderer
“Cannot find submit component” exception is now EIWSubmitException and should contain the referenced component name (easier to identify problems during development and also in production)
MIME types are consts now instead of resource strings to avoid C++ Builder bug (IWMimeTypes.pas)
Breaking change: StyleRenderOptions.RenderBorder is FALSE for for IWEdit, IWLisBox, IWComboBox, IWMemo controls and descendants by default. This shouldn’t affect most existing applications. Now, if no style is provided, these controls will render using browser default style.
Modified: Invisible controls should be aligned by default (restored behavior of 14.0.x branch).
TIWFile finally removed from IW 15 codebase. Use TIWFileUploader instead. All references to IWFile.pas should be removed from IW applications.
Several performance improvements and optimizations
Bug Fixes (baseline is 14.2.7)
ISAPI applications would fail to create valid responses (status code 500) when parsing invalid header (including cookie) fields.
Fixed issue in TextToJsonString method
Fix for IWRegions owned by TFrame which is also owned by other TFrame
ASPX loader fix: Obtaining correct port number from request
Bug in fixup mechanism fixed (IWClassesFix)
TIWCustomEdit (and descendants) text wouldn’t clip if NonEditableAsLabel = True
Do not render style tag in async when using templates and RenderStyle is False
Better sizes for scaled windows fonts (125% and 150%) when using SA-GUI application
Fixed empty stack trace when using jdbg format for map files
Several issues in IW Bundled Removal Tool were fixed it has been greatly improved