Каков Ваш опыт с Windows Workflow Foundation?

Исключение нулевого указателя - это индикатор того, что вы используете объект, не инициализируя его.

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

public class Student {

    private int id;

    public int getId() {
        return this.id;
    }

    public setId(int newId) {
        this.id = newId;
    }
}

Приведенный ниже код дает вам исключение с нулевым указателем.

public class School {

    Student obj_Student;

    public School() {
        try {
            obj_Student.getId();
        }
        catch(Exception e) {
            System.out.println("Null Pointer ");
        }
    }
}

Поскольку вы используете Obj_Student, но вы забыли инициализировать его, как в правильном коде, показанном ниже:

public class School {

    Student obj_Student;

    public School() {
        try {
            obj_Student = new Student();
            obj_Student.setId(12);
            obj_Student.getId();
        }
        catch(Exception e) {
            System.out.println("Null Pointer ");
        }
    }
}
34
задан Panos 12 March 2012 в 09:37
поделиться

12 ответов

Windows Workflow Foundation является очень способным продуктом, но все еще очень в его 1-й версии :-(

главные причины для использования включают:

  1. Визуально бизнес-требования моделирования.
  2. Разделение Вашей бизнес-логики из бизнес-правил и воплощения правил как XML-файлы.
  3. Seperating Ваш бизнес вытекают из Вас приложение путем воплощения рабочих процессов как XML-файлов.
  4. Создающие длительные процессы с автоматической способностью реагировать, если ничего не происходило в течение некоторого длительного промежутка времени. Например, счет, не будучи заплаченным.
  5. Автоматическая персистентность длительных рабочих процессов подавить использование ресурсов и позволить процессу и/или машине перезапускать.
  6. Автоматическое отслеживание помощи рабочих процессов с бизнес-требованиями.

WF стал библиотекой/платформой поэтому большую часть времени, необходимо записать хост, который инстанцирует времени выполнения WF. Тем не менее использование WCF, размещенной в IIS, является эффективным решением и сохраняет большую работу. Однако связь WCF/WF менее, чем прекрасна и нуждается в некоторой серьезной работе. Посмотрите здесь http://msmvps.com/blogs/theproblemsolver/archive/2008/08/06/using-a-transactionscopeactivity-with-a-wcf-receiveactivity.aspx для получения дополнительной информации. Ожидайте довольно много изменений/улучшений в следующей версии.

WF (и WCF) являются довольно центральными к большому новому выходу материала из Microsoft. Можно ожидать некоторые интересные объявления во время PDC.

BTW, поддерживающий несколько версий в рабочем состоянии рабочего процесса, берет немного работы, но это - главным образом стандартная.NET. Я просто сделал серию сообщений в блоге на предмете, запускающемся здесь: http://msmvps.com/blogs/theproblemsolver/archive/2008/09/10/versioning-long-running-workfows.aspx

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

22
ответ дан 27 November 2019 в 16:27
поделиться

Связанный вопрос: , Когда использовать Windows Workflow Foundation? Мой ответ там:

Вам, возможно, понадобится WF, только если любое следующее верно:

  1. у Вас есть продолжительный процесс.
  2. у Вас есть процесс, который часто изменяется.
  3. Вы хотите визуальную модель процесса.

для получения дополнительной информации, см. сообщение Paul Andrew: , Что использовать Windows Workflow Foundation для ?

не путайте или связывайте WF с визуальным программированием любого вида. Это неправильно и может привести к очень плохой архитектуре/проектным решениям.

Так, если у Вас есть такие требования, затем WF является хорошим кандидатом. Конечно, это относительно сложно, но упомяните, что проблемы, который пытается решить, также сложны (и иногда очень сложны). По моему скромному мнению, это очень сложно, например, для обезвоживания/повторно гидратирования объектов, которые имеют присоединенные обработчики событий (с событиями, которые могут быть инициированы, когда объект не находится в памяти).

я не могу судить то, что Вы подразумеваете "под малым и средним проектом", но в целом я сказал бы что, если Ваш проект имеет по крайней мере два требования из вышеупомянутого списка, то можно рассмотреть WF как решение.

13
ответ дан 27 November 2019 в 16:27
поделиться

Мы использовали WF в большом выходе приложение SharePoint, и я могу сказать, что это в порядке. Это имеет много силы и гибкости. и, как Kevin упоминает, однажды Вы grok базовое понятие рабочих процессов, можно сделать в значительной степени что-либо, что Вы хотите с ним.

, С другой стороны, это имеет некоторые действительно серьезные проблемы, как отсутствие управления версиями, которое может действительно повредить Ваше приложение в будущем. Мы были вынуждены развернуть до 3 параллельных версий того же рабочего процесса, названного xxx-v1, xxx-v2, и xxx-v3, чтобы поддерживать более старые экземпляры в рабочем состоянии и иметь новые экземпляры используют обновленные версии. Реальная боль в заднице. О, и существуют также некоторые действительно неинтуитивные понятия там (маркеры корреляции, wtf??)

10
ответ дан 27 November 2019 в 16:27
поделиться

Я считаю MS WF как библиотеку рабочего процесса низкого уровня, а не полностью оперенный продукт рабочего процесса предприятия, такой как K2. Это позволит Вам создать рабочий процесс, включил приложение, но не сам по себе приложение рабочего процесса. Мой опыт его в этой способности был положителен, хотя мы должны были создать много нашей собственной инфраструктуры вокруг этого (pub/sub платформа, менеджер по времени жизни рабочего процесса и т.д.). Много документации там довольно упрощенно и не касается создания приложения рабочего процесса предприятия на основе MS WF.

4
ответ дан 27 November 2019 в 16:27
поделиться

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

, Хотя это имело успех, было столько проблем и кризиса все время. И это привычка, стоящая проблемы любым меньшим проектам размера.

5
ответ дан 27 November 2019 в 16:27
поделиться

У нас был проект на работе, что я был вовлечен в использование Рабочих процессов. Идея (от управления), был то, что нас программисты запишут Операции Рабочего процесса наряду с "механизмом" и платформой. Затем непрограммисты заботились бы обо всем остальные путем компиляции их собственных Рабочих процессов в dlls, который автоматически загрузит механизм.

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

конечный результат состоял в том, что мы не могли сделать модули Рабочего процесса достаточно универсальными, чтобы кто-либо еще использовал. Таким образом, программисты были теми, кто был вынужден работать с Рабочими процессами, и все Рабочие процессы сделали был, стоят на пути.

9
ответ дан 27 November 2019 в 16:27
поделиться

Это действительно зависит от того, что Вы хотите сделать с ним. Я только использовал его немного, но по сравнению с более сформировавшимися продуктами как MetaStorm (я знаю технически, что это - BPM, но существует все еще компонент рабочего процесса), Хориосамописец Процесса и IBM рабочий процесс MQ, нет никакого сравнения. Это является просто не достаточно сформировавшимся. С другой стороны, это свободно, где другие не и могли, вероятно, сделать задание. Я не знаю, поместил ли я многомиллионную операцию в него, но с меньшими, я дал бы ему другой выстрел. Реальное препятствие, с которым Вы собираетесь столкнуться, является изменением в мыслительном процессе, которого оно требует. Если у Вас нет разработчиков, которые работали с системами состояния, прежде чем это сможет быть реальным препятствием.

2
ответ дан 27 November 2019 в 16:27
поделиться

Никогда не пробовал WFF, но я не забываю читать эта статья о WFF Leon Bambrick , где он в основном говорит, что целый жанр инструментов разработки программного обеспечения не имеет смысла. Мог бы помочь Вам решить так или иначе.

0
ответ дан 27 November 2019 в 16:27
поделиться

Brian, я не могу ответить на Ваш комментарий, но так или иначе, управлением версиями, которое я означаю вносить изменениями в базовый код рабочего процесса, уже не повредив рабочие экземпляры, и корректно применяя обновления существующих рабочих процессов. Я не уверен в 'запасе' WF, но по крайней мере в среде SharePoint нет никакого понятия версий рабочего процесса, таким образом, новые версии должны быть развернуты как совершенно другие рабочие процессы, который становится кошмаром обслуживания. Это не имеет никакого отношения к 'регидратации', регидратация является процессом, которым Вы возвращаете 'бездействующий' рабочий процесс действию после некоторого события или изменения в состоянии. Это обрабатывается прозрачно временем выполнения рабочего процесса.

1
ответ дан 27 November 2019 в 16:27
поделиться

WF ist интегрированный в SharePoint (WSS 3.0), и я создал довольно много рабочих процессов для различных Веб-сайтов SharePoint, таким образом, я могу сказать о своем опыте WF в SharePoint. По сравнению с другими платформами рабочего процесса очки WF хорошо. Это стабильно (я не столкнулся ни с какими таинственными ошибками), рабочие процессы довольно легко разработать (благодарите разработчику рабочего процесса в Visual Studio), и можно использовать не только рабочие процессы последовательного, но также и конечного автомата.

Это не прекрасно, конечно, и разработчику будет определенно требоваться некоторое время для понимания понятия (т.е. Модель Действия); но это определенно применимо - даже для "небольших задач".

1
ответ дан 27 November 2019 в 16:27
поделиться

Я использую Workflow 4.0 в течение последних нескольких месяцев, и, хотя меня это сильно впечатлило, мне было чрезвычайно трудно научиться.

Для самой последней версии (которая поставляется с .NET 4.0 RC) практически нет документации в Интернете, в каких-либо книгах или нет доступных учебных курсов.Я нашел только статьи, относящиеся к ныне несуществующей версии 3.0. Даже документация MSDN поверхностна.

Разработчик рабочего процесса не настолько интуитивно понятен, как должен быть, поэтому учиться очень сложно. Мне приходилось полагаться на ответы одного человека на StackOverflow (кстати, спасибо, Морис!) - и без его помощи я был бы нафарширован.

Таким образом, я думаю, что у него есть потенциал, но вы были бы совершенно безумны, если бы его изучили - подождите, пока появятся дополнительные тренинги, документация и книги, иначе вы начнете заниматься этим вслепую!

7
ответ дан 27 November 2019 в 16:27
поделиться

Трудно научиться. Довольно гибкий. Не путать с визуальным инструментом для конечных пользователей, только для программистов. Не уверен, нравится ли мне подход на основе свойств зависимости.

3
ответ дан 27 November 2019 в 16:27
поделиться
Другие вопросы по тегам:

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