Praca inżynierska, a technologie na miarę 2k19.

0

Hej,

mam do Was lekko enigmatyczne pytanie. Wydaje mi się to na jedno z najbardziej odpowiednich miejsc na zapytanie o technologie warto wykorzystać na miarę 2k19 w swojej inżynierce.
Wydaje nam się, że wybraliśmy dosyć prosty temat do zrealizowania, nie zagłębiając się w wielkie szczegóły, chcemy zrobić swego rodzaju "planer" rezerwacji sal na uczelni. Wybraliśmy, że zrobimy to w C#/.Net, nie mamy za dużo doświadczenia "produkcyjnego", czy w kontekście projektowania systemu od początku do końca, czy samej realizacji "czegoś większego", także przed rozpoczęciem prac chciałbym zapytać: Jakie framework'i polecacie by wykorzystać w takim projekcie, by za razem nie skomplikować sobie pracy, ale w zamyślę stworzyć fajną i wydajną aplikację internetowa. Do tej pory myśleliśmy o takim wydaje mi się "core", czyli pewnie Bootstrap z racji, że nie definiujemy się za bardzo w rejonie artystyczno-CSS'owym :P, Angular i TypeScript + coś do bazy, Microsoftowa jest odpowiednia w takim projekcie(jak już to która?)? Entity dawałoby radę(widziałem gdzieś wątek, że Entity same w sobie jest dobre do zapisu, ale do odczytu już nie? Czy to jakieś pomówienia/coś pokićkałem?)? Czy polecacie coś zupełnie innego? Macie jakieś porady/materiały cenne przy projektowaniu takiego systemu i początku prac? Co wybierać, jak pisać, czego nie pisać, jak ugryź kwestie bezpieczeństwa itp?

PS. Jak to jest z .Net Frameworkiem, a .Net Core, kiedy który? Któryś z nich jest lepszy? Mógłbym mi to ktoś z Was jakoś skrzętnie wytłumaczyć?

Z góry dziękuje za każdą mniejszą i większą poradę. :)

2

Co do EF to dajcie spokój- nie zwracajcie uwagi na jakieś tam opinie. EF jest używane produkcyjne, sprawdza się i tyle w temacie. Tak samo jak inne ORMy.

Jeśli chodzi o technologie to macie już doświadczenie z Angular? Jeśli nie, to rozwazylbym bym coś lzejszego, React albo Vue. Ponadto, jeśli macie czas i chęci to możecie rozważyć system oparty o jakiś message broker (np. RabbitMQ i MassTransit, oba open source). To tak gwoli wydajności i elastyczności.

Co do reszty, to dobrze jakbyś sprecyzowal pytania.

0
Aventus napisał(a):

Co do EF to dajcie spokój- nie zwracajcie uwagi na jakieś tam opinie. EF jest używane produkcyjne, sprawdza się i tyle w temacie. Tak samo jak inne ORMy.

Jeśli chodzi o technologie to macie już doświadczenie z Angular? Jeśli nie, to rozwazylbym bym coś lzejszego, React albo Vue. Ponadto, jeśli macie czas i chęci to możecie rozważyć system oparty o jakiś message broker (np. RabbitMQ i MassTransit, oba open source). To tak gwoli wydajności i elastyczności.

Co do reszty, to dobrze jakbyś sprecyzowal pytania.

Dzięki wielkie za odpowiedź!

Na początku odniosę się do tego, że mamy dużo/sporo czasu bo praktycznie do wakacji. A więc chciałbym poświęcić ten czas raz na dobry research w technologiach i dobrych zwyczajach programowania/tworzenia takich "semi komercyjnych" projektów i rzecz jasna eksperymenty i samą edukacje w wybranych technologiach. A sam projekt pewnie ma być skończony gdzieś w okolicach stycznia przyszłego roku więc czasowo wypada to całkiem nieźle.

Czyli korzystanie z EF pozostaje, cieszy mnie to bo korzystałem z niego już nie raz i jest na prawdę przyjemny. :)
Ja z naszej dwójki mam subtelne doświadczenie z Angular. Angular jest aż takim kolosem? Myślałem o Angularze z racji jego połączenia z TypeScriptem, który jest według mnie bardziej przyjemny niż suchy JS, chyba że się gdzieś mylę. :P Osobiście mam doświadczenie backendowe, z frontem nie miałem prawie wgl do czynienia. React i Vue są prostsze w zastosowaniu?

Message broker? Pewnie to duży wstyd się przyznać, ale pierwszy raz słyszę o takim pojęciu, mógłbyś jakoś rozwinąć/streścić temat?

Postaram się teraz uściślić resztę pytań:

