www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Windows Universal/Store apps support

reply "Olivier Prince" <olivier.prince gmail.com> writes:
I searched the forum to find if there is some support for new 
Windows development technologies and I didn't find anything 
related (except some rants about WinRT 3 years ago).

- Is there any support in D or phobos for developping this kind 
of applications?
- Does D support ARM as Windows target?
- Are there any plans to support the specific libraries in this 
respect (something like C++/CX extensions or COM metadata files)?
- At least, is there a skeleton Store app written in D?

Thanks.
May 28 2015
next sibling parent reply Rikki Cattermole <alphaglosined gmail.com> writes:
On 29/05/2015 3:57 a.m., Olivier Prince wrote:
 I searched the forum to find if there is some support for new Windows
 development technologies and I didn't find anything related (except some
 rants about WinRT 3 years ago).

 - Is there any support in D or phobos for developping this kind of
 applications?
No.
 - Does D support ARM as Windows target?
Yes/No. ldc/gdc guys probably are a good place to start.
 - Are there any plans to support the specific libraries in this respect
 (something like C++/CX extensions or COM metadata files)?
What exactly do you need?
 - At least, is there a skeleton Store app written in D?
No.
May 28 2015
next sibling parent reply "Paulo Pinto" <pjmlp progtools.org> writes:
On Friday, 29 May 2015 at 03:23:39 UTC, Rikki Cattermole wrote:
 On 29/05/2015 3:57 a.m., Olivier Prince wrote:
 I searched the forum to find if there is some support for new 
 Windows
 development technologies and I didn't find anything related 
 (except some
 rants about WinRT 3 years ago).

 - Is there any support in D or phobos for developping this 
 kind of
 applications?
No.
 - Does D support ARM as Windows target?
Yes/No. ldc/gdc guys probably are a good place to start.
 - Are there any plans to support the specific libraries in 
 this respect
 (something like C++/CX extensions or COM metadata files)?
What exactly do you need?
WinRT is an evolution of COM with a .NET feel to the API. Basically it is COM where objects also need to implement a new interface, IInspectable, and .NET metadata stored in .winmd files is used instead of COM type libraries. In a way WinRT is the return of Ext-VOS, the original idea behind .NET. Most likely caused by the Longhorn failure to write everything in .NET, as most new Windows APIs have been introduced as COM components since Vista. So any language targeting WinRT, or Universal Apps as they are now known, needs to to support COM alongside the required interfaces for interoperability between languages and be able to consume/produce .NET metadata files. -- Paulo
May 29 2015
parent reply Rikki Cattermole <alphaglosined gmail.com> writes:
On 29/05/2015 7:03 p.m., Paulo Pinto wrote:
 On Friday, 29 May 2015 at 03:23:39 UTC, Rikki Cattermole wrote:
 On 29/05/2015 3:57 a.m., Olivier Prince wrote:
 I searched the forum to find if there is some support for new Windows
 development technologies and I didn't find anything related (except some
 rants about WinRT 3 years ago).

 - Is there any support in D or phobos for developping this kind of
 applications?
No.
 - Does D support ARM as Windows target?
Yes/No. ldc/gdc guys probably are a good place to start.
 - Are there any plans to support the specific libraries in this respect
 (something like C++/CX extensions or COM metadata files)?
What exactly do you need?
WinRT is an evolution of COM with a .NET feel to the API. Basically it is COM where objects also need to implement a new interface, IInspectable, and .NET metadata stored in .winmd files is used instead of COM type libraries. In a way WinRT is the return of Ext-VOS, the original idea behind .NET. Most likely caused by the Longhorn failure to write everything in .NET, as most new Windows APIs have been introduced as COM components since Vista. So any language targeting WinRT, or Universal Apps as they are now known, needs to to support COM alongside the required interfaces for interoperability between languages and be able to consume/produce .NET metadata files. -- Paulo
D already supports COM. For .winmd, you should be good to go for -m32mscoff and -m64! Just add LFLAGS="/winmd" Although this really really needs to be tested.
May 29 2015
parent reply "Paulo Pinto" <pjmlp progtools.org> writes:
On Friday, 29 May 2015 at 07:41:14 UTC, Rikki Cattermole wrote:
 On 29/05/2015 7:03 p.m., Paulo Pinto wrote:
 On Friday, 29 May 2015 at 03:23:39 UTC, Rikki Cattermole wrote:
 On 29/05/2015 3:57 a.m., Olivier Prince wrote:
 I searched the forum to find if there is some support for 
 new Windows
 development technologies and I didn't find anything related 
 (except some
 rants about WinRT 3 years ago).

 - Is there any support in D or phobos for developping this 
 kind of
 applications?
