Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus / 2015-10

Win 10 IOT Core

68 messages · 7 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Michael Schnell

(avoiding to hitchhike the other thread))

LacaK wrote
Same in our company. We use Motorola mobile computers with WinCE 5 and WinCE6 and we compile native applications for them. (So WinCE support is for us very important) -Laco.

I understand that Microsoft on the long run will try to have the Wince (and WinPhone ?) users to upgrade to the Windows 10 product line.

I understand that with Intel Arch, fpc/Lazarus "Windows" programs will simply run in Win 10 IOT Core (and a colleague of mine already tested that his Delphi programs do run on Win 10 IOT Core on a MinowBoard Max.)

What about Win 10 IOT Core for ARM ? I suppose that some work needs to be done to support Win 10 IOT Core on ARM.

-Michael

Sven Barth
to Michael Schnell
"Michael Schnell" wrote 6 lines
(avoiding to hitchhike the other thread)) On 10/16/2015 07:32 AM, LacaK wrote: > > Same in our company. We use Motorola mobile computers with WinCE 5 and

WinCE6 and we compile native applications for them.

Show quoted text 5 lines
> (So WinCE support is for us very important) > -Laco. I understand that Microsoft on the long run will try to have the Wince

(and WinPhone ?) users to upgrade to the Windows 10 product line.

That depends on the devices. Some manufacturers might prefer to stay with WinCE, because it's easier to adjust to their hardware (namely because they already have drivers for their hardware).

What about Win 10 IOT Core for ARM ? I suppose that some work needs to be

done to support Win 10 IOT Core on ARM.

It depends on whether normal WinAPI programs will work there. If they do, great, then we simply need a port of our win32 target for ARM. If not... Hard stuff... Then a completely new port for the Universal Windows Platform will he needed... (but then we'd also be able to run on Windows 10 Mobile or the Hololens)

Regards,
Sven
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus/attachments/20151016/5ceb0b39/attachment.html>

Michael Van Canneyt
to Sven Barth
Sven Barth wrote 24 lines
Am 16.10.2015 09:45 schrieb "Michael Schnell" : > > (avoiding to hitchhike the other thread)) > > On 10/16/2015 07:32 AM, LacaK wrote: >> >> Same in our company. We use Motorola mobile computers with WinCE 5 and WinCE6 and we compile native applications for them. >> (So WinCE support is for us very important) >> -Laco. > > > I understand that Microsoft on the long run will try to have the Wince (and WinPhone ?) users to upgrade to the Windows 10 product line. That depends on the devices. Some manufacturers might prefer to stay with WinCE, because it's easier to adjust to their hardware (namely because they already have drivers for their hardware). > What about Win 10 IOT Core for ARM ? I suppose that some work needs to be done to support Win 10 IOT Core on ARM. > It depends on whether normal WinAPI programs will work there.

I thought not?

Michael.

Žilvinas Ledas
to Michael Van Canneyt
Michael Van Canneyt wrote 9 lines
>> What about Win 10 IOT Core for ARM ? I suppose that some work needs >> to be > done to support Win 10 IOT Core on ARM. >> > > It depends on whether normal WinAPI programs will work there. I thought not?

According to https://ms-iot.github.io/content/en-US/Faqs.htm : -----
Are true console apps supported on Windows 10 IoT Core?

True ?console? apps aren?t really going to be supported for the IoT core OS, headless or not. You can still deploy and run a standard win32 console app here, it just won?t be connected to any on-device console. When running headless you should just get that black screen. When running headed the only supported UI is via the UWP UI stacks (XAML, HTML, DirectX).
-----

Ant there is a tool to check compatibility of ordinary WinCE apps: https://ms-iot.github.io/content/en-US/win10/tools/IoTAPIPortingTool.htm

Best regards,
?ilvinas

Michael Van Canneyt
to Žilvinas Ledas
?ilvinas Ledas wrote 21 lines
On 2015-10-16 15:28, Michael Van Canneyt wrote: > >>> What about Win 10 IOT Core for ARM ? I suppose that some work needs >>> to be >> done to support Win 10 IOT Core on ARM. >>> >> >> It depends on whether normal WinAPI programs will work there. > > I thought not? According to https://ms-iot.github.io/content/en-US/Faqs.htm : ----- Are true console apps supported on Windows 10 IoT Core? True ?console? apps aren?t really going to be supported for the IoT core OS, headless or not. You can still deploy and run a standard win32 console app here, it just won?t be connected to any on-device console. When running headless you should just get that black screen. When running headed the only supported UI is via the UWP UI stacks (XAML, HTML, DirectX).

So, that is not the GDI winapi...

Michael.

Michael Schnell
to Žilvinas Ledas: According to https://ms-iot.github.io/content/en-US/Faqs.htm : ----- Are true console…
?ilvinas Ledas wrote 7 lines
True ?console? apps aren?t really going to be supported for the IoT core OS, headless or not. You can still deploy and run a standard win32 console app here, it just won?t be connected to any on-device console. When running headless you should just get that black screen. When running headed the only supported UI is via the UWP UI stacks (XAML, HTML, DirectX).

I asked my colleague who tested this with the MinowBoard Max and he confirms that Delphi programs do run as Services (with an Event Queue but without a GUI), but normal applications don't show a form.