A jak wyglądają kwestie wyboru bazy danych do takiego projektu. Wiem, że Microsoft udostępnia kilka rodzajów baz, z tego co pamiętam Developer, Express i chyba jeszcze jakieś. Czy wybór rodzaju jest jakoś kluczowy czy przełomowy w samym projekcie czy jest to stosunkowo "obojętne"? I czy sam wybór bazy Microsoftu to rozsądny wybór? Sam korzystałem z niej nie raz i bardzo cenie sobie Managment Studio.

Do tej pory zawsze wybierałem .Net Framework bez zastanowienia kiedy go wybieram. Nie bardzo myślałem nawet o .Net Core. I właśnie, kiedy .Net Core jest dobrym wyborem? Czy w takim projekcie dobrze jest na zwykłym Frameworku czy uczyć się jak rozumiem czegoś nowszego, a więc Core?

2

Do tej pory zawsze wybierałem .Net Framework bez zastanowienia kiedy go wybieram. Nie bardzo myślałem nawet o .Net Core. I właśnie, kiedy .Net Core jest dobrym wyborem? Czy w takim projekcie dobrze jest na zwykłym Frameworku czy uczyć się jak rozumiem czegoś nowszego, a więc Core?

Mam wrażenie, że w obecnej sytuacji, jeżeli nie musisz wybrać .NET Framework (bo masz jakieś biblioteki, które go wykorzystują, na przykład, albo tworzysz aplikację WinForms), to powinieneś wybrać Core. Jest nowszy, szybszy, szybciej się rozwija i ma praktycznie identyczne pokrycie dostępnych API. ASP.NET Core 3.0 będzie działać już tylko na .NET Core.

1

Czyli korzystanie z EF pozostaje, cieszy mnie to bo korzystałem z niego już nie raz i jest na prawdę przyjemny. :)

Oczywiscie, jest przyjemny, rowniez z niego korzystalem. Nie warto kierowac sie jakimis fanatycznymi opiniami ludzi nastawionych na tylko jedna technologie. Sam np. nigdy nie uzywalem dluzej NHibernate, tylko sie nim chwile pobawilem i nie podoba mi sie. Czy bede przez to go odradzal i mowil ze to zlo? Nie, niech kazdy stosuje to co mu wygodnie i najlepiej pasuje do danej sytuacji.

Ja z naszej dwójki mam subtelne doświadczenie z Angular. Angular jest aż takim kolosem? Myślałem o Angularze z racji jego połączenia z TypeScriptem, który jest według mnie bardziej przyjemny niż suchy JS, chyba że się gdzieś mylę. :P Osobiście mam doświadczenie backendowe, z frontem nie miałem prawie wgl do czynienia. React i Vue są prostsze w zastosowaniu?

Co do Angulara to nigdy z nim nie pracowalem, wiec opieram sie tylko na opiniach innych oraz tym co sam powierzchownie wyczytalem z dokumentacji. Ogolnie to coraz wiecej zainteresowania maja wlasnie lzejsze technologie, mniej narzucajace programiscie i posiadajace mniejszy prog wejscia. Nie ma przeszkod aby korzystac z TS wraz z React/Vue, chociaz fakt ze w Angular jest to naturalnie zintegrowane. Najlepiej jak sami sobie poczytacie o tych trzech najwiekszych tachnologiach frontendowych i razem zdecydujecie.

Message broker? Pewnie to duży wstyd się przyznać, ale pierwszy raz słyszę o takim pojęciu, mógłbyś jakoś rozwinąć/streścić temat?

Zaden wstyd. Stosunkowo niewiele osob o tym slyszalo, mniej zaglebialo temat a jeszcze mniej stosuje. Zaznaczam ze zaleznie od projektu moze byc to przerost formy nad trescia, jednakze jesli zalezy Wam na napisaniu czegos ambitnego, oraz potencjalnie latwo skalowalnego to mysle ze warto to rozwazyc. Krotko mowiac, chodzi o to ze komponenty systemu komunikuja sie za pomoca wysylania wiadomosci (messages), ktore nastepnie umieszczane sa w kolejce i "zdejmowane" z tej kolejki poprzez konsumenty (np. windows service). Skalowlnosc mozna zapewnic zwiekszajac liczbe konsumentow (instancje tego samego windows service- competing consumers). Masz kolejke z wiadomosciami, oraz kilka uruchomionych konsumentow. Najlepiej samemu poczytac:

Asynchronous message-based communication
Competing Consumers pattern
RabbitMQ
MassTransit

A jak wyglądają kwestie wyboru bazy danych do takiego projektu. Wiem, że Microsoft udostępnia kilka rodzajów baz, z tego co pamiętam Developer, Express i chyba jeszcze jakieś. Czy wybór rodzaju jest jakoś kluczowy czy przełomowy w samym projekcie czy jest to stosunkowo "obojętne"? I czy sam wybór bazy Microsoftu to rozsądny wybór? Sam korzystałem z niej nie raz i bardzo cenie sobie Managment Studio.

