У нас есть проект с более чем 500 000 строк VB.NET, которые нам нужно преобразовать в C#. Какие-либо рекомендации по использованию инструментов, основанные на опыте? Мы используем Visual Studio 2008 и ориентируемся на 3.5.
Версия 3.5 чего? .СЕТЬ?





Reflector декомпилирует IL и создаст для вас C#, это будет грубо, но неплохо для начала.
Некоторое время я использовал этот сайт для некоторых моих небольших преобразований. Это было довольно надежно.
Согласно сайту, их конвертер основан на IDE с открытым исходным кодом, который имеет встроенный конвертер, так что вы также можете попробовать "исходный сайт".
Раньше для Reflector существовала надстройка, которая создавала законченное решение Visual Studio. Однако я не знаю, доступен ли он по-прежнему или работает, теперь, когда Red Gate захватили Reflector.
SharpDevelop имеет встроенный преобразователь IIRC.
Это оценивал некоторое время назад. Вы найдете множество «бесплатных» решений, которые ужасны в крайних случаях. Этот коммерческий продукт http://www.tangiblesoftwaresolutions.com ни в коем случае не идеален; но это было лучшее, что мы могли найти в то время, проводя реальные тесты конверсии. Примечание: я говорю только как покупатель. Если кто-то нашел решение, которое в реальных условиях дает лучшую конверсию, чем это, пожалуйста, дайте мне знать.
Tangible - лучшее, что я нашел; Будьте благодарны, что вам не нужно идти другим путем, хотя это немного сложнее!
Я согласен с комментарием. У вас есть 500 000 строк проверенного кода VB.NET. Зачем вам тратить время на то, чтобы это изменить? Никто не говорит, что нельзя писать все новые компоненты на C#.
Я бы подумал о том, чтобы не беспокоиться об инструменте и вместо этого спросить себя: правда, зачем вы это делаете?
Отличный вопрос. Прямо сейчас мой день начинается с VB.Net 1.1 и заканчивается на C# 3.5. Примерно через 18 месяцев работы на двух языках и наблюдения за тем, что каждый новый проект написан на C#, стало очевидно, что наша команда быстрее кодирует на C# - но только потому, что мы тратим так много времени на его использование.
Я сам предпочитаю C#, но согласен с тем, что я бы предпочел оставить код VB.net как есть. Какую добавленную стоимость дает преобразование?
Я не могу говорить от имени Майка, но что касается меня ... У нас есть веб-приложение ASP.NET, которое изначально было написано на VB.NET, но мы некоторое время добавляли его на C#. Необходимость постоянно переключаться между ними определенно замедляет разработку, но, что еще хуже, я не могу использовать функции Visual Studio, такие как «Перейти к определению» или «Найти все ссылки», для перехода от моих файлов aspx.vb к моим файлам .cs в библиотеке.
В конце концов мы добавили второй проект веб-приложения, чтобы у нас могли быть файлы aspx с кодом C#, так что теперь у нас есть два проекта в разных папках при развертывании в одну и ту же папку на серверах (поэтому они выглядят как одно веб-приложение). Из-за этого я закончил тем, что добавил события сборки, чтобы скопировать мои файлы css на dev в нужные места, чтобы те же относительные пути работали, что и в реальном времени, но в результате мне приходится перестраивать каждый раз, когда я изменяю таблицу стилей. На этом этапе одноразовая боль, связанная с простым преобразованием всего на C#, кажется намного лучше.
Конвертер от Telerik работает хорошо.
http://converter.telerik.com/
http://converter.telerik.com/batch.aspx
Почему вы хотите преобразовать такое большое приложение между VB и C#? Эти два языка достаточно похожи внутри, и вряд ли это стоит того объема работы, который потребуется для этого.