Как проще всего создать обзорную «схему» наиболее важных разделов приложения в VS 2005 (VB.net)?

Asked
Viewd112

0

Я хочу, чтобы код на нашем VB.net был немного проще и удобнее для чтения, а также упростил определение лучшего места для размещения нового фрагмента кода / функции.

По сути, я хотел бы иметь "схему" кода "длиной 10 000 футов" с гиперссылками от схемы к коду.

Он должен быть портативным, поэтому BookMarks не поможет (я думаю). Я думаю, может быть, комментарии TODO. Я хотел бы создать наш собственный комментарий в стиле Todo, например «Outline» или что-то в этом роде, но это ключевое слово также должно быть в конфигурационном файле для VS (но тогда это одно - синхронизировать).

Примерно так:

ЗАДАЧА: 1. Приложение запускается

ЗАДАЧА: 2. Прочитать настройки INI

ЗАДАЧА: 3. Показать заставку

TODO: 4: Start Lesson (это образовательная программа)

TOOO: 5: Начать упражнение

ЗАДАЧА: 6. Следующее упражнение

ЗАДАЧА: 7: Конец урока

TODO: 8: AppExit

Есть другие идеи?

4 ответов

0

Вы пробовали плагин Rock Scroll для Visual Studio? У него есть несколько функций, которые вы ищете.

  • Логический операционный «поток» или последовательность программы будет отличаться от линейного списка кода, поэтому это не дает мне того, что мне нужно. Но спасибо, похоже, классный инструмент!

    Clay Nichols01 мая 2009, 14:05
0

Это может быть очевидно, и извините, если я пропустил суть того, о чем вы просите, но хотел бы что-то вроде:

 #Region "application start"
.
.
#End region
  помочь вообще? 
  • Если вы пропустили это: http://www.devexpress.com/Products/Visual_Studio_Add-in/index.xml

    Joe Ruder19 мая 2009, 11:03
  • Извините, у меня возникли серьезные проблемы с проектом (потребность в производстве в понедельник AM) - я не нашел способа сделать это из VS - однако этот инструмент, похоже, дает некоторые надежды: http://www.syntaxia.com/Syntaxia/HomePage.php

    –Посмотрю на выходных - интересная задача -

    Joe Ruder09 мая 2009, 11:35
  • Возможно, если вы увеличите текст.

    Nick Whaley10 мая 2009, 21:29
  • Если бы мы создали группу таких регионов («Начало», «Следующее упражнение», «Конец урока» и т. д.), есть ли одно окно, в котором мы увидим список только тех регионов, которые были идентифицированы?

    Clay Nichols07 мая 2009, 01:58
0

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

Если код не поддается объектной модели с простыми, хорошими аннотациями, описывающими поток ... возможно, его нужно реорганизовать, чтобы он ПОДДАЛИСЬ этому простому представлению?

  • Определенно похоже на цель для рефакторинга. Создавая классы, которые делают взаимодействие более понятным, я определенно решу эту проблему. Если не взглянуть на кодовую базу, которую вы пытаетесь обрисовать в общих чертах, я думаю, что описание проблем с использованием диаграммы классов в качестве документации взаимодействий (возможно, интерфейсов, объявленных для предоставления только тех частей взаимодействия, которые вы хотите описать…), подчеркивает возможности для улучшения дизайна.

    Tetsujin no Oni11 мая 2009, 13:17
  • Это не сработает с нашим кодом, потому что: 1. много чего не на занятиях 2. Порядок выполнения не соответствует порядку классов (алфавитный и т. Д.). Например, у вас может быть Registration.Validate, за которым следует SplashScreen.Start, за которым следует Lesson.Begin и т. Д. 3. Невозможно «выделить» наиболее важные разделы классов. Т.е. Если вы хотите увидеть только 10 наиболее актуальных разделов кода, нет способа сделать это.

    Clay Nichols10 мая 2009, 21:30
0

Я работал над старым кодом VB6 и подумал об этом методе:

Создайте Sub CodeOutline (Order as Double, Description as string)

Затем вызовите его в разных местах кода:

 CodeOutline 1, "App Starts"
CodeOutline 2, "Load Settings"
CodeOutline 3, "Start Lession" 'This is educational software to it has "lessons and exercises"
CodeOutline 4, "Next Exercise"
CodeOutline 5, "Lesson Finished"
 

Теперь вы можете сделать несколько вещей:

  1. В приведенном выше Sub вы можете поместить оператор отладки. (У нас есть «режим отладки», в котором мы можем поместить приложение, в котором любое сообщение отладки будет отображаться как Msgox).

    CodeOutline (Order as double, descr as string)
       SysMsg cstr(Order) & " -" & Descr, Msg_Debug
    end
    
  2. Вы также можете поставить точку останова в CodeOutline

  3. Вы можете выполнить поиск в CodeOutline и получить список (часто отсортированный по параметру Order, если вы используете функцию поиска надстройки vb6 в MzTools (намного превосходящую встроенную в vb6). И результаты поиска имеют гиперссылки.

ПРИМЕР РЕЗУЛЬТАТОВ ПОИСКА

 Tutor
   Modules
      COMMON (COMMON.BAS)
         Sub Main()
            CodeOutline 1, "Startup"
            CodeOutline 6, "Checking Registration status"
            CodeOutline 4, "Loading Splash Screen"
         Public Sub CodeOutline(Order As Double, sDescription As String)
            Public Sub CodeOutline(Order As Double, sDescription As String)
            '   do a Search on CodeOutline  to see all the code outlines
            On Error GoTo CodeOutline_Error
            CodeOutline_Error:
            sysMsg "Error " & Err.Number & " (" & Err.Description & ") in procedure CodeOutline of Module COMMON" & ",," & Err.Description, MSG_LOG
      IO (IO.BAS)
         Sub APP_INITIALIZE()
            CodeOutline 2, "Initializine App"
            CodeOutline 3, "Exiting from App_initialize"
   Forms
      frmSplash (SPLASH.FRM)
         Private Sub Command2_Click(index As Integer)
            CodeOutline 4.1, "User Clicked button # " & index & " on Splash screen"
         Private Sub Form_Load()
            CodeOutline 5, "Exiting from frmSplash.Load"
         Private Sub tmrUnload_Timer()
            CodeOutline 6, "Preparing to unload the Splash Form, tmrUnload"