Переход от классического ASP к ASP.net - PullRequest
2 голосов
/ 11 августа 2010

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

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

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

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

Ответы [ 6 ]

1 голос
/ 11 августа 2010

Когда я начинал в Classic ASP, у меня не было никакого другого опыта программирования.Я никогда не строил ничего в формах Windows или консольных приложениях.Итак, когда я перешел на 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 был рядомкогда я перешел с Classic ASP, мне было бы легче освоиться, потому что мне не пришлось бы тратить так много времени на изучение всех абстракций asp.net.

1 голос
/ 11 августа 2010

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

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

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

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

1 голос
/ 11 августа 2010

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

FWIW, когда я сделал ход, вероятно, были следующие основные ошибки:

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

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

1 голос
/ 11 августа 2010

В вашем любимом поисковике есть куча полезных статей. Для начала вам нужно ответить на некоторые вопросы (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 или MVC ASP.NET? В этом блоге есть хорошая статья о разнице (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

0 голосов
/ 11 августа 2010

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

0 голосов
/ 11 августа 2010

Включает

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

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

...