Предоставляет ли Powerbuilder 12 какие-либо возможности рефакторинга?

#refactoring #powerbuilder #powerbuilder.net

#рефакторинг #powerbuilder #powerbuilder.net

Вопрос:

Перенос устаревшего кода PB на .NET era может потребовать серьезного рефакторинга, чтобы выполнить работу должным образом. Например, в нашем коде есть некоторые остатки до userobject, а также устаревшие функции, такие как MDI, PBNI и т. Д. Мне интересно, какую помощь мы получим от оболочки VS, когда дело доходит до возможностей рефакторинга — разбиения длинных функций на отдельные, поиска всех вызывающих определенную функцию или событие и т. Д.

Классическая IDE ужасна для таких задач. Упростило ли их использование VS now?

Ответ №1:

Ответы на ваши вопросы по большей части «ДА«, но не такие классные, как в Visual Studio. IDE PB работает днем и ночью лучше, чем раньше, просто не дотягивает до полной среды разработки Visual Studio IDE.

В PB встроен некоторый базовый рефакторинг, например, можно легко выполнить что-то вроде переименования функции во всем проекте. Вот результат, полученный при переименовании функции в одном из моих проектов. И у меня был открыт один из файлов, оболочка Visual Studio обнаружила его и попросила меня перезагрузить локальный файл.

  Replace all "ConnectDB", "DBConnect", Subfolders, Find Results 1, "Entire Solution"
 H:DevPBWSpb_data.pblpb_data.sra(42,18):liRtn = gnv_data.DBConnect()
 H:DevPBWSpb_data.pbln_data_factory.sru(29,25):public function integer DBConnect ()
 H:DevPBWSpb_data.pbln_data_factory.sru(38,14):liRowCount = DBConnect()
 H:DevPBWSpb_data.pbln_data_factory.sru(103,25):public function integer DBConnect ();

 Total replaced: 4  Matching files: 2  Total files searched: 13
  

PowerBuilder 12.5.NET имеет возможность «Перейти к —> Определению» для перехода к объявлениям функций / классов. Это не так круто, как Visual Studio, поскольку функции PowerBuilder не такие «открытые», как .NET framework, поэтому вы не можете щелкнуть правой кнопкой мыши по функции GetItemString и ожидать увидеть внутренние объявления.

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

Из положительных моментов следует отметить, что Sybase внедрила потрясающую функцию intellisense / code completion Visual Studio. Он отзывчивый, точный и предсказуемый, как при работе в среде IDE Visual Studio с C #. PB.NET функции наряду с приятными элементами оболочки Visual Studio снова делают разработку PB увлекательной.

Комментарии:

1. Это хорошие новости! Является ли функция rename, о которой вы упоминаете, простой заменой строки, или она действительно понимает тот факт, что она должна заменить определенную функцию определенного класса? А именно, если бы в вашем коде была строка «I am ConnectDB», была бы заменена часть «ConnectDB», или она была бы (правильно) оставлена как есть?