Я работаю над новой архитектурой для по существу n-уровневого приложения для совместной работы (не корпоративного класса, а всего лишь небольшого проекта с потенциалом значительного роста), где я уже пытаюсь научить себя использовать IoC и, чтобы В некоторой степени, TDD, и мне интересно, в общих чертах, разумнее ли просто вручную кодировать логику рабочего процесса или мне следует углубиться в изучение и интеграцию WF4 (Windows Workflow 4.0, часть .NET 4.0), чтобы WF буквально становится контроллером всего приложения, то есть практическим C в «MVC» (не ASP.NET MVC, а скорее шаблоном). Таким образом, должен ли рабочий процесс в WF4 быть основным контроллером для расширяемого / расширяемого веб-приложения для совместной работы ? Или я задаю совершенно не тот вопрос?
Это неопределенный вопрос, я уверен, поэтому абстрактные ответы приветствуются так же, как и конкретные.
Мне известно, что WF4 - это значительная переделка и редизайн WF3, где многое из того, что сделало WF3 плохим выбором технологии, было убрано в WF4. Например, насколько я могу судить (хотя я не выглядел очень усердно и практически не освещал этот вопрос), действия WF4 более или менее тестируемы с помощью [TestMethod] и насмешкой (может кто-то из знаете, пожалуйста, подтвердите? .. тестируемость WF вызывает у нас огромное беспокойство) . У меня очень мало интереса к диаграммам или поздней загрузке через XML с WF, я предпочитаю писать конкретные объявления рабочих процессов на C #, но если рабочий процесс может быть написан кратко на скомпилированном языке и может быть тестируемым, я склонен платить внимание к этому. Так что, если есть эти улучшения, такие, как улучшение производительности, снова привлекли мое внимание к технологии, в то время как я ранее безумно относился к WF3.
Кроме того, по словам Microsoft, WF4 - это то, что Microsoft хочет стандартизировать для всех многих продуктов, управляемых рабочими процессами, в будущем, после уроков, извлеченных из использования различных технологий рабочих процессов в MS CRM, MS SharePoint и т. Д. Мне, безусловно, интересно о ставках на одну универсальную функцию, но только если реализации могут быть краткими, проверенными на типе во время компиляции, тестируемыми и поддерживаемыми.
РЕДАКТИРОВАТЬ:"Ответ" будут рассматриваться только от тех, кто знает WF4 (не WF3).