Program Tip

.NET Core에서 데스크톱 GUI 응용 프로그램을 만들 수 있습니까?

programtip 2020. 10. 23. 08:20
반응형

.NET Core에서 데스크톱 GUI 응용 프로그램을 만들 수 있습니까?


몇 년 동안 winforms 프로그램을 개발해 왔습니다. 지금은 .NET core (ASP.NET core MVC 포함)를 살펴보고 있습니다. 새로운 GUI 데스크톱 기술을 찾고 있습니다 .Visual Studio 2015 업데이트 3에서 옵션을 볼 수 없습니다. .NET Core에서 GUI 앱을 만들 수 있습니다. 내가 뭘 놓치고 있니?


당신은 아무것도 놓친 것이 아닙니다. UWP (유니버설 Windows 플랫폼)가 부분적으로 .Net Core 위에 빌드되었지만 MS는 .Net Core를 사용하여 직접 GUI 애플리케이션을 만드는 합리적인 방법을 제공하지 않았습니다.

.Net Core 3.0은 Windows 전용이지만 Winforms 및 WPF에 대한 지원을 포함합니다.

지난 2 년 동안 나온 교차 플랫폼 옵션에 대해서는 다른 답변을 참조하십시오.


Electron을 사용 하고 Edge.js resp 연결할 수 있습니다 . 전자 에지 . Edge.js를 사용하면 전자 (node.js)가 .net dll을 호출 할 수 있으며 그 반대도 마찬가지입니다. 이렇게하면 HTML, CSS 및 JavaScript로 GUI를 작성하고 .net 코어로 백엔드를 작성할 수 있습니다. Electron 자체도 크로스 플랫폼이며 크롬 브라우저를 기반으로합니다.


한 가지 옵션은 UI에 JavaScript, HTML 및 CSS와 함께 Electron을 사용하고 백엔드 로직을위한 웹 API를 자체 호스팅 할 .Net Core 콘솔 애플리케이션을 빌드하는 것입니다. Electron은 백그라운드에서 콘솔 애플리케이션을 시작하여 localhost : xxxx에 서비스를 노출합니다.

이렇게하면 자바 스크립트의 HTTP 요청을 통해 액세스 할 수 있도록 .Net을 사용하여 모든 백엔드 로직을 구현할 수 있습니다.

이 게시물을 살펴보고 Electron 및 .Net Core를 사용하여 크로스 플랫폼 데스크톱 애플리케이션을 빌드하고 github에서 코드를 확인 하는 방법을 설명 합니다.


AvaloniaUI는 이제 Win / OSX / Linux의 .NET Core에서 실행되도록 지원합니다. XAML, 바인딩 및 컨트롤 템플릿이 포함되어 있습니다.

예 : Rider로 MacO에서 개발하려면 :

  1. 지침에 따라 Avalonia dotnet 새 템플릿설치합니다.
  2. JetBrains Rider를 열고 시작 화면에서
  3. 선택 New Solution-> (근처 템플릿 목록의 상단) -> More Templates-> 버튼 Install Template...->을에 찾아 디렉토리 1 단계에서 템플릿을 복제.
  4. Reload버튼을 클릭
  5. 보다! Avalonia 템플릿이 이제 New Solution템플릿 목록에 나타납니다 !
  6. Avalonia 템플릿 선택
  7. 빌드하고 실행하십시오. 눈앞에서 열린 GUI를 확인하십시오.

JetBrains Rider에 dotnet 새 템플릿을 설치하는 GUI 단계


이제 Qml.Net을 사용하여 .NET Core에서 Qt / QtQuick / QML을 사용할 수 있습니다 .

매우 성능이 뛰어나고 ( "수다쟁이"가 아님) 모든 기능을 갖추고 있으며 Linux / OSX / Windows에서 작동합니다.

내 블로그 게시물확인하여 현재 다른 옵션과 어떻게 비교되는지 확인하십시오.

추신 : 저는 저자입니다.


.net 코어 인 Electron.NET을 사용 하여 전자 용 오픈 소스 솔루션을 코딩했습니다 . https://github.com/ElectronNET/Electron.NET

즐겨!


.NET Core 3는 Windows 데스크톱 애플리케이션 생성을 지원합니다. 어제 .NET 컨퍼런스에서 기술 데모를 보았습니다. 이것은 내가 찾을 수있는 유일한 블로그 게시물이지만 요점을 설명합니다. https://blogs.msdn.microsoft.com/dotnet/2018/05/07/net-core-3-and-support-for-windows- 데스크탑 애플리케이션 /


오래된 질문이지만 예, VSCode, .Net Core, C #, gtk3, gtksharp 및 Glade를 GUI 디자이너로 사용하여 Windows, Linux 및 macOS 용 교차 플랫폼 데스크톱 (GUI) 애플리케이션을 개발할 수 있습니다.

방법 은 다음과 같습니다 .


