MVC, WCF, EF, LINQ - Czy to tylko ja? [Zamknięte]

17

... czy może sprawy stają się coraz bardziej skomplikowane?

Wydaje mi się, że musisz wiedzieć wiele rzeczy, aby „właściwie” opracować aplikację internetową MS w tych dniach. W dawnych, złych czasach, kiedy nie wiedzieliśmy nic lepszego, mieliśmy tabele bazy danych, ASP.NET, ADO.NET, a ty zbudowałeś aplikację internetową przy użyciu stosunkowo prostych koncepcji.

W dzisiejszych czasach wydaje się, że istnieje wiele ram, aby „pomóc” zrobić to „dobrze”, ale nie jestem przekonany, że dzięki temu wszystko jest łatwiejsze i lepsze. Mam przeczucie, że będę w tak niewielkiej mniejszości z tym sentymentem, ale czy jest ktoś jeszcze, kto uważa, że ​​sprawy trochę się oszalały?

Czeladnik
źródło
MVC = ASP.Net, WCF = Usługi sieciowe + .Net Remoting, EF = ADO.Net, Linq zastępuje niektóre pętle foreach. Teraz jest tyle ram, co wcześniej.
vortexwolf
John, muszę „częściowo” się z tobą zgodzić. Obecnie doskonalę swoje umiejętności .Net, z pewnością jeszcze więcej do zrobienia niż 5 lat temu.
TeaDrinkingGeek
Chociaż na arenie MS może być wiele technologii DB, to pytanie jest naprawdę nie na temat na tej stronie. Naprawdę nie zadaje pytania i wpada wprost w „… do bani, mam rację?” kategoria rant wymieniona w FAQ
Walter

Odpowiedzi:

17

Wszystkie te rzeczy są opcjonalne, używaj ich, jeśli są pomocne, nie rób, jeśli nie są. To takie proste. Z pewnością możesz pisać dobre / odpowiednie aplikacje internetowe bez żadnego z tych akronimów w swoim rozwiązaniu.

Osobiście uważam, że MVC jest dość lekkim i łatwym w użyciu frameworkiem (znacznie łatwiejszym do rozpoczęcia niż formularze internetowe, imo). Podobnie LINQ zapewnia powszechny sposób sprawdzania czegokolwiek; także dobre. EF i WCF i ja mieliśmy nasze nieporozumienia, ale kiedy tak jest, nie używam ich.

Paweł
źródło
2
+1 na „użyj ich, jeśli są pomocne”. Próbuję użyć reguły, staram się zrobić 1 nową „rzecz” w każdym projekcie. Po pewnym czasie będziesz mieć doświadczenie z wieloma rzeczami i zobaczysz, że wszystko staje się łatwiejsze, gdy częściej z nich korzystasz.
Jan_V,
+1 dla ciebie również za „spróbuj zrobić 1 nową rzecz w każdym projekcie”. Lubię się uczyć i rosnąć.
Paul
1
Staram się zrobić 1 nową rzecz w każdym projekcie, ale zazwyczaj dzieje się tak, ponieważ nowa rzecz, której nauczyłem się w ostatnim projekcie, jest już przestarzała :)
gbjbaanb
9

Nie, nie bardzo. LINQ jest największą rzeczą od czasu krojenia chleba podczas interakcji z bazą danych.

Należy pamiętać, że te rzeczy są zbudowane na innych rzeczach. LINQ nie zwiększa liczby rzeczy, które musisz wiedzieć, aby stworzyć stronę internetową ASP.NET, ponieważ teraz nie musisz znać SQL. A LINQ to OO, co jest znacznie bardziej zgodne z regularnym tworzeniem aplikacji, co sprawia, że ​​jest to kompletne łatwiejsze do zrobienia niż SQL i znacznie łatwiejsze do integracji z C #.

Jeśli nie uważasz, że LINQ jest łatwiejszy niż SQL, być może powinieneś opublikować przykłady czegoś trudniejszego w nowych paradygmatach.

Co ważniejsze, wcześniej strony internetowe miały znacznie mniejszą funkcjonalność. Jak zamierzasz tworzyć nowe witryny, które działają lepiej, skalują się lepiej i oferują nowe funkcje w tym samym kodzie?

