U++ 5431 released

What is new in version 5431:

The focus of this release was server programming. The main new feature is "Skylark", lean and mean U++ based web development framework.

Core
- String class has been further optimized for improved Cat performance.
- Id class was refactored to better support multithreded programming.
- STATIC_ASSERT introduced for compile-time checks.
- TCP/IP and HTTP was refactored and integrated into Core, providing new TcpSocket, IpAddrInfo, HttpHeader and HttpRequest classed (effectively obsoleting Web package).
- Value was refactored and optimized, now using small value optimization technique.
- Value got Xmlize (conversion to/from XML) and Jsonize (conversion to/from JSON) support.
- Date now has operator++/--.
- Exit is now equivalent of C exit function, implemented using exception trow to *_APP_MAIN and C++ friendly.
- Thread now has AtExit support.
- .ini parameters now can be optionally encapsulated using INI_* helpers.
- Sort algorithm was refactored, works about 10% faster.
- LOGHEX and DUMPHEX logging macros provided for logging Strings in hexadecimal form.
- LoadFromJsonFile and StoreToJsonFile jsonize object from/to files.

Sql
- 'Of' method, used to qualify SQL column names, now has new alternative notation using operator().
- Schema files information is now accessible application providing a form of database schema introspection.
- JoinRef method of Select provides automatic join where join condition is synthetised by framework based on schema introspection.
- SqlCtrls now support automated mode based on schema introspection.
- SqlSession now has ThrowOnError option, when active all SQL errors throw SqlError exception.
- Sql: Sql now supports fetching ValueMap of row (using Fetch variant or GetRowMap after Fetch).
- MassInsert now has "remove" option to remove rows insterted before inserting, NoUseTransaction option and is using RDBM specific SQL syntax (instead generic UNION ALL trick) when possible.
- Secondary SQLR default session intended for 'read-only' sessions.
- Default sessions SQL and SQLR now can be per-thread (useful for multithreaded server applications).
- Columns and table names now can be optinally quoted (new mode).
- Sql: SqlLoadTable and SqlLoadColumn helper function can read whole tables into C++ VectorMaps.
- New Sqls::operator^ fetches single row from select and returns it as ValueMap.

RichText, RichEdit
- Paragraph ruler now can have dotted or dashed styles

CtrlLib
- EditField now has WhenPasteFilter that can be used to change pasted clipboard text before inserting it.
- FileSel in Win32 is now using separate thread to lazy-load icons.
- ColorPopup checks clipboard and when it founds a text resembling color definition (like #12aa33 or 123 55 6), adds this color to predefined colors in selection.

ide
- New, vastly improved GDB frontend.
- Startup times should be significantly improved.
- C#, JavaScript and css syntax highlighting.
- Ide now can view .png, .jpg, .gif and .bmp files and even edit smaller .png files.
- New save file on window deactivation option is helpful when editing scripts or web templates - no need to save file when going to another window to test.
- Insert clipboard as C string, convert text to C string functions.
- New find in files dialog option to filter files according to their 'read only' status.

Posted by Koldo 2012-10-22