Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Si noi suntem Florin Piersic? / J...

Rascumparare euroobligatiuni (pri...

Detartraj partial slatina

Cu ce pot izola fonic peretii pen...
 Telefon cu senzor compass BUN

Blocare google chrome cu master p...

Instalare Siemens NX pe macbook

sfat achizitie telefon pana in 20...
 Stoc Smart CAM TV

Ce corzi de chitara sa cumpar?

Galaxy A54 compass defect?

Cum conectez un switch WIFI la 60...
 Cumparare AC Gree [Buget maxim 30...

Telekom

Ce e aratarea asta ?

Probleme timonerie schimbator sau...
 

Merita efortul pentru o aplicatie cross-platform?

- - - - -
  • Please log in to reply
15 replies to this topic

#1
red46

red46

    Senior Member

  • Grup: Senior Members
  • Posts: 4,571
  • Înscris: 06.03.2016
Am programul asta: https://forum.softpe...e/page__st__558 scris in VB.NET . Intrebarea mea este: merita sa continui dezvoltarea pe Winforms pentru a-l face compatibil cat de cat cu Mono (prin Wine) sau sa trec direct pe WPF care este cel mai bun GUI .NET pentru Windows, fara posibilitatea de a-l mai face cross-platform?

Edited by red46, 01 January 2017 - 22:57.


#2
neagu_laurentiu

neagu_laurentiu

    Guru Member

  • Grup: Senior Members
  • Posts: 40,631
  • Înscris: 30.07.2003
Mono stie de WinForms. Teoretic e implementat, cand am testat eu pe Linux (acum cativa ani) rula dar nu afisa intocmai ca sub Windows.

Asta cu WPF vs. WinForms tine de ce neajunsuri ai tu, nu de un moft.

#3
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,254
  • Înscris: 24.02.2007
Programul respectiv pare a depinde de ActiveX-uri externe, asa ca mono pica. Cum dependinta de playerul video e mare, trebuie sa te invarti in jurul ei.

Trecand peste asta, depinde ce vrei sa imbunatatesti la interfata. WPF, de exemplu, se preteaza la aplicatii business unde ai multe formulare, griduri etc legate intre ele. Pentru un player video ar fi overkill, efecte custom/skinuri poti desena cu orice UI framework.



#4
red46

red46

    Senior Member

  • Grup: Senior Members
  • Posts: 4,571
  • Înscris: 06.03.2016

View Postneagu_laurentiu, on 01 ianuarie 2017 - 23:05, said:

Mono stie de WinForms. Teoretic e implementat, cand am testat eu pe Linux (acum cativa ani) rula dar nu afisa intocmai ca sub Windows.

Asta cu WPF vs. WinForms tine de ce neajunsuri ai tu, nu de un moft.
Pai fix asta e problema. Pe diferite versiuni de Windows, interfata arata diferit. Eu vreau sa-mi construiesc propria tema pentru aplicatie. In mare parte am reusit, insa apoi intervine problema scalarii DPI . Pe un DPI mai mare decat cel setat implicit de Windows, pozitia unor controale este aleatorie. Problema am corectat-o intr-o versiune mai veche, insa acum am implementat alte chestii, si a aparut alta problema legata de DPI.

View Postdani.user, on 01 ianuarie 2017 - 23:08, said:

Programul respectiv pare a depinde de ActiveX-uri externe, asa ca mono pica. Cum dependinta de playerul video e mare, trebuie sa te invarti in jurul ei.

Trecand peste asta, depinde ce vrei sa imbunatatesti la interfata. WPF, de exemplu, se preteaza la aplicatii business unde ai multe formulare, griduri etc legate intre ele. Pentru un player video ar fi overkill, efecte custom/skinuri poti desena cu orice UI framework.
Wrapper-ul VLC este scris in intregime in C#, doar controlul Sopcast este un control OCX, insa o sa scap curand de el.

Edited by red46, 01 January 2017 - 23:15.


#5
neagu_laurentiu

neagu_laurentiu

    Guru Member

  • Grup: Senior Members
  • Posts: 40,631
  • Înscris: 30.07.2003
Povestea cu DPI tine de maruntaiele Windows, GDI si ale asemenea. Cu Direct2D au rezolvat-o la nivel de WinAPI. WPF e scris peste DirectX si n-are problema asta.
Insa tin minte ca am citit la noutatile lui .NET 4.5.x cum ca au rezolvat si la WinForms asta.

#6
red46

red46

    Senior Member

  • Grup: Senior Members
  • Posts: 4,571
  • Înscris: 06.03.2016

View Postneagu_laurentiu, on 01 ianuarie 2017 - 23:21, said:

Povestea cu DPI tine de maruntaiele Windows, GDI si ale asemenea. Cu Direct2D au rezolvat-o la nivel de WinAPI. WPF e scris peste DirectX si n-are problema asta.
Insa tin minte ca am citit la noutatile lui .NET 4.5.x cum ca au rezolvat si la WinForms asta.
Pe .NET Framework 4.6 intampin problema asta. Tocmai de aceea as vrea sa trec pe WPF. O parte din problema am rezolvat-o folosind TableLayoutPanel pentru fiecare control.

Edited by red46, 01 January 2017 - 23:23.


#7
InTech

InTech

    Kietata ?

  • Grup: Senior Members
  • Posts: 4,741
  • Înscris: 23.11.2005
C++ cu Qt ?

#8
adrianbblk

adrianbblk

    Junior Member

  • Grup: Junior Members
  • Posts: 29
  • Înscris: 29.12.2016
Cred ca merita sa iti bati capul sa il faci si Mac OS compatible Posted Image

Edited by adrianbblk, 02 January 2017 - 00:20.


#9
Reactor2015

Reactor2015

    ReMember

  • Grup: Senior Members
  • Posts: 9,692
  • Înscris: 06.01.2015
+1 pentru Mac OS :D

#10
_Smiley_

_Smiley_

    Guru Member

  • Grup: Senior Members
  • Posts: 20,068
  • Înscris: 24.02.2006
daca e tot aplicatia de 2000 linii de cod, din noimebrie pana acum o portai de doua ori ( https://forum.softpe...ce-open-source/ )

#11
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,254
  • Înscris: 24.02.2007
TableLayoutPanel/FlowPanel si Dock ar trebui folosite by default in orice aplicatie WinForms. Ce probleme raman cu DPI dupa ce ai pus tablelayoutpanel?

#12
red46

red46

    Senior Member

  • Grup: Senior Members
  • Posts: 4,571
  • Înscris: 06.03.2016

View Post_Smiley_, on 02 ianuarie 2017 - 07:38, said:

daca e tot aplicatia de 2000 linii de cod, din noimebrie pana acum o portai de doua ori ( https://forum.softpe...ce-open-source/ )
2000 linii de cod are acum doar fereastra principala, skin-ul alte 2000 (scris de altcineva, dar jumatate editat de mine cat sa-mi completeze neajunsurile), restul ferestrelor maxim 1k si alte librarii 3rd party care sunt scrise in VB dar raman compatibile cu C#.
Eu am intrebat daca merita sa raman pe nterfata grafica pentru a-l face compatibil cel putin cu Mono (prin wine), sau sa trec la alta cu probleme mai putine.

View Postdani.user, on 02 ianuarie 2017 - 11:06, said:

TableLayoutPanel/FlowPanel si Dock ar trebui folosite by default in orice aplicatie WinForms. Ce probleme raman cu DPI dupa ce ai pus tablelayoutpanel?
Pentru a intra in modul fullscreen, ascund toate controalele din forma, setez marginile pe None si starea formei maximizata. La iesire fac exact acelasi lucru doar ca inversat. Pe un DPI mai mare, la iesirea din fullscreen butoanele de comanda ale player-ului sunt suprapuse peste imagine, sau marimea player-ului e micsorata in partea dreapta.

#13
neagu_laurentiu

neagu_laurentiu

    Guru Member

  • Grup: Senior Members
  • Posts: 40,631
  • Înscris: 30.07.2003

View Postred46, on 02 ianuarie 2017 - 12:18, said:

Mono (prin wine)
Ai folosit de mai multe ori sintagma asta si n-am inteles de ce! Eu vad ori Mono si-l ai direct pe o platforma suportata de acesta ori prin Wine si executabilul obtinut via MS.

#14
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,254
  • Înscris: 24.02.2007

View Postred46, on 02 ianuarie 2017 - 12:18, said:

Pentru a intra in modul fullscreen, ascund toate controalele din forma, setez marginile pe None si starea formei maximizata. La iesire fac exact acelasi lucru doar ca inversat. Pe un DPI mai mare, la iesirea din fullscreen butoanele de comanda ale player-ului sunt suprapuse peste imagine, sau marimea player-ului e micsorata in partea dreapta.

Incearca sa folosesti un form distinct pentru full-screen.

Compatibilitate cu mono nu obtii cat timp depinzi de alte componente grafice implementate in cod nativ. Chiar daca ai wrapper peste VLC, versiunea de Linux a VLC sigur are alt mod de a afisa grafic elementele asa ca nu se va integra cu WinForms din mono.

Ramane varianta wine, ori merge din prima, ori nu (inca); sau rescris in C++ si adaptata integrarea cu VLC-ul pe fiecare platforma.

Edited by dani.user, 02 January 2017 - 15:02.


#15
red46

red46

    Senior Member

  • Grup: Senior Members
  • Posts: 4,571
  • Înscris: 06.03.2016

View Postneagu_laurentiu, on 02 ianuarie 2017 - 12:36, said:

Ai folosit de mai multe ori sintagma asta si n-am inteles de ce! Eu vad ori Mono si-l ai direct pe o platforma suportata de acesta ori prin Wine si executabilul obtinut via MS.
Executabilul e obtinut via Visual Studio . Ma refer la dependintele Mono pentru Wine.

View Postdani.user, on 02 ianuarie 2017 - 15:00, said:

Incearca sa folosesti un form distinct pentru full-screen.

Compatibilitate cu mono nu obtii cat timp depinzi de alte componente grafice implementate in cod nativ. Chiar daca ai wrapper peste VLC, versiunea de Linux a VLC sigur are alt mod de a afisa grafic elementele asa ca nu se va integra cu WinForms din mono.

Ramane varianta wine, ori merge din prima, ori nu (inca); sau rescris in C++ si adaptata integrarea cu VLC-ul pe fiecare platforma.
O sa incerc ideea cu o forma distincta pt. player.
Wrapper-ul pentru VLC l-am testat separat in Wine si functioneaza fara probleme. Doar celalalt control ActiveX ramane problema.

#16
neagu_laurentiu

neagu_laurentiu

    Guru Member

  • Grup: Senior Members
  • Posts: 40,631
  • Înscris: 30.07.2003

View Postred46, on 02 ianuarie 2017 - 18:51, said:

Ma refer la dependintele Mono pentru Wine.
Nu exista asa ceva! Sau nu exprimi tu bine ce vrei sa spui.

Wine expune WinAPI pe Unix-like si ruleaza aplicatiile adiacente. N-are treaba Mono in ecuatie.
Cu Mono rulezi "nativ" un executabil compilat pentru .NET, dar nu prin Wine ci direct.

Anunturi

Bun venit pe Forumul Softpedia!

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate