Vill börja med .net Core - Grafiska applikationer

Permalänk

Vill börja med .net Core - Grafiska applikationer

Jag har programmerat QT ett tag nu och jag börjar ledsna på QT att jag ständigt har problem med QT-SQL och QT-Chart. Ibland fungerar inte QT-SQL som jag vill att den ska göra, och det finns ingen förklaring varför. QT-Chart för att visa grafer är nog det mest sämsta plugin för QT någonsin. Det går INTE ändra en graf i realtid med QT-Chart, om man inte skriver någon typ avancerad C++ kod med trådar.

Så därför tänker jag ge .net Core en chans. Jag har några frågor.

- Kan .net Core med MAUI vara helt grafiskt, typ som att man klickar och dra komponenter som Microsoft Front Page 2003(Det bästa verktyget någonsin)?
- Har .net Core med MAUI stöd för C++?
- Måste jag ha Visual Studio eller ska jag använda någon annan IDE?
- Kan min skrivbordsapplikation bli en webbapplikation också med ett knapptryck?
- Kan min skrivbordsapplikation bli en mobil applikation med ett knapptryck?
- Kan jag göra grafer?
- Kan jag ansluta MySQL?

Permalänk
Medlem
Skrivet av heretic16:

Jag har programmerat QT ett tag nu och jag börjar ledsna på QT att jag ständigt har problem med QT-SQL och QT-Chart. Ibland fungerar inte QT-SQL som jag vill att den ska göra, och det finns ingen förklaring varför. QT-Chart för att visa grafer är nog det mest sämsta plugin för QT någonsin. Det går INTE ändra en graf i realtid med QT-Chart, om man inte skriver någon typ avancerad C++ kod med trådar.

Så därför tänker jag ge .net Core en chans. Jag har några frågor.

- Kan .net Core med MAUI vara helt grafiskt, typ som att man klickar och dra komponenter som Microsoft Front Page 2003(Det bästa verktyget någonsin)?
- Har .net Core med MAUI stöd för C++?
- Måste jag ha Visual Studio eller ska jag använda någon annan IDE?
- Kan min skrivbordsapplikation bli en webbapplikation också med ett knapptryck?
- Kan min skrivbordsapplikation bli en mobil applikation med ett knapptryck?
- Kan jag göra grafer?
- Kan jag ansluta MySQL?

Kan inte svaret på alla frågorna men berättar min uppfattning av läget.
Dotnet core är några år gammalt nu så du menar nog .NET 5 eller det helt nysläppta .NET 6 för det första Alltså utan core (. NET Core 3.1 var sista Core, nu är det bara .NET).

MAUI blev tyvärr försenat, finns i preview-variant just nu.

  • Har inte sett något om C++ personligen, lär vara de olika C#, F#, eller Visual Basic.

  • Vad jag har förstått ska det funka i Visual Studio, Jetbrains Rider, Visual Studio Code och kanske andra IDE också men det låter jag vara osagt

  • Vet inte riktigt hur du menar att den ska bli en webbapplikation men svarar nog nej på den eftersom det är HELT olika grejer. Däremot så kan du ju göra alla slags webbanrop från din MAUI-app

  • I teorin kan du göra skrivbordsapplikationer och appar med samma kod ja, sen får vi se i praktiken hur smidigt det faktiskt blir t ex med iPhone som är mer låst

  • Grafer vet ej men lär komma massa stödbibliotek ganska snart annars, men lära vara skralt då det är supernytt

  • Du kommer kunna använda vilken databas du vill, däremot blir det nog svårt att ha en skrivbordsapp som använder en lokal databas och sedan hoppas att appversionen ska kunna göra samma sak så där kan vara ett exempel där man måste kolla i koden vilken plattform man kör på

Permalänk

Tackar för svar!

Om jag vill göra kross-plattform med C++ (viktigt att det är C++ då jag kör C rätt mycket och skriver mycket C bibliotek som C++ kan köra) och jag vill inte använda QT.

Hur ska jag då kunna göra grafiska applikationer med nya Microsoft .net 6?

Jag är ofta van med Windows Application Forms där man klickar och dra komponenter. Men jag har hört att detta är bara sååååå ute just nu? Jag har även hört att UWP(Universial Windows Plattforms) är också rätt ute?

