Coder Social home page Coder Social logo

Comments (7)

ylatuya avatar ylatuya commented on August 10, 2024 1

Right, that was the reason, XF required net47

  1. Ok
  2. Ok
  3. Multitarget projects are not yet supported in vs4mac, which is my main development environment, so we have to leave them as they are now.
  4. If that works with vs4mac I am ok with it, the CI's run on a macOS host so once you create the PR you will check if it builds correctly or not.

Regarding Owin, the is no HTTP server at all, communication is done with raw TCP sockets and Json serialization, similar to how websockets works. The reason for this is that it has less overhead than HTTP, it keeps the dependencies pretty small (Xamarin.Forms and Json.Net) and it only requires to reverse 1 port in Android's emulator instead of 2.

There isn't NuGet.Build.Packaging either, everything is built with a .nuspec file.

from xamlator.

ylatuya avatar ylatuya commented on August 10, 2024 1

Regarding Owin, the is no HTTP server at all, communication is done with raw TCP sockets and Json serialization, similar to how websockets works.

It's a correct design. But what's this anyway?

It's not used anymore, I will remove it from the repo.

There isn't NuGet.Build.Packaging either, everything is built with a .nuspec file.

csproj is capable to handle nuget package creation and there is no need for .nuspec file anymore these days. I also found Nuget.Build.Packaging here

It's probably a leftover from my first attempt to automate packaging directly from the csproj. I will clean this too.

Here is the PR for the cleanup: #26

from xamlator.

ylatuya avatar ylatuya commented on August 10, 2024

There is no point actually, on the client the minimum requirements are set by Xamarin.Forms, and it's netstandard 2.0, and on the server net461 should be fine too, so feel free to change it.
The reason there isn't a unique library targeting netstandard 2.0 for all platforms is that we have a dependency with Mono.CSharp for the evaluator. I started working on a new implementation that uses the Roslyn API here but it's not working on iOS.

from xamlator.

ysmoradi avatar ysmoradi commented on August 10, 2024

It's not working on iOS devices or iOS emulators or both?

from xamlator.

ylatuya avatar ylatuya commented on August 10, 2024

It's not working on both because of dotnet/roslyn#24442

from xamlator.

ysmoradi avatar ysmoradi commented on August 10, 2024

I found out why .net 47 was chosen! Before XF 3.3, the minimum version of .net was specified to 47 which is obviously wrong. They've fixed that recently.

So, this is what I recommend:
1- Update to XF 3.3
2- Select net 461 instead of 47. (GTK Forms project itself has this issue too)
3- Multi-target projects, instead of having multiple projects such as XAMLator.Server.Mono.Droid & XAMLator.Server.Mono.iOS. I know .net standard is not a choise because of Mono Evaluator addin. But multi target project has no limiation in this area.
4- Use Package References and new csproj format.

I recommend them because I think we need a better structure to make project growth. By doing that, we can have fewer projects and fewer packages (Now I can build the project using only 13 packages)

We can use Owin instead of the custom HTTP server and we are also able to drop using NuGet.Build.Packaging, dot net sdk can handle that so easily if we move to new csproj format.

from xamlator.

ysmoradi avatar ysmoradi commented on August 10, 2024

Regarding Owin, the is no HTTP server at all, communication is done with raw TCP sockets and Json serialization, similar to how websockets works.

It's a correct design. But what's this anyway?

There isn't NuGet.Build.Packaging either, everything is built with a .nuspec file.

csproj is capable to handle nuget package creation and there is no need for .nuspec file anymore these days. I also found Nuget.Build.Packaging here

And about vs4mac, I'll do whatever vs4mac supports, don't worry about that (:

from xamlator.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.