Czy WinForms już jest niemodne?

Czy WinForms już jest niemodne?
CI
  • Rejestracja:około 12 lat
  • Ostatnio:prawie 11 lat
  • Postów:184
2

Witam

Od dłuższego czasu czytam strony poświęcone WPF i na każdej z nich autorzy opisują że Windows Forms już jest niemodne, jednakże 90% aplikacji jakie widzę to właśnie WForms, jak Wy się na to zaopatrujecie?

n0name_l
ostatnio WPF bylo na okladce glamour, stad to zainteresowanie...
Azarien
  • Rejestracja:ponad 21 lat
  • Ostatnio:około 5 godzin
1

jak Wy się na to zaopatrujecie?
Że znacznie łatwiej jest zbudować prawidłowy interfejs w WinForms, niż w WPF.

WPF vs WinForms to coś jak LaTeX vs Word: niby to pierwsze ma ogrooomne możliwości, ale na każdym kroku problem i pół godziny góglania. A i tak rozwiązanie nie jest zadowalające, a próbują ci wmówić, że „tak ma być”.

nerf
  • Rejestracja:ponad 14 lat
  • Ostatnio:prawie 11 lat
1

a_s_f
bo w Winformsach nie włączyli SuspendLayout() :P
RE
takie porównanie nie ma sensu - widać, że kod z windows forms jest po prostu skopany. takiej ilości elementów nie dodaje się w ten sposób.
Azarien
hehe, doświadczyłem tego DZISIAJ, trzeba będzie poprawić ;)
CI
  • Rejestracja:około 12 lat
  • Ostatnio:prawie 11 lat
  • Postów:184
0

Ze strony Azareina rozumiem, że WForms jest modny, w miarę prosty ( prostszy niż WPF ) i że ciągle stosowany.

Co do filmiku nerf, ciekawe zjawisko, nieraz doświadczyłem tego w Windows Forms.

nerf
  • Rejestracja:ponad 14 lat
  • Ostatnio:prawie 11 lat
1

Chyba nie można jednoznacznie powiedzieć, że windows forms jest już nie modny. WPF jest po prostu mocniejszy? Więc używa się ich według tego co się chcę osiągnąć.
Jakieś proste apki WF a kombajny WPF. Z tego, że w WPF ujednolicono cały model programowania wszystko masz w nim razem muzyka,grafika,rysowanie,kontroli a w WF rozrzucone na WF,GDI+,API Directx,api wmp.

XS
  • Rejestracja:około 12 lat
  • Ostatnio:około 7 lat
  • Postów:8
1

WF jest stosowany z dwoch powodow:

  1. Programy napisane w WF nie oplaca sie przenosic na WPFa
  2. Nie oplaca sie przenosic na nowe nieznane technologie

dlatego WF jest taki modny

AlfaLeporis
  • Rejestracja:ponad 12 lat
  • Ostatnio:prawie 10 lat
  • Lokalizacja:Polska
1

Witam wszystkich!

Swoją przygodę zaczynałem w C# oczywiście od WinFormsów. Rzeczywiście na początku jest euforia, moc możliwości i różnych pierdółek do ustawiania. Gdy opanowałem podstawy, zająłem się poważniejszym projektem, w tym przypadku "My Organiserem" (być może ktoś pamięta, temat miał w końcu 1600 wejść).

Rzecz, która mnie jednak zniechęciła do WinFormsów było brak dowolności ustawiania pożądanego wyglądu. Prosty przykład: chciałeś mieć ładny przycisk z opcją zaokrąglania i gradientem? O nie panie, nie ma mowy, musisz albo przeciążyć klasę i zajmować się pisaniem tych funkcjonalności lub szukać jakichś kontrolek w internecie (z których sporo nie działa, przerabiałem to). Była to bariera z którą nie mogłem sobie za bardzo poradzić więc... postanowiłem nauczyć się WPF.

Początek był trudny - kompletnie nie mogłem zrozumieć filozofii przypinania danych do kontrolek oraz ustawiania schematów elementów. Było jednak coś, co zachęcało mnie do dalszej nauki: OGROMNE możliwości ustawiania wyglądu każdej części kontrolki. Gradienty to już nie problem. Chcesz mieć CheckListBox z podświetlanymi elementami na różowo? Nie ma problemu. A może DataGridView, gdzie komórka będzie miała gradient? Jasne! I spróbujcie teraz coś takiego zrobić w WinFormsach :)

