Ruby on Rails vs ASP.NET MVC 3 dla faceta .NET? [Zamknięte]


98

Jestem bardzo nowy w RoR i chcę wybierać między APS.NET MVC3 i RoR. C # z pewnością jest dla mnie łatwiejsze, ponieważ robię to od tak dawna, ale zastanawiam się, czy jest jakiś sens, aby rozważyć użycie RoR zamiast .MVC do stworzenia prawdziwej witryny internetowej?

Co jeszcze mogę uzyskać dzięki RoR, czego nie mogę uzyskać z ASP.NET MVC 3, a które warto poświęcić czas na opanowanie RoR? Myślałem, że dostępna wtyczka RoR społeczności byłaby jednym z powodów, ale nie wydaje się, aby była zorganizowana i wydaje się, że krzywa uczenia się, aby robić właściwe rzeczy, będzie tak duża, że ​​praktycznie nie zaoszczędzi to dużo czasu nowicjuszowi! Mogę się mylić i naprawdę doceniam twój komentarz na ten temat z życia wzięty? Pamiętaj, że nadal muszę się uczyć ASP.NET MVC, ale to brzmi szybko dla faceta .NET!

Co RoR może zaoferować facetowi .NET, któremu WARTO wybrać RoR przez ASP.NET MVC 3? i proszę o praktyczne porady! :)


11
Dlaczego to pytanie jest nie na temat, czy nie jest prawdziwym pytaniem? Tak czy inaczej, dodałem advicetag do pytania.
Zabba

1
@zabba, dlaczego? Wygląda na to, że nie jest tagiem.
bzlm

1
@bzlm, co to jest tag niebędący tagiem?
Zabba

2
@zabba tylko 95 pytań, brak podsumowania wiki, niejasny cel (na pytania wymagające „rady” zwykle nie można znaleźć odpowiedzi, a zatem nie są one mile widziane zgodnie ze statutem strony) itp. :)
bzlm

3
Chill guys! W jaki sposób „jakie są wartości RoR over .NET MVC dla programisty .NET?” to nie pytanie? !!! W ogóle nie jest zablokowany na MVC i po prostu zastanawiałem się nad odpowiedzią !!
iCode,

Odpowiedzi:


71

Obie są fantastyczne i potrafią bardzo szybko osiągnąć te same cele. Jakiś czas temu nauczyłem się czegoś w świetnej książce i będzie to dla ciebie dobre: Rails for .Net Developers

Również jakiś czas temu napisałem post o przejściu z MVC do RoR .

Jeśli chodzi o porównania, oba mają mocne strony, jak zostało omówione, ale oto kilka, które mnie wyróżniają:

  • Naprawdę podoba mi się wdrażanie RoR i proste sposoby wysyłania do aktywnych witryn - żadnych skryptów do uruchomienia, wystarczy odrobina wiersza poleceń, abyś mógł zacząć działać, gdy kod zostanie faktycznie napisany. Jeśli wybierzesz RoR, ZROZUMIEĆ POLECENIA LINII POLECENIA - to znacznie ułatwi Ci życie!

  • Jak wspomniałeś, wtyczki są świetne i naprawdę można ich użyć do przyspieszenia działania.

  • Jako programista .Net, MVC będzie proste, polecam używanie Razor, ponieważ jest bardzo proste i mniej zagracone niż stary rendering bez maszynki 2.0.

  • EF4 .Net można porównać prawie bezpośrednio z ActiveRecord RoR, świetnymi systemami ORM do przetwarzania danych.

  • Zauważyłem, że dokumentacja .Net jest nieco bardziej spójna i dokładna.

  • Jednym z problemów, jakie miałem z RoR, były szybkie i drastyczne zmiany; nie tak dawno zaktualizowali do 3.0 na moim hoście, a ja nie zablokowałem mojej wersji - różne rzeczy się zepsuły, dopóki nie wymyśliłem nowych rzeczy (powinienem był zamrozić moją wersję).

Nie jest to czysty wybór - oba są świetne. Ponieważ jesteś już programistą .Net, myślę, że MVC3 byłby dobrym rozwiązaniem, ale oba są łatwe do nauczenia.


4
Teraz, gdy ASP.NET MVC jest open source, zastanawiam się, jak szybko wypełni lukę funkcji dzięki RoR. Stawiam pieniądze na MVC3 teraz, gdy społeczność programistów będzie mogła wnieść swój wkład w produkt, który jest nadal w pełni obsługiwany przez zespoły inżynierów MS.
Scott,

1
Nie jestem pewien co do RoR. Jeśli jesteś facetem .NET z C # MVC i Razor, ale uważasz MS MVC, WebAPI, WCF, EF za nieco uciążliwe i chcesz lepiej upakowanego rozwiązania ... możesz wypróbować SS servicestack.net ... To jest bezpłatne , open source, bardzo aktywna społeczność wspiera .net i mono, pełna wymiana powyższych ciężkich framworks. Osobiście bardzo mi się to podoba :)
Tom

