Функция для просмотра всей истории введенной команды (Получать-история и его псевдоним h показывают значению по умолчанию только 32 последних команды):
function ha {
Get-History -count $MaximumHistoryCount
}
Механизм рендеринга, который вы выбираете, несколько произвольный - вам придется проделать большую работу независимо от того, какой фреймворк вы используете.
Реализовав такую систему в C # и WinForms , Я могу честно сказать, что это плохой путь. Придерживайтесь WPF / Silverlight. Следуя тенденциям, напишите приложение Silverlight 4, чтобы его можно было развернуть на настольных компьютерах на нескольких платформах.
Я обнаружил, что вам нужно принять множество высокоуровневых решений, которые даже более важны, чем какой движок рендеринга вы используете. . Вот некоторые из них:
Сколько вам нужно для масштабирования и панорамирования?
Вам нужна группировка? Как только вы увидите несколько таблиц на экране, вы скоро поймете, что возможность скрыть некоторые детали полезна. Возможность группировать поля и отображать эту группу в иконической форме как «мета» позволяет пользователю избавиться от нежелательных отвлекающих факторов.
Вам нужен поиск? Снова пытаюсь бороться с проблемой «слишком много на экране», Хорошо иметь окно поиска, которое скрывает все, что не соответствует поиску (затенение, скрытие и т. д.)
Как пользователь будет взаимодействовать с клавиатурой. Поскольку ваша аудитория может включать программистов, вам нужно хорошо подумать о том, чтобы сделать все свои диаграммы доступными для редактирования только с клавиатуры. Это означает такие вещи, как интеллектуальная обработка фокуса и то, какие горячие клавиши использовать.
WPF / XAML - отличное место для начала для чего-то вроде этого. Вы захотите изучить WPF в целом, уделяя особое внимание настраиваемым элементам управления (для таблиц) и линиям рисования (для отношений).
Итак, вот основа одного на CodeProject , с исходным кодом и учебником. Для WPF.
См. Также этот вопрос .