What’s new
- Built-in support for Microsoft Azure and Google OAuth authentication APIs. Add Google or Microsoft login to your applications in 5 minutes!
- Streaming (partial responses) fully implemented for all IntraWeb application types. Display multi-gigabytes video and audio from your applications easily.
- New IWServerController.SessionOptions.LockedSessionNoContentResponse (Boolean, default True). When set, instead of generating the “Session Already Locked” exception, IW will respond with a 204 status code (No Content) which effectively allows the session to continue.
- New IWCheckBox styles (11 new styles + custom style)
- New control TIWImageLoader (descends from TIWCanvas). Allows loading of image from disk, cropping, upload to the server, download to the browser and much more with very little or no code at all.
- New controls: TIWDownloadButton and TIWDownloadLink. Easy file download leveraging modern browser features
- IW jQuery updated to version 3.6.4, the latest, more secure and stable
- New IWForm.OnAsyncOrientationChange event used for mobile browsers. The event triggers whenever the mobile device is rotated (and the actual orientation of the browser changes). Inspect IW_orientation parameter within the async event to find out he browser orientation (e.g. “portrait-primary” or “landscape-primary”).
- New template cache with major performance improvement when processing any template
- New method in IWForm, ExecuteJS(). Does the same as WebApplication.ExecuteJS()
- New support to Http method PATCH. Added support to receive files in PUT and PATCH
- New properties RenderSize and RenderPos in IWModalWindow
- Property Align exposed (published) in IWjQAccordion and IWjQPageControl controls.
- New events OnAsyncPageChanged and OnAsyncBeforePageChange added to TIWjQPageControl similar to IWjQAccordion
- New property Series exposed in TIWChartJS
- New UnsupportedBrowser.html template for errors with download links to modern browsers (Chrome, Firefox, Edge)
- New error template for 401 errors (Authorization failed) which is also used for Azure/Google oAuth authentication
- New LoadFromDataUrl() method for TIWCanvas. New property BorderOptions (draws regular border around the canvas)
- New utility methods ReadAllBytes and ReadAllText added to TIWTextFileReader
- New binaries for ASP.NET deployment (IntraWeb.dll version 1.0.0.9). This version supports streaming (partial responses). Packet version is 8
- New version of 1.1.0.0 of our great IWCertificateManager tool with various enhancements, including challenge file availability check.
Modified
- Several new extensions are blocked by default. If your IW app serves one of these extensions (very unlikely) you need to remove it from the list, explicitly in ServerController.OnConfig event. Blocked extensions are: .alfa .asp .aspx .bak .bat .cer .cfg .cgi .cmd .config .crt .der .env .htaccess .ini .jar .json .jsp .jspx .key .pem .pfx .php .pl .ps1 .py .reg .sh .vbs
- ajaxCall() should always send parameters as a POST request
- Disables TControl’s touch manager in TIWCustomControl descendants, which is useless for IW controls.
- IWBootstrap3: jQuery version updated to latest 3.6.4
- IWBootstrap4: jQuery version updated to latest 3.6.4
- In IWBoostrap4 we are rendering jQuery.min.js instead of the slim version, jQuery.slim.min.js
- Slightly improved performance of HTTP.SYS doing header field lookup. DefaultThreadsPerCore reduced from 16 to 8
Bug fixes
- Bug fix: IWApplication.RunParams would contain encoded parameters
- Potential rare AV in TIWContainer
- Potential rare AV eliminated when responding to wrong Ajax event
- IWSelect fix when not rendering local files
- Fix for changing AlignWithMargins during async event
- Do not encode parameters of the Request object (IWApplication.Request) when starting a new session
- Reference missing to IWCompSummernote.pas
- Summernote toolbar editor reference missing
- IWButton with images would lose image reference when updated in async
- TIWCanvas.ClearCanvas method fixed
- Edge would fail to retrieve all runtime parameters from the command line, when starting from SA main window
- In IWjQAccordion, OnAsyncBeforePageChange/OnAsyncPageChanged could cause a JavaScript execution error
- In IWjQPageControl Programmatically changing pages could cause the ActivePageIndex to become out of sync