-Michael

Michael Schnell
to Michael Van Canneyt: So, that is not the GDI winapi... Michael.
Michael Van Canneyt wrote
So, that is not the GDI winapi...

I understand that it is meant as a replacement for WinCE (and of course to fight Linux), but not as a competitor for Desktop Windows.

But happily, Delphi (and very likely Windows-fpc-) programs will run.

Seemingly sending "Messages to Windows" works with IOT even if such a window is never visible. So Lazarus applications might run normal but invisibly using the Win32 Application widget type.

Maybe on ARM the WinCE application type might work ???

-Michael

Michael Van Canneyt
to Michael Schnell
Michael Schnell wrote 10 lines
On 10/16/2015 03:00 PM, Michael Van Canneyt wrote: > > So, that is not the GDI winapi... > Obviously.So a Delphi program never will show a a Form. But with Lazarus, the "fpGUI" and "Custom Drawn" widget sets should work, as - AFAIK - they can be configured to use DirectX. -> Graeme can you comment on this ?

As far as I know, fpGUI works on GDI.

Michael.

Michael Schnell
to Michael Van Canneyt
Michael Van Canneyt wrote
As far as I know, fpGUI works on GDI.

I suppose you are right. I did not re-check in Windows, as I don't use Lazarus on windows right now, but maybe erroneously just used my remote memory.

Rephrasing:

On Linux, fpGUI can be configured to use either "GDI" or "X11" as "fpGUI Platform". So it might be doable to have fpGUI use DirectX as a platform.

With that - other than Delphi - Lazarus programs would be able to show their Forms. Yet another argument to use Lazarus rather than Delphi :-) .

-> Graeme can you comment on this ?

Thanks
-Michael

Sven Barth
to Michael Schnell: Obviously.So a Delphi program never will show a a Form. But with Lazarus, the "fpGUI" and…
"Michael Schnell" wrote 9 lines
On 10/16/2015 03:00 PM, Michael Van Canneyt wrote: > > > So, that is not the GDI winapi... > Obviously.So a Delphi program never will show a a Form. But with Lazarus, the "fpGUI" and "Custom Drawn" widget sets should work,

as - AFAIK - they can be configured to use DirectX.

WinAPI vs. UWP is a completely different beast than GDI vs. DirectX whereby the latter is only a very small part of the problem.

To stress this again: We don't support UWP right now as a target in the compiler and RTL.

Regards,
Sven
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus/attachments/20151019/82729292/attachment.html>

Michael Schnell
to Sven Barth
Sven Barth wrote 5 lines
WinAPI vs. UWP is a completely different beast than GDI vs. DirectX whereby the latter is only a very small part of the problem.

I see.

To stress this again: We don't support UWP right now as a target in the compiler and RTL.

Why does UWP need support by the compiler or the RTL ? AFAIK, GDI does not have such either, but only by the LCL.

Thanks,
-Michael (sorry if this ia silly question)

Michael Van Canneyt
to Michael Schnell
Michael Schnell wrote 15 lines
On 10/19/2015 11:34 AM, Sven Barth wrote: > > > WinAPI vs. UWP is a completely different beast than GDI vs. DirectX whereby > the latter is only a very small part of the problem. > I see. > > To stress this again: We don't support UWP right now as a target in the > compiler and RTL. > Why does UWP need support by the compiler or the RTL ? AFAIK, GDI does not have such either, but only by the LCL. From what I've read till now:

UWP is a complete separate runtime environment on Windows. It is nothing like the Win32 API.
You may not use the Win32 API directly in a UWP application.

That means the headers need to be ported, an RTL needs to be written on top of that. It's still a question to me whether it sports a flat or OOP model (I think the latter). There are some other restrictions as well.

See
https://en.wikipedia.org/wiki/Universal_Windows_Platform and
https://en.wikipedia.org/wiki/Windows_Runtime

All this means you must basically restart from scratch.

Michael.

Michael Schnell
to Michael Van Canneyt
Michael Van Canneyt wrote
UWP is a complete separate runtime environment on Windows. It is nothing like the Win32 API. You may not use the Win32 API directly in a UWP application.

I did not introduce the term "UWP" here, so I don't know it the non-GUI part of IOT's API is to be called "UWP".

(The message by ?ilvinas was "When running headed the only supported UI is via the UWP UI stacks (XAML, HTML, DirectX", hence only concerning the GUI makeoff ).

But the fact is that Delhi service application (that don't have a GUI) do run normally on IOT, so the part not concerning the GUI seems to be a Win32 API.

-Michael

Michael Van Canneyt
to Michael Schnell
Michael Schnell wrote 14 lines
On 10/19/2015 12:27 PM, Michael Van Canneyt wrote: > > UWP is a complete separate runtime environment on Windows. It is nothing > like the Win32 API. You may not use the Win32 API directly in a UWP > application. I did not introduce the term "UWP" here, so I don't know it the non-GUI part of IOT's API is to be called "UWP". (The message by ?ilvinas was "When running headed the only supported UI is via the UWP UI stacks (XAML, HTML, DirectX", hence only concerning the GUI makeoff ). But the fact is that Delhi service application (that don't have a GUI) do run normally on IOT, so the part not concerning the GUI seems to be a Win32 API.

I *seriously* doubt the first part of this statement, because Delphi explicitly does not support the windows runtime on which IOT is based.

You can find several statements in this regard by Embarcadero employees.

Michael.

Michael Schnell
to Michael Van Canneyt
Michael Van Canneyt wrote
I *seriously* doubt the first part of this statement, because Delphi explicitly does not support the windows runtime on which IOT is based.

See my message above in this thread (10/16/2015, 03:13):

"I asked my colleague who tested this with the MinowBoard Max and he confirms that Delphi programs do run as Services (with an Event Queue but without a GUI), but normal applications don't show a form."

This person really is not an idiot but a very versatile programmer doing Delphi since it exists, Turbo Pascal before !

You can find several statements in this regard by Embarcadero employees.

Obviously they did not try service applications.

-Michael

Michael Van Canneyt
to Michael Schnell
Michael Schnell wrote 13 lines
On 10/19/2015 12:51 PM, Michael Van Canneyt wrote: > > > I *seriously* doubt the first part of this statement, because Delphi > explicitly does not support the windows runtime on which IOT is based. See my message above in this thread (10/16/2015, 03:13): "I asked my colleague who tested this with the MinowBoard Max and he confirms that Delphi programs do run as Services (with an Event Queue but without a GUI), but normal applications don't show a form." This person really is not an idiot but a very versatile programmer doing Delphi since it exists, Turbo Pascal before !

I did not claim otherwise :)

> You can find several statements in this regard by Embarcadero employees. Obviously they did not try service applications.
We can at least conclude that there is a lot of confusion about what it is and what it is not;

But seeing that it is Microsoft, this does not come as a surprise... There are more vendors at work than actual programmers in that company.

Michael.

Michael Schnell
to Michael Van Canneyt
Michael Van Canneyt wrote 7 lines
We can at least conclude that there is a lot of confusion about what it is and what it is not; But seeing that it is Microsoft, this does not come as a surprise... There are more vendors at work than actual programmers in that company.

M$ claim that "in future there only will one Windows: Windows 10". I gather that this should mean that there is a common API specification (but obviously "smaller" versions provide just parts of same, but no different specs for the same stuff, any more).

Hence to me it does make perfect sense, that (free) Windows 10 IOT runs service applications normally (via the "basic no-GUI" WinAPI) but does not have the "GDI winapi", and hence is no competitor too the (paid) Desktop Windows 10 versions.

As a result I still think that a "DirectX" version of fpGUI or CustomDrawn that runs on IOT should be doable.

-Michael

Michael Van Canneyt
to Michael Schnell
Michael Schnell wrote 17 lines
On 10/19/2015 01:33 PM, Michael Van Canneyt wrote: > > We can at least conclude that there is a lot of confusion about what it is > and what it is not; > > But seeing that it is Microsoft, this does not come as a surprise... > There are more vendors at work than actual programmers in that company. > M$ claim that "in future there only will one Windows: Windows 10". I gather that this should mean that there is a common API specification (but obviously "smaller" versions provide just parts of same, but no different specs for the same stuff, any more). Hence to me it does make perfect sense, that (free) Windows 10 IOT runs service applications normally (via the "basic no-GUI" WinAPI) but does not have the "GDI winapi", and hence is no competitor too the (paid) Desktop Windows 10 versions.

Technically speaking, I read once that the user32.dll and advapi32.dll may not be used directly in a Windows Runtime application. Since the service manager calls are in the latter, I assumed that a service application cannot work.

Probably the information I read was inaccurate or it has changed meanwhile.

As a result I still think that a "DirectX" version of fpGUI or CustomDrawn that runs on IOT should be doable.

How do you know that DirectX is part of IOT ?

Michael.

Michael Schnell
to Michael Van Canneyt
Michael Van Canneyt wrote
How do you know that DirectX is part of IOT ?

Only from the message ?ilvinas posted:

"When running headed the only supported UI is via the UWP UI stacks (XAML, HTML, DirectX"

-Michael

Michael Van Canneyt
to Michael Schnell
Michael Schnell wrote 8 lines
On 10/19/2015 02:07 PM, Michael Van Canneyt wrote: > > > How do you know that DirectX is part of IOT ? Only from the message ?ilvinas posted: "When running headed the only supported UI is via the UWP UI stacks (XAML, HTML, DirectX"

That comes from:
http://ms-iot.github.io/content/en-US/Faqs.htm

I just cheched, and fpgui has no support for DirectX, at least none of the fpgui sources in git supports this.

Michael.

Sven Barth
to Michael Schnell: I see. Why does UWP need support by the compiler or the RTL ? AFAIK, GDI does not have…
"Michael Schnell" wrote
> > To stress this again: We don't support UWP right now as a target in the

compiler and RTL.

> Why does UWP need support by the compiler or the RTL ? AFAIK, GDI does

not have such either, but only by the LCL.

GDI is merely an API provided in context of the WinAPI, UWP is much more. First of it's an environment which /must/ run on top of the MSVC runtime and secondly not all WinAPIs that our Windows RTL needs and uses are available. In addition there's also the point of the COM classes (many higher level APIs like window handling and drawing are only available through that) for which we AFAIK yet need support in our type library tool. And then UWP apps are packages like e.g. applications on Mac OS X or apps on Android, so the corresponding tools for these need to be used as well...

Regards,
Sven
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus/attachments/20151019/4620cdbd/attachment.html>

Michael Schnell
to Michael Van Canneyt: That comes from: http://ms-iot.github.io/content/en-US/Faqs.htm I just cheched, and fpgui…
Michael Van Canneyt wrote 10 lines
>> >> How do you know that DirectX is part of IOT ? > Only from the message ?ilvinas posted: > > "When running headed the only supported UI is via the UWP UI stacks > (XAML, HTML, DirectX" That comes from: http://ms-iot.github.io/content/en-US/Faqs.htm

Yep. But of course that does not mean that DirectX in fact is supported on a certain hardware platform.

I just cheched, and fpgui has no support for DirectX, at least none of the fpgui sources in git supports this.

I did not assume this. But maybe it can be done with not too much effort.

-Michael

Michael Van Canneyt
to Michael Schnell: Yep. But of course that does not mean that DirectX in fact is supported on a certain…
Michael Schnell wrote 13 lines
On 10/19/2015 02:37 PM, Michael Van Canneyt wrote: > >>> >>> How do you know that DirectX is part of IOT ? >> Only from the message ?ilvinas posted: >> >> "When running headed the only supported UI is via the UWP UI stacks (XAML, >> HTML, DirectX" > > That comes from: > http://ms-iot.github.io/content/en-US/Faqs.htm Yep. But of course that does not mean that DirectX in fact is supported on a certain hardware platform.

And then you're up shit creek without a paddle.

Show quoted text 5 lines
> > I just cheched, and fpgui has no support for DirectX, at least none of the > fpgui sources in git supports this. > I did not assume this. But maybe it can be done with not too much effort.

Hah.... "with not too much effort." is never applicable in IT.

Michael.

Michael Van Canneyt
to Michael Schnell
Michael Schnell wrote 10 lines
The other options statwed in http://ms-iot.github.io/content/en-US/Faqs.htm are XAML and HTML. This obviously aim at a remote GUI. Support for a kind of remote GUI is something that had been discussed here several times. (There once was the EXTPASCAL project, which had died a long time ago). With Win IOT Core this issue might get a new push.

Bwah, I don't really think so.

You're better off using Linux or some BSD for embedded stuff. Why tie yourself to a company such as Microsoft ?

Michael.

Martin Schreiber
to Michael Van Canneyt: As far as I know, fpGUI works on GDI. Michael.
Michael Van Canneyt wrote 13 lines
On Mon, 19 Oct 2015, Michael Schnell wrote: > On 10/16/2015 03:00 PM, Michael Van Canneyt wrote: >> So, that is not the GDI winapi... > > Obviously.So a Delphi program never will show a a Form. > > But with Lazarus, the "fpGUI" and "Custom Drawn" widget sets should work, > as - AFAIK - they can be configured to use DirectX. > > -> Graeme can you comment on this ? As far as I know, fpGUI works on GDI.

And AggPas.

Martin

Michael Schnell
to Michael Van Canneyt: Bwah, I don't really think so. You're better off using Linux or some BSD for embedded…
Michael Van Canneyt wrote 6 lines
Bwah, I don't really think so. You're better off using Linux or some BSD for embedded stuff. Why tie yourself to a company such as Microsoft ?

I personally am thinking along the same lines.

In fact I personally am not planning to do a project with Win IOT. (But I need to recommend it for the company I am working for, due to the huge embedded project they are doing in Delphi, and declined porting to Linux due to lack of manpower.)

But as I think that Microsoft will push Win IOT with their marketing power, and Delphi already does support it with Service Applications, I would not like to see Lazarus in a looser position.

-Michael

Michael Schnell
to Michael Schnell: The other options statwed in http://ms-iot.github.io/content/en-US/Faqs.htm are XAML and…
Michael Schnell wrote
The other options statwed in http://ms-iot.github.io/content/en-US/Faqs.htm are XAML and HTML.

Yet another option is to stream all functions, properties and events of visual objects via TCPI/IP and provide a project that at the user's site displays the forms of the remote application.

This would obviously be doable, but very propriety and of course a lot of work.

Martin once told me about this possibility by the name of "mse-ifi". I don't know if it is available with MSE-IDE.

-Michael

Michael Van Canneyt
to Michael Schnell
Michael Schnell wrote 6 lines
On 10/19/2015 04:25 PM, Michael Schnell wrote: > The other options statwed in http://ms-iot.github.io/content/en-US/Faqs.htm > are XAML and HTML. Yet another option is to stream all functions, properties and events of visual objects via TCPI/IP and provide a project that at the user's site displays the forms of the remote application.

That is simply the wrong way of doing things.
With browsers or webviews what they are today, you can do all display logic in the browser. The server just needs to provide the suitable data.

Michael.

Michael Schnell
to Michael Van Canneyt
Michael Van Canneyt wrote 6 lines
That is simply the wrong way of doing things. With browsers or webviews what they are today, you can do all display logic in the browser. The server just needs to provide the suitable data.

Of course I do agree that it would be a lot nicer to have a remote GUI that supports displaying forms on a browser (and in fact I do have a device (QNAP NAS) that does this in a way that looks and feels very similar to what is standard with a Lazarus Application. I did not find out whether they did their own Java Script Widget implementation or if they licensed a 3rd party product for that.

But I don't see how somebody will start a new project similar to EXTPascal, that needs a lot of Java Script knowledge and supposedly will only be able to support a basic set of the LCL Widgets. Moreover the HTTP protocol is a bad choice for remoting a GUI, as it does not decently support server->Client signaling.

Moreover such devices often need to provide a standard web server at the same time, and sit behind a firewall/Proxy, making a deployment even harder.

-Michael

Michael Van Canneyt
to Michael Schnell
Michael Schnell wrote 13 lines
On 10/20/2015 09:52 AM, Michael Van Canneyt wrote: > > That is simply the wrong way of doing things. > With browsers or webviews what they are today, you can do all display logic > in the browser. > The server just needs to provide the suitable data. > Of course I do agree that it would be a lot nicer to have a remote GUI that supports displaying forms on a browser (and in fact I do have a device (QNAP NAS) that does this in a way that looks and feels very similar to what is standard with a Lazarus Application. I did not find out whether they did their own Java Script Widget implementation or if they licensed a 3rd party product for that.

They use extjs 3.3. We use QNap too.

Show quoted text 5 lines
But I don't see how somebody will start a new project similar to EXTPascal, that needs a lot of Java Script knowledge and supposedly will only be able to support a basic set of the LCL Widgets. Moreover the HTTP protocol is a bad choice for remoting a GUI, as it does not decently support server->Client signaling.

Remoting a gui is a bad idea, I would not spend time on this approach.

Michael.

Michael Schnell
to Michael Van Canneyt
Michael Van Canneyt wrote
Remoting a gui is a bad idea, I would not spend time on this approach.

When GUI was invented it had been done with UNIX and X11. X11 ran on an X-Terminal. So there was no other GUI than a remote one :-) .

Local GUIs got popular with Mac, Atari and Windows a lot later.

-Michael

Michael Van Canneyt
to Michael Schnell
Michael Schnell wrote 7 lines
On 10/20/2015 11:05 AM, Michael Van Canneyt wrote: > > Except that it is not remote. > ???? With the QNAP it is remote. Or am I hit by a misconception of that wording ?

I understand it as follows:

A browser application (any RIA) such as used in QNA is in fact a client/server application. The client just happens to be a browser.

ExtJS is meant to run in the browser. The gui is built from A to Z in the browser. It is there for a 'local' GUI from the point of view of a developer or end user.

To me, a 'remote' gui is built on the server and then sent to the client (browser). In this scenario, the server has at all times a mirror of what the client sees. This is stateful, therefor not scalable, and in general IMHO should be avoided.

Michael.

Michael Schnell
to Michael Van Canneyt
Michael Van Canneyt wrote 9 lines
A browser application (any RIA) such as used in QNA is in fact a client/server application. The client just happens to be a browser. ExtJS is meant to run in the browser. The gui is built from A to Z in the browser. It is there for a 'local' GUI from the point of view of a developer or end user.

So the Client application would completely have to be written in Java Script. (To me: Yuck !!!)

Show quoted text 6 lines
To me, a 'remote' gui is built on the server and then sent to the client (browser). In this scenario, the server has at all times a mirror of what the client sees. This is stateful, therefor not scalable, and in general IMHO should be avoided.

This is exactly what I thought.

You can see it even more in detail:

In a modern PC, the Graphic card's processor renders Text and created things like rectangles, this might be considered very basic widgets.

To the PC's main CPU this processor is remote (i.e. attached via a defined API "Bottleneck"). So in fact any GUI can be considered a remote GUI.

With Linux the X-Server is in between. Same is "remote" (here the API even can be TCP/IP) to the application.

Usually a windowing system and widget set is still in between again "remote" to the application via an API.

In this sense, with a Lazarus application, the LCL might be considered "remote" to the user code.

So there are multiple layers of remoting a GUI and for a logical view, it is not a real difference how large the mechanical space between the client and the server at any API is.

So to me it depends on multiple circumstances (hardware, OS, resources, speed requirement, intended use, deployment issues, ....) if or if not "remoting" any of the multiple APIs is or is not a good idea for a given project.

-Michael

Michael Van Canneyt
to Michael Schnell
Michael Schnell wrote 13 lines
On 10/20/2015 11:26 AM, Michael Van Canneyt wrote: > > > A browser application (any RIA) such as used in QNA is in fact a > client/server application. > The client just happens to be a browser. > > ExtJS is meant to run in the browser. The gui is built from A to Z in the > browser. It is there for a 'local' GUI from the point of view of a > developer or end user. So the Client application would completely have to be written in Java Script. (To me: Yuck !!!)

Yes. Any attempt to avoid this is futile.

I tried 2 concepts (one of the ExtPascal).
You ALWAYS end up writing javascript for particular cases.

So, better bite the bullet and do the lot in Javascript directly, using the tools available in Javascript. Even the folks at Google came to this conclusion.

What I do endorse is converting Pascal to Javascript directly. Pascal is better suited for large projects: classes, type safety and so on...

Michael.

Michael Schnell
to Michael Van Canneyt
Michael Van Canneyt wrote
Yes. Any attempt to avoid this is futile. I tried 2 concepts (one of the ExtPascal). You ALWAYS end up writing javascript for particular cases.

I do see the problem that likely come up. That obviously is why EXTPascal has been abandoned. And that (plus the one directional makeoff of the HTP protocol) is why I think a totally propriety attempt to remote the LCL API (called "ifi") *might* be a better idea than trying to force a browser to show a remote GUI.

So, better bite the bullet and do the lot in Javascript directly, using the tools available in Javascript.

Happily I am not planing such a project, myself :-)

Thanks for the interesting discussion !

-Michael

Paul Breneman
to Michael Schnell
Michael Schnell wrote 18 lines
On 10/20/2015 11:51 AM, Michael Van Canneyt wrote: > Yes. Any attempt to avoid this is futile. > > I tried 2 concepts (one of the ExtPascal). You ALWAYS end up writing > javascript for particular cases. I do see the problem that likely come up. That obviously is why EXTPascal has been abandoned. And that (plus the one directional makeoff of the HTP protocol) is why I think a totally propriety attempt to remote the LCL API (called "ifi") *might* be a better idea than trying to force a browser to show a remote GUI. > > So, better bite the bullet and do the lot in Javascript directly, > using the tools available in Javascript. Happily I am not planing such a project, myself :-) Thanks for the interesting discussion ! -Michael

