Wybór technologii webowej do nauki

Wybór technologii webowej do nauki
bbhzp
  • Rejestracja:około rok
  • Ostatnio:około 7 godzin
  • Postów:69
0

Cześć,
programuję (niezawodowo) w .NET od ok. 5 lat. Na początku był to VB.NET, ale szybko przerzuciłem się na C#. Podczas tworzenia różnych projektów (głównie dla siebie), mogę powiedzieć, że nauczyłem się takich konceptów / technologii / narzędzi:

  • Projektowanie i tworzenie baz danych - SQL Server, widoki, funkcje, procedury + SQL Server Management Studio
    • ADO.NET, a potem Entity Framework Core (choć ciągle jest to dla mnie rzecz relatywnie nowa)
  • WinForms na poziome podstawowym i WPF na poziomie zaawansowanym (własne style, kontrolki - np. grafiki rezerwacji, data binding, MVVM, konwertery, ...)
  • Własne biblioteki - helpery, ale także DAL dla projektów bazodanowych, czyli oddzielenie projektu WPF od bazy
  • Interfejsy, rozszerzenia metod, LINQ, NLog
  • GIT
  • Poza .NETem: HTML, CSS (Flexbox, grid), podstawy JS, czysty PHP z mysqli oraz prymitywny AJAX : )

Specjalnie siedziałem dłużej w aplikacjach desktopowych, aby skupić się na nauce samego języka (oczywiście nie zaczynałem od GUI, ale na tym etapie byłem już komfortowy w WPF), oraz różnych narzędzi, jak EF, NLog, podział solucji na mniejsze projekty, itp.

Teraz gdy już mam wrażenie, że umiem / znam wszystkie te koncepty, pora chyba na aplikacje webowe. Nie uważam, że wszystko powinno być aplikacją internetową i sam jestem zwolennikiem desktopa, ale w końcu strony to przyszłość.

Jakiego webowego frameworka powinienem zacząć się uczyć w 2024 roku? ... no i, z jakich źródeł?

Wiem, że jest ASP.NET Core MVC, ale kilka razy czytałem już na forum komentarze innych, że został on wyparty przez WebApi + Blazor.

Liczy się dla mnie przede wszystkim możliwość znalezienia pracy w przyszłości, ale także komfort programowania : )

Z góry dziękuję za jakiekolwiek odpowiedzi!

RJ
  • Rejestracja:ponad 2 lata
  • Ostatnio:około 8 godzin
  • Postów:432
2

Angular majstrze drogi. Skoro robisz w .NET to Angular przez wzgląd na spora ilość analogii wydaje sie być naturalnym wyborem.

Pracuje z Angularem ponad 4 lata już i to naprawdę porządny framework - z bogatym ekosystemem, dojrzały i wydajny (a najlepsze ma dopiero nadejść bo zejdziemy z zone.js).

Blazora i Reacta też mi dane było posmakować i nie mają startu.

bbhzp
  • Rejestracja:około rok
  • Ostatnio:około 7 godzin
  • Postów:69
0
rjakubowski napisał(a):

Angular majstrze drogi. Skoro robisz w .NET to Angular przez wzgląd na spora ilość analogii wydaje sie być naturalnym wyborem.

Pracuje z Angularem ponad 4 lata już i to naprawdę porządny framework - z bogatym ekosystemem, dojrzały i wydajny (a najlepsze ma dopiero nadejść bo zejdziemy z zone.js).

Blazora i Reacta też mi dane było posmakować i nie mają startu.

Dzięki za odp : )
Czyli backend w Web API, a front w Angularze?

KO
  • Rejestracja:ponad 10 lat
  • Ostatnio:24 dni
  • Postów:419
1

Ja nie znam reacta ani angulara, ale w blazorze to się zakochałem :)
Ja wiem, że to młoda technologia i wiele rzeczy jeszcze w nim nie ma (trzeba robić je samemu), ale możliwość pisania w C# vs JS z nawiązką mi to wynagradza!
I ja wiem, że wydajnościowo również mogłoby być lepiej, ale... C# >>> JS!!!

bbhzp
  • Rejestracja:około rok
  • Ostatnio:około 7 godzin
  • Postów:69
1

Dla mnie też im mniej JS, tym lepiej :) Ale czy używając C# do frontu i do backendu, nie zaciera się za bardzo granica pomiędzy tym, co wykonuje się na serwerze, a tym co w przeglądarce?

edytowany 1x, ostatnio: bbhzp
KO
  • Rejestracja:ponad 10 lat
  • Ostatnio:24 dni
  • Postów:419