콘솔 기반 UI를 생성하려면 gui.cs 를 사용할 수 있습니다 . 오픈 소스 (Miguel, Xamarin의 창시자)이며 Windows, Linux 및 MacO의 .Net 코어에서 실행됩니다.

다음과 같은 구성 요소가 있습니다.

  • 버튼
  • 라벨
  • 텍스트 입력
  • 텍스트보기
  • 시간 편집 필드
  • 라디오 버튼
  • 체크 박스
  • 대화 상자
    • 메시지 상자
  • 윈도우
  • 메뉴
  • ListViews
  • 프레임
  • ProgressBars
  • 스크롤보기 및 스크롤바
  • 16 진수 뷰어 / 편집기 (HexView)

샘플 스크린 샷

gui.cs 샘플 출력 스크린 샷


tl; dr-.NET Core 개발자가 플랫폼 간 GUI 프레임 워크를 제공 할 수 있는지 잘 모르겠습니다.

.NET Core의 초기 버전에 대한 크로스 플랫폼 GUI 프레임 워크가 공식 도구 (특히 이전 버전의 도구-VS 2015 업데이트 3을 실행 중이라고 언급 함)에 번들로 포함될 것으로 기대하는 느낌이 듭니다.

GUI 프레임 워크는 정말 무겁고 호스트 시스템에 이미 존재하는 하드웨어 추상화에 의존합니다. Windows에는 일반적으로 대부분의 사용자가 사용하는 단일 창 관리자 (WM) 및 데스크톱 환경 (DE)이 있지만 지원되는 다양한 Linux 배포에는 가능한 WM 및 DE가 얼마든지 있습니다. KDE, Gnome 또는 XFCE와 함께 X-Server 또는 Wayland를 사용하고 있어야합니다. 그러나 Linux 설치는 동일하지 않습니다.

오픈 소스 커뮤니티가 VM 및 DE에 대한 "표준"설정에 실제로 정착 할 수 없다는 사실은 .NET Core 개발자가 모든 플랫폼 및 조합에서 작동하는 GUI 프레임 워크를 만드는 것이 매우 어렵다는 것을 의미합니다. DE 및 WM.

A lot of folks here have some great suggestions (from use ASP.NET Core to builds a Web application and use a browser to listing a bunch of cross platform frameworks). If you take a look at some of the mentioned cross platform GUI frameworks listed, you'll see how heavy they are.

However, there is light at the end of the tunnel as Miguel de Icaza showed off Xamarin running naively on Linux and MacOS at .NET Conf this year (2017, if you're reading this in the future), so it might be worth trying that when it's ready.

(but you'll need to upgrade from VS 2015 to VS 2017 to access the .NET Core 2.0 features)


I'm working on a project that might help: https://github.com/gkmo/CarloSharp

The following application is written in .net with the UI in HTML/JS/CSS (Angular)

여기에 이미지 설명 입력


You could develop a web application with .NET Core and MVC and encapsulate it in a Windows universal JavaScript app : https://docs.microsoft.com/en-us/windows/uwp/porting/hwa-create-windows

It is still a web app but it's a very lightweight way to transform a web app into a desktop app without learning a new framework or/and redevelop the UI, and it works great.

The inconvenience is unlike electron or ReactXP for example, the result is a universal Windows app and not a cross platform desktop app.


Necromancing.
For the special case of existing WinForms applications:

There is a way - though I don't know how well it works.
It goes like this:
Take the WinForms implementation from mono.
Port it to .NET Core or NetStandard.

Recompile your WinForms applications against the new System.Windows.Forms.
Fix anything that may be broken by NetCore.
Pray that mono implements the parts you need flawlessly.
(if it doesn't, you can always stop praying, and send the mono-project a pull request with your fix/patch/feature)

Here's my CoreFX WinForms repo:
https://github.com/ststeiger/System.CoreFX.Forms


Yes, it is possible.

.NET Core doesn't have any components for native GUI application out of the box. However, there is a NuGet package for it that is called Electron.NET, as per Gregor Biswanger's answer.

Electron is a framework that allows you to build native GUI applications on top of Node.js. Electron.NET is a NuGet package that allows you to utilise Electron and Node.js from within your .NET Core code.

The good news is that you don't have to learn JavaScript, Electron or Node.js in order to be able to use the NuGet package. JS files do run inside your application, but they get automatically generated by the build process.

당신이 할 일은 꽤 표준적인 ASP.NET Core MVC 앱을 빌드하는 것뿐입니다. 유일한 차이점은 브라우저에서 실행되는 대신 기본 창 앱으로 실행된다는 것입니다. Electron.NET 패키지와 관련된 몇 줄의 코드 외에도 ASP.NET Core MVC 이상의 내용을 배울 필요가 없습니다.

이 페이지 에서는 사용 방법에 대한 자습서를 제공합니다. 또한 샘플 코드 저장소에 대한 링크도 포함되어 있습니다.

참고 URL : https://stackoverflow.com/questions/39649976/is-it-possible-to-make-desktop-gui-application-in-net-core

반응형