2010-08-11 2 views
2

Я пришел из классического ASP-фона, делал его годами и годами, и переход на .net был просрочен, поэтому я начал изучать .net.Переход от классического ASP к ASP.net

Это очень по-другому, если не сказать больше! Он структурирован много по-другому и, похоже, работает по-другому, это огромный прыжок вверх. Тем не менее, мне кажется, что он все более и более потрясающий.

У меня был быстрый поиск и я не могу найти какие-либо схожие вопросы, поэтому я создал этот файл в качестве вики-сообщества, если бы вы могли перечислить подводные камни/различия или все, что, по вашему мнению, уместно в ваших ответах может быть полезно многим людям.

Итак, вкратце, Каковы основные отличия/переходы от классического ASP к ASP.net? (C# или VB.net). Пожалуйста, не просто перечисляйте языковые функции .net, это должно быть в контексте того, что кто-то переезжает от одного к другому.

+0

Большой вопрос - веб-формы ASP.NET или ASP.NET MVC. Или оба? –

+0

Веб-формы, которые я имел в виду, я мало знаю о MVC! Но MVC помеченные ответы также приветствуются. –

+1

Пожалуйста, примите мой совет: прыгайте прямо в MVC. Хотелось бы, чтобы это было изобретено до этого и спасло меня от головных болей webForms, пытающихся сделать все по-другому с их собственными средствами управления.Вы узнаете гораздо быстрее. –

ответ

1

Я предполагаю, что вы движетесь к WebForms (но вы могли бы рассмотреть, чтобы перейти прямо к MVC или Silverlight, как WebForms на своем выходе)

FWIW, когда я сделал движение было следующее, вероятно, Основные подводные камни:

  • поддавайтесь искушению использовать классические конвенции <% =, #include
  • поддавайтесь искушению отредактировать файл ASPX вручную - попробуйте просто использовать дизайнер
  • Вам нужно будет ускориться с OO, если вы еще этого не сделали
  • Для WebForms вам нужно будет использовать подход VB6/WinForms к обработчикам кнопок и т. Д.
  • Используйте элементы управления ASP.NET - вы не нужно суетиться микроуровень состояния органов управления, как вы делали в ASP классического

Возьми в некоторых видео: http://www.asp.net/general/videos#Videos%20on%20Migrating%20to%20ASP.NET

0

Включает

Хорошего дизайна от Классического ASP приходит от использования включаемых файлов на модули кода.

В .net это невозможно, так как оно основано на ориентированном на объект иерати.

+1

Вы действительно должны отказаться от серверной части, если не по какой-либо другой причине, чем Intellisense, когда вы редактируете файл include без объявления '@ Page' (если вы работаете с Visual Studio, то есть). –

0

Если вы прыгаете в Webform, прочитайте и узнайте об ASP.NET ViewState; как страница остается на обратной стороне. Если вы собираетесь ошибаться в ASP.NET MVC, прочитайте о контроллерах View Model. В обеих рамках ASP.NET является объектно-ориентированным языком, где классика не является.

+0

C# и VB.NET являются объектно-ориентированными языками; ASP.NET сама по себе является основой. –

+0

правильный, моя ошибка. – gnome

1

В вашей любимой поисковой системе есть куча полезных статей. Вам нужно будет ответить на некоторые вопросы для себя, чтобы начать (http://www.google.co.uk/#hl=en&source=hp&q=transition+from+asp+to+asp.net&aq=f&aqi=&aql=&oq=&gs_rfai=&fp=a53e9ae07f1cc2a8)

Вы собираетесь использовать ASP.NET Web Forms или ASP.NET MVC? В этом блоге есть хорошая статья о разнице (http://weblogs.asp.net/shijuvarghese/archive/2008/07/09/asp-net-mvc-vs-asp-net-web-form.aspx). Оба имеют ценность для своей цели.

Вы собираетесь попытаться перенести существующий код или сделать чистый перерыв?

Razor - это новый синтаксис для ASP.NET, который я очень рекомендую. Это очень естественно сочетает синтаксис кода html и C#. Этот блог (http://blogs.msdn.com/b/davidebb/archive/2010/07/07/how-webmatrix-razor-asp-net-web-pages-and-mvc-fit-together.aspx) имеет хороший пост в одном из последних стеков для MS, включая Razor.

Изучите объектно-ориентированное программирование. Это очень важно.

Получено http://www.asp.net Это отличный ресурс. используйте учебники и прочитайте код других людей.

EDIT: Я забыл упомянуть, если вы собираетесь сосредоточиться на ASP.NET WebForms, изучите жизненный цикл страницы, так как не понимая этого, это приводит к общему классу ошибок вокруг динамических элементов управления.http://msdn.microsoft.com/en-us/library/ms178472.aspx

1

Я сделал то же самое совсем еще несколько лет назад. Я не могу сказать, что я обнаружил «подводные камни»; на самом деле довольно много раздражающих thngs, что всегда, используемый, чтобы поймать меня в классическом ASP, просто исчез, когда я перешел на ASP.NET.

Я думаю, что самая большая разница заключалась в переходе от ASP/JScript к строго типизированному C#. Это заставило меня быть менее ленивым при объявлении переменных, и в результате я столкнулся с гораздо меньшими ошибками, связанными с преобразованием области или типа данных. Написание многоразового, объектно-ориентированного кода также намного проще в C#.

Если вы просто попадаете в него, я бы посоветовал (и это - это только мое мнение), чтобы легко удалиться от веб-форм ASP.NET и просто перейти прямо в MVC. Требуется некоторое время, чтобы перенастроить ваш мозг для работы в парадигме MVC, но как только он «нажимает», все это просто делает общий смысл.

Мы недавно получили this book в моем офисе, и я рекомендую его; не позволяйте бит «Pro» отпугнуть вас, он начинается прямо из основ и очень прост и понятен.

+0

Я, кажется, случайно начал развиваться в веб-формах, я видел, как упоминался MVC, но не нашел его вообще, насколько плохо это использовать webforms? Я не понимал, что такой раскол. –

+0

Да, это совершенно другой способ работы, но это позволяет значительно облегчить разделение проблем. В Web-формах ничего нет _terrible_, просто MVC кажется намного более чистым для меня, не говоря уже о более проверяемом. Посмотрите на [эту статью] (http://msdn.microsoft.com/en-us/magazine/dd942833.aspx) и [эту статью] (http://www.devcurry.com/2009/09/difference -between-aspnet-webforms-and.html) для некоторых плюсов и минусов обоих подходов. –

+0

Спасибо, я собираюсь придерживаться веб-форм для этого проекта, а теперь перейдем к MVC позднее. –

1

Когда я начал работать в классическом ASP, у меня не было другого опыта программирования. Я никогда не строил ничего в формах окон или консольных приложениях. Итак, когда я перешел на asp.net, мне потребовалось некоторое время, чтобы выяснить, что происходит с кодом и управлять обработчиками событий. В моих первых нескольких проектах я пытался кодировать классического ASP-программиста. Я бы глупостей вдоль линий ...

public void Page_Load(object sender, EventArgs e) { 
    if (Request.ServerVariables["REQUEST_METHOD"] == "POST") { 
     string myHtmlOutput = ""; 
     string firstName = ""; 
     if (Request.Form["ctl0_MainContent_FirstName"] != null) { 
     firstName = Convert.ToString(Request.Form["ctl0_MainContent_FirstName"]); 
     myHtmlOutput = "<h1>Hello "+ firstName +"</h1>"; 

     Response.Write(myHtmlOutput); 
     } 
    } 
} 

Вместо пути WebForms ...

public void Button1_Click(object sender, EventArgs e) { 
    if (!string.IsNullOrEmpty(FirstName.Text)) { 
     MessageLiteral.Text = string.Format("Hello {0}", FirstName.Text); 
    } 
} 

Я искренне считаю, что если asp.net MVC был рядом, когда я переехал из Классический ASP, мне было бы легче получить его, потому что мне не пришлось бы тратить столько времени на изучение абстракций asp.net.

Смежные вопросы