Yes, this is interesting. I'll repeat what I wrote two years ago: http://lists.lazarus.freepascal.org/pipermail/lazarus/2013-November/084629.html

A *long* time ago I was involved a little with Genotechs in Phoenix and they had a (Delphi) program called AstroMark that sounds similar: http://www.eweek.com/c/a/Enterprise-Networking/Do-You-Deploy-Thin-or-Thick-Web-Applications

Martin Schreiber
to Michael Van Canneyt: I understand it as follows: A browser application (any RIA) such as used in QNA is in…
Michael Van Canneyt wrote 18 lines
On Tue, 20 Oct 2015, Michael Schnell wrote: > On 10/20/2015 11:05 AM, Michael Van Canneyt wrote: >> Except that it is not remote. > > ???? > > With the QNAP it is remote. Or am I hit by a misconception of that > wording ? I understand it as follows: A browser application (any RIA) such as used in QNA is in fact a client/server application. The client just happens to be a browser. ExtJS is meant to run in the browser. The gui is built from A to Z in the browser. It is there for a 'local' GUI from the point of view of a developer or end user.

That is exactly the working principle of MSEifi. The difference is that MSEifi is not implemented by a Javascript environment but by MSEgui components and widgets written in Free Pascal. On client side a MSEifi runtime which could be implemented as browser plug-in fetches the *.mfm form data (the MSEgui equivalent of Lazarus *.lfm files) and PascalScript snippets and instantiates the forms and datamodules. If wanted there are ifi components available in order to connect data points and events between server and client by a TCP/IP or other serial connection but that is no requirement. The same connection components can be used for separation of GUI and business logic in a standalone desktop application so it is possible to use the same GUI definition in both. At least in theory. ;-)

