What’s new in Beta 8:
- Extensibility and Plugins (Pro): extend the features of CSHTML5 by creating and consuming class libraries built with CSHTML5 (see documentation). Many open-source extensions have already been created, including:
- ControlTemplates, Storyboards, VisualStateManager, Animations (only discrete key frames with ObjectAnimationUsingKeyFrames and KeyTime=0 are supported at the moment), OnApplyTemplate, TemplateBinding… (see examples of templates)
- ResX Resource Files support (localization support is coming soon)
- Embed JS and CSS files in your project and reference them using either the “ms-appx:///AssemblyName/Folder/FileName.js” syntax or the “/AssemblyName;component/Folder/FileName.js” syntax
- TabControl (customizable via Styles/Templates)
- Expander (customizable via Styles/Templates)
- New “Run from Localhost” option in the Simulator that lets you test features such as Storage, Geolocalization, httpcalls, and other features using a local web server
- Custom Attributes support and “MemberInfo.GetCustomAttributes” method
- Improved appearance of Button and ToggleButton (now with PointerOver / Pressed / Disabled states), that can be customized via a ControlTemplate
- Added “Tuple2” and “HashSet2” classes (to temporarily make up for the lack of native ones)
- Added inline documentation in C# Intellisense / auto-completion
- Added support for Silverlight-like and WPF-like URI’s such as: “/AssemblyName;component/Folder/FileName“
- Added properties “HorizontalContentAlignment” and “VerticalContentAlignment” in the “Control” class
- Added “IsLoaded” property to FrameworkElement
- Added “Application.Current.RootVisual” (alias of Window.Current.Content”)
- Support for prefixes inside the “TargetType” property
- Added attributes to tell the minimum CSHTML5 version that a class library supports(useful for future backward compatibility of extensions)
- Bug fixes:
- Fixed broken <WrapPanel/> control
- Fixed warning about “DefaultValueAttribute” being defined twice
- Fixed warning about ‘InvokeConstructor’ of “HtmlEventProxy”
- Fixed “Type not found” compilation error when using custom controls in XAML
- Improved rendering of <Path/>, <Ellipse/>, <Rectangle/>, and <Line/> controls
- Fixed issue where the <Path/> control didn’t render properly if its properties were set after the control was added to the visual tree
- Fixed issue where referencing class libraries could cause a compilation error saying that the compiler was unable to locate “CSharpXamlForHtml5.dll”
- Fixed an issue where setting BorderThickness resulted in cropped Border content
- Fixed an issue with the PasswordBox that prevented the MaxLength properly from working properly
- Fixed an issue that caused DataTemplates to be removed from the XAML Preview Pane at design-time
- Fixed an issue caused the CSHTML5 Project Templates to disappear
- Fixed an issue that prevented the Calculator sample from compiling under VS 2015
- Other minor fixes. If you find any other issues, please report them on the forums or contact us at firstname.lastname@example.org
Version 10.1 includes IoT and user interface enhancements along with new features and bug fixes
AUSTIN, Texas–(BUSINESS WIRE)–Embarcadero Technologies (recently acquired by IDERA), a leading provider of software solutions for application development, today released the 10.1 versions of RAD Studio™, C++Builder® and Delphi®. The updated products, dubbed “10.1 Berlin,” feature an array of new and enhanced capabilities, including significant Internet of Things (IoT) connectivity improvements and new, multi-device preview options to greatly increase developer productivity.
In March, Embarcadero announced its strategy to focus product and engineering resources exclusively on the developer tools market. The 10.1 Berlin release, which is being launched globally today at a live event in Berlin, Germany, embodies this strategy shift.
10.1 Berlin expands developers’ ability to use a single codebase to rapidly develop applications for any device, while FireUI enhancements allow multiple device previews in real time. This version provides core technology enhancements such as the GetIt Package Manager that make it easier to create components and extensions for Embarcadero’s large partner ecosystem. This is especially important to develop and support a broad range of IoT-connected applications.
“10.1 Berlin is an important milestone for Embarcadero and demonstrates our commitment to developers,” stated Atanas Popov, general manager of Embarcadero. “We are the choice for developers that want to build amazingly fast, reusable code that is platform independent. Our ability to support enterprise strong applications at radically competitive prices is unmatched.”
New Features and Benefits
- New FireUI Capabilities – FireUI multi-device preview allows developers to visually build mobile and desktop applications and customize them at design time for different form factors and operating systems. FireUI app preview lets developers see their FireMonkey application on iOS, Android, OSX and Windows targets as they are designing it, with changes made in the FMX designer shown in real time.
- Broad IoT Connectivity – Core technology enhancements to Embarcadero ThingWare™, ThingConnect™ and ThingPoints™ empower developers to easily add IoT connectivity to their apps, including more Bluetooth, BLE, Wi-Fi and Android wear support and features. GetIt libraries provide access to turn off-the-shelf and custom IoT smart devices, sensors and wearables into easy-to-use API components.
- New Installer – Makes installation and trial a more seamless, trouble-free experience, reducing start-up time from hours to just minutes. Customers can install as much or as little as they want, with additional features that can be added later or whenever needed.
- Native Platform Enhancements – Improvements in native toolchain and platform components include compiler, libraries, FireMonkey, VCL, Windows 10 and mobile. Compilers comprise seven Object Pascal and seven C++ compilers, including CLANG 3.3 and complete C++ 11 language support.
- Enterprise Strong – Optimized enterprise database access and enterprise service architecture accelerate the development and deployment of cross-platform applications across multiple desktop, mobile, cloud and database platforms.
The 10.1 Berlin versions of RAD Studio, C++Builder and Delphi are now available for download at:https://www.embarcadero.com/products/rad-studio/how-to-buy. For any additional information, please contact the Embarcadero sales team or authorized reseller partners.
Embarcadero tools are built for elite developers who build and maintain the world’s most critical applications. Our customers choose Embarcadero because we are the champion of developers, and our tools help them build more secure and scalable enterprise applications faster than any others on the market. In fact, ninety of the Fortune 100 and an active community of more than three million users worldwide rely on Embarcadero’s award-winning products. To learn more, visit www.embarcadero.com.
for Embarcadero Technologies
David Gibbs, 512-826-0754
- Fixed icon display problem (black background).
- Updated compiler
- Fixed critical issue with smart linking and lambda functions
- Fixed missing dot in FormatDateTime.
- Fixed range checking for dynamic arrays.
- Improved compatibility with Google’s closure compiler.
- Improved ‘Find in Files’ – current selection is used for search text.
For the impatient
Download and run the installer.
If you already have a SmartUpdate-installed Beta channel on your disk, you can simply upgrade it to a Release by running the SmartUpdate.exe with the /changechannel switch.
In two words: A Lot. Version 2.2 started out as a small upgrade, but as we worked on it we added tons and tons of stuff. A long list of changes since the 2.1 release can be found below.
What about the future?
We are already working on two fronts. A version 2.3 with revamped RTL (much faster visual component library and other goodies), support for search paths in the compiler and more is already in the work. At the same time we are triaging the issue list to determine which feature and bug requests will be fixed in the 2.2.1 hotfix.
List of changes since release 2.1
- Updated to latest DWScript.
- Improved Date/Time handling.
- DateTimeZone scoped enumeration (.Default, .Local, .UTC).
- FormatSettings.ShortDateFormat, LongDateFormat, ShortTimeFormat, LongTimeFormat, Zone.
- An extra “utc” parameter of DateTimeZone type on many DateTime functions.
- A new ParseDateTime function, which acts as a reverse FormatDateTime
- ISO8601 functions (were declared but missing from the codegen)
- FormatSettings.Zone allows setting the default behavior between Local & UTC, and the utc parameter of DateTime functions allows to override that.
- FormatSettings does not yet expose short/long day/month names, but these are used for Formatting & Parsing dates.
- Fixed date/time rounding issues in the JS RTL.
- JDateHelper was moved from W3C.Date to System.Date.
- Added VarIsArray & VarIsClear.
- Supports “export” qualifiers for functions (use in libraries).
- Added support for ‘~’ in asm sections.
- Added option to generate RTTI for objects in the implementation section.
- Added missing error message for an invalid lambda syntax.
- Added support for floating point modulus. (see https://www.delphitools.info/2015/10/29/floating-point-modulus)
- Added support for sets in constant records.
- Stricter enumerations type checks.
- Integer operators are now more “strongly” typed, facilitates use of helpers over aliased integer types.
- Case..of type matching is now more tolerant with variants.
- Made code suggestions in a local scope more resilient to syntax errors in that local scope.
- Compiler displays a hint about empty then/else blocks.
- Compiler supports comparing Variant to nil with = and <> operators.
- Conditional compilation symbols can be passed to the smsc compiler by using -defines=list.
- Fixed: Source files with the UTF BOM header $FEFF are supported.
- Fixed array add type-checks for classes & sub-classes.
- Fixed array assignment typechecks.
- Fixed an issue which caused a slight increases in memory usage after each compilation (a leak that was not strictly a leak).
- Fixed “Invalid variant operation” error.
- Fixed codegen for some class parameters.
- Fixed codegen for StrBeginsWith.
- Fixed method type detection bug.
- Fixed issue with external class fields being assigned in an initialization section.
- Fixed issues with incorrect array assignments.
- Fixed handling of overloaded methods & override.
- Fixes related to syntax errors in connectors (like Variant / JSON).
- Fixed codegen bug with interfaces across inherited classes.
- Fixed issue with nested contexts.
- Fixed missing support for “set of” record fields.
- Fixed bug with nested constant arrays.
- Fixed obfuscation support.
- Fixed some bugs and memory leaks.
- Fixed compiler bug related to strict helpers.
- Redesigned component management resulting in much faster redraw.
- All visual elements now has a new procedure: ObjectReady() which you should override and use to adjust and set object values.
- Added the property “ComponentState” as used by Delphi and FreePascal.
- Added Indexed Database API W3C.IndexedDatabase (http://www.w3.org/TR/IndexedDB/).
- Added System.Memory.
- Marshaled pointer support, combined with support for Move, FillChar and all the other “memory” methods.
- Added System.TypeCon containing data conversion classes.
- Added System.DateUtils, capable of handling both local and UTC time.
- Added System.Dataset unit containing in-memory database.
- Added new system units: System.Streams, System.IO, System.FileUtils, System.Messages.
- Added Pixi.js library.
- Added SmartCL.Legacy.pas containing Delphi-style TCanvas, TBitmap, and file path functions.
- Added SmartCL.PageDiv unit, for managing a fixed buffer of abstract elements divided into pages. This is used by database navigators, thumnail viewers and anything which displays a fixed number of items out of a large whole.
- Added simple label control SmartCL.Components.SimpleLabel.
- Added TSimpleButton, a simple, rounded iOS standard button without gradients.
- QTX Effects added to SmartCL.Effects.pas
- Screen API wrapped in the TW3Screen class (accessible through the TApplication.Screen property).
- Improved TW3Image.
- Defined ‘file’ input type for TEdit.
- Added “Element” property (exposes the JXMLHttpRequest object) to TW3HttpRequest.
- Added ResponseToMemory and ResponseToStream to TW3HttpRequest.
- Added TW3WebSocket to SmartCL.Inet.
- Added mousewheel support to scrollbars.
- Added support for the Page Visibility API.
- Added WebVR (Editors Draft) API.
- Added font loading API (see http://www.w3.org/TR/css-font-loading/).
- Added events OnActivate and OnDeactivate to TW3CustomForm.
- Added cryptographic header translations (Cryptography API and “DRM” API).
- Added neural network libraries Brain and Synaptic.
- Added APIs: W3C.Console, W3C.Push, W3C.ServiceWorkers, WHATWG.Fetch
- Added AAC audio file support
- Added System.Nullable containing nullable primitive types (see http://smartmobilestudio.com/2016/01/16/nullable-types/).
- JEventHandler renamed to TEventHandler as it is not a native JS type. JEventHandler still exists, but is marked ‘deprecated’.
- Completed overloads for the JJSON class.
- Improved several of W3C APIs.
- Updated Node.JS units.
- Minor changes about accessing the audio tag from the Web Audio API.
- Improved WebSocket support with binary and BLOB messages.
- Redesigned REST API. REST API appends random number to the end by default (unless .NoRandomize is called).
- Extended TypeScript header translation.
- JUInt8ClampedArray was replaced with JUint8Array which has better browser support.
- Fixed: touch events must not prevent default handler.
- Fixed Scope confusion with CTRL + Click (namespace unit was opened instead of implementation unit).
- Fixed modal dialog handling.
- Fixed: Problem with ClientWidth & ClientHeight in document->body.
- Fixed: Scrollbar math.
- Fixed: Removed bug in ToggleSwitch where we used a “hack” to invoke a resize. This is no longer needed with the new system, so the bug and insertion of was removed.
- Fixed “double free” bug in TW3Component.Destroy.
- Fixed implementation of TMath.PI and TMath.E in Espruino.System.
- Fixed System.Date/JDateHelper.SetAsDateTime and .SetAsLocalDateTime.
- Fixed w3_getStyleAsFloat.
- Fixed TW3Label positioning bug.
- Fixed TW3Dataset.Back.
- Fixed Application.Document.ClientHeight.
- Fixed TW3Slider component.
- Fixed problems with TW3Label positioning.
- Fixed TW3ScrollInfo.ScrollX and .ScrollY.
- Added ‘None’ theme to allow CSS free simple demos using browser default.
- New theme for Scrollbars.
- Added CSS for TSimpleButton
- Fixed: CSS3 form-background for Internet Explorer
- Fixed: focus rectangle is now GONE for all themes.
- Added: Metrics
- Added: Project statistics
- Added configuration option “Legacy support for IE9 (and below)”.
- Added IDE setting to automatically save the project every N number of minutes (N is settable from 1 to 60).
- Uses DCEF3 revision 2069 for built-in browser.
- Improved UI with new (more) icons and a more consistent usage of fonts (now uses Segoe UI for alldialogs)
- Improved JSON support.
- JSON files can be added to the project.
- Unit map shows JSON structure.
- JSON files are available in the project generator API.
- Improved Snippets management
- Sort snippets after insertion
- Renaming snippets
- Snippets are not trimmed anymore (-> may contain leading spaces for indention)
- (Incremental) search feature added
- Doubleclick now pastes the snippets into the source code
- Added: Close all tabs to the right
- Added: Open file (tab) in explorer
- Added: Only compile if necessary (when the project has been modified).
- Added: Source code export tool.
- Added: Search text highlighting.
- Added SynEdit keystroke configuration to the IDE Settings/Keyboard page.
- Added preferences page for internal browser configuration.
- Added option controlling whether to add unit to the project’s uses section to the ‘new unit/form’ dialog.
- Added unit name validation to the ‘new unit/form’ dialog.
- Added option to have the internal browser log reversed (newest information at the top).
- Added support for bulk deletion of several project files.
- Added dialog to ask whether an unlinked external should be deleted upon making a project file all internal.
- Added basic Cordova support.
- New forms/units are external by default (on new installations).
- Allows opening more than one file at once.
- Introduced option for resource file path handling
- Improved working with icons.
- Implemented the sort project file feature.
- Redesigned IDE Settings dialog.
- Redesigned Project Options dialog.
- Color is shown next to clXXX constants in the Code Insight window.
- Implemented incremental searching in Project Manager.
- Pressing Escape closes the Goto Line dialog.
- Monitoring external files for changes can be turned off in IDE Settings.
- The forms component list is now sorted
- Welcome page can be closed.
- Improved background compiler triggering and performance (ignores hidden designer implementation code)
- Improved: [Enter] in project manager now opens file
- Improved (IDE) compiler performance
- Locate JS source code position in case of an error
- Revived: Class browser, which now directly operates on the source code allowing to show even recent changes (in the editor).
- Improved: Tightened XML files used by the IDE (less junk and empty tags) -> faster loading
- Improved handling of open files that are not part of the project.
- Improved ‘Normalize’ refactor.
- Serial number is displayed in Help, License info.
- Form name rename now calls rename refactoring.
- ‘Mobile Manifest’ renamed to ‘AppCache Manifest’.
- Marked handled exceptions as expected so they don’t trigger EurekaLog dialog.
- Fixed: ‘Asm’ highligher can be configured.
- Fixed: Pressing Enter in Project Manager did not open selected unit.
- Fixed: Search was not working for HTML source in the internal browser.
- Fixed: If project was saved under a different name, it was not recompiled until it was modified in same other way.
- Fixed: WriteLn messages were not always visible in logs.
- Fixed: Switching from Project Manager to code could cause an access violation.
- Fixed: Projects in the RTL/library folder won’t crash anymore
- Fixed: Error in component name check (reserved words were possible)
- Fixed: Extraction of units (in uses section) failed when comments were present within this section
- Fixed: Automatic adding of new units now consider the right edge properly
- Fixed: Unit scoping (namespaces) were not considered when adding new units to the uses section
- Fixed: Node.js empty project generator created an invalid project (did not compile and needed manual tweaking of .sproj file)
- Fixed: Messages window was visible when program was started
- Fixed: Unit source is correctly displayed if new project or unit is created when no tabs are visible.
- Fixed: When a new project is created, existing Unit1/Form1 files are no longer silently overwritten.
- Fixed a problem when project files for a newly created project were not monitored for changes.
- Fixed a problem when change was not detected if a form file (.sfm) was modified on disk.
- Fixed issue where background compilation was performed twice on project load. The fix not only removes an internal exception, but also speeds up project loading as it only updates editor states once.
- Fixed wrong icon for external resource files
- Fixed: Double-clicking on a ‘folder’ icon crashed the program.
- Fixed icon preview.
- Fixed: Failed compilation didn’t always focus the editor.
- Fixed issue with codegen which could crash on invalid source.
- Fixed small issues with ‘Find in files’.
- Fixed problems setting the linker output path.
- Fixed ‘Open in browser’ button.
- Fixed unnecessary limitations in ‘Keywords’ and ‘Homepage URL’ editors.
- Updated CSS highlighter.
- Syntax highlighting for JSON files.
- Added visual designer guidelines.
- Added simple ruler to the visual designer.
- Added visual designer option to show the form’s bounds.
- Added tool ‘Limit precision’ to the editor’s pop-up menu. This tool limits precision of numbers in the selected code.
- Added ‘Wrap string’ feature to the editor to wrap a string which is longer than the right edge (Editor.RightEdge) to the next line(s).
- Caret position change causes less workload (improved performance during source code navigation).
- View state (editor/designer) is preserved in the <project>.dsk file.
- Better live preview (less flickering).
- Corrected ‘Show parameter’ (Shift + Ctrl + Space).
- Improved Find&Replace dialog behaviour when executing ‘Replace all’.
- Improved code completion.
- Improved Ctrl+click behaviour.
- Editor is refocused when internal browser window is closed.
- Fixed source highlighting when double-quote was the first character in a line.
- Fixed: Deletion of components in the designer did not mark the project as modified
- Fixed DWS syntax highlighter for double quoted strings (did not highlight properly where delimiter was the very first character of a line).
- Fixed: Form is marked as ‘modified’ when an event handler is created by double-clicking on a component.
- Fixed: All controls on the form were duplicated when form was edited outside of the program while it was open in the editor.
- Fixed event generation problem on secondary forms.
- Fixed problems with Property Inspector and event generation (general crashes, “Invalid property value” exceptions).
- Fixed the bug which occurred when several replacements were done in one line.
- Fixed searching in RTL files (Find in Files, Include RTL/Library path).
- Added DataSnap client/server demo.
- Added DataSnap FishFacts demo.
- Added DateTime demo.
- Added HTML5 DOM demos.
- Multiple demos corrected & adapted to the new RTL.
- Added simple example for the Page Visibility API.
- Added Splash Screen demo (http://smartmobilestudio.com/2015/09/27/writing-small-splash-screen-pre-loader-code).
- Added a simple geolocation demo.
- Added simple geolocation-based sunrise/sunset calculator.
- Added a few examples to test certain cordova features (back button, audio playback [hooking its data for further processing]).
- Improved Web Audio ABX Test demo.
- Updated web audio examples and added new lessons.
- Added third, manually created form to the `Multiple forms’ demo.
- Added Layout Manager to the ‘Multiple forms’ demo to show how it is correctly used in a multiform application.
- Updated REST demo.
- Fixed Canvas Application demo.
- Fixed: OnPrepare handler was not properly forwarded in SmartCL.Inet.REST.
- SmartUpdate program.
- Unified installation for all editions.
- Added support for “portable” installations that don’t require installation.
- Cleaned-up default .spr file.
- New icons.
- Added a snippet that shows how to create a form in runtime.
#LoggerPro is a great new framework that every Delphi developer should have in their toolbox. Currently in BETA 4 with a Release Candidate 1 due in the near future.
Built-in log appenders
The framework contains the following built-in log appenders
- File (
- Console (
- OutputDebugString (
- VCL Memo (
The log writer and all the appenders are asycnhronous.
If your a Delphi developer, you need to take a look at Delphi MVC Framework. The features include:
- Simple to use, check the “Getting Started: 5 minutes guide” and you will be up and running in 5 minutes or less!
- RESTful (RMM Level 3) compliant
- Stable and solid, used by small/mid/big projects since 2010
- Can be used in load balanced environment using Redis (http://Redis.io) [dev]
- Optional session support
- Extendable using middlewares (simple hooks to handle request/response)
- Basic Authentication
- Controllers inheritance
- Fancy URL with parameter mappings
- Specialied renders to generate text, html, JSON
- Powerful mapper to map json to objects and datasets to objects
- Can be packaged as stand alone server, apache module (XE6 or better) and ISAPI dll
- Integrated RESTClient
- Works with XE3, XE4, XE5, XE6, XE7, XE8 and Delphi 10 Seattle
- Completely unit tested
- There is a sample for each functionality
- There is a complete set of trainings about it, but the samples are included in the project
- Experimental support for IOCP [dev]
- Server side generated pages using Mustache (https://mustache.github.io/) for Delphi (https://github.com/synopse/dmustache)
- Specific trainings are available (ask me for a date and a place)
- Messaging extension using STOMP (beta)
- Automatic documentation through /system/describeserver.info
- Driven by its huge community (Facebook group https://www.facebook.com/groups/delphimvcframework)
- Simple and documented
- Check the DMVCFramework Developer Guide (work in progress)