Obecnie, w trakcie pisania My Organiser 2.0 korzystam z WPF i wniosek mam następujący - WinFormsy są fajne na początek ale w praktyce mało konfigurowalne (przynajmniej z poziomu "design") i mało wydajne (efekt migających kontrolek i te sprawy). WPF zapewnia wydajność, duże możliwości dostosowania wyglądu (dzięki wykorzystaniu XAML'a), łatwość przypinania danych do kontrolek. Może rzeczywiście nie jest to materiał łatwy do przyswojenia ale opłaca się - uwierzcie mi :)

Pozdrawiam! AlfaLeporis

CI
  • Rejestracja:około 12 lat
  • Ostatnio:prawie 11 lat
  • Postów:184
0

Dokładnie masz rację, ja po opanowaniu WF i MVC i innych typu Singleton ( z rodziny Creational etc ) biore się za MVVM i WPF. Mam już małą bazę i walczę z interfejsem.

Pozdrawiam

Azarien
  • Rejestracja:ponad 21 lat
  • Ostatnio:około 5 godzin
0

A może DataGridView, gdzie komórka będzie miała gradient? Jasne! I spróbujcie teraz coś takiego zrobić w WinFormsach

Oczywiście że się da, tylko nie ma gotowca i trzeba rysować kontrolkę samemu...
Tak, WPF wygrywa pod względem graficznych bajerów.
Ale z jakiegoś powodu, w samym VS jest znacznie więcej różnych kontrolek dla WinForms niż WPF...

CI
  • Rejestracja:około 12 lat
  • Ostatnio:prawie 11 lat
  • Postów:184
0

Azarien warto pisać małe aplikacje bazodanowe oparte o WPF ( tym samym się go uczyć ) czy lepiej drążyć WF. Wiadomo, że na moje potrzeby programistyczne aplikację są raczej nie wielkie, dopiero w firmach zaczyna się prawdzie programowanie.

AlfaLeporis
  • Rejestracja:ponad 12 lat
  • Ostatnio:prawie 10 lat
  • Lokalizacja:Polska
1

Ależ ja nie mówiłem że się nie da (chyba że to tak zabrzmiało) - da się ale o wiele większym kosztem niż w WPF gdzie wystarczy dodać kilka linii w XAML'u.

Co do ilości kontrolek - owszem, ale popatrz na ten przykład: w WinFormsach jest coś takiego jak checkListBox, w WPF natomiast nie ma czegoś takiego. Można by powiedzieć: "Schrzanili sprawę, toż to jest przecież niemal podstawowa kontrolka". Nic bardziej mylnego, do stworzenia checkListBoxa w WPF'ie wystarczy dodać ListBoxa i zmodyfikować szablon Itema na CheckBox'a - sumując jest to 5 dodatkowych linii kodu w XAML'u. Po co więc niemal powielać kontrolki?

somekind
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:około 12 godzin
  • Lokalizacja:Wrocław
2

Do WinFormsów jest masa kontrolek zewnętrznych firm (Telerik, DevExpress, itp.), które pozwalają osiągnąć wypasione efekty graficzne i zapewniają znacznie większą konfigurowalność niż standardowe. Efekt nie jest wcale dużo gorszy niż WPF.
WinFormsy są i długo będą popularniejsze, bo są starsze, więc więcej aplikacji powstało w tej technologii. Z kolei nowsze programy coraz częściej są tworzone w WPF.
A tak w ogóle, to w porównaniu z webowymi frameworkami .NET, obie te technologie są mało popularne. ;P

edytowany 1x, ostatnio: somekind
Azarien
  • Rejestracja:ponad 21 lat
  • Ostatnio:około 5 godzin
1

Tak naprawdę obie biblioteki od paru lat stoją w miejscu. Microsoft nie potrafi chyba się zająć więcej niż jedną na raz, a ostatnio było to WinRT...

edytowany 1x, ostatnio: Azarien
JH
  • Rejestracja:prawie 18 lat
  • Ostatnio:ponad 11 lat
1

Miałem napisaną aplikację, dość rozbudowaną w WinForms z wykorzystaniem komercyjnych bibliotek, po czasie stwierdziłem, że może warto przepisać GUI na WPF, a jeszcze lepiej Silverlight. Po ok 3 miesiącach zwątpiłem. Produktywność dostępnych kontrolek jest dużo większa dla technologii WF niż dla WPF/Silverlight. Inaczej ujmując trzeba się kilkukrotnie więcej napracować, żeby osiągnąć interfejs o takim samym stopniu skomplikowania, a korzyści żadnych odczuwalnych nie zauważyłem. W komercyjnych bibliotekach WF dostępne są skórki, czyli zestawy gotowych tematów profesjonalnie przygotowanych co znacznie poprawia wygląd aplikacji, praktycznie bez żadnego nakładu pracy. Dodatkowo można skórki edytować i tworzyć nowe. Wiem, że WPF ma większe możliwości pod tym względem, ale w ogromnej większości problemów WF w zupełności wystarcza. Osobnym tematem jest to co przyniesie przyszłość, WPF/Silverlight miało być rozwiązaniem na lata, teraz MS znów promuje WinRT nie rozwijając poprzednich technologii, a wręcz powoli się z nich wycofuje (Silverlight), a szkoda.

AlfaLeporis
Widzisz, tutaj jest mowa o komercyjnych kontrolkach, które są o niebo ładniejsze od tych standardowych. Zgadzam się, ale mi na przykład (i myślę że wielu innym osobom z małym budżetem) zostaje tylko WPF w którym wszystko sobie dostosuje ponieważ moje kieszonkowe nie starczy na taką inwestycje :)
Q4
  • Rejestracja:około 12 lat
  • Ostatnio:ponad 11 lat
  • Postów:103