Martin

Michael Schnell
to Paul Breneman: Yes, this is interesting. I'll repeat what I wrote two years ago:…
Paul Breneman wrote 10 lines
Yes, this is interesting. I'll repeat what I wrote two years ago: http://lists.lazarus.freepascal.org/pipermail/lazarus/2013-November/084629.html A *long* time ago I was involved a little with Genotechs in Phoenix and they had a (Delphi) program called AstroMark that sounds similar: http://www.eweek.com/c/a/Enterprise-Networking/Do-You-Deploy-Thin-or-Thick-Web-Applications

Thanks for supporting the general idea.

-Michael

Michael Schnell
to Michael Van Canneyt: Yes. Any attempt to avoid this is futile. I tried 2 concepts (one of the ExtPascal). You…
Michael Van Canneyt wrote 5 lines
What I do endorse is converting Pascal to Javascript directly. Pascal is better suited for large projects: classes, type safety and so on...

I seem to remember that a fpc java script backend had been discussed. Do we know the state of this project ?

Another theoretical variant would be using Silverlight/Moonlight and _Delphi_for_.Net_ / Prism. I don't know if anybody tried this combination, yet.

-Michael

Michael Schnell
to Martin Schreiber: That is exactly the working principle of MSEifi. The difference is that MSEifi is not…
Martin Schreiber wrote
At least in theory. ;-)

What is the state of the "ifi" project right now ? (AFAIK, you did not publish it for others to use yet.)

IMHO it would be a great building block for fpc users that want to use WIN IOT (or a tiny Linux board, or for other reasons are facing a headless target).

Are there any example that could demonstrate that it's not pure theory :-)

-Michael

Sven Barth
to Michael Schnell: I seem to remember that a fpc java script backend had been discussed. Do we know the…
"Michael Schnell" wrote
> I seem to remember that a fpc java script backend had been discussed. Do

we know the state of this project ?

Not much progress. Maybe this will change with the new binary format and environment Microsoft, Mozilla & Co. are working on.

Another theoretical variant would be using Silverlight/Moonlight and

_Delphi_for_.Net_ / Prism. I don't know if anybody tried this combination, yet.

You are aware that the trend is to get away from such binary extensions? (see Flash)

Regards,
Sven
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus/attachments/20151020/e0d1c827/attachment.html>

Michael Van Canneyt
to Martin Schreiber: That is exactly the working principle of MSEifi. The difference is that MSEifi is not…
Martin Schreiber wrote 23 lines
On Tuesday 20 October 2015 11:26:25 Michael Van Canneyt wrote: > On Tue, 20 Oct 2015, Michael Schnell wrote: >> On 10/20/2015 11:05 AM, Michael Van Canneyt wrote: >>> Except that it is not remote. >> >> ???? >> >> With the QNAP it is remote. Or am I hit by a misconception of that >> wording ? > > I understand it as follows: > > A browser application (any RIA) such as used in QNA is in fact a > client/server application. The client just happens to be a browser. > > ExtJS is meant to run in the browser. The gui is built from A to Z in the > browser. It is there for a 'local' GUI from the point of view of a > developer or end user. > That is exactly the working principle of MSEifi. The difference is that MSEifi is not implemented by a Javascript environment but by MSEgui components and widgets written in Free Pascal. On client side a MSEifi runtime which could be implemented as browser plug-in