Så vad ska jag använda för metoder om jag vill få lite saker på min skärm och det ska vara i C++?

Permalänk
Medlem

Du kan importera dina C++ DLLer i .net 5 och köra kod i dem.
https://docs.microsoft.com/en-us/dotnet/standard/native-inter...

Vad du ska bygga frontend i är jag dålig på. Jag normalt web för mina saker.

Visa signatur

Intel Core i7 6700K | Gigabyte Z170X-UD3 | Corsair Vengeance LPX 16GB DDR4 2400Mhz | EVGA GTX 980Ti Hybrid | Samsung 950 PRO 256GB | Noctua NH-D15 | EVGA G2 750 | Fractal Design Define R5

Permalänk
Skrivet av Zajin:

Du kan importera dina C++ DLLer i .net 5 och köra kod i dem.
https://docs.microsoft.com/en-us/dotnet/standard/native-inter...

Vad du ska bygga frontend i är jag dålig på. Jag normalt web för mina saker.

Nja. För C++ så kör jag nog vanliga applikationer.
Vad är det jag ska satsa på UPF? WPF?

Permalänk
Medlem
Skrivet av heretic16:

Nja. För C++ så kör jag nog vanliga applikationer.
Vad är det jag ska satsa på UPF? WPF?

Vad jag vet kan du inte skriva med enbart C/C++ i någon av dem utan behöver göra det i ex. C# och sen kalla på C++ via P/Invoke eller C++/CLI.

Visa signatur

Intel Core i7 6700K | Gigabyte Z170X-UD3 | Corsair Vengeance LPX 16GB DDR4 2400Mhz | EVGA GTX 980Ti Hybrid | Samsung 950 PRO 256GB | Noctua NH-D15 | EVGA G2 750 | Fractal Design Define R5

Permalänk
Skrivet av Zajin:

Vad jag vet kan du inte skriva med enbart C/C++ i någon av dem utan behöver göra det i ex. C# och sen kalla på C++ via P/Invoke eller C++/CLI.

Jaha? Har inte Visual Studion stöd för C++?

Jag måste kunna importera C bibliotek. Normalt när jag importerar C bibliotek så klistar jag bara in C koden i en mapp och kompilera. Jag använder med andra ord inte DLL filer. Ctrl+C nad Ctrl+V är en god vän för bibliotek-importering.

Något som är viktigt för mig är krossplattform. Min Windows 10 dator börjar bli rejält seg och jag funderar på gå tillbaka till Ubuntu igen. Så less på att Windows håller aldrig mer än 1 år innan den blir seg. Jag installerar typ aldrig något på datorerna. Dom blir bara seg.

Permalänk
Medlem
Skrivet av heretic16:

Jaha? Har inte Visual Studion stöd för C++?

Jag måste kunna importera C bibliotek. Normalt när jag importerar C bibliotek så klistar jag bara in C koden i en mapp och kompilera. Jag använder med andra ord inte DLL filer. Ctrl+C nad Ctrl+V är en god vän för bibliotek-importering.

Något som är viktigt för mig är krossplattform. Min Windows 10 dator börjar bli rejält seg och jag funderar på gå tillbaka till Ubuntu igen. Så less på att Windows håller aldrig mer än 1 år innan den blir seg. Jag installerar typ aldrig något på datorerna. Dom blir bara seg.

Undrar hur det blir så, tror min installation är 2-3 år, bytt från intel (4790k->8350k->8600k->8700k) till amd (3700x->5800x), kör även linux på en annan disk och den är ännu äldre... ingen av dem är sega.

Permalänk
Skrivet av alundstroem:

Undrar hur det blir så, tror min installation är 2-3 år, bytt från intel (4790k->8350k->8600k->8700k) till amd (3700x->5800x), kör även linux på en annan disk och den är ännu äldre... ingen av dem är sega.

Uppdateringar. Jag har dessutom en I7:a och datorn tar 1.5 minut på sig att starta.

Permalänk

Men tillbaka till tråden.

Mina krav är:
- C++
- Grafiska applikationer. Inte webb
- Plottar
- SQL databas anslutning
- Krossplattform

QT dög inte för mig då QT har inte utvecklat så bra på SQL och plottar.