DeadMG
źródło
4
Lewe złączenie w LINQ jest trudniejsze niż w SQL. Również jeśli próbujesz rozwiązać problemy z bazą danych, i tak będziesz musiał spojrzeć na SQL. Ponadto znajomość SQL pomoże ci, jeśli kiedykolwiek będziesz chciał przejść na platformę programistyczną inną niż Microsoft.
btilly,
10
Żadna struktura ORM nie jest tak potężna jak SQL. Są zapytania, które muszę wykonać, które są prawie niemożliwe do wykonania w środowisku ORM.
bit-twiddler
1
@ bit-twiddler> tak, i dlatego większość struktur ORM pozwala również na wykonywanie surowego SQL (lub sprokerów). Możesz mieć dobrego faceta z C #, który napisze większość zapytań dla pieszych, a eksperci DB, tacy jak ty, mogą spakować dla nich twarde rzeczy w sproc lub widoku.
Paul
1
Podczas gdy projektuję bazy danych na dużą skalę i piszę mnóstwo SQL po stronie klienta i serwera, nie jestem DBA. Jestem inżynierem oprogramowania. Nigdy nie pracowałem nigdzie, gdzie twórcy oprogramowania byliby specjalistami. Każdego dnia mogę pisać kod w C, C ++, Java, Object Pascal, PL / SQL lub języku asemblera Intel (nie liczę HMTL, XML i CSS jako języków programowania, ponieważ nie są one Turing Complete). Utrzymuję również własne zestawy narzędzi oraz środowisko testowe oparte na Tomcat (wszyscy w moim zespole mają własny serwer Tomcat).
bit-twiddler
1
Pisanie LINQ do interakcji z bazą danych (LINQ-to-SQL, LINQ-to-Entities) bez znajomości SQL ...? Przepis na katastrofę.
Kirk Broadhurst,
3

Gdyby stare koncepcje, o których wspomniałeś, już nie działały, zgodziłbym się, że byłoby szalone, ale nowsze ramy są alternatywami. Ślepa akceptacja byłaby szalona. Musisz uzasadnić. Osobiście sam SQL nie stanowi dla mnie problemu. Próbując dodać niektóre funkcje współczesnych stron internetowych, formularze internetowe już go nie wycinają.

Jestem pewien, że niektórzy klasyczni ludzie ASP mieli takie samo zdanie na temat .NET, ale niewielu może nadal się z tym spierać. Zbudowałem kilka stron w klasycznej ASP i nie chciałbym wrócić.

JeffO
źródło
2

„Trochę oszalał”. Dokładnie tak opisałbym rozwiązanie DataSetADO.NET, ASP.NET. :)

Zgadzam się, że jest o wiele więcej do nauczenia się, ale każda ze wspomnianych platform poprawiła programowanie .NET.


źródło
0

Powiedziałbym, że jest to problem globalny, który może wpłynąć prawie na każdą platformę lub platformę (programistyczną). Po wydaniu nowego frameworka wygląda zwykle na mały i zwarty, ale z biegiem czasu nowe funkcje / funkcjonalność / interfejsy API są dołączane (albo przez mapę drogową / żądanie, nowe koncepcje / trendy / technologie lub po prostu przez ewolucję), staje się „rozdęty”. Zacząłeś od „jednego sposobu robienia rzeczy”, a teraz jest więcej możliwości do wyboru (i - nie wiesz / nie jesteś pewien - który wybrać). Nauczenie się nowych rzeczy może być czasochłonne, ale mogą one zaoferować Ci znacznie bardziej elastyczne / szybsze / lepsze rozwiązania tych samych problemów, które zostały wcześniej rozwiązane przez ograniczony zestaw opcji.

Kiedyś natknąłem się na zabawny cytat - „cały kod zamienia się w s #! T, mając wystarczająco dużo czasu i rąk” - który IMHO podsumowuje, dlaczego nowe rzeczy w istniejących ramach powinny się pojawić, aby wprowadzić nowe pomysły w życie i dokonać ewolucji.

yojimbo87
źródło