tryphotino / photino.NET

https://tryphotino.io
Apache License 2.0
912 stars 74 forks source link

Feedback Wanted: Next version #44

Closed MikeYeager closed 3 years ago

MikeYeager commented 3 years ago

The developers are making changes in preparation for the next major release of Photino and we'd like some feedback. New features include: Chrome-less window support for user-drawn title bars and borders, ability to maximize, minimize and restore windows, support for multiple windows, ability to set window icon on initialization, ability to initialize windows with OS default position and sizes, fixes for "Error loading 'app' scheme" on macOS and Linux, change where WebView2 user folders are saved by default to avoid security issues on Windows when installing in ProgramFiles, and more!

We will also be introducing a 'builder' for creating new Photino windows, which is more consistent with .NET programming and, behind the scenes, we'll be passing a struct/object to the Photino.Native constructor instead of passing individual parameters.

With these changes, we'd like to get some feedback on the API we expose in Photino.NET. Since the builder will now be used for initialization (and fluent syntax will no longer work for initializing new windows), should we keep the fluent syntax for calls made after the instantiation? Is it useful of confusing?

Also, should we maintain access to the properties, or make all interaction happen through an expanded set of methods? For example, call MoveTo() or Offset() or Center() to move a window and not have the Top and Left properties accessible? No access to properties is more consistent with design principles for an API, reduces the documentation and API surface and provides consistency. On the other hand, it reduces the options for the programmer who prefers to use properties directly.

theolivenbaum commented 3 years ago

Hi everyone, amazing work with the library! Using it together with the h5.rocks C# to JS transpiler and it just worked amazingly well for a pure C# dev experience 😎

As for questions: was wondering what's the timeline for the next release... Was mainly missing the minimize/maximize methods, and i see in the debug branch that they're almost ready!

For the feedback: I don't mind the fluent style for after initialization, something I'm used already from own code and other libs. For the properties, could a compromise be to have them read only and settable via the methods?

congzhangzh commented 3 years ago

Any plan for update support?

dodbrian commented 3 years ago

I was very excited to learn about this project. Are there any activities going on or it's already abandoned?

Regarding the questions: I'd prefer keeping the fluent style and the properties.

congzhangzh commented 3 years ago

Btw, is that possible to make https://github.com/tryphotino/photino.Samples/tree/master/Photino.HelloPhotino.AdvancedNET part be a platform related plugin? As these functions is very common to open or save dialog?

MikeYeager commented 3 years ago

@dodbrian It is very much alive and well. We've been making big changes for a V2 release. The Windows code is done and in testing. Linux is almost ready for testing and then we need to tackle macOS.

MikeYeager commented 3 years ago

@congzhangzh We would very much like to pull all of the advanced features into the base platform. Win32 is by far the most difficult part. We're currently waiting on some new features by 3rd parties that will make this much, much easier. There are several initiatives by Microsoft and others that will make all of the Win32 calls relatively easy to implement in C#.

michaelcanudas commented 3 years ago

Hey all, just wanted to let you know I love the package and I plan on using it in a game launcher I have been working on. A few questions I have are:

Will there be custom taskbars in v2? If so, would it be done using html?

How do I build my application into executables for windows, mac, and linux?

How do I handle filesystem stuff so that it works on all 3 platforms?

8 commented 3 years ago

Hi, first I wanted to thank you for starting this great project!

I am currently also exploring a similar framework named tauri, which is using rust as the native wrapper and I am enjoying it greatly so far. Some features of tauri include:

Maybe some of those features would also be of interest to the photino project?

Take care, Martin

ottodobretsberger commented 3 years ago

Photino v2 with new features has been released. We are keeping a backlog with additional features for future versions.