Как к машинам состояния записи с c#?

Почему делают формальную презентацию?

Принятие размера команды является по крайней мере двумя, сделайте реальный пример: Позвольте два (или больше, больше лучше), люди получают код, вносят их изменения и показывают то, что он берет для интеграции всех тех изменений с помощью любого не управление исходным кодом средства, которые Вы используете.

Затем делают тот же сценарий с помощью управления исходным кодом.

количество времени и усилия, которые Вы экономите при помощи управления исходным кодом, выступят за себя.

19
задан Nestor 4 October 2009 в 19:35
поделиться

2 ответа

В конечном итоге вам, вероятно, понадобится обновленный механизм WF в .NET. 4.0 , так как он намного быстрее и обеспечивает действие блок-схемы (не совсем конечный автомат, но работает для большинства сценариев) и приятный интерфейс дизайнера. Но поскольку он еще не выпущен, это, вероятно, пока не лучший ответ.

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

21
ответ дан 30 November 2019 в 04:20
поделиться

Да, Microsoft, возможно, опередила свое время с State Machine WF. Последовательные рабочие процессы воспринимаются намного лучше.

Когда мы решили использовать конечный автомат, мы свернули свой собственный. потому что мы не смогли найти приемлемую структуру с пользовательским интерфейсом. Вот наши шаги. Надеюсь, они вам помогут.

  1. Создайте интерфейс состояния:

     открытый интерфейс IApplicationState
    {
     void ClickOnAddFindings (); 
     void ClickOnViewReport ();
     //И так далее
    }
    
  2. Создайте состояния и попросите их реализовать интерфейс:

     открытый класс AddFindingsState: IApplicationState
    {
     frmMain _mForm;
    
     общедоступный AddFindingsState (frmMain mForm)
     {
     this._mForm = mForm;
     }
    
     public void ClickOnAddFindings ()
     { 
     }
    
     public void ClickOnViewReport ()
     {
     // Устанавливаем состояние
     _mForm.SetState (_mForm.GetViewTheReportState ());
     }
    }
    
  3. Создайте экземпляры состояний в главном класс.

     IApplicationState _addFindingsState;
    IApplicationState _viewTheReportState;
    _addFindingsState = новый AddFindingsState (это);
    _viewTheReportState = новый ViewTheReportState (это);
    
  4. Когда пользователь делает что-то, требующее изменения состояния, вызовите методы для установки состояния:

     _state.ClickOnAFinding ();
    

Конечно, действия будут жить в конкретном экземпляре IApplicationState.

6
ответ дан 30 November 2019 в 04:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: