Technologia dla GUI

Technologia dla GUI
0

Witam,
Przymierzam się do pisania aplikacji desktopowej, która będzie nieco większa. Interfejs użytkownika powinien być ładny bo będzie to ważne w tej aplikacji, jednak najważniejsze jest szybkie zaimplementowanie działania.

Do tej pory mam doświadczenie w:

  • Windows Form - Fajna technologia. Zazwyczaj ciężko stworzyć coś pięknego dla oczu, ale jest to możliwe
  • WPF - Technologia w której tworzyć ładne rzeczy można, ale zajmuje to mnóstwo czasu i łatwo zrobić bałagan w xamlu.

Czy jest jakaś alternatywa? Co proponujecie używać w dzisiejszych czasach dla C#?
Pozdrawiam.

edytowany 1x, ostatnio: DibbyDum
gg
  • Rejestracja:około 9 lat
  • Ostatnio:około rok
  • Lokalizacja:Kraków
  • Postów:574
0

W sumie też chętnie się dowiem co ewentualnie jest możliwe do wykorzystania.

Na szybko przychodzi mi do głowy Microsoft Blend ale nie używałem, to nie mogę się wypowiedzieć co i jak.

mariano901229
  • Rejestracja:ponad 10 lat
  • Ostatnio:7 miesięcy
  • Postów:597
0

Jeżeli chcesz szybko i ładnie to płatne kontrolki jak chociażby DevExpress.

0

Tak, wiem ale to będzie darmowy projekt tworzony po prostu dla przyjemności. Chcę jednak by był ładny, więc płatne komponenty odpadają, ale zgadza się - DevExpressy są ok.

Druga kwestia to to, że DevExpressy mają swoją pulę komponentów, a ja będę potrzebować bardzo specyficznych kontrolek, których raczej nikt nie udostępnia. Także gotowce odpadają.

Luki91
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 8 lat
  • Lokalizacja:Bytom
  • Postów:81
0

DevExpress jest w wersji darmowej przez 30 dni i z tego co wiem, możesz te darmowe kontrolki używać nawet komercyjnie.

grzesiek51114
grzesiek51114
  • Rejestracja:ponad 11 lat
  • Ostatnio:ponad 4 lata
  • Postów:2442
1
Wybitny Mleczarz napisał(a):
  • WPF - Technologia w której tworzyć ładne rzeczy można, ale zajmuje to mnóstwo czasu i łatwo zrobić bałagan w xamlu.

Chyba żartujesz! Jest dokładnie odwrotnie! XAML plus MVVM to ład i porządek w porównaniu do tego co domyślnie oferuje WinForms. Mnóstwo czasu? Widać, że rzeczywiście niczego nie napisałeś w jednej i drugiej technologii, bo kompletnie nie masz porównania :)

Poza tym technologie oparte na XAML to przyszłość GUI dla aplikacji desktopowych pod Windows gdzie MS wyraźnie odcina się od WinForms na rzecz UWP chociażby.

edytowany 1x, ostatnio: grzesiek51114
0

Ehe... z pewnością. Jakby to była tylko moja opinia...
http://blog.gutek.pl/2014/03/03/wpf-4-lata-pozniej/

Fakt pisałem w tym własnie w 2014 roku, więc może coś się zmeiniło, ale z tego co widziałem to raczej technologia ta zbyt bujnie się nie rozwija od tamtego czasu.

grzesiek51114
grzesiek51114
  • Rejestracja:ponad 11 lat
  • Ostatnio:ponad 4 lata
  • Postów:2442
0

Kiedy właśnie rozwija się w postaci UWP - to praktycznie to samo co programowanie WPF, identyczna technologia. A Winforms jeszcze długo będzie w użyciu dlatego, że jest mnóstwo starych projektów, które był w tym pisane i trzeba je utrzymać.

Link, który zamieściłeś nie zmienia faktu, że WinForms to już przeszłość dla nowych projektów. Deal with it.

PS: Jak tak czytam ten artykuł to to w ogóle jest jakiś ROTFL :) Autorowi nie podoba się INotifyPropertyChanged, że niby kod trzeba powtarzać etc... ale już nie wpadł na to, że może należałoby wsadzić to do osobnej klasy i dopiero po niej niech ViewModel dziedziczy. Ech...

edytowany 3x, ostatnio: grzesiek51114
0

Ja nie zaprzeczam, że Windows Forms to stara technologia, która nie będzie używana w wielu nowych projektach. Interesują mnie jedynie alternatywy do podanych przeze mnie w pierwszym poście technologii.

grzesiek51114
grzesiek51114
UWP
Azarien
  • Rejestracja:ponad 21 lat
  • Ostatnio:około godziny
0

WinForms jest dobre do prostych rzeczy bez udziwnień. Mniej skomplikowane, mniej problematyczne.
I bardziej natywne: to są prawdziwe kontrolki Windowsa, a nie renderowane wewnątrz programu jak WPF.
Dlatego wolę WinForms.
Ale WPF ma więcej graficznych bajerów, które pod WinForms trzeba by było pisać od zera.

edytowany 1x, ostatnio: Azarien
grzesiek51114
grzesiek51114
@Azarien: powiem szczerze, że gdyby teraz kazał mi ktoś pisać w WinFormsach te same projekty, które mają ładnie poskładany interfejs z WPF to bym się chyba zastrzelił :)
JU
Ja też wolę WinForms. Bardzo mi się to podoba, jest proste i szybkie w robieniu. Przy nowej aplikacji chcę spróbować jeszcze raz WPF, ale pierwszą wersję GUI na pewno zrobię w WinForms.
0

UWP jeśli się nie mylę wymaga Windows 10, a jeszcze mnóstwo ludzi (w tym także ja) korzysta z Windowsa 7 i nie zamierza przechodzić na wersję 10-tą.

grzesiek51114
grzesiek51114
  • Rejestracja:ponad 11 lat
  • Ostatnio:ponad 4 lata
  • Postów:2442
0

Już niedługo... Ta technologia wymaga dziesiątki ale to niczego nie zmienia, skoro przyszłością biurkowych os'ów od MS jest właśnie Windows 10 w górę.

PS: Windows 7 to dla MS również prawie zamknięty rozdział. No... może akurat tutaj trochę przesadziłem :)

edytowany 3x, ostatnio: grzesiek51114
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)