Yes,  Scan/EndScan now supported in X#.

- Matt Slay


On 2020-07-29 11:00 AM, MB Software Solutions, LLC wrote:
No SCAN/ENDSCAN support yet?


On 7/29/2020 11:56 AM, Johan Nel wrote:
Hi all VFPers,

Well have not posted much lately about X# here due to some other issues I have to attend to, but good progress are made with support for the VFP dialect.

As per the message regarding .NET Core, I would also like to share progress with X# regarding .NET Core support.

Attached the link and posting by Robert today.

Hope it is of interest to (most) some.

Johan Nel
George, South Africa.

https://www.xsharp.info/forum/public-product/2069-xsharp-builds-on-net-core

I would like to share some progress that I made today.
I have changed the X# build system to support building for .Net Core. Consider an app that has one PRG file and a XSPROJ file.
The contents of the XSProj file looks like this:

<Project Sdk="Microsoft.NET.Sdk">
  <Import Project="$(XSharpMsBuildDir)\XSharp.NET.Sdk.props" />
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp5.0</TargetFramework>
    <ins>true</ins>
    <dialect>vo</dialect>
  </PropertyGroup>
<ItemGroup>
    <Reference Include="XSharp.Core" />
    <Reference Include="XSharp.RT" />
    <Reference Include="XSharp.RDD" />
    <Reference Include="XSharp.MacroCompiler" />
</ItemGroup>
<Import Project="$(XSharpMsBuildDir)\XSharp.NET.Sdk.targets" />
<ItemGroup>
  <PackageReference Include="System.Text.Encoding.CodePages" Version="4.7.1" />
</ItemGroup>
</Project>


As you can see we are compiling for .Net Core 5.0 and for the VO dialect. I have included the XSharp assemblies needed to open a DBF file. The only "strange" thing in here is the package references to the System.Text.Encoding.CodePages package, because by default .Net Core does not have support for Codepage 1252 which I am using. Unlike traditional project files there are no items included. By default .Net Core includes all source code items in the folder.

The code looks like this:

USING System.Text

FUNCTION Start() AS VOID
FIELD CUSTNUM, LASTNAME, FIRSTNAME
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance)
? "Hello from X#"
? "OS       :",OS(TRUE)
? "Framework:", System.Environment.Version:ToString()
? "Xsharp   : version", Version(), "dialect", RuntimeState.Dialect:ToString()
? "Datetime :", DateTime()
? "Program  :", ExecName(TRUE)
? "Workdir  :", WorkDir()
? "Curdir   :", System.IO.Directory.GetCurrentDirectory()

? "Opening, Indexing and listing a DBF with .Net Core"
?
USE Customer
INDEX ON LASTNAME TO LASTNAME
DO WHILE ! EOF()
    ? Str(CUSTNUM,2) , LASTNAME, FIRSTNAME
    SKIP
ENDDO
? "Press any key"
Console.ReadLine()
RETURN


As you can see I am calling a function in the Encoding class to link the package that has the codepage support.
The rest is a normal mixture of Xbase code and .Net code.
To compile and run the program I type

dotnet run

on the command line.
The result is this:

Hello from X#
OS       : Windows 10 Enterprise (x64) ( Version 10.0, Build 18363 )
Framework: 5.0.0
Xsharp   : version XSharp 2.5.2.0 dialect VO
Datetime : 29-07-2020 16:10:58
Program  : C:\test\bin\Debug\netcoreapp5.0\test.dll
Workdir  : C:\test\bin\Debug\netcoreapp5.0\
Curdir   : C:\test
Opening, Indexing and listing a DBF with .Net Core

 6 Baker      James
 2 Borne      Maria
15 Chandler   Walter
 3 Cooper     Elizabeth
12 Cusumano   Karen
 5 Dougherty  Janet
.
.
14 Walsh      Gloria
19 Zimmerman  Carla
Press any key


As you can see the runtime, RDD system and Macro compiler all work on .Net Core 5.0 ! You can deploy this app with all support DLLs in one single Exe and 2 small DLLs by calling:

dotnet publish --self-contained true -r win-x64 -p:PublishSingleFile=true -p:PublishTrimmed=true


This creates the following files, which make up the whole program:

29-07-2020  16:13        28.955.153 test.exe
28-05-2020  08:26           500.608 hostfxr.dll
28-05-2020  08:26           506.248 hostpolicy.dll

Even the XSharp DLLs are included in test,exe. The total size is 29 Mb.

You can also prepare an image for Linux by replacing win-x64 with linux-x64 and then the output is:

29-07-2020  16:16        44.552.454 test
28-05-2020  07:54           563.728 libhostfxr.so
28-05-2020  07:54           532.408 libhostpolicy.so

A self contained .Net app for Linux in 44 Mb !

I hope you find this interesting.

Robert

And yes this will be included in the next build. Not with the VS project system, that will take a bit longer.

[excessive quoting removed by server]

_______________________________________________
Post Messages to: ProFox@leafe.com
Subscription Maintenance: https://mail.leafe.com/mailman/listinfo/profox
OT-free version of this list: https://mail.leafe.com/mailman/listinfo/profoxtech
Searchable Archive: https://leafe.com/archives
This message: 
https://leafe.com/archives/byMID/7537c540-63b3-537d-7681-c615fd6fd...@jordanmachine.com
** All postings, unless explicitly stated otherwise, are the opinions of the 
author, and do not constitute legal or medical advice. This statement is added 
to the messages for those lawyers who are too stupid to see the obvious.

Reply via email to