2
bbhzp napisał(a):

Dla mnie też im mniej JS, tym lepiej :) Ale czy używając C# do frontu i do backendu, nie zaciera się za bardzo granica pomiędzy tym, co wykonuje się na serwerze, a tym co w przeglądarce?

Ale to chyba dobrze, że się zaciera. Po co tworzyć sobie jakieś "granice"? Mieszanie języków to jest koszmar szczególnie, gdy backend piszesz w silnie typowanym języku (np. C#) a front w pseudo języku jakim jest JS...
Jeśli backend i front masz w C# wszystko jest proste. Masz jedną bibliotekę z obiektami, piszesz w normalnym cywilizowanym języku silnie typowanym, masz całego .NET-a... To jest piękne.

edytowany 1x, ostatnio: Kofcio
lion137
Silnie typowanym? Może czasem też statycznie typowanym? 🤣
KO
Również, ale istotne jest, że nie w dynamicznie typowanym (pomijam tu temat dynamic, bo to jest opcjonalne)
SA
  • Rejestracja:około 12 lat
  • Ostatnio:około 3 godziny
  • Postów:1431
1

Nie każdy musi umieć/lubić/robić front, ani nie jest to koniecznie, żeby pracować z .NET (webowym), a do PoC w razie czego wystarczy czysty JS i Bootstrap (zawiało oldschoolem) albo Razor Pages.

WeiXiao
  • Rejestracja:około 9 lat
  • Ostatnio:około 5 godzin
  • Postów:5108
2

Przecież różnice pomiędzy ASP .NET MVC i ASP .NET WebAPI od strony backendu są nieznaczne.

Największa różnica jest taka, że zamiast zwracać htmla ze stronką, to zwracasz jsona z danymi.

No i pewnie jeszcze casy typu F5 na formularzu.

Przeczytaj całe docsy ASP i będzie git

https://learn.microsoft.com/en-us/aspnet/core/?view=aspnetcore-8.0

edytowany 2x, ostatnio: WeiXiao
RJ
  • Rejestracja:ponad 2 lata
  • Ostatnio:około 8 godzin
  • Postów:432
3

@bbhzp: ostrożnie bym do tego podchodził bo jak trzeba zrobić na froncie coś więcej to bez JSa się nie obejdziesz. Beznadziejny jest ten interop C#/JS w Blazorze. Stąd skłaniałbym się ku Angularowi w ciemno, a korporacji które działają w stacku .NET/Angular jest zatrzęsienie

RJ
  • Rejestracja:ponad 2 lata
  • Ostatnio:około 8 godzin
  • Postów:432
0

@Kofcio: nie wiem co Cie w tym bawi, ale mnie narzut statycznego typowania na froncie zabija przez to jak dynamicznym środowiskiem jest przeglądarka. Jeśli o serwer chodzi to wiadomo, że zalety przeważają, ale w przeglądarce... 🤔

Zobacz pozostałe 12 komentarzy
stivens
Co Ty wymyslasz teraz nagle? XD W ogole to jakas absurdalna mysl, ze by sie hipotetycznie mozna bylo inferencja typow "dowartosciowywac" XD
stivens
Zabawne jest natomiast to, ze teraz piszesz szkoda mi czasu na takie dyskusje na wolnym, ale nie przeszkadzalo CI to jakos w napisaniu kilku postow/komentarzy dzisiaj - wczesniej - na forum
KE
"Czasami trzeba wywalić klucz z obiektu na froncie" nie mam zielonego pojęcia, w jaki sposób ten przypadek uzasadnia dynamiczne typowanie. To jakby powiedzieć, że czasem program musi dodać kilka liczb, więc piszmy wszystko w Fortranie.
stivens
@kelog: autor chyba tez nie ma pojecia jak to by mialo uzasadniac cokolwiek i dlatego sie wycofal z dyskusji
bbhzp
  • Rejestracja:około rok
  • Ostatnio:około 7 godzin
  • Postów:69
0
rjakubowski napisał(a):

@bbhzp: ostrożnie bym do tego podchodził bo jak trzeba zrobić na froncie coś więcej to bez JSa się nie obejdziesz. Beznadziejny jest ten interop C#/JS w Blazorze. Stąd skłaniałbym się ku Angularowi w ciemno, a korporacji które działają w stacku .NET/Angular jest zatrzęsienie

Zdaję sobie z tego sprawę :) Czasu mam teraz dużo, więc spróbuję wszystkich tych technologii, ale faktycznie Angulara jest więcej niż Blazora w ogłoszeniach o pracę.

A poza tym, faktycznie Web API + jakiś inny frontend jest bardziej sensowne niż klasyczne MVC (jeśli mylę pojęcia to najmocniej przepraszam, nie znam się :P), bo potem tego samego API mogę używać w aplikacjach mobilnych a nawet w desktopie

Miang
  • Rejestracja:prawie 7 lat
  • Ostatnio:około 3 godziny
  • Postów:1659
1
Kofcio napisał(a):
bbhzp napisał(a):

Dla mnie też im mniej JS, tym lepiej :) Ale czy używając C# do frontu i do backendu, nie zaciera się za bardzo granica pomiędzy tym, co wykonuje się na serwerze, a tym co w przeglądarce?

Ale to chyba dobrze, że się zaciera. Po co tworzyć sobie jakieś "granice"? Mieszanie języków to jest koszmar szczególnie, gdy backend piszesz w silnie typowanym języku (np. C#) a front w pseudo języku jakim jest JS...
Jeśli backend i front masz w C# wszystko jest proste. Masz jedną bibliotekę z obiektami, piszesz w normalnym cywilizowanym języku silnie typowanym, masz całego .NET-a... To jest piękne.

źle, przesyłasz wynik SELECT * FROM TABELA juz nie tylko z bazy do aplikacji ale i przez internet na front i tam potem filtrujesz i dzielisz na strony
widziałam takie cuda
potem zdziwienie że js, do którego ten c# czy inna java jest kompilowany roi w przeglądarce cuda z twoim intem czy wybranym kodowaniem, bo przecież nic o js nie wiesz i nawet zdebugować za bardzo nie potrafisz
i przede wszystkim brakuje jawnego opisu co jest wysyłane między backendem a frontendem


dzisiaj programiści uwielbiają przepisywać kod z jednego języka do drugiego, tylko po to by z projektem nadal stać w miejscu ale na nowej technologii
edytowany 1x, ostatnio: Miang
Zobacz pozostałe 2 komentarze
Miang
no bo przez chwile widać było dwa razy ten sam post, dopóki jednego nie zdeletowałam
RJ
W ogóle dla mnie tekst że JS nie jest pełnoprawnym językiem to żenada. Świat by wyglądał dalej jak w 2000 z podejściem MPA.
somekind
Bycie pełnoprawnym nie przeczy byciu niepełnosprawnym.
KO
  • Rejestracja:ponad 10 lat
  • Ostatnio:24 dni
  • Postów:419
1
Miang napisał(a):

źle, przesyłasz wynik SELECT * FROM TABELA juz nie tylko z bazy do aplikacji ale i przez internet na front i tam potem filtrujesz i dzielisz na strony
widziałam takie cuda
potem zdziwienie że js, do którego ten c# czy inna java jest kompilowany roi w przeglądarce cuda z twoim intem czy wybranym kodowaniem, bo przecież nic o js nie wiesz i nawet zdebugować za bardzo nie potrafisz

Ale co to ma do zacytowanego fragmentu i tematu w ogóle? Myślisz, że jak będziesz pisał front w innym języku/technologii to problemy zaczną się same rozwiązywać?
Poza tym nie do końca rozumiem w czym masz problem z tym zapytaniem, bo potem piszesz o int-ach i wybranym kodowaniu i nie wiem czy problem jest z wydobywaniem wszystkich wartości z bazy czy może chodzi o coś innego - co?
Jeśli masz problem z wydobywaniem wszystkich danych z tabeli to przejście na JS nie rozwiąże tego problemu bo to dotyczy przyjętych założeń a nie języka programowania.

Miang napisał(a):

i przede wszystkim brakuje jawnego opisu co jest wysyłane między backendem a frontendem

Jeśli piszesz tylko w C# to właśnie nie masz tego problemu bo na froncie i backendzie masz te same klasy i dużo trudniej popełnić błąd.

Miang
  • Rejestracja:prawie 7 lat
  • Ostatnio:około 3 godziny
  • Postów:1659
1
Kofcio napisał(a):
Miang napisał(a):

Ale co to ma do zacytowanego fragmentu i tematu w ogóle? Myślisz, że jak będziesz pisał front w innym języku/technologii to problemy zaczną się same rozwiązywać?

po pierwsze najlepiej jakby front pisała inna osoba

Poza tym nie do końca rozumiem w czym masz problem z tym zapytaniem, bo potem piszesz o int-ach i wybranym kodowaniu i nie wiem czy problem jest z wydobywaniem wszystkich wartości z bazy czy może chodzi o coś innego - co?

potem . w osobnym paragrafie, a Ty to łączysz w jedno nie wiem dlaczego. wymieniam wady js, wady z którymi można sobie poradzić będąc świadomym że ma się kod w js. wady których nie zauważysz pisząc w innym języku, który takich nie ma ale będzie skompilowany do js
problem mam z tym że koder wyciąga wszystko z bazy bo o WHERE nie słyszał
problem mam z tym że gostek jest nie tylko frontendowcem i backendowcem ale i bazadanowcem a co jest do wszystkiego to jest do niczego

Jeśli masz problem z wydobywaniem wszystkich danych z tabeli to przejście na JS nie rozwiąże tego problemu bo to dotyczy przyjętych założeń a nie języka programowania.

a kto ma to zauważyć? koder nie musi?

Miang napisał(a):

i przede wszystkim brakuje jawnego opisu co jest wysyłane między backendem a frontendem

Jeśli piszesz tylko w C# to właśnie nie masz tego problemu bo na froncie i backendzie masz te same klasy i dużo trudniej popełnić błąd.

łatwiej, bo nie widzi się specyfiki tego kodu który jest w przeglądarce


dzisiaj programiści uwielbiają przepisywać kod z jednego języka do drugiego, tylko po to by z projektem nadal stać w miejscu ale na nowej technologii
edytowany 1x, ostatnio: Miang
bakunet
  • Rejestracja:prawie 8 lat
  • Ostatnio:około godziny
  • Lokalizacja:Polska
  • Postów:1596
1

@bbhzp: Kiedyś stałem w tym samym miejscu co Ty.

Jak mówi klasyk: to zależy co chcesz osiągnąć.

Ja bym dodał: i zależy też ile masz czasu do przepalenia na naukę i eksperymenty.

Na stricte dotnetowe rozwiązanie będziesz potrzebował mniej, niż na .NET + front end framework.

edytowany 1x, ostatnio: bakunet
Miang
oraz mniej sie nauczy w pierwszym przypadku
bakunet
@Miang: Zgadam się z Tobą. .NET + Angular dał mi więcej frajdy i satysfakcji. Ale jak ma mniej wolnego czasu, to sam .NET też zrobi robotę
IF
  • Rejestracja:prawie 7 lat
  • Ostatnio:około 20 godzin
  • Postów:13
2

Jeśli chodzi o zawodową karierę w .net to najpopularniejsze połączenie to .net i Angular. Blazor jeszcze długo nie osiągnie takiej pozycji (jeśli w ogóle).

bbhzp
  • Rejestracja:około rok
  • Ostatnio:około 7 godzin
  • Postów:69
0

Dziękuję wszystkim za odpowiedzi, idę w .NET + Angular : ). Polecacie jakieś kursy, książki, strony, czy po prostu sama dokumentacja i robienie projektów?

AdamWox
  • Rejestracja:ponad 7 lat
  • Ostatnio:około 15 godzin
  • Lokalizacja:Jastrzębie-Zdrój
  • Postów:2157
1

Ja się Angulara uczyłem od tego Pana na Udemy. Ma też swoje filmiki na YT
Angular - The Complete Guide (2024 Edition)

TheSinOfGreed
  • Rejestracja:około 4 lata
  • Ostatnio:6 miesięcy
  • Postów:12
1

Podbijam, .NET + Angular to w korpo bardzo popularny stack, tak jak pisano wyżej obie technologie maja wiele podobnych konceptów.

Ogólnie nie musisz sie też skupiać koniecznie na froncie, możesz rozwinąć też swoje backendowe umiejętności o jakieś chmury, mikro serwisy itd.

AJ
  • Rejestracja:prawie 18 lat
  • Ostatnio:6 miesięcy
  • Postów:66
2

Jeśli chodzi o backend, popularność zyskuje MinimalAPI. Jest to technologia w ASP.NET Core która niesamowicie upraszcza tworzenie webowego API.
Do tego Blazor, EF Core, i masz komplet.
Co do kursów, ja zakochałem się w kanale Juliio Casala. Gość nie dość, że mówi bardzo zrozumiałą angielszczyzną (co nie jest regułą), to w dodatku ma niesamowity talent do bardzo jasnego tłumaczenia zagadnień. I w dodatku na swoim kanale ma sporo kompletnych darmowych kursów lepszych od wielu płatnych:

Inny świetny kanał wart poznania, to jest I Am Tim Corey:


--
Pozdrawiam.
Ajgor
RJ
Tak upraszcza, że wszystkie poważne projekty dalej robią MVC style API. 😉
bbhzp
Pana Tima Coreya znałem, ale dzięki za polecenie Julio Casala - faktycznie ma dużo treściwych filmów :)
WeiXiao
  • Rejestracja:około 9 lat
  • Ostatnio:około 5 godzin
  • Postów:5108
