- The components you create using C++/CX as shown in this video are fully native components. There is no managed aspect to them.
- The fact that underlying technology is COM (not pInvoke btw) is irrelevant. The whole point is that the developer doesn't need to care about that. He can write regular C++ language and libraries constructs (with some new additions off course) and he gets language interop for free
Btw, the project that I used in this video can now be downloaded here:
Great video STL.
Btw, you might find this useful:
@ZeroInfinite: And the best part is that Windows 8 lets you create apps with both HTML and XAML. You can pick whichever suits your taste and requirements best.
@Glen:OK let me try to answer some of those questions to the best of my knowledge. I work on the team that provides developer tools for building applications. As such, I will stick to answering questions about that area. For questions about platform capabilities and competitive offerings, I would urge you to post your questions on Ch9 videos related to those topics. There are several from the //BUILD conference.
Now to your questions (those I can answer):
> Can you create NEW C++/CX UI Controls?
For apps written using HTML/JS you cannot, but for apps using XAML for the UI, you can.
> Can you write a game in the browser?
Once again, the browser doesn't come into the pictire in the traditional sense. If your question is whether you can create apps that are games using HTML/JS, yes you can.
Raman Sharma, Visual C++
@Glen:You can create whatever HTML control you want to. Just that C++ cannot be used to draw to the screen for such controls, since there is no interface that lets native code do that for HTML/JS apps.
About your second question: All Metro style apps run in their own sandbox and are thus safe to the extent that is afforded by the sandbox. This sandbox prevents unauthorized access to system resources. This means your C++/CX code can execute whatever calls it is allowed to by the Metro style SDK. If your app package (containing all your app contents like HTML, JS, C++/CX DLLs etc.) passes App-Store validation, then it is safe to run on any machine. In this sense these apps are more secure than ActiveX controls since there never was any validation that ActiveX is doing the right thing.
For Metro style apps on the other hand, we have three levels of validations: at build time, at package upload time and at runtime.
@Glen:Let me explain what I meant. You can create HTML controls that are backed by C++/CX components for data-binding. You can also create HTML/JS apps in which almost all the important processing happens in your engine written using C++/CX. What you cannot do however is the following: creating an HTML app with a special DOM element whose rendering is entirely controlled by C++ using DirectX calls. Does that make sense?
@slinger: That's correct. This talk was recorded here in Redmond and not in the //BUILD conference. What would you like to see more of? Samples, Examples, Tutorials?