0

Raczej nie warto mówić o wyższości jednej technologii nad inną. Nie wiem jak inni, ale ja osobiście trafiam na jedno zlecenie w wpf, na 20/30 w winforms. Często na anglojęzycznych stronach w tematach "czy warto?" odnośnie wpf, w odpowiedziach pojawia się : "steeper learning curve" i to właśnie jest powodem takiego podejścia do tej technologii. Osobną (ale ważną) sprawą jest też podejście microsoftu, gdzie nikt nie zna dnia ani godziny, kiedy powiedzą, że wsparcie dla WPF zostaje zakończone (albo wyskoczą z jakąś (ich zdaniem) świetną nową technologią).

Azarien
  • Rejestracja:ponad 21 lat
  • Ostatnio:około 5 godzin
0

To jest właśnie bolączka Microsoftu, że średnio raz na dwa lata zmienia się kierunek wiatru.

Dlatego lepiej olać ich marketingowy bełkot i trzymać się tego co już jest i działa. A działać będzie (bardzo) długo, dla przykładu: runtime Visual Basic 6 (jeszcze nie .Net) ma oficjalny support do 2023 roku.

Niby to wycofany Silverlight też będzie jeszcze wspierany długo.

edytowany 1x, ostatnio: Azarien
somekind
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:około 12 godzin
  • Lokalizacja:Wrocław
0

Ja ostatnio miałem propozycję wzięcia udziału w nowym projekcie tworzonym w WinFormsach. Coś mi się zdaje, że ta technologia prawdopodobnie przeżyje WPFa.

AC
  • Rejestracja:około 15 lat
  • Ostatnio:ponad 6 lat
0

Warto byłoby po ponad roku odświeżyć sporo temat.
Ciekawe byłyby także ponowne wypowiedzi ludzi, którzy wcześniej brali udział w dyskusji, czy ich zdanie się zmieniło.

Wydaje się, że mimo wszystko świat powoli odchodzi od WF na rzecz WPF.

Choć może wydać się to zaprzeczeniem mojego zdania powyżej, to napiszę: obecnie w firmie komercyjnie piszemy nadal w WF, lecz tylko i wyłącznie ze względu na to, że dużych projektów nie opłaca się przepisywać. Każdy nowy projekt od razu startuje w WPF, nie ma sensu brnąć w WF. Nawet, jeżeli początkowo wydaje się, że aplikacja nie musi być atrakcyjna wizualnie (sic! każda musi być! to jest marketing). W przyszłości klient zażyczy sobie gdzieś gradient i już nic się nie zrobi, bo przecież przepisanie WF->WPF będzie nieopłacalne. Warto patrzeć w przyszłość.

Dodatkowych kontrolek obecnie także jest więcej dla WPFa niż WFa.

Reasumując: zaczynacie? startujcie w WPF. Nie myślcie o WF. To, że dla WF są nadal ogłoszenia o pracę, oznacza tylko, że potrzeba ludzi do starych projektów. W takiej pracy na pewno się nie rozwinie człowiek.

Riw
Mimo wszystko wg mnie dobrze by było mieć jakiekolwiek pojęcie zarówno o WF jak i o WPF
Ktos
Można też wspomnieć, że coś się powoli rusza w sprawie WPF - Microsoft z powrotem się zaczął przyznawać do tej technologii ;-)
somekind
Co do ostatniego zdania - na pewno pracując w WF nie rozwinie się w WPF, ale tworzenie oprogramowania ma tyle aspektów, że można się rozwinąć w wielu innych dziedzinach, np. architekturze, pisaniu testów, używaniu ORMów lub innych bibliotek, itd.
Azarien
  • Rejestracja:ponad 21 lat
  • Ostatnio:około 5 godzin
0