Jag har kollat upp lite på om Dot Net 6 och det verkar finnas.
- Universal Windows Platform (UWP)
- Windows Presentation Foundation (WPF)

WPF har jag hört är lite old school och säkert inget säkert kort. UWP har jag hört är framtiden. Men kan jag köra det på linux också?

Jag tänker nämligen installera Ubuntu igen. Men jag vill köra Dot Not 6.

Permalänk
Hedersmedlem
Skrivet av heretic16:

Men kan jag köra det på linux också?

Nej. Gemensamt för alla Microsoft-ramverk är väl att de inte fungerar på Linux (för grafiska applikationer)? Maui har väl inte heller någon plan för sådant stöd...

Har du testat QCustomPlot, för övrigt?

Permalänk
Skrivet av Elgot:

Nej. Gemensamt för alla Microsoft-ramverk är väl att de inte fungerar på Linux (för grafiska applikationer)? Maui har väl inte heller någon plan för sådant stöd...

Har du testat QCustomPlot, för övrigt?

Dot Net 6 fungerar på Linux. Även Ubuntu 20.04 LTS fungerar det.
https://docs.microsoft.com/en-us/dotnet/core/install/linux-ub...

Det är därför jag vill testa Dot Net 6 för jag tycker QT var rätt tråkigt. Deras IDE var fin, men det var inte Eclipse-Smidig. Jag hade enorma problem att fritt välja vart jag skulle placera filer. Typ som QT Creator ville själv bestämma vilka C och C++ filer den ville läsa.

Jag har hört att Visual Studio IDE ska vara en mycket fin IDE och med lite tur så kan jag skippa Eclipse IDE och köra Visual Studio IDE för både C och C++.

Permalänk
Hedersmedlem
Skrivet av heretic16:

Jag har kollat upp lite på om Dot Net 6 och det verkar finnas.
- Universal Windows Platform (UWP)
- Windows Presentation Foundation (WPF)

WPF har jag hört är lite old school och säkert inget säkert kort. UWP har jag hört är framtiden. Men kan jag köra det på linux också?

