Выбор языка при переносе классического приложения asp на .NET - PullRequest
2 голосов
/ 07 сентября 2010

Во-первых, позвольте мне попросить вас рассмотреть этот вопрос как реальный, а не субъективный.

Это не так, вот моя ситуация: мы пытаемся перенести наше существующее классическое приложение ASP на .NET, но не уверены, какой язык использовать для нового приложения.

Я лично «предпочел бы» C #, так как я более знаком с этим языком и знаком с ним, но исходный код - VBScript, так что, возможно, будет проще перенести его на VB.NET ... Боюсь, что одной из возможных ситуаций может быть то, что код является настолько похожим между двумя вариантами VB, что мы можем в конечном итоге застрять на чем-то, что не похоже между двумя даже если он выглядит так, как он будет работать. Переход на совершенно другой язык может избежать такой ситуации.

У кого-нибудь есть практические примеры такой ситуации? Выводы, чтобы осветить проблему? Перевешивают ли потенциальные выгоды от полной смены парадигмы выгоды от высокой степени «копирования и вставки»?

Ответы [ 9 ]

4 голосов
/ 07 сентября 2010

Я использовал C # .NET и только недавно изучил VB.NET, и я должен сказать, что, как только вы обнаружите небольшие синтаксические различия, VB также станет очень хорошим языком. Так что для вас это победа.

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

3 голосов
/ 07 сентября 2010

В 10 раз больше вопросов относительно C #, чем VB.NET в StackOverflow. Похоже, это говорит о том, что есть больше разработчиков, использующих C #, или, возможно, более процветающее сообщество (или, может быть, это просто означает, что C # сложнее, или разработчики C # не знают так много).

Все преимущества, достигнутые благодаря сходству VBScript с VB.NET, значительно перевешиваются тем фактом, что вам необходимо изучать новые типы данных, пространства имен .NET и новый стиль веб-разработки с использованием веб-форм или MVC (мои предпочтения ).

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

1 голос
/ 07 сентября 2010

3 года назад мне пришлось принять то же самое решение. Я бы предпочел C #, но в конечном итоге мы выбрали VB.Net, потому что это был самый близкий язык, доступный для нашей базы разработчиков. Все разработчики имели опыт работы с VBScript, поэтому изучение VB.Net для них было проще. Хотя фреймворк - это фреймворк, а остальное - просто синтаксис и лучшие практики, вы будете удивлены различием в кривой обучения, просто добавив несколько фигурных скобок для разработчиков на VB (для разработчиков на C # обратное выглядит точно так же другой путь - зудящий палец с запятой, изучение новых ключевых слов и повторный синтаксис событий).

Вам следует взглянуть на свой пул разработчиков и подумать, что для вашей команды проще всего выполнить разработку и сопровождение. Если это не является серьезным критерием (поскольку разработчики одинаково хорошо владеют обоими), я бы рекомендовал подход на C #. Основная причина в том, что VBScript будет опираться на устаревшие методологии, но преобразование в VB.Net не обязательно вызовет исключения для этих методов, в то время как C # будет. Это также заставит вас затронуть каждый аспект вашего приложения, что (хотя и утомительно) даст вашей команде возможность оценить, как старые методы могут быть преобразованы в более эффективные процессы.

Просто имейте в виду - «простейшее», на первый взгляд, решение редко бывает.

0 голосов
/ 07 сентября 2010

Многие люди выбирают C #, потому что они думают, что VB.Net и C # отличаются друг от друга только синтаксически, что просто не соответствует действительности.VB.Net имеет лучшие функции для обработки взаимодействий, например, с COM-компонентами, такими как необязательные параметры (теперь они доступны в C # 4.0).Но есть и ловушки в построчном преобразовании VB в VB.net.Очень простой пример - индекс массива.Если я не ошибаюсь, индексы массива начинаются с 1 в vb, а в vb.net - с 0, что приводит к ужасным ошибкам. В целом, я бы определенно подумал о переходе на VB.Net, хотя я работаю в основном на C #.

0 голосов
/ 07 сентября 2010

VB.NET и C # настолько невероятно похожи, что технически выбор практически не имеет значения. В каждом языке есть свои незначительные преимущества, но в целом они практически идентичны, но с совершенно разным синтаксисом.

С учетом вышесказанного я настоятельно рекомендую перейти на C # только потому, что это язык, на котором действительно осталось сообщество .NET. В нем будет больше книг, сайтов, блогов, форумов, назовите его. Отсутствие необходимости переводить множество примеров в сети только на VB.NET делает C # лучшим выбором. Я думаю, что за 10 лет работы разработчиком .NET я мог подсчитать количество людей, с которыми я столкнулся, которые с одной стороны искренне выбрали VB.NET. Большинство людей, которые используют VB.NET, используют его в режиме «пробела» с намерением в конечном итоге перейти на C #.

0 голосов
/ 07 сентября 2010

Я был в точно этой позиции, и я призываю вас не переводить приложение двумя способами одновременно - с VB на C # и с классического ASP на ASP.NET.

В вашем коде есть фрагменты бизнес-логики, которые не нужно сильно менять, так зачем это менять?Вы гарантированно вносите новые ошибки в перевод.

Я не могу сосчитать, сколько раз я думал, «это выглядит точно так же, почему это не работает?»

Простая адаптация вашего кода к новому шаблону кода позади будет сложнойдовольно.Конечно, огромное и стоящее улучшение, но не тривиальное.

0 голосов
/ 07 сентября 2010

Почему вы переписываете приложение?Каковы краткосрочные и долгосрочные цели, которые вы надеетесь достичь с помощью этого изменения?

На высоком уровне не так уж много выбора между VB и C # - оба они являются чрезвычайно функционально насыщенными лабораториями, которые компилируются в один и тот же код IL..

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

В вашей ситуации, если вы заставите себя переписать код на другом языке, вам придется пересмотреть реализацию и, следовательно, внимательно пересмотреть необходимый код и функциональность - если у вас есть время и бюджет.Если у вас жесткие сроки, то VB будет естественным выбором, но может отменить выгоды, если переписать.

0 голосов
/ 07 сентября 2010

Разница между ASP.NET и классическим ASP-приложением уже настолько велика, что в любом случае это не будет простой порт копирования / вставки.

Так что я думаю, что вы должны выбрать язык, который вам наиболее удобен (и, как следует из другого ответа, в C # существует гораздо большее сообщество, чем в VB.Net).

0 голосов
/ 07 сентября 2010

При переходе на ASP.NET я считаю, что нужно меньше фокусироваться на самой странице и уделять больше внимания написанию бизнес-логики.Этот является субъективным вопросом , потому что разные единицы будут иметь разные результаты.

Тем не менее, всегда играйте в свои силы.Если ваша команда более знакома с C #, чем с VB.NET, используйте C #.Если они более знакомы с VB.NET, используйте VB.NET.Если у них нет реального опыта работы с .NET, то вы, вероятно, захотите создать несколько примеров проектов, с которыми они могут играть, чтобы узнать, что будет легче освоить.Вы хотите получить максимальную отдачу, а это означает, что команда должна быть максимально комфортной.

Кроме того, я бы не стал слишком беспокоиться о копировании и вставке кода, поскольку их достаточноРазличия в том, что любой профессиональный разработчик (например, тот, кто действует профессионально, а не только тот, кому платят) увидит, насколько он / она меняется, и вернется к остальной части кода, чтобы убедиться, что он работает должным образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...