Wydaje się, że mimo wszystko świat powoli odchodzi od WF na rzecz WPF.
Świat w ogóle odchodzi od dekstopa na rzecz telefonów, tabletów i takich tam, a nawet na desktopie coraz więcej rzeczy jest robionych webowo. Tendencja utrzymuje się od lat, i moje niezadowolenie z tego stanu rzeczy nie ma żadnego wpływu na rzeczywistość ;-)

Każdy nowy projekt od razu startuje w WPF, nie ma sensu brnąć w WF
Ja często nie widzę sensu „brnąć” w WPF. Nie lubię go bo jest czasochłonne.

AM
  • Rejestracja:ponad 10 lat
  • Ostatnio:około 10 lat
  • Postów:10
0

W ktorym momencie WPF jest bardziej czasochlonny niz WF ?
Chyba podstawowa zaleta WPF to ze renderuje okienka na GPU a nie CPU, przy rzeczach typu zwykly edytor map 2D to zaczyna odgrywac role.
W WPF mamy tez o niebo lepszy binding, w WF to jest tragiczne. W WPF na gridach mozna robic samoskalujace sie okienka bardzo latwo.
Poza tym templaty i MVVM(ja tam go lubie).

T2
  • Rejestracja:ponad 10 lat
  • Ostatnio:8 miesięcy
  • Postów:194
0

Warto uczyć się WPF zamiast WP.
Tak jak napisał Amphhh, duża zaletą są templaty oraz duże wsparcie dla MVVM.

Nawiązując do posta Azarien.
Korzystając z WPF i tworząc z duchem MVVM, zawsze będzie nam się łatwiej przerzucić na Angulara i inne rozwiązania webowe które wspierają MVVM.

Chdzk
  • Rejestracja:ponad 10 lat
  • Ostatnio:minuta
  • Lokalizacja:Poznań
0

Ja dodam od siebie, ze oczywiscie web + mobilki przewazaja. Natomiast "biznesowe swinie" sa pisane i beda pisane jako aplikacje desktopowe na PC'ty, bo maja sluzyc do pracy i w pelni wykorzystywac mozliwosci obliczeniowe maszyny. Do tego klienci chca miec ladny, nowoczesny interfejs i tutaj WPF w pelni zdaje egzamin, do tego jest bardzo elastyczny. Dodam, ze WPF to przede wszystkim XAML, a polityka Microsoftu zmierza do tego, ze nie bedzie rozroznienia Windows Phone/Windows.Bedzie po prostu Windows (zarowno na PC i na urzadzenia mobilne) i ta sama aplikacja bedzie uruchamiana zarowno na urzadzeniu mobilnym jak i na PC. Wiec warto znac WPF przynajmniej dla samego XAML'a.

Zobacz pozostałe 4 komentarze
somekind
A jakie to korzyści? Ja generalnie tworzę soft biznesowy, który raczej żyje na serwerach, a interfejs jeśli jakiś jest, to jest webowy. Brałem też parę razy udział w przepisywaniu aplikacji desktopowej na web.
Chdzk
Responsywnosc, komunikacja z zewn. urzadzeniami, szybkosc (zwlaszcza przy obsludze plikow), skroty klawiszowe i rozne niestandardowe rozwiazania (security w wielu przypadkach mocno ogranicza przegladarki). Backend zazwyczaj jest rozproszony na roznych serwisach i klastrach, a WPF to tylko UI.
somekind
Skróty klawiaturowe to akurat mały problem. Ale tak czy siak, ja raczej widzę tendencję zwyżkową w webie i przechodzenie z desktopa na web, o odwrotnym przypadku jeszcze nie słyszałem.
n0name_l
@Chdzk Zapominasz o waznym czynniku - pani basii. Taka pania nie obchodzi skad sie aplikacja wezmie (ani tymbardziej nie ma w planach instalowac czegokolwiek). Nie obchodza ja skroty klawiaturowe - tak czy siak ich nie zapamieta ani nie bedzie uzywac. Obchodzi ja jedynie, zeby moc odwalic robote i ogladac koty w internecie. A przegladarka do tego to jest akurat najlepsza, bo pani basia umie jej uzywac w stopni pozwalajacym przeklikac formularz.
Chdzk
Nie w kazdej branzy sa "panie Basie" ;), no chyba ze mowa o ksiegowych. Natomiast w bankowosci czesto sa specjalisci, ktorzy szybko chca pozmieniac duza ilosc danych albo szybko zrealizowac jakies zlecenie. Czasami widze jak obsluguja sprawnie system (wlasnie glownie skrotami), to jestem pelen podziwu, bo nie nadazam. A juz najgorsze sa przyzwyczajenia typu: "bo w starym systemie wystarczy ze nacisnalem 'X' i juz mialem w oknie 'Y'" Klient nasz Pan, w jakiej formie UI chce, takie dostanie ;)
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)