Varken wpf eller uwp känns väl direkt som framtiden? Wpf har väl inte uppdaterats märkbart de senaste tio åren (och forum brukar regelbundet ha trådar av typen "är wpf dött?" och uwp är väl nästan officiellt övergivet? Det som gäller nu (eller snart i alla fall) är väl som sagt Maui, men det gäller ju att världen hoppar på tåget om det inte skall gå som med uwp.

Permalänk
Hedersmedlem
Skrivet av heretic16:

Dot Net 6 fungerar på Linux. Även Ubuntu 20.04 LTS fungerar det.
https://docs.microsoft.com/en-us/dotnet/core/install/linux-ub...

Det fungerar på Linux, men produkten är inte samma på alla plattformar. Under Linux finns till exempel inte stöd för grafiska applikationer eller c++/cli.

Skrivet av heretic16:

Det är därför jag vill testa Dot Net 6 för jag tycker QT var rätt tråkigt. Deras IDE var fin, men det var inte Eclipse-Smidig. Jag hade enorma problem att fritt välja vart jag skulle placera filer. Typ som QT Creator ville själv bestämma vilka C och C++ filer den ville läsa.

Jag har hört att Visual Studio IDE ska vara en mycket fin IDE och med lite tur så kan jag skippa Eclipse IDE och köra Visual Studio IDE för både C och C++.

Exakt vilka problem hade du? Det låter inte som något jag har lidit av.

Permalänk
Medlem
Skrivet av heretic16:

Dot Net 6 fungerar på Linux. Även Ubuntu 20.04 LTS fungerar det.
https://docs.microsoft.com/en-us/dotnet/core/install/linux-ub...

Det är därför jag vill testa Dot Net 6 för jag tycker QT var rätt tråkigt. Deras IDE var fin, men det var inte Eclipse-Smidig. Jag hade enorma problem att fritt välja vart jag skulle placera filer. Typ som QT Creator ville själv bestämma vilka C och C++ filer den ville läsa.

Jag har hört att Visual Studio IDE ska vara en mycket fin IDE och med lite tur så kan jag skippa Eclipse IDE och köra Visual Studio IDE för både C och C++.

Hela grejen med .Net-core (och de nya versionerna 5 och 6) är ju att det är cross-platform.
Det betyder dock inte att de grafiska ramverken stöds på alla plattformar.

MAUI verkar ju vara det nya som då ska fungera på flera plattformar än bara Windows.
Annars finns väl Electron att kika på. Vad jag förstår ska det inte vara några problem att använda med C++, men jag har själv aldrig jobbat med det.

Visa signatur

AMD Ryzen 7 1700X 3.8 GHz 20MB | ASUS PRIME X370-PRO | MSI GeForce GTX 1080 Gaming X 8GB | G.Skill 16GB DDR4 3200 MHz CL14 Flare X | Corsair RM650x 650W

Permalänk
Skrivet av Elgot:

Varken wpf eller uwp känns väl direkt som framtiden? Wpf har väl inte uppdaterats märkbart de senaste tio åren (och forum brukar regelbundet ha trådar av typen "är wpf dött?" och uwp är väl nästan officiellt övergivet? Det som gäller nu (eller snart i alla fall) är väl som sagt Maui, men det gäller ju att världen hoppar på tåget om det inte skall gå som med uwp.

Håller med att WPF känns väldigt 2008. Då tänker jag på Visual Basic.NET Express 2008 och när Visual Studio kostade pengar
UWP har jag aldrig kört. Hört att man skriver den grafiska koden själv med XML, medan WPF är "dra och peka", vilket jag föredrar istället för att skriva krånglig XML kod.

Jag har ingen koll på Maui

Skrivet av Elgot:

Det fungerar på Linux, men produkten är inte samma på alla plattformar. Under Linux finns till exempel inte stöd för grafiska applikationer eller c++/cli.

Exakt vilka problem hade du? Det låter inte som något jag har lidit av.

Jahap....då verkar QT endast vara kvar.

När jag importerade ett bibliotek, dvs kopierade in .c filer och .h filer så kunde QT Creator hitta .h filerna, trots att jag använde #include.

Om det var QT Creator som ej kunde hitta, eller om QT Creator som ej kunde länka header filerna till kompilatorn, vet jag inte.
Men problem var det.

Sedan gillade jag inte QT's connect-klasser. Men jag gillade QT's sätt att skapa grafiska applikationer. Miljön var bra.
Jag har inte testat QCustomPlot.

Permalänk
Skrivet av noMad17:

Hela grejen med .Net-core (och de nya versionerna 5 och 6) är ju att det är cross-platform.
Det betyder dock inte att de grafiska ramverken stöds på alla plattformar.

MAUI verkar ju vara det nya som då ska fungera på flera plattformar än bara Windows.
Annars finns väl Electron att kika på. Vad jag förstår ska det inte vara några problem att använda med C++, men jag har själv aldrig jobbat med det.

Men då är det inte krossplattform om man inte kan använda allt på alla plattformar.
Känns som Microsoft har missat att dela ut information att man kan inte köra grafiska applikationer på Linux med Maui.

Permalänk
Hedersmedlem
Skrivet av heretic16:

UWP har jag aldrig kört. Hört att man skriver den grafiska koden själv med XML, medan WPF är "dra och peka", vilket jag föredrar istället för att skriva krånglig XML kod.

Jag har inte heller gjort något i uwp, men jag tror att det kan vara ganska likt wpf (fast inte kompatibelt). Jag misstänker att man kan redigera uwp-xaml grafiskt på samma sätt som i wpf, men jag kan inte tänka mig att särskilt många avancerade utvecklare anväder det särskilt mycket (förutom för att se hur resultatet blir); det är ganska svårt att få saker som man vill med "drag och släpp"...

Permalänk
Skrivet av Elgot:

Jag har inte heller gjort något i uwp, men jag tror att det kan vara ganska likt wpf (fast inte kompatibelt). Jag misstänker att man kan redigera uwp-xaml grafiskt på samma sätt som i wpf, men jag kan inte tänka mig att särskilt många avancerade utvecklare anväder det särskilt mycket (förutom för att se hur resultatet blir); det är ganska svårt att få saker som man vill med "drag och släpp"...

Drag och släpp är det bästa som finns. Önskar att webben vore likadan.

Men då kanske man ska hålla sig kvar vid QT och testa det där biblioteket QCustomPlot som du rekommendera. Då kanske jag kommer vidare för just QChart kan man INTE köra i realtid. Går icke! Efter plotten är skapad så måste man göra om plotten med ny data, vilket får plotten att "blinka". Väldigt irriterande. Sedan går det 50 sekunder och programmet börjar suga minne för att plottarna "förstörs" inte riktigt hos QChart-objektet.

Synd bara att det inte finns mer stora ramverk för C++ som är krossplattform som har "dra och släpp"-miljön.

Edit:
Jag kan byta upp mig från C++ till C# om C# ramverk går att köra på både Windows och Linux och det går att göra grafiska applikationer.

Permalänk

Vad tror ni? Visual Studio IDE 2022 måste väll fungera för Linux nu?

https://visualstudio.microsoft.com/vs/

Citat:

Develop cross-platform mobile and desktop apps with .NET MAUI. Build responsive Web UIs in C# with Blazor. Build, debug, and test .NET and C++ apps in Linux environments. Use hot reload capabilities across .NET and C++ apps. Edit running ASP.NET pages in the web designer view.

Citat:

Analyze how much code you’re testing and see instant results in a test suite that’s been optimized for efficiency. Know the impact of every change you make with advanced features that test code as you type. With WSL integration, you can test on both Windows and Linux to make sure your app runs everywhere.

Men om jag tar bort kravet krossplattform då.

Då borde jag kunna göra C++ applikationer i Windows utan problem.
Vad ska jag använda då? Då är det Maui? Alltså skriva egen XML kod för grafiken(varför inte dra och släppa?) och C++ eller C# för logiken? Om Maui endast stödjer C# så får jag väll köra C# då.

Här är alternativen. Någon som vet hur det är att använda det markerande alternativet?

Permalänk
Medlem
Skrivet av heretic16:

Vad tror ni? Visual Studio IDE 2022 måste väll fungera för Linux nu?

Nej, Visual Studio 2022 fungerar inte på Linux.

Visa signatur

MSI PRO Z790-P WIFI | Intel i9 13900K | 128 GB DDR5
GTX 4070 12 GB
WD Black SN850X 2 TB Gen 4 | 2 x 1 TB Samsung 970 EVO Plus
3 x ASUS 27" | 1 x Philips 49"

Permalänk
Hedersmedlem
Skrivet av heretic16:

Drag och släpp är det bästa som finns. Önskar att webben vore likadan.

Ja, det är mest hur det fungerar med xaml jag gnäller på. Qt creator har ju löst det bra till exempel.

Skrivet av heretic16:

Men då kanske man ska hålla sig kvar vid QT och testa det där biblioteket QCustomPlot som du rekommendera. Då kanske jag kommer vidare för just QChart kan man INTE köra i realtid. Går icke! Efter plotten är skapad så måste man göra om plotten med ny data, vilket får plotten att "blinka". Väldigt irriterande. Sedan går det 50 sekunder och programmet börjar suga minne för att plottarna "förstörs" inte riktigt hos QChart-objektet.

Jag får erkänna att jag inte har använt qchart jättemycket (länge ingick det väl bara i den kommersiella versionen tror jag), men är du säker på att det inte går att lösa? Man verkar ju kunna modifiera data serier i alla fall (med "append" till exempel). Vad händer?

Edit:
Jag testade att lägga till följande (röda) rader i QtCreators LineChart-exempel:

//![5] QMainWindow window; window.setCentralWidget(chartView); window.resize(400, 300); window.show(); //![5] QTimer t; chart->axisY()->setRange(-1.1,1.1); series->clear(); QObject::connect(&t, &QTimer::timeout, [=]() { static int i = 0; if(series->count() > 100) series->remove(0); series->append(i, std::sin(i/5.0)); ++i; chart->axisX()->setRange(i-100,i); chartView->update(); }); t.setInterval(10); t.start(); return a.exec();

Det verkar fungera ungefär som man tror, blinkar inte och använder några enstaka MB minne.
/Edit

Skrivet av heretic16:

Jag kan byta upp mig från C++ till C# om C# ramverk går att köra på både Windows och Linux och det går att göra grafiska applikationer.

.net ger dig inte grafiska applikationer under Linux oavsett språk (än i alla fall). Dock finns det andra alternativ om man är beredd att byta miljö (till exempel Avalonia). Eller Blazor (som ju verkar vara hett nu).

Permalänk
Hedersmedlem
Skrivet av heretic16:

Vad tror ni? Visual Studio IDE 2022 måste väll fungera för Linux nu?

Nej, men däremot kan man, i Windows, bygga en linuxapplikation, koppla upp sig mot en linuxmaskin, skicka över applikationen och debug:a den där (från visual studio).

Permalänk

Standard idag är att skapa en SPA (single page application) web applikation för 'truly' cross platform (utifrån en användare).
Då spelar det ingen roll vad du använder som frontend/backend.

Med .NET MAUI (.net 6) kommer du kunna skapa UI applikationer för Android, iOS, och Windows men inte Linux.

Jag skulle ta en titt på @Elgot inlägg. Om du känner att du behöver byta språk för att du har problem med en komponent (QChart), så borde du lösa problemet eller byta komponent. Att helt byta språk är fel väg att gå om detta är det enda bekymret.

Permalänk
Medlem
Skrivet av heretic16:

Jaha? Har inte Visual Studion stöd för C++?

Jo men det är inte relevant. Visual studio är en IDE, vad den är kapabel till är inte kopplat till vad ett språk eller ramverk kan göra

Visa signatur

Intel Core i7 6700K | Gigabyte Z170X-UD3 | Corsair Vengeance LPX 16GB DDR4 2400Mhz | EVGA GTX 980Ti Hybrid | Samsung 950 PRO 256GB | Noctua NH-D15 | EVGA G2 750 | Fractal Design Define R5

Permalänk
Skrivet av Elgot:

Ja, det är mest hur det fungerar med xaml jag gnäller på. Qt creator har ju löst det bra till exempel.

Jag får erkänna att jag inte har använt qchart jättemycket (länge ingick det väl bara i den kommersiella versionen tror jag), men är du säker på att det inte går att lösa? Man verkar ju kunna modifiera data serier i alla fall (med "append" till exempel). Vad händer?

Edit:
Jag testade att lägga till följande (röda) rader i QtCreators LineChart-exempel:

//![5] QMainWindow window; window.setCentralWidget(chartView); window.resize(400, 300); window.show(); //![5] QTimer t; chart->axisY()->setRange(-1.1,1.1); series->clear(); QObject::connect(&t, &QTimer::timeout, [=]() { static int i = 0; if(series->count() > 100) series->remove(0); series->append(i, std::sin(i/5.0)); ++i; chart->axisX()->setRange(i-100,i); chartView->update(); }); t.setInterval(10); t.start(); return a.exec();

Det verkar fungera ungefär som man tror, blinkar inte och använder några enstaka MB minne.
/Edit
.net ger dig inte grafiska applikationer under Linux oavsett språk (än i alla fall). Dock finns det andra alternativ om man är beredd att byta miljö (till exempel Avalonia). Eller Blazor (som ju verkar vara hett nu).

Skrivet av Elgot:

Nej, men däremot kan man, i Windows, bygga en linuxapplikation, koppla upp sig mot en linuxmaskin, skicka över applikationen och debug:a den där (från visual studio).

Skrivet av zoomster2:

Standard idag är att skapa en SPA (single page application) web applikation för 'truly' cross platform (utifrån en användare).
Då spelar det ingen roll vad du använder som frontend/backend.

Med .NET MAUI (.net 6) kommer du kunna skapa UI applikationer för Android, iOS, och Windows men inte Linux.

Jag skulle ta en titt på @Elgot inlägg. Om du känner att du behöver byta språk för att du har problem med en komponent (QChart), så borde du lösa problemet eller byta komponent. Att helt byta språk är fel väg att gå om detta är det enda bekymret.

Skrivet av Zajin:

Jo men det är inte relevant. Visual studio är en IDE, vad den är kapabel till är inte kopplat till vad ett språk eller ramverk kan göra

Jag ska testa det @Elgot har gjort. Jag har inte använt connect med just QChart på det sätt som han gör. Det ser lovande ut.
Vart hittade du exemplet?

Permalänk
Hedersmedlem
Skrivet av heretic16:

Vart hittade du exemplet?

På välkomstsidan i qt creator finns jättemånga exempel (jag minns inte exakt hur det ser ut nu). Sök efter "chart" eller så.