Co Wy widzicie w tym ASP.NET?

Odpowiedz Nowy wątek
2018-05-30 18:59
0

Witam wszystkich,

Mam pewne pytanie. Proszę o wyrozumiałość i szczerą odpowiedź, bowiem nurtuje mnie w mojej opinii nadmierna fascynacja NET, której nie podzielam.

Jestem programistą-freelancerem. Piszę w jednym z frameworków PHP, deko w Rubym, C# (windows forms i serwisy konsolowe, Delphi).
Umówmy się, że rozmawiamy wyłącznie o aplikacjach webowych. O ile lubię c# i NET Windows forms jest super, to jakoś za cholerę nie mogę się przemóc to ASp.NET czy core. Napiszcie mi proszę, co takiego da mi przejście na ASP.NET - najlepiej Core (siedzę na Macu), czego nie mam w PHP? Jestem programistą małych systemów (średnio 15-30 tabel w bazie relacyjnej). Uwierzcie mi - próbuję już n-ty raz się przerzucić z PHP na ASP.NET, ale nagle przychodzi zlecenie - na wczoraj i ... robię go w Windows Forms, Delphi albo PHP, bo jest szybciej i łatwo się poprawia błędy. Szczególnie gdy mam tydzień na napisanie systemu, projektuję bazę, odpalam scaffolding i w ciągu 10 minut mam działający prototyp. Na drugi dzień wysyłam klientowi prototyp aplikacji - oczywiście to uproszczenie. Za cholerę nie mogę tego samego powiedzieć o ASP.NET Core.

Dobry framework PHP załatwia automatycznie walidację danych w modelu, generuje widoki, modele, kontrolery, linki menu. Dosłownie bajka. No i nie ma problemów z bazami innymi niż MS SQL Server czy hostingiem - działa wszędzie. Jest dostępnych mnóstwo gotowych pluginów, które można podłączyć i działają. I to za darmo. PHP jest na ponad 80% aplikacji w Internecie. Do tego różnorodność frameworków... jest pluralizm, czego w mojej opinii brakuje w NET.

Druga sprawa - zarobki. Uczelnie generują setki, o ile nie tysiące programistów C#. Jest dla Netowców sporo miejsc pracy, ale czy to nie tak, że więcej programistów prędzej czy później przełoży się w końcu na mniejsze zarobki? Osobiście wolę się specjalizować w słabiej znanych narzędziach czy też - niepopularnych frameworkach. Dzięki temu mniejsza konkurencja, a ofert mnóstwo i większe pieniądze. Wg mnie doskonały produkt to Ruby Rails, ale jakże niedoceniony. Aplikacja niemal tworzy się sama, super active record w porównaniu do Entity, który mnie totalnie denerwuje. Gdzie więc widzicie plusy? Bo jest w korporacjach? Jest szybkie? Szybsze niż PHP 7 (gdy wyjdą frameworki wykorzystujące moc tej wersji)? Jeszcze jedno - gdy znajdę błąd w aplikacji PHP czy Ruby, podmieniam plik i działa - nie trzeba kompilować od nowa. Gdzie wygoda w ASP? Przecież wszystkie te rozwiązania bazują na kodzie pośrednim, po co wiec kompilacja? Jeszcze kwestia środowiska - Visual Studio jest fajne, ale totalnie toporne. Mam wrażenie, że na Mac OS działa o wiele lepiej niż na Windows.

Odpowiedzcie szczerze - co Was tak kręci w ASP.NET?

Pozdrowienia!
Leszek

edytowany 3x, ostatnio: aurel, 2018-05-30 19:08
Do tego różnorodność frameworków... jest pluralizm, czego w mojej opinii brakuje w NET. - .NOTowcy są wdzięczni Microsoftowi za to, że narzuca standardy i nie muszą się głowić, którego frameworku należy użyć. - Wibowit 2018-05-30 19:46
@Patryk27: @furious programming Przenieś ktoś do flame. ;-) - n0name_l 2018-05-30 20:41
sam się przenieś do flame :P - Wibowit 2018-05-30 20:55
Nie, to Ty się przenieś do flame-a. :P - jacek.placek 2018-05-30 23:27

Pozostało 580 znaków

2018-05-30 19:49
1

Wow

Pozostało 580 znaków

2018-05-30 19:50
0

.NETowcy są wdzięczni Microsoftowi... <-- tak, to jest dobry argument, ale czy są wdzięczni także za to, że ów "standardy" ciągle się zmieniają? .NET ma wiele wersji. Microsoft w mojej opinii nie ma pomysłu na produkt i zmienia zasady w trakcie gry.

Logika .NETowców jest taka, że trzeba być na bieżąco z tym co MS obecnie promuje, a porzucać wszystko co nie jest nowinką od MS. Przynajmniej tak wynika z narzekań na Javę, która podobnie jak PHP ma mnóstwo frameworków do wyboru i "nie wiadomo" za co się brać. No ale może pomińmy ten aspekt, by nie monopolizować nim wątku :) - Wibowit 2018-05-30 20:04
Racja. Ale java jest PRZENOŚNA, java była ZAWSZE i java jest WSZĘDZIE. A NET dopiero raczkuje na innych platformach. O ile pamiętam .Net to odpowiedź MS prawdziwą Javę, bowiem MS zrobił własną, ale zabronili im wciskania jej w Windows, bo nie była zgodna z tą prawdziwą. - lklich 2018-05-30 20:09
Mniej więcej tak. Zaczęło się od https://en.wikipedia.org/wiki/Microsoft_Java_Virtual_Machine potem był J# i C#. - Wibowit 2018-05-30 20:19
@Wibowit: microsoft dodał jedną z najważniejszych różnic pomiędzy java/c# i nagle hurr durr + zdziwienie, że ludzie tego używają? :D - WeiXiao 2018-05-30 20:48

Pozostało 580 znaków

2018-05-30 20:13
1

Dobry framework PHP załatwia automatycznie walidację danych w modelu, generuje widoki, modele, kontrolery, linki menu. Dosłownie bajka.

No popatrz, to zupełnie tak samo jak stworzenie nowego projektu MVC. Zaznacz opcje że chcesz konta użytkowników i dostajesz autoryzacje w pakiecie.

No i nie ma problemów z bazami innymi niż MS SQL Server czy hostingiem - działa wszędzie.

Że co proszę?

Jeszcze może powiesz że ASP.Net Core tylko na Windowsie działa :)


Na każdy złożony problem istnieje rozwiązanie które jest proste, szybkie i błędne.
edytowany 1x, ostatnio: Aventus, 2018-05-30 20:14

Pozostało 580 znaków

2018-05-30 20:20
0

Dzięki za odpowiedź.

to zupełnie tak samo jak stworzenie nowego projektu MVC. Zaznacz opcje że chcesz konta użytkowników i dostajesz autoryzacje w pakiecie.
Dopytam: Czy dotyczy to także ASP.NET Core? Nie wiem, czy masz doświadczenie w PHP, zatem sprecyzuję: mam tabelę powiedzmy posts. Robię scaffolding i mam gotowe: controller crud, model z walidacją oraz widoki dla każdej części CRUD. Do tego jeśli w bazie są relacje, te relacje są od razu odzwierciedlone w wygenerowanym kodzie. Ciekawi mnie - bez złośliwości, ale z ciekawości, czy ASP.NET Core tak umie z bazą powiedzmy MySQL.

Że co proszę? (odnośnie innych baz niż MS SQL)
Jeszcze może powiesz że ASP.Net Core tylko na Windowsie działa :)

Pisałem, że pracuję na Macu. Jeśli brać pod uwagę projekt Windows, to czy da się podłączyć się z np. z MySQL i np. wygenerować kod Entity dla tej bazy czy działa to wyłącznie z MS SQL? Jeśli Core jest przenośne, to czy jego funkcjonalność w Visual Studio w Mac OS jest identyczna? Czy automatycznie generuje kontrolery, modele widoki gotowe do odpalenia?

Pozdrawiam

edytowany 3x, ostatnio: Ktos, 2018-05-30 21:28
Jeszcze jedno: autoryzacja w .NET to duża zaleta tego środowiska. Szczególnie, że można w łatwy sposób wykorzystać Active Directory i np. grupy Windows/AD. To akurat lubię w .NET - lklich 2018-05-30 20:32
musisz dorobić ekstra puste linie żeby się cytowanie nie psuło - Wibowit 2018-05-30 20:53

Pozostało 580 znaków

2018-05-30 20:21
1

"Osobiście wolę się specjalizować w słabiej znanych narzędziach".
O PHP. :)

IMHO to jest najlepsze :)

A tak w ogóle to pisz sobie w czym chcesz. Z Bogiem. ;)

Racja. Źle się wyraziłem - chodziło mi o frameworki PHP. - lklich 2018-05-30 20:22
Na .net też są różne frameworki. Naprawdę. - jacek.placek 2018-05-30 20:38

Pozostało 580 znaków

2018-05-30 20:21
0

Druga sprawa - zarobki. Uczelnie generują setki, o ile nie tysiące programistów C#.

Czemu akurat C#?

Java C++ C Python?

edytowany 2x, ostatnio: WeiXiao, 2018-05-30 20:22
Racja, wiele uczelni uczy Javy, C++, C czy ulubionego języka naukowców - Pythona. Szukałem syllabusów na różnych uczeniach i w wielu znalazłem jedynie c#. Ale racja, za mała próba, by postawić jakikolwiek wniosek. Wśród moich wielu młodszych znajomych większość to entuzjaści NET. Dlatego chciałem rozpocząć dość kontrowersyjny wątek z czystej ciekawości na grupie Netowców. - lklich 2018-05-30 20:29

Pozostało 580 znaków

2018-05-30 20:47
1
lklich napisał(a):

Pisałem, że pracuję na Macu. Jeśli brać pod uwagę projekt Windows, to czy da się podłączyć się z np. z MySQL i np. wygenerować kod Entity dla tej bazy czy działa to wyłącznie z MS SQL?

Czyli że zaczynasz krytykować, wysuwać pochopne wnioski mimo że nie znasz tego oczym piszesz? Szczerze to nawet mi się nie chce Tobie tłumaczyć w takiej sytuacji. Nie lubię tego pisać ale... wygoogluj sobie.

Jeśli Core jest przenośne, to czy jego funkcjonalność w Visual Studio w Mac OS jest identyczna? Czy automatycznie generuje kontrolery, modele widoki gotowe do odpalenia?

Ale zdajesz sobie sprawę że szablony projektów nie mają nic wspólnego z frameworkami? To czy po utworzeniu projektu zostaną wygenerowane kontrolery, widoki etc. nie jest podyktowane tym czy korzystasz z ASP.Net, Laravel czy czegokolwiek innego.


Na każdy złożony problem istnieje rozwiązanie które jest proste, szybkie i błędne.

Pozostało 580 znaków

2018-05-30 22:03
0

Pisałem, że pracuję na Macu. Jeśli brać pod uwagę projekt Windows, to czy da się podłączyć się z np. z MySQL i np. wygenerować kod Entity dla tej bazy czy działa to wyłącznie z MS SQL? Jeśli Core jest przenośne, to czy jego funkcjonalność w Visual Studio w Mac OS jest identyczna? Czy automatycznie generuje kontrolery, modele widoki gotowe do odpalenia?

Tak, jest dostawca do MySQL i to działa. Tak, funkcjonalność w Visual Studio dla Mac powinna być identyczna (ale nie wiem, nie używałem go nigdy) - zresztą w ogóle nie musisz używać VS, możesz używać narzędzi konsolowych i w nim sobie generować kontrolery/widoki/całe aplikacje.

Szybsze niż PHP 7 (gdy wyjdą frameworki wykorzystujące moc tej wersji)?

Jest taka strona z benchmarkami: https://www.techempower.com/benchmarks/. Nie wiem dokładnie jak ona testuje szybkość tych aplikacji, ale np w teście Fortunes "aspnetcore-mvc-ef" jest na pozycji 152, "php-raw7" na 97, pierwszy framework PHP to nieznany mi "yaf" na pozycji 115, pierwsze znane mi frameworki PHP to pozycje 207 (CodeIgniter), 212 (Kohana) i 215 (Silex), Symfony i Zend okupują pozycje 235 i 237.

W poszczególnych testach ASP.NET Core MVC przegrywa z Symfony w "Multiple Queries" i "Data Updates", z Laravelem we wszystkich. W kategorii "plaintext" 18 pozycja, miażdży PHP (około drugiej setki), a ASP.NET MVC (zapewne 5.0) na Mono w ogóle jest na pozycji 240. Choć ten test akurat to jest nie tak bardzo istotny.

Aczkolwiek coś mi się nie podoba w tych testach, bo na przykład ASP.NET Core jest opisane, że działało na Postgres, a PHP na MySQL. Wersje też nie są podawane, nie wiem czy to był Core 2.0 czy 1.0 i tak dalej.

Jeszcze jedno - gdy znajdę błąd w aplikacji PHP czy Ruby, podmieniam plik i działa - nie trzeba kompilować od nowa. Gdzie wygoda w ASP? Przecież wszystkie te rozwiązania bazują na kodzie pośrednim, po co wiec kompilacja?

Zasadniczo też nie musisz kompilować od nowa, bo masz możliwość kompilacji w pamięci.

Jeszcze kwestia środowiska - Visual Studio jest fajne, ale totalnie toporne. Mam wrażenie, że na Mac OS działa o wiele lepiej niż na Windows.

Visual Studio for Mac to zupełnie inny produkt niż Visual Studio dla Windows (przebrandowane MonoDevelop). Nie używałem jeszcze wersji dla Mac, więc się o nim nie wypowiem - ale masz też JetBrains Rider, a do tego możesz używać tak naprawdę czegokolwiek innego, np. VS Code, Sublime Text albo Vima ;-)

Jakiś czas temu pisałem w PHP (ale to było dawno temu), ale przerzuciłem się głównie na ASP.NET - z uwagi na sam język. C# o wiele bardziej mi pasuje niż PHP. Między innymi z tego prostego względu, że PHP ssie niemiłosiernie. Ja rozumiem, frameworki, AR, scaffolding, ale ten język ma skopaną bibliotekę standardową, a nawet zwykłą wewnętrzną logikę :/ Plus silne typowanie vs ...niezbyt wiem jakie typowanie.

Pozostało 580 znaków

2018-05-30 22:32
LK
0

Dziękuję wszystkim za dyskusję. Chciałem napisać wątek tak, aby deczko Was zirytować. Podsumowując, otrzymałem mało odpowiedzi, aby wyciągnąć wnioski. Ale czy nie mogę ich wniosków? Jak mawia mój profesor, brak wniosków może stanowić istotny wniosek. Zatem postaram się je mimo wszystko wysunąć.

  1. Brak argumentów o wyższości jednego języka nad drugim świadczy o tym, że nie ma różnicy zarówno pomiędzy PHP ani C#, czy innymi, ale też pomiędzy frameworkami. Jednak MS posiada w pewien sposób narzucone środowisko (ASP.NET MVS + Razor + Entity) i faktycznie może to być zaletą, bowiem próg wejścia jest niższy niż np. w przypadku Javy.
  2. Rację zatem mają starzy deweloperzy, którzy powtarzają - słusznie zresztą: nie jest ważne, w czym piszesz. Klient i tak nie wie, co siedzi w backendzie. Ważne tylko, dobrze dobrać technologię do danego projektu - a w większych i długoterminowych projektach ma to krytyczne znaczenie.
  3. C# oferuje doskonałą integrację z systemem operacyjnym i pozwala mi na więcej, a to jednak przewaga nad PHP.
  4. C# i ASP.NET jest coraz popularniejsze, bowiem liczy się u nich na tylko szybkość pisania kodu, lecz jakość kodu, czyli późniejsza cena jego utrzymania i rozwoju kodu. Większe systemy to ogromne koszty utrzymania i rozwoju. Jeśli zatem tego typu organizacja postawi na ASP.NET i popularnego ORMa, np. Entity, Hibernate, etc., to jest to chyba lepszy pomysł, niż "setki" frameworków PHP (choć tak naprawdę liczy się tylko kilka - ale za to ich filozofia jest zupełnie odmienna). W konsekwencji wykorzystanie ASP.NET może skutkować łatwiejszym dostępem do pracowników na rynku. A kasa nie zależy od technologii, tylko od doświadczenia.
  5. Używam C# i ASP.NET, bowiem nie mogę odnaleźć się w Javie, zatem przyznaję rację Autorowi piszącemu o homogeniczności ASP.NET - to ma sens!
  6. ASP.NET Core się dynamicznie rozwija. Śledzę rozwój platformy i widzę ogromny potencjał.
  7. C# to jednak nowoczesny język, bardzo intuicyjny, elastyczny i czytelny. Uwielbiam jego składnię. Ileż razy wyłożyłem się w PHP i nie wiedziałem gdzie jest błąd...
  8. C# to web, desktop oraz mobile (Xamarin), zatem znając język, można pisać wszędzie. Ogromny potencjał.
  9. Lubię składnię Razora.
  10. Podoba mi się obsługa błędów w C#.
  11. Kompilacja ma swoje zalety - może to trywialne, ale dla mnie jest to dla jakaś ochrona kodu przed piractwem (dekompilacja to jednak pewien próg nie dla wszystkich).

P.S Szanowny Panie "Ktos" - ogromnie dziękuję za cenną odpowiedź.

Pozdrawiam wszystkich i dziękuję
Leszek

Fanatyzm w czystej postaci. Pozdrawiam i dziękuję. - Wibowit 2018-05-30 22:56
O. Ten chyba za bardzo wszedl w ITADy i jak widac tak mu juz siadlo, ze nie do odratowania... - theacid 2018-05-31 00:45
To przecież autor wątku. - somekind 2018-05-31 00:56

Pozostało 580 znaków

2018-05-30 23:25
0

Napisałbym WOW ale już było więc pozostaje.... O Jezu....

edytowany 1x, ostatnio: jacek.placek, 2018-05-30 23:25

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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