Organizacja projektu angular + .net core

Organizacja projektu angular + .net core
KC
  • Rejestracja:ponad 6 lat
  • Ostatnio:ponad 6 lat
  • Postów:9
0

Witam, mam problem organizacyjny. Zastanawiam się jak powinna wyglądać praca nad projektem angular + web api(w moim przypadku jest to .net core).
Visual studio daje możliwość wygenerowania projektu który zawiera api .net corowe z wrzuconą od razu strukturą aplikacji angularowej, takie samo podejście spotkałem już w kilku kursach w internecie, jednak parę rzeczy każe mi zastanowić się czy to aby na pewno najlepsze wyjście.
Jeszcze jakieś 2 miesiace temu jak zaczynałem dłubać w tej technologii pierwszym problemem przy tworzeniu projektu był brak pliku angular-cli, trzeba było go skopiować z innego projektu czysto angularowego, kolejnym problemem było instalowanie bibliotek, często musiałem improwizować na różne sposoby.
Na chwilę obecną struktura tworzonego projektu nieco się zmieniła, jednak zastanawia mnie np czemu projekt generuje mi cli "angular-cli.json" a nie po prostu "angular.json", przecież "angular-cli.json" to jego starsza wersja.
Tak więc, zastanawiam się czy nie powinienem po prostu do problemu podchodzić tak że będę zakładał osobny niezależny projekt web api(autoryzacja, database itd), i zupełnie inny projekt angularowy który będę już sobie odpalał osobno przez ng serve.
Czy może ktoś przybliżyć mi jak wygląda profesjonalna praca z tymi technologiami? i ogólnie angular + web api? Wydaje mi się to trochę dziwne, bo .net core może się zmieniać, angular cli może się zmieniać, i za każdym razem trzeba będzie jeszcze czekać aż ludzie od visual studio dograją te zmiany, a jak widać póki co nie nadążają.

czubeka2
  • Rejestracja:około 12 lat
  • Ostatnio:9 miesięcy
  • Postów:53
1

Zgadzam się z Twoimi obawami. Taką samą sytuację miałem w przypadku .NET Core + React. Po utworzeniu projektu musiałem poświęcić chwilę na ogarnięcie szumu organizacyjnego.
Ogólnie uważam, że tego typu "szablony" są na swój sposób irytujące, ponieważ nie masz pełnej świadomości zależności które znajdują się w projekcie. Lepszym rozwiązaniem jest (tak jak twierdzisz) stworzenie "czystej" aplikacji .NET Core oraz "czystej" aplikacji Angular. Tylko wówczas masz gwarancję, że zależności oraz struktura projektu w pełni odpowiada Twoim potrzebom.

john_klamka
  • Rejestracja:prawie 9 lat
  • Ostatnio:prawie 5 lat
  • Postów:177
0

Szablon ma to do siebie, że jest jakąś tam wypadkową najpopularniejszych scenariuszy. Poświęcenie czasu na zagłębienie się w strukturę takiego projektu i dostosowanie go do swoich potrzeb na pewno się opłaci w postacie lepszego zrozumienia działania całej aplikacji. Z mojego doświadczenia wynika, że lepiej jest dostosować wygenerowany szablon niż robić wszystko od zera.

Zobacz pozostałe 5 komentarzy
john_klamka
niby dlaczego, przecież to jest właśnie szablon - backend + frontend skonfigurowane tak, żeby dobrze ze sobą współgrały
WeiXiao
@john_klamka: bo startup to są podstawy podstaw do startu aplikacji w 1 pliku i może nawet konwencja, że ładujemy tam wszystkie te configi aplikacji. A templatki z frameworkami to jest pincet folderów / plików
WeiXiao
W startupie jeszcze da się wszystko w miarę łatwo pozmieniać bez potrzeby skakania i przeglądania połowy projektu.
Aryman1983
Aryman1983
@john_klamka: @WeiXiao ja tam zawsze zaczynam od backendu i api. Potem sobie testuje wszystkie requesty np. w VScode przy pomocy rest client lub po prostu za pomocą curl. Następnie buduję projekt w angular/react/vue czy tam co innego i lecę z frontendem. Najwyżej coś dopasowuję w back, gdy napotkam jakiś problem. Żadnej filozofii.
WeiXiao
@Aryman1983: Zgadzam się.
OM
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 4 lata
  • Postów:100
1

Stworzenie od zera projektu angularowego i skonfigurowanie go jest dość proste. Zdecydowanie wolałbym to niż mieć ew. problemy z tym wygenerowanym. No i w dodatku i tak nie będziesz przecież pracować z frontendem w visualu. Już bym chyba wolał notepad++.

john_klamka
co ma do tego generowanie z szablonu? przecież nie musisz korzystać z vs do frontu..
KC
  • Rejestracja:ponad 6 lat
  • Ostatnio:ponad 6 lat
  • Postów:9
0

Kupiłem kolejny już kurs .net core + angular, najlepiej oceniany na udemy, tym razem prowadzący podchodzi do tematu właśnie w sposób budowania dwóch oddzielnych aplikacji.
Jedyna rzecz jaka mnie zastanawia, taka która przemawia przeciwko podejściu budowania dwóch osobnych aplikacji to deploy tego na server. Musimy wrzucić dwie osobne apki, i zarezerwować dwa porty a nie jeden, nie znam się za bardzo na konfiguracji i wrzucaniu tego, ale czy to nie jest duży i istotny problem?

1

Zarezerwowanie dwóch portów nie jest problematyczne. Mozesz miec te dwie aplikacje na jednym serwerze, ale lepiej jakby byly na odzielnych. A jeszcze lepiej jak na kilku. Ale 2 wystarcza, od biedy 1.

FU
  • Rejestracja:ponad 6 lat
  • Ostatnio:6 miesięcy
  • Postów:6
0

A nie lepiej te dwie apki dać w docker-compose?

1

Moze, ale to mu pomoze tylko lokalnie. Na produkcji i tak bedzie musial jakos to ogarnac, wiec dochodza dodatkowe zaleznosci.

IK
To na produkcji nie można używać dockera?
KC
  • Rejestracja:ponad 6 lat
  • Ostatnio:ponad 6 lat
  • Postów:9
0

Szczerze nie korzystałem nigdy z docker'a i bardzo mało o tym wiem, rozumiem że miałoby to działać tak że te dwie apki wrzucałbym w dockera, a później już razem hostował tylko ten kontener z jego zawartością(tzn. tymi obiema apkami), tak?

OM
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 4 lata
  • Postów:100
1

U nas tworzymy paczki z aplikacją (.net core 2) przez Publish w visualu. Mamy skrypt prepublish który buduje aplikację do folderu wwwroot. Także są to 2 osobne aplikacje ale później idą jako jedna.

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)