No.
 - Does D support ARM as Windows target?
Yes/No. ldc/gdc guys probably are a good place to start.
 - Are there any plans to support the specific libraries in 
 this respect
 (something like C++/CX extensions or COM metadata files)?
What exactly do you need?
WinRT is an evolution of COM with a .NET feel to the API. Basically it is COM where objects also need to implement a new interface, IInspectable, and .NET metadata stored in .winmd files is used instead of COM type libraries. In a way WinRT is the return of Ext-VOS, the original idea behind .NET. Most likely caused by the Longhorn failure to write everything in .NET, as most new Windows APIs have been introduced as COM components since Vista. So any language targeting WinRT, or Universal Apps as they are now known, needs to to support COM alongside the required interfaces for interoperability between languages and be able to consume/produce .NET metadata files. -- Paulo
D already supports COM. For .winmd, you should be good to go for -m32mscoff and -m64! Just add LFLAGS="/winmd" Although this really really needs to be tested.
As far as I am aware D supports old style COM, not COM with WinRT improvements. I don't get your hint with LFLAGS. Are you aware what are .NET metadata files? .. Paulo
May 29 2015
parent reply Rikki Cattermole <alphaglosined gmail.com> writes:
On 29/05/2015 9:55 p.m., Paulo Pinto wrote:
 On Friday, 29 May 2015 at 07:41:14 UTC, Rikki Cattermole wrote:
 On 29/05/2015 7:03 p.m., Paulo Pinto wrote:
 On Friday, 29 May 2015 at 03:23:39 UTC, Rikki Cattermole wrote:
 On 29/05/2015 3:57 a.m., Olivier Prince wrote:
 I searched the forum to find if there is some support for new Windows
 development technologies and I didn't find anything related (except
 some
 rants about WinRT 3 years ago).

 - Is there any support in D or phobos for developping this kind of
 applications?
No.
 - Does D support ARM as Windows target?
Yes/No. ldc/gdc guys probably are a good place to start.
 - Are there any plans to support the specific libraries in this
 respect
 (something like C++/CX extensions or COM metadata files)?
What exactly do you need?
WinRT is an evolution of COM with a .NET feel to the API. Basically it is COM where objects also need to implement a new interface, IInspectable, and .NET metadata stored in .winmd files is used instead of COM type libraries. In a way WinRT is the return of Ext-VOS, the original idea behind .NET. Most likely caused by the Longhorn failure to write everything in .NET, as most new Windows APIs have been introduced as COM components since Vista. So any language targeting WinRT, or Universal Apps as they are now known, needs to to support COM alongside the required interfaces for interoperability between languages and be able to consume/produce .NET metadata files. -- Paulo
D already supports COM. For .winmd, you should be good to go for -m32mscoff and -m64! Just add LFLAGS="/winmd" Although this really really needs to be tested.
As far as I am aware D supports old style COM, not COM with WinRT improvements. I don't get your hint with LFLAGS.
https://msdn.microsoft.com/en-us/library/jj157268.aspx So unless this isn't doing what I think it is doing, then yes it is relevant. No guarantees about what it requires for input info regarding e.g. symbols however.
 Are you aware what are .NET metadata files?
I can't say anything about that. Again try the flag. If it doesn't do what I'm expecting it does, no harm. It's just a feature that definitely isn't implemented or supported by the toolchain. Of course, just because it generates the file, doesn't mean that there will be anything of use within it.
May 29 2015
parent "Paulo Pinto" <pjmlp progtools.org> writes:
On Friday, 29 May 2015 at 10:01:53 UTC, Rikki Cattermole wrote:
 On 29/05/2015 9:55 p.m., Paulo Pinto wrote:
 On Friday, 29 May 2015 at 07:41:14 UTC, Rikki Cattermole wrote:
 On 29/05/2015 7:03 p.m., Paulo Pinto wrote:
 On Friday, 29 May 2015 at 03:23:39 UTC, Rikki Cattermole 
 wrote:
 On 29/05/2015 3:57 a.m., Olivier Prince wrote:
 I searched the forum to find if there is some support for 
 new Windows
 development technologies and I didn't find anything 
 related (except
 some
 rants about WinRT 3 years ago).

 - Is there any support in D or phobos for developping this 
 kind of
 applications?