Jest jak najbardziej normalnym wyborem. Licencja Developer pozwala po prostu na korzystanie z pelnego pakietu (chyba Enterprise jesli sie nie myle) nie-produkcyjnie. SQL Server Express to po prostu wersja darmowa, warto poczytac o ograniczeniach ale mysle ze dla Waszego projektu w zupelnosci wystarczy. Express jest rowniez uzywany w produkcji, i sprawdza sie.

Do tej pory zawsze wybierałem .Net Framework bez zastanowienia kiedy go wybieram. Nie bardzo myślałem nawet o .Net Core. I właśnie, kiedy .Net Core jest dobrym wyborem? Czy w takim projekcie dobrze jest na zwykłym Frameworku czy uczyć się jak rozumiem czegoś nowszego, a więc Core?

Popieram to co kolega wyzej pisal. Nie zastanawiac sie tylko isc w Core.

0

Z tego co widzę to pośrednio słyszałem o "Message broker", bo głośno o tym ostatnio w pracy, szykuje się rewolucja! :P

Jeśli ktoś ma jakieś porady czy opinie, to chętnie przeczytam nie wstydźcie się. :D

Mam teraz pytanie co do materiałów do nauki. Jestem świadomy, że najlepiej po prostu siadać i pisać kod, nie mniej poszukuję jakiś kursów/materiałów/artykułów godnych uwagi do takich tematów jak:
-.Net Core MVC
-Angular
-TypeScript
-Message broker

Polecacie coś? Udemy też wchodzi w grę jeśli ceny nie będą zbyt ogromne. ;)

0

Jest sporo darmowych materialow, zalezy czy wolicie artykuly czy tez filmy. Takie pierwsze ktore przychodza mi do glowy:

ASP.Net Core (w tym i MVC)
MassTransit - naprawde warto uwaznie przeczytac, w tym poprzednie wymienione artykuly

0

Osobiście poszperałem trochę na Udemy z tego co widzę jest jakaś wyprzedaż, wpadły mi w oko te dwa kursy:
Angular
ASP .Net Core

Domyślam się, że nie miałem z nimi do czynienia, ale czy mógłbyś rzucić okiem? :)

0

Jesli mialbym wybierac to kurs po angielsku i taki ktory przedstawia oba zagadnienia (Angular i ASP) razem, a wiec wybor padl by na ten drugi.

0

Serverless microservices, komunikacja po service bus i może być front w react :P
Zrób coś z użyciem tego

0

Hej, podczas robienia jednego z kupionych kursów spotkałem się rzecz jasna z EF, ale w innym podejściu, a więc Code First. Wcześniej sądziłem, że EF służy raczej do generowania modeli z gotowej DB i dostępu do niej i teraz kieruję do Was pytanie. Jakie podejście jest lepsze? Code First vs DB First? Moglibyście przedstawić jakieś wady i zalety obu rozwiązań? Która z praktyk jest bardziej zalecana? Osobiście wydaje mi się, że Code First nie mniej wydaje się to trudniejszy orzech do zgryzienia. :)

1

Jeśli nie masz istniejącej bazy danych którą musisz wspierać to wybierz Code First. Nie wiem czemu wydaje Ci się trudniejsze, jest właśnie na odwrót. EF potrafi nawet samo za Ciebie stworzyć bazę, masz wbudowane migracje za pomocą których możesz aktualizować bazę lub generować skrypty aktualizujące.

0

Głównie pewnie z powodu, że jak już korzystałem z EF do z podejściem DB First :D

A teraz takie pytanie mniej techniczne, ale czy macie jakieś materiały godne polecenia do projektowania samego systemu? W jaki sposób i na jakiej zasadzie powinno to przebiegać, czy sam projekt był zrobiony rozsądnie i nie był stratą czasu i by ostatecznie był realnie wykonalny? :D

0

Poczytaj sobie o Code First, zrob jakis prosty tutorial i sam zobaczysz ze jest to naprawde proste. Ja nawet nie pamietam jak sie robi Database First, musialem tego uzywac tylko okazjonalnie przy wsparciu istniejacego systemu. Co do materialow ogolnych to moze cos od Microsoftu? Np. Architecting Modern Web Applications with ASP.NET Core and Azure. Dostepne online oraz do sciagniecia- za darmo. Do tego przykladowy kod aplikacji. Nie daj sie zwiesc Azure w nazwie- sam material traktuje nie tylko o Azure.

1 użytkowników online, w tym zalogowanych: 0, gości: 1