2

Przecież Minimal APIs, MVC, i Web API to są małe różnice, polegające głównie na tym gdzie jest kod i co zwraca (html vs json). Naucz się kontrolerów/actionów, routingu, atrybutów lub generalnie całego ASP to Minimal/MVC/Web będą pierdółkami

AJ
  • Rejestracja:prawie 18 lat
  • Ostatnio:6 miesięcy
  • Postów:66
0
WeiXiao napisał(a):

Przecież Minimal APIs, MVC, i Web API to są małe różnice, polegające głównie na tym gdzie jest kod i co zwraca (html vs json). Naucz się kontrolerów/actionów, routingu, atrybutów lub generalnie całego ASP to Minimal/MVC/Web będą pierdółkami

Nie prawda. Minimal API to jest ZUPEŁNIE coś innego niż MVC. Tam nie ma w ogóle nic takiego, jak kontrolery, a zwracać możesz, co chcesz. Oczywiście w granicach możliwości. Z reguły JSON-a.
Minimal API jest o WIELE prostsze. Definiuje obsługę endpointów bezpośrednio w samych endpointach przez wywołanie metod, lub w lambdach. Odpada cały młyn z kontrolerami i routingiem.

W Minimal API obsługa endpointu wygląda mniej więcej tak:

Kopiuj
app.MapGet("prefiks", () => ObsługaEndpointa);

Gdzie prefiks to jest końcówka adresu. To jest cała obsługa instrukcji Get. Nie trzeba dopisywać żadnego routingu itp.
A teraz napisz mi to w MVC z obsługą kontrolera. Zobaczysz różnicę.


--
Pozdrawiam.
Ajgor
edytowany 1x, ostatnio: Ajgor
RJ
  • Rejestracja:ponad 2 lata
  • Ostatnio:około 8 godzin
  • Postów:432
0

@Ajgor: tak i wsparcie dla middleware niepełne, mess pieroński przy dużym API i szereg innych dobrodziejstw. Dobre do ToDo appki albo mikro mikroserwisu 😉

WeiXiao
  • Rejestracja:około 9 lat
  • Ostatnio:około 5 godzin
  • Postów:5108
0
Ajgor napisał(a):
WeiXiao napisał(a):

Przecież Minimal APIs, MVC, i Web API to są małe różnice, polegające głównie na tym gdzie jest kod i co zwraca (html vs json). Naucz się kontrolerów/actionów, routingu, atrybutów lub generalnie całego ASP to Minimal/MVC/Web będą pierdółkami

Nie prawda. Minimal API to jest ZUPEŁNIE coś innego niż MVC. Tam nie ma w ogóle nic takiego, jak kontrolery, a zwracać możesz, co chcesz. Oczywiście w granicach możliwości. Z reguły JSON-a.
Minimal API jest o WIELE prostsze. Definiuje obsługę endpointów bezpośrednio w samych endpointach przez wywołanie metod, lub w lambdach. Odpada cały młyn z kontrolerami i routingiem.

W Minimal API obsługa endpointu wygląda mniej więcej tak:

Kopiuj
app.MapGet("prefiks", () => ObsługaEndpointa);

Gdzie prefiks to jest końcówka adresu. To jest cała obsługa instrukcji Get. Nie trzeba dopisywać żadnego routingu itp.
A teraz napisz mi to w MVC z obsługą kontrolera. Zobaczysz różnicę.

Ja wiem jak wygląda Minimal API, jednakże nadal te różnice są naprawdę niewielkie na poziomie konceptualnym, serio.

To że nie masz żadnego kontrolera nad tym i odpada ci trochę boilerplate to tylko ułatwienie, skrócenie i wywalenie boilerplate kodu, ale mechanizmy i koncepty są takie same.

Nadal masz routing, dependency injection, middlewares, authentication/authorization, parameter binding, filtry itd itd.

Odpada cały młyn z routingiem.

Nie. Routing (mechanizm) nadal występuje i nawet w docsach ASP nt. routingu masz przykłady z użyciem Minimal APIs.

https://learn.microsoft.com/en-us/aspnet/core/fundamentals/routing?view=aspnetcore-8.0

A co masz na myśli przez młyn?

edytowany 6x, ostatnio: WeiXiao
Miang
dependency injection to są zmienne globalne udające programowanie obiektowe
WeiXiao
@Miang: zależy jaki life time ustawisz w kontenerze :)
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)