No.
 - Does D support ARM as Windows target?
Yes/No. ldc/gdc guys probably are a good place to start.
 - Are there any plans to support the specific libraries in 
 this
 respect
 (something like C++/CX extensions or COM metadata files)?
What exactly do you need?
WinRT is an evolution of COM with a .NET feel to the API. Basically it is COM where objects also need to implement a new interface, IInspectable, and .NET metadata stored in .winmd files is used instead of COM type libraries. In a way WinRT is the return of Ext-VOS, the original idea behind .NET. Most likely caused by the Longhorn failure to write everything in .NET, as most new Windows APIs have been introduced as COM components since Vista. So any language targeting WinRT, or Universal Apps as they are now known, needs to to support COM alongside the required interfaces for interoperability between languages and be able to consume/produce .NET metadata files. -- Paulo
D already supports COM. For .winmd, you should be good to go for -m32mscoff and -m64! Just add LFLAGS="/winmd" Although this really really needs to be tested.
As far as I am aware D supports old style COM, not COM with WinRT improvements. I don't get your hint with LFLAGS.
https://msdn.microsoft.com/en-us/library/jj157268.aspx So unless this isn't doing what I think it is doing, then yes it is relevant. No guarantees about what it requires for input info regarding e.g. symbols however.
 Are you aware what are .NET metadata files?
I can't say anything about that. Again try the flag. If it doesn't do what I'm expecting it does, no harm. It's just a feature that definitely isn't implemented or supported by the toolchain. Of course, just because it generates the file, doesn't mean that there will be anything of use within it.
The compiler provides the required information in C++/CX mode. When using pure C++ with the Windows Runtime C++ Template Library instead[0], it requires an idl file to be given to the MIDL compiler, that is then fed to the linker, like old style COM type libraries. [0] - https://msdn.microsoft.com/en-us/library/windows/apps/hh438466.aspx [1] - https://msdn.microsoft.com/en-us/library/windows/apps/hh973463.aspx
May 29 2015
prev sibling parent "Olivier Prince" <olivier.prince gmail.com> writes:
On Friday, 29 May 2015 at 03:23:39 UTC, Rikki Cattermole wrote:
 On 29/05/2015 3:57 a.m., Olivier Prince wrote:
 I searched the forum to find if there is some support for new 
 Windows
 development technologies and I didn't find anything related 
 (except some
 rants about WinRT 3 years ago).

 - Is there any support in D or phobos for developping this 
 kind of
 applications?
No.
 - Does D support ARM as Windows target?
Yes/No. ldc/gdc guys probably are a good place to start.
 - Are there any plans to support the specific libraries in 
 this respect
 (something like C++/CX extensions or COM metadata files)?
What exactly do you need?
Language integrated reference counting, runtime templates, partial COM classes, strings, arrays, collections, exceptions, events, delegates, attributes. I know that D has these features but I doubt that thay are mapped to COM counterparts.
 - At least, is there a skeleton Store app written in D?
No.
May 29 2015
prev sibling next sibling parent "Jesse Phillips" <Jessekphillips+D gmail.com> writes:
On Thursday, 28 May 2015 at 15:57:42 UTC, Olivier Prince wrote:
 I searched the forum to find if there is some support for new 
 Windows development technologies and I didn't find anything 
 related (except some rants about WinRT 3 years ago).

 - Is there any support in D or phobos for developping this kind 
 of applications?
 - Does D support ARM as Windows target?
 - Are there any plans to support the specific libraries in this 
 respect (something like C++/CX extensions or COM metadata 
 files)?
 - At least, is there a skeleton Store app written in D?

 Thanks.
I don't know of any work outside of the old Microsoft slides, so likely someone who is familiar with writing a C++ app will need to try it out and request improvements where things are missing. Juno may be a good place to go for COM. https://github.com/JesseKPhillips/Juno-Windows-Class-Library
May 29 2015
prev sibling parent "ZombineDev" <valid_email he.re> writes:
On Thursday, 28 May 2015 at 15:57:42 UTC, Olivier Prince wrote:
 [snip]
There isn't yet a polished alternative to MS VS Windows Store toolchain, but probably you don't need most of it (e.g. you can have a C++/XAML app that calls you D code). I noticed that Vibe.d has some WinRT support. Here's their WinRT driver, which uses calls some parts of WinRT API: https://github.com/rejectedsoftware/vibe.d/blob/master/source/vibe/core/drivers/winrt.d
May 29 2015