And that's where the ship sinks for me...
Browser plugins are not acceptable as a viable solution.

Michael.

Michael Van Canneyt
to Michael Schnell: I seem to remember that a fpc java script backend had been discussed. Do we know the…
Michael Schnell wrote 12 lines
On 10/20/2015 11:51 AM, Michael Van Canneyt wrote: > > What I do endorse is converting Pascal to Javascript directly. > Pascal is better suited for large projects: classes, type safety and so > on... > I seem to remember that a fpc java script backend had been discussed. Do we know the state of this project ? Another theoretical variant would be using Silverlight/Moonlight and _Delphi_for_.Net_ / Prism. I don't know if anybody tried this combination, yet.

Silverlight is discontinued.

Michael.

Martin Schreiber
to Michael Schnell: What is the state of the "ifi" project right now ? (AFAIK, you did not publish it for…
Michael Schnell wrote 5 lines
On 10/20/2015 02:00 PM, Martin Schreiber wrote: > At least in theory. ;-) What is the state of the "ifi" project right now ? (AFAIK, you did not publish it for others to use yet.)

In process MSEifi is used in production and standard in MSEide since years, the experimental MSEifi-remote components can be integrated by compiling MSEide with -dmse_with_ifirem. MSEide git master version has them integrated by default.
https://gitlab.com/mseide-msegui/mseide-msegui

Are there any example that could demonstrate that it's not pure theory :-)

There is still the pipe demo I made for you, feel free to build some more. :-)

Martin

Martin Schreiber
to Michael Van Canneyt: And that's where the ship sinks for me... Browser plugins are not acceptable as a viable…
Michael Van Canneyt wrote 9 lines
> > That is exactly the working principle of MSEifi. The difference is that > MSEifi is not implemented by a Javascript environment but by MSEgui > components and widgets written in Free Pascal. On client side a MSEifi > runtime which could be implemented as browser plug-in And that's where the ship sinks for me... Browser plugins are not acceptable as a viable solution.

Certainly not for universal internet use. In an industrial environment the requirements are different.

Martin

Michael Van Canneyt
to Martin Schreiber: Certainly not for universal internet use. In an industrial environment the requirements…
Martin Schreiber wrote 12 lines
On Tuesday 20 October 2015 14:20:42 Michael Van Canneyt wrote: >> >> That is exactly the working principle of MSEifi. The difference is that >> MSEifi is not implemented by a Javascript environment but by MSEgui >> components and widgets written in Free Pascal. On client side a MSEifi >> runtime which could be implemented as browser plug-in > > And that's where the ship sinks for me... > Browser plugins are not acceptable as a viable solution. > Certainly not for universal internet use. In an industrial environment the requirements are different.

Absolutely agreed, but in that use case I tend to think that a desktop application is a problem, and the browser can be bypassed altogether. It is a limited environment after all.

Michael.

Martin Schreiber
to Michael Schnell
Michael Schnell wrote 7 lines
On 10/20/2015 02:29 PM, Martin Schreiber wrote: > There is still the pipe demo I made for you, feel free to build some > more. :-) Maybe you could provide a compiled version (simply two applications) so that the others can see what is possible with that paradigm.

There *are* compiled versions I made especially for you and which blow up the repository now. ;-)

https://gitlab.com/mseuniverse/mseuniverse/tree/master/attic/msedocumenting/mse/trunk/help/tutorials/mseifi/ifipipedemo/bin

Martin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: mseifi.png
Type: image/png
Size: 38433 bytes
Desc: not available
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus/attachments/20151020/c515c560/attachment-0001.png>

Michael Schnell
to Martin Schreiber
Martin Schreiber wrote 5 lines
There *are* compiled versions I made especially for you and which blow up the repository now. ;-) https://gitlab.com/mseuniverse/mseuniverse/tree/master/attic/msedocumenting/mse/trunk/help/tutorials/mseifi/ifipipedemo/bin

Great !
Thanks for digging that out again. Maybe now it can trigger some more interest.

It really is a shame that I am not any more as much in duty with the Delphi migration Kit as I was those days.

-Michael

Paul Breneman
to Michael Schnell: Thanks for supporting the general idea. -Michael
Michael Schnell wrote 12 lines
On 10/20/2015 01:24 PM, Paul Breneman wrote: > > Yes, this is interesting. I'll repeat what I wrote two years ago: > http://lists.lazarus.freepascal.org/pipermail/lazarus/2013-November/084629.html > > > A *long* time ago I was involved a little with Genotechs in Phoenix and > they had a (Delphi) program called AstroMark that sounds similar: > http://www.eweek.com/c/a/Enterprise-Networking/Do-You-Deploy-Thin-or-Thick-Web-Applications > > Thanks for supporting the general idea.

I heard there were patents involved but I don't know anything about those.

Regards,
Paul
www.ControlPascal.com

Sven Barth
to Michael Schnell: Yep. To me it seems like ".NET" is rather dead altogether (even though M$ does not admit…
"Michael Schnell" wrote 5 lines
On 10/20/2015 02:17 PM, Sven Barth wrote: > > > You are aware that the trend is to get away from such binary extensions?

(see Flash)

> Yep. To me it seems like ".NET" is rather dead altogether (even though M$

does not admit that).

The latter point I doubt. For UWP C# is a first class citizen (like C++) and only recently MS announced the results of their work on a .Net JIT based on LLVM.

Regards,
Sven
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus/attachments/20151020/14bde884/attachment.html>

Michael Schnell
to Michael Van Canneyt: Silverlight is discontinued. Michael.
Michael Van Canneyt wrote
Silverlight is discontinued.

To me this is the death of .NET.

Silverlight was the only excuse to call the CIL runtime ".Net Framework". In fact, to me, Silverlight was the only reason to consider ".Net", because deploying a browser-plugin - in the moment it is to be executed - needs to do this in an architecture and OS independent way, and needs for running the stuff in a "managed" environment. Here, CIL does make sense as it runs complex applications that way with close-to-native speed. (If course Java can do the same, but for obvious reasons M$ wanted to fight Java). Of course it's nice to be able to deploy such a plugin unchanged for local use, but in a local environment, native code deployment usually can easily be done. (An for those who think different, Java/Dalvik has taken it all, anyway).

It's really funny to see how the M$ marketing loves the word "Net", calling the (technical named CIL) perfectly normal virtual processor runtime-environment ".NET" and renaming plain old embedded computing "Internet Of Things", even though (or right because) Linux always technically was preferable in networking, while Windows for a long time was the better choice for desktop computing

-Michael

Sven Barth
to Michael Schnell
"Michael Schnell" wrote 8 lines
On 10/20/2015 02:22 PM, Michael Van Canneyt wrote: > > Silverlight is discontinued. > To me this is the death of .NET. Silverlight was the only excuse to call the CIL runtime ".Net Framework".

In fact, to me, Silverlight was the only reason to consider ".Net", because deploying a browser-plugin - in the moment it is to be executed - needs to do this in an architecture and OS independent way, and needs for running the stuff in a "managed" environment. Here, CIL does make sense as it runs complex applications that way with close-to-native speed. (If course Java can do the same, but for obvious reasons M$ wanted to fight Java). Of course it's nice to be able to deploy such a plugin unchanged for local use, but in a local environment, native code deployment usually can easily be done. (An for those who think different, Java/Dalvik has taken it all, anyway).

You are aware that even during its existance Silverlight was only a small part of the .Net ecosystem? There are GUI desktop applications, server applications including ASP.net, Windows Store apps, XBox games. Saying that the discontinuation of Silverlight is the end of .Net appears very far fetched to me. That's a bit as if the end of Symbian would have been used to proclaim the end of Java...

Regards,
Sven
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus/attachments/20151022/8efd7efc/attachment-0001.html>

Michael Schnell
to Sven Barth
Sven Barth wrote
You are aware that even during its existance Silverlight was only a small part of the .Net ecosystem?

Of course I am.

"Death of .NET" was a really bad wording of mine. I meant "Death of the .NET (CIL) Framework.

There are GUI desktop applications, ...

Yep I know. I am using several of them myself. and always am unhappy about their extreme slow starting. :(

IMHO Using CIL/.NET for local applications is not a good

Sven Barth
to Michael Schnell
"Michael Schnell" wrote 5 lines
On 10/22/2015 11:35 AM, Sven Barth wrote: > > > You are aware that even during its existance Silverlight was only a

small part of the .Net ecosystem?

> Of course I am. "Death of .NET" was a really bad wording of mine. I meant "Death of the

.NET (CIL) Framework.

Doesn't change anything of my argumentation... Silverlight was only a small part of the Framework as well and most other parts are still used by others.

Regards,
Sven
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus/attachments/20151022/75061aa9/attachment.html>

Graeme Geldenhuys
to Michael Schnell: I suppose you are right. I did not re-check in Windows, as I don't use Lazarus on windows…

Hello Michael,

Michael Schnell wrote
On Linux, fpGUI can be configured to use either "GDI" or "X11" as "fpGUI Platform". So it might be doable to have fpGUI use DirectX as a platform.

Under Linux, then "GDI" makes no sense - but then I didn't follow this whole thread. The latest development version (and latest released version - with configurable option) relies more on AggPas for all graphic rendering and font support, and the underlying windowing system (Win32, Xlib etc) is used only for top-level windows and some OS events. The reliance on the underlying windowing system is greatly reduced.

I hope this info helps a bit.

Regards, - Graeme - My public PGP key: http://tinyurl.com/graeme-pgp