Business Process Programming in .Net
Vitaly Laskarzhevsky, MCPD-EA vitaly.laskarzhevsky@gmail.com
Published under license from Laskarzhevsky Software Inc.
2004 - 2025
This book is not about manufacturing programming in the sense of industrial software, where the structure of a plant — its silos, pipes, valves, actuators, and controllers — is defined in advance and operated in real time to produce a physical product. Manufacturing processes demand extreme precision. Every millisecond matters, which means that all digital components — operating systems, databases, sensors, and control logic — must operate in real time.
Business processes are fundamentally different. Compared to manufacturing, they move slowly. Decisions take hours, days, or months. Changes unfold over time rather than in milliseconds.
This book is also not about hardware programming, such as programmable logic controller (PLC) programming. PLC programming typically involves writing binary values into registers that control electronic components and physical actuators. While PLCs are widely used in both industrial and consumer equipment, this domain remains closely tied to specific hardware and real-time constraints.
This book is about business process programming.
At its core, every business exists to provide services. A business succeeds when those services are valuable and in demand. It fails when they are not. In today’s world, where markets evolve rapidly and customer expectations change constantly, maintaining that relevance is increasingly difficult.
A software product is a digital reflection of the business it supports. If the business must adapt quickly, the software that represents it must be able to adapt as well. A modern software product cannot be designed as a rigid, monolithic solution that only supports today’s way of working — even if that way is currently successful. When software cannot be adjusted in time to reflect new market realities, the consequences can be severe, including the failure of the business itself.
Instead of monolithic design, modern software products should be assembled from small, independent building blocks — like Lego pieces — each responsible for a narrowly defined part of the overall functionality. When market conditions change, these building blocks can be rearranged, extended, or replaced, allowing the product to evolve without being rebuilt from scratch.
So this book is about programming software products that are agile by nature in order to support agile business processes.
Table of Content