{"id":1242,"date":"2024-04-05T08:32:35","date_gmt":"2024-04-05T06:32:35","guid":{"rendered":"https:\/\/pocoproject.org\/blog\/?p=1242"},"modified":"2024-04-05T08:32:35","modified_gmt":"2024-04-05T06:32:35","slug":"pocopro-c-frameworks-release-2024-1-available","status":"publish","type":"post","link":"https:\/\/pocoproject.org\/blog\/?p=1242","title":{"rendered":"POCOpro C++ Frameworks Release 2024.1 Available"},"content":{"rendered":"\n<p>This release is based on the latest POCO C++ Libraries release 1.13.3 and includes enhancements and fixes in the <a href=\"https:\/\/docs.pocoproject.org\/pro\/00100-OSPOverview.html\">Open Service Platform<\/a> (OSP) and <a href=\"https:\/\/docs.pocoproject.org\/pro\/00100-RemotingNGOverview.html\">Remoting NG<\/a> frameworks.<\/p>\n\n\n\n<p>Like the POCO C++ Libraries 1.13.3 release, the POCOpro release now also supports the vcpkg package manager in the Visual Studio 2019\/2023 project files. Also, like all POCO release since 1.13.0, the minimum required C++ standard version is now C++ 17. This also means that Visual Studio versions older than 2019 are no longer supported.<\/p>\n\n\n\n<p>For our customers, source code packages are available on our download server.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Remoting NG Updates<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Support for serialization of <code>std::optional<\/code> in C++17.<\/li>\n\n\n\n<li>The serialization and deserialization code generated by <em>RemoteGen<\/em> will now serialize <code>struct<\/code> and <code>class<\/code> members in order of their declaration, and no longer in lexical order as previously. This is a breaking change and requires action. See the note below for more information, including how to configure previous behavior.<\/li>\n\n\n\n<li>The <code>length<\/code> attribute is now supported for sequences and strings.<\/li>\n\n\n\n<li>New <code>xsdType<\/code> attribute that is used by the SOAP transport (and WSDL\/XML Schema code generator) to convey the original XML Schema type to the serializer\/deserializer. Currently used for serialization of <code>data<\/code>, <code>time<\/code> and <code>dateTime<\/code> types, which are all mapped to Poco::DateTime.<\/li>\n\n\n\n<li>Fixed an issue in the TCP transport that prevented using the TCP transport with Unix domain sockets.<\/li>\n\n\n\n<li>RemoteGen now generates more modern-style C++ code.<\/li>\n\n\n\n<li>Various minor fixes and improvements.<\/li>\n<\/ul>\n\n\n\n<p><strong>Important: <\/strong>The serialization and deserialization code generated by <em>RemoteGen<\/em> will now serialize <code>struct<\/code> and <code>class<\/code> members in order of their declaration, and no longer in lexical order as before.<\/p>\n\n\n\n<p>This unfortunately breaks the binary protocol for the TCP and HTTP transports, so if these transports are used, the Remoting code for all clients and servers must be re-generated and rebuilt to prevent serialization\/deserialization problems.<\/p>\n\n\n\n<p>Alternatively, it is possible to restore the old serialization behavior by adding an option to the RemoteGen configuration file:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;options>\n  &lt;memberSerializationOrder>lexical&lt;\/memberSerializationOrder>\n&lt;\/options><\/code><\/pre>\n\n\n\n<p>The <code>options<\/code> element must be added under the <code>RemoteGen<\/code> element, next to the <code>files<\/code> and <code>output<\/code> elements. This ensures full compatibility with existing clients and servers using the TCP or HTTP protocol.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Open Service Platform Updates<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The authentication framework includes a new <code>Poco::OSP::Auth::PooledAuthAdminService<\/code> class that supports database connection pooling for high-load servers.<\/li>\n\n\n\n<li>The OSP web server supports a new <code>redirectOn401<\/code> attribute that will redirect to the specified location instead of sending a <code>401<\/code> response due to an authentication failure.<\/li>\n\n\n\n<li>Log messages for full request logging have been improved by indenting the HTTP request and response details. Also, the request details are logged as soon as the request has been received.<\/li>\n\n\n\n<li>The Bundle Creator tool (<code>bundle<\/code>) supports a new <code>strip<\/code> option, allowing it to strip debug information from shared libraries before copying them into the bundle.<\/li>\n\n\n\n<li>Various minor fixes and improvements.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>This release is based on the latest POCO C++ Libraries release 1.13.3 and includes enhancements and fixes in the Open Service Platform (OSP) and Remoting NG frameworks. Like the POCO C++ Libraries 1.13.3 release, the POCOpro release now also supports the vcpkg package manager in the Visual Studio 2019\/2023 project files. Also, like all POCO [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[31],"class_list":["post-1242","post","type-post","status-publish","format-standard","hentry","category-news","tag-release"],"_links":{"self":[{"href":"https:\/\/pocoproject.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/1242","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pocoproject.org\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pocoproject.org\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pocoproject.org\/blog\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/pocoproject.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1242"}],"version-history":[{"count":2,"href":"https:\/\/pocoproject.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/1242\/revisions"}],"predecessor-version":[{"id":1244,"href":"https:\/\/pocoproject.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/1242\/revisions\/1244"}],"wp:attachment":[{"href":"https:\/\/pocoproject.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1242"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pocoproject.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1242"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pocoproject.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1242"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}