2008-11-21 6 views
7

Ostatnio dużo mówiłem o asp.net MVC, ale nie natknąłem się na wyraźny lub nieodparty opis, kiedy, gdzie i dlaczego chciałbym go użyć na WebForms.Kiedy i dlaczego powinienem wziąć pod uwagę asp.net MVC?

Powiedzmy, że chciałem zbudować małą aplikację internetową, która pozwala osobie reklamować niektóre przedmioty online. Strona będzie mieć 4 przypadki użycia:

  • Szukaj ogłoszenia o
  • Zobacz listę
  • Zobacz artykuł
  • Umieść ogłoszenie

Załóżmy:

  • jestem niezbyt zainteresowany jednostką testującą mój kontroler. Strona albo wyrenderuje listę pozycji poprawnie, albo nie będzie.
  • Interesuje mnie większa kontrola nad znacznikami HTML.
  • Nie jestem zainteresowany wykorzystaniem najnowszej technologii buzz tylko ze względu na jej działanie.
  • Jestem zainteresowany wykorzystaniem narzędzia, które najlepiej pasuje do danego zadania pod względem produktywności, wydajności, łatwości konserwacji. & Prostota rozwiązania końcowego.
  • Nie chcę ominąć wielu niuansów, aby uzyskać coś prostego do pracy.

więc moje pytania są zatem:

  • Jakie są podstawowe różnice między tymi dwoma modelami?
  • W którym scenariuszu jest lepszy od drugiego?
  • Jakie są pułapek z ASP.NET MVC (Jestem świadom pułapek z WebForms)
  • Dla naszej przykładowej aplikacji, co chciałbym uzyskać przy użyciu ASP.NET MVC zamiast WebForms?
  • Dla naszej przykładowej aplikacji, co bym stracił przy użyciu asp.net MVC zamiast WebForms?
  • Czy można mieszać i łączyć modele w ramach tej samej małej aplikacji?

Dziękuję każdemu, kto poświęca czas na udzielenie odpowiedzi.

Odpowiedz

10
  • Jakie są podstawowe różnice między tymi dwoma modelami?

WebForms próbują naśladować rozwój WinForms, pozwalając na ponowne wiele gotowych kontroli, a przez fałszowanie stanu aplikacji internetowych za pomocą ukrytego mechanizmu _VIEWSTATE.

MVC jest wzór zaprojektowany, aby pomóc Ci oddzielić danych (model), logiki biznesowej (Controller) i prezentacji (Widok). Jest bardziej zgodny z prawdziwą naturą sieci: RESTful URLs, stateless.

  • W której scenariusz jest lepszy niż inne?

Moim zdaniem, dla aplikacji intranetowej podejmowania ciężkich wykorzystanie kontroli, WebForms mogą być przydatne w zmniejszaniu czasu rozwoju, ponieważ dzięki projektanta można stworzyć swój interfejs użytkownika bardzo szybko i niech ramy zarządzania aplikacji stan automatycznie.

Dla każdego innego projektu, zwłaszcza publicznie dostępnej stronie internetowej, a nawet mały, myślę MVC jest do zrobienia.

  • Co to są gotchas z boleniem.MVC netto (jestem świadom pułapek z WebForms)

powiedziałbym jest jakaś krzywa uczenia się, aby w pełni zrozumieć wzorca MVC i jego moc. Ponadto, ponieważ framework jest nadal w wersji BETA, możesz spodziewać się, że interfejs API pojawi się kilka drobnych zmian przed wydaniem.

Ponieważ JavaScript nie jest ukryty przed użytkownikiem w MVC, to również potrzebuje trochę czasu, aby dowiedzieć się, jeśli nie jesteś zaznajomiony z nim. jQuery znacznie to upraszcza.

  • Dla naszej przykładowej aplikacji, co chciałbym uzyskać przy użyciu ASP.NET MVC zamiast WebForms?

Można by uzyskać lepszą kontrolę nad znacznikami HTML i zachowania JavaScript, czystszego separacji obawy i niektórych łatwo sprawdzalne kodzie (nawet jeśli nie wydaje się zainteresowany w testowaniu jednostkowym niego).

  • Dla naszej przykładowej aplikacji, co stracę przy użyciu ASP.NET MVC zamiast WebForms?

Straciłbyś "przeciągnij i upuść" szybki sposób tworzenia stron i zarządzania stanem aplikacji.

  • Czy to możliwe, aby wymieszać i modele mecz w tej samej małej aplikacji?

Pod pewnymi względami tak, wydaje się.

Polecam oglądając this talk przez Phila Haacka, który daje dobry przegląd ram i zachęca Jeffa Atwooda do porozmawiania o tym, jak zbudował StackOverflow z nim.

Wyjaśnia, jak SO używa niektórych formantów WebForms dla CAPTCHA, które wyświetlają się w widoku.

+0

Doskonała odpowiedź !! –

2
  1. Największa różnica między ASPNET MVC i WebForms to cykl życia strony, bez trudnych (niepotrzebnych) postbacków, czyste kodowanie, enz.
  2. Nie ma reguł dla tego
  3. ???
  4. REST-pełny www, Oddzielenie logiki
  5. wsparcie Design-czas, nie można używać webcontrols osób trzecich
  6. Proszę nie mieszać je ze sobą.Jeśli naprawdę chcesz użyć modelu WebForms można użyć wzorca MVP, Billy McCafferty pisał artykuły exellent tego wzorca projektowego

Jestem przebudowy niektóre z moich aplikacji z MVP-wzorca MVC-do wzorca, a nie dlatego, MVC jest lepszy, ale chciałbym użyć najnowszych technik oferowanych przez MS (sam wzór jest dość stary).

3

Podstawową różnicą jest to, że MVC bardziej przypomina "zwykły" rozwój sieci, z którego korzysta reszta świata programowania, podczas gdy standardowy ASP.NET został zaprojektowany tak, aby ułatwić programistom tworzenie aplikacji internetowych. Nauczyłem programowania przez uczenie się Ruby on Rails, a MVC wydaje się być wersją Railsową .NET.

MVC jest znacznie bardziej zorientowany na zgodność ze standardami, dyskretny javascript i rozdzielenie problemów niż zwykły ASP.NET. Musisz zrozumieć, jak HTML i CSS współpracują ze sobą. Dowiesz się dużo więcej javascriptu podczas opanowywania MVC. Jedną z największych zalet MVC jest dla mnie to, że możesz używać jQuery do wykonywania niesamowitych rzeczy AJAX łatwiej i LEPIEJ niż w zwykłym ASP.NET.

Jeśli dopiero zaczynasz naukę programowania, zdecydowanie zachęcam do nauki MVC. Będziesz mógł przenieść co najmniej część twoich nowych umiejętności do innych frameworków w przyszłości.

Jeśli szukasz którego można nauczyć się szybko dostać pracę tworzenie stron internetowych, to będę musiał mocno sugerują ASP.NET.

Po MVC jest RTM'd myślę widzimy powolny i równomierny krzywą adopcji i jak dojrzewa MVC może stać się podstawowym framework do tworzenia stron z ASP.NET. Mam nadzieję, że przynajmniej!

Powiązane problemy