Refreshed Bits Available!
-
Monday, September 24, 2012 10:39 PMOwner
I'm happy to report that the long-awaited refresh of the Casablanca bits is now available for download!
Navigate to our DevLabs page and select one of the links on the right. You have a choice of three different MSIs, supporting Visual Studio 2010, Visual Studio 2012, and Visual Studio 2010 Express for Windows 8.
(Due to a last-minute glitch, the MSI for Visual Studio 2012 for Windows Desktop is not yet available - we'll get it fixed in the next few days).This release fixes multiples issues reported on this forum and adds the following improvements:
- Streaming of HTTP message bodies (there are some limitations on Windows 8 App Store apps)
- Improved asynchronous streams libraries, including interop with C++ iostreams.
- Support for Azure Table storage, with some restrictions.
- Complete support for the Azure blob and queue APIs.
- We cleaned up our use of strings as arguments to various APIs. There should be no more confusion between wstring and string.
- A couple of new samples, mostly focusing on Azure storage capabilities.
As always, send you feedback through this forum!
Thanks for your support,
Casablanca Team- Edited by Artur LaksbergOwner Wednesday, September 26, 2012 10:40 PM
All Replies
-
Tuesday, September 25, 2012 5:39 AM
Guys,
Link is broken, can you fix it, please?
Thanks,
Angel
-
Tuesday, September 25, 2012 7:01 AMOwner
Angel,
Thanks, corrected. It's http://msdn.com/Casablanca, of course.
Artur Laksberg Visual C++ Team Microsoft
-
Tuesday, September 25, 2012 3:31 PM
I have another 2 questions below:
1. what about the date that lib will open source in github.com?
2. what's scheduler in actors? Is it "Completely Fair scheduler" aka. each actor have the same time slice to be execute like process in erlang/otp? hope to more info on scheduler.
-
Tuesday, September 25, 2012 4:56 PMOwner
#1.
We're not ready to announce that yet, but it's currently one of our top priorities. Lot's of legalities to take care of, but also code quality. We will likely release things in waves to Github, so that the more mature pieces are available as soon as possible. For example, I expect that the actors library will come later than the HTTP client APIs.
#2.
The actors library does not to any time slicing itself.
Each actor serializes its own input FIFO and acts as the scheduler of message-accept continuations, which are executed without interruption. Underneath, each actor gets its worker thread from the OS thread pool. Since there may be more actors with work than there are worker threads, some actors may be starved unless the thread pool injects more worker threads, which it does.
I'm happy to provide more details if you have more specific questions.
Thanks,
Niklas
-
Tuesday, September 25, 2012 5:42 PM
thank you very much, Niklas.
it sames that different with process in erlang/otp, but a bit like gorutine in golang, isn't it?
according your words "the thread pool injects more worker threads", When it happen? what's default count of of thread in the pool, can it dynamic adjust? if can,by hand or automation?
-
Wednesday, September 26, 2012 2:36 PM
Awesome!
What's the main major features that are still on the roadmap?
Personally I'm mostly interested in a native alternative to C#'s HttpClient for Win8 that supports the full Http request/response model including https, PKI security, digest auth, redirect, gzip encoding etc. How far are we from having this with Casablanca? -
Wednesday, September 26, 2012 7:05 PMOwner
Morten,
In the short term, we're focusing on meeting the requirements for being an "official" SDK for Azure. Among other things, it means full support of the Azure Service Bus, in addition to completing the support for Tables. Our Blob Storage support is already in good shape, but we are also thinking about higher level APIs to simplify the most common scenarios.
Another big-ticket item for us is Linux support. We've partnered up with another company to give us a head start, and that work is progressing well. Our intent is to make Casablanca work well on both platforms, and potentially other platforms in the future.
A concern about the usability of our libraries drives us to also raise the abstraction level in some situations, but we're not in the platform business. For example, we support using a stream as the body of an HTTP message, something WinHTTP does not do. Another example is our reliance on PPL as a unifying model for composing asynchronous operations, where the underlying platform doesn't have anything that corresponds. That said, Casablanca is not meant to provide an newer or better HTTP stack – that is the job of the platform teams, e.g. Windows. As far as such low-level functionality as the HTTP client libraries is concerned, our purpose is to provide a C++ 11 projection of what is available in the platform.
For Windows 8, Casablanca http_client is implemented on top of the WinRT IXMLHTTPRequest2 interface, which means that we get most of its functionality for free, but also inherit some of the limitations. Specifically, we already support HTTPS, security and authentication, redirection (we don't surface the redirection notification in our APIs right now – but we're open to adding it as long as it can be done in a cross-platform way). We will probably not support gzip encoding – pick your favorite C++ compression library and use it with Casablanca.
HTTPS is, by the way, also supported on Windows 7 / Server, since the June release.
In general, we try to prioritize our work based on feedback from people like you, so specific requests are most welcome. Some requests will, naturally, fall outside the scope of our effort, but we will definitely seriously entertain all suggestions.
Artur Laksberg Visual C++ Team Microsoft
-
Wednesday, September 26, 2012 8:01 PMOwner
The best introduction to the current thread pool that I know of is available from MSDN Magazine: http://msdn.microsoft.com/en-us/magazine/cc163327.aspx The article contains a lot of details that you don't necessarily care about, but it is comprehensive...
That's where the actors library gets its worker threads from.
Niklas
-
Wednesday, September 26, 2012 10:43 PMOwner
Update: we fixed the VS Express for Desktop download. You can now go to the main page and click the "Casablanca: Visual Studio Express for Windows Desktop" button.
Artur Laksberg Visual C++ Team Microsoft
- Marked As Answer by Artur LaksbergOwner Monday, November 12, 2012 7:12 PM