2
Wersjonowanie Rubiego jest proste i przewidywalne, jeśli używasz Bundlera, tak jak powinieneś.
Lilith River

31

Używam i lubię oba, a problem z takim pytaniem polega na tym, że są tak różne, że można by mówić o jabłkach i pomarańczach przez cały dzień, ale ponieważ twoje pytanie jest dość niesprecyzowane, powiem tylko:

Jeśli uważasz się za „faceta .NET”, powinieneś nauczyć się języka, który działa zupełnie inaczej niż C #, a język dynamiczny, taki jak Ruby, nie jest złym miejscem do rozpoczęcia. (Inną opcją byłby język funkcjonalny, taki jak Haskell, Scala itp.)

Gdy to zrobisz, będziesz lepszym programistą i nie będziesz już musiał nazywać siebie „facetem .NET”!


3
Zgadzam się, ale moim celem jest jak najszybsze uruchomienie prawdziwej strony internetowej i poszerzanie moich horyzontów. Z pewnością cenię sobie naukę nowych wspaniałych rzeczy, takich jak Ruby, ale teraz skupiam się na wybraniu odpowiedniej opcji na ograniczony czas, który mam. A dlaczego jabłka i pomarańcze mają być platformą do tworzenia stron internetowych?
iCode

3
Szybkie uruchomienie prawdziwej witryny nie będzie problemem w Railsach. Zrób sobie przysługę: poświęć tydzień na zapoznanie się z tym samouczkiem, zanim zdecydujesz, że zaszkodzi to Twojemu rynkowi. Ryzyko polega na tym, że się czegoś nauczysz! Powodem, dla którego są „jabłkami i pomarańczami” jest to, że działają inaczej, działają na różnych platformach itp. Mają wspólną architekturę MVC i jest wyraźnie duży wpływ - głównie w jednym kierunku - ale są one bardzo inne światy. Może to być różnica poszerzająca umysł.
Craig Stuntz

Wielkie dzięki. Tak zrobię. Czy mógłbyś jeszcze skomentować, co można uzyskać dzięki Railsom, które są dostępne w .MVC z praktycznego punktu widzenia, biorąc pod uwagę, że korzystałeś z obu?
iCode

6

Nie jestem tu deweloperem RoR, ale robię Django i myślę, że to samo pytanie można by zadać również dla Django. Najważniejszą rzeczą, którą lubię Django zamiast ASP.NET MVC, jest to, że Django jest już dostarczane z ORM. Oznacza to, że większość przykładów kodu, które można znaleźć w Internecie, będzie wyglądać podobnie. Dzięki ASP.NET MVC możesz wybierać spośród wielu różnych ORMów, które mogą być dobre, ale mogą również powodować zamieszanie.

Tak jak powiedział @Craig, tak naprawdę to jabłka kontra pomarańcze. Wybrałbym ASP.NET MVC, gdybym był zobowiązany wdrożyć go na stosie MS, i używałbym Django do projektów „osobistych” lub projektów, które wymagały wdrożenia w systemie Linux.


3
Nigdy wcześniej nie korzystałem z Django. Jestem facetem od Railsów i .NET MVC. Prawie każdy samouczek .NET MVC, który widziałem, zakłada, że ​​używasz Entity Framework, a dokumentacja i samouczki w witrynie ASP.NET są bardzo dobre. Aby uwzględnić EF w projekcie MVC, po prostu wpisz polecenie w konsoli menedżera pakietów NuGet - tak jak w przypadku uzyskania klejnotu z Railsami, z wyjątkiem uzyskania odwołania do zestawu .net. IMHO .NET MVC z EF i Code First wraz z AppHarbor do wdrożenia to najbliższe dostępne środowisko Rails.
PhillipKregg

6

W swojej odpowiedzi dla Craiga Stuntza wspomniałeś, że chcesz mieć „właściwą opcję na ograniczony czas, jaki masz”

Idź z mvc3 i skup się na nauce tylko tego, zamiast nowego języka i frameworka w tym samym czasie. RoR jest świetny, ale jest jednocześnie nowym językiem, frameworkiem i IDE i jest szansa, że ​​nie zrobisz tego dobrze za pierwszym razem. Ja nie.

W witrynie asp.net znajduje się kilka naprawdę dobrych samouczków , dzięki którym można bardzo szybko rozpocząć pracę


2
Tak też myślałem i słyszę, jak ludzie mówią o tym, jak łatwo jest robić rzeczy w RoR nawet dla początkujących, ale zastanawiam się, czy to jest dla strony internetowej hello world, czy dla strony produkcyjnej w świecie rzeczywistym. Wiem, że moje pytanie jest podchwytliwe, ale coś mi mówi, że RoR to nowy język, framework i IDE jednocześnie, jak wspomniałeś, i nie może być tak szybkie w tworzeniu produktu produkcyjnego z .MVC, ale chciałem wiedzieć, czym jest .net. doświadczenia społeczności z tym? Przede wszystkim chcę wiedzieć, poza zabawą, jaki jest sens wyboru RoR zamiast .MVC3? Dzięki
iCode
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.