Comments (6)
This will be made possible in the upcoming WPF remake!
from deadlock.
I'm thinking more of a radically different approach. In the sense that something like Tauri + Rust and a React frontend are perfectly capable of providing small binaries, which are portable, in addition to providing the same (or slightly different) user interface that our users are already used to. It would completely remove the requirement of .NET and be modern and maintainable.
A dotnet library for DeadLock could also be made available, and I'm working on one right now for developers as a NuGet package.
from deadlock.
Definitely! We've discussed software portability in a blog post here:
http://codedead.com/?p=1294
from deadlock.
Nice! Watching the repo to add it as soon it's released
from deadlock.
As far as I know, a .NET portable app can be made in two ways with a stable SDK release:
A. Require the system already have .NET Framework and its dependencies. Framework 4.8 is pre-installed and continually updated on most Windows systems. It can run .NET Framework apps compiled for any previous 4.x runtime with minor differences where the API had a breaking change. I an imagine that some domain/organization-managed systems might not have the Framework installed for NUCs.
B. The app is published its own copy of the .NET runtime via Self-Contained.
[One problem with the latter is trim-incompatibility] of WPF and WinForms](https://docs.microsoft.com/en-us/dotnet/core/deploying/trimming/incompatibilities). Without IL trimming, the entire .NET Runtime is included with the build artifacts and leads to a 100MiB+ deployment. This might change with .NET 7 .NET 8(?) if these libraries are updated to use trim-compatible code.
- WPF uses a lot of assembly Reflection and run-time code inspection. The member-level trimmer of .NET 5 and even 6 cannot walk certain uses of Reflection. See dotnet/wpf#3811 for updates.
- Similarly, WinForms uses a bit of Reflection in addition to lots of built-in COM marshalling. When all of its reflection and COM marshalling is switched out for COM wrappers, it will become significantly more trim-compatible. Not completely, though. See dotnet/winforms#4649 for updates.
Note: .NET 7 appears to be introducing native-code Ahead Of Time compilation. I haven't looked into it enough to know if the resulting assemblies could be considered portable or if they would still have platform-specific runtime prerequisites.
from deadlock.
NET 7 appears to be introducing native-code Ahead Of Time compilation.
WPF does not support AOT and it's very unclear if it will be supported in the future at all. Winforms support AOT unofficial with some workarounds according to users. Avalonia (WPF-like cross platform UI) however supports AOT already. Unfortunately the portable AOT version of an Avalonia app is quite big in size.
from deadlock.
Related Issues (12)
- Thanks for the program! HOT 5
- question(cli): unlock a folder HOT 1
- Feature requests
- Can't install HOT 3
- Right-Click Start DeadLock in Administrator Mode HOT 4
- DeadLock Update? HOT 4
- Rebase WPF onto master branch HOT 3
- Roadplan HOT 2
- Maintainability: Migrate projects to SDK-style csproj HOT 1
- Windows Explorer integration problem. HOT 1
- Leftover keys. HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from deadlock.