Unblocking The Main Thread Solving ANRs and Frozen Frames
Red prairie visualstudio2010_cs
1. Microsoft Visual Studio 2010
Customer Solution Case Study
BPM Solution Provider Significantly Increases
Developer Productivity with New Tools
Overview ―Our new design environment will reduce the time
Country or Region: United States
Industry: Manufacturing—High tech and required to develop workflow payloads by at least 50
electronics percent, along with extending that capability to
Customer Profile nondevelopers.‖
RedPrairie provides software solutions
Dan Piessens, Software Architect, RedPrairie
for managing inventory, transportation,
and work forces. The company has
approximately 1,500 employees and is RedPrairie wanted to make several enhancements to its business
headquartered in Milwaukee, Wisconsin.
process management (BPM) solution, one of which was to make
Business Situation the design tools accessible to business users as well as
For the next version of its software,
developers. The company is using Microsoft Visual Studio 2010
RedPrairie wanted to extend workflow
design capabilities to business users, Ultimate to develop the next version of its software, which takes
improve performance for frequently
advantage of the .NET Framework 4 to extend workflow design
persisted workflows, and provide
improved support for long-running capabilities to nontechnical users, eliminate performance
workflows.
penalties for frequently persisted workflows, and deliver
Solution improved support for long-running workflows. Through its
The company is meeting its goals by
efforts, RedPrairie is enabling more users to harness the power
using Microsoft Visual Studio 2010
Ultimate to develop the next version of of its software, helping them do so more productively, and
its software and taking advantage of
increasing the software’s flexibility and performance. What’s
enhancements to Windows Workflow
Foundation in the .NET Framework 4. more, the company is delivering those customer benefits quickly
and effectively, with enhanced software quality and a significant
Benefits
Improved user experience and increase in developer productivity.
functionality
Significant increase in developer
productivity
High software quality
2. ―Windows Workflow Situation the Windows Server operating system envi-
RedPrairie provides inventory, transporta- ronment, uses Web services to coordinate
Foundation delivers tion, and work force solutions that help the execution of business processes across
manufacturers, distributors, and retailers systems. The design tool, which is based on
significant improvements reduce costs, increase sales, and create a Windows Presentation Foundation and runs
in many areas, including competitive advantage—yet are flexible within Visual Studio 2008, provides an
enough to adapt as business needs change. environment for developing the desired
hosting workflows, The company has approximately 1,500 workflows. The process-monitoring appli-
managing data, and employees in 20 offices around the world, cation, which also is based on Windows
including more than 500 software devel- Presentation Foundation, provides visibility
creating custom opers in five locations, and it boasts more into workflow execution.
activities.‖ than 40,000 customer sites in 50 countries.
In planning for the next version of its
Dan Piessens, Software Architect, RedPrairie One component of RedPrairie’s E2e Business Process Platform, RedPrairie
software suite is its Business Process wanted to make its workflow design tool
Platform, which helps companies meet the accessible to business users as well as
challenges of orchestrating and executing software developers. ―Creating a workflow
enterprisewide business processes. For required using Visual Studio 2008 to open
example, coordinating a product recall a workflow project, upon which developers
requires ensuring that stores can’t sell the could take advantage of the custom work-
product, having stores pull the product off flow activities that we provide,‖ explains
the shelf, issuing orders to return the Piessens. ―Developers could assemble the
product, and coordinating return trans- main control flow of a workflow graphically
portation, each of which is typically but still had to write a lot of code to make
managed using a different system. it all work.‖
―Most integration platforms are not RedPrairie also wanted to improve its
designed to mirror real-world processes, solution’s support for long-running
orchestrate interaction between systems, workflows—for example, it wanted to
and track the execution of those pro- provide the ability to save a workflow’s
cesses,‖ says Dan Piessens, Software state at multiple points and, if necessary,
Architect at RedPrairie. ―Our Business restart a workflow at any one of those
Process Platform orchestrates the work points. ―With Windows Workflow
done by different components of the E2e Foundation in the .NET Framework 3.5,
suite and integrates the necessary human you could save only one snapshot of a
interactions, such as e-mail notifications, workflow,‖ says Piessens. ―This made it
entry of data into Web-based forms, and harder to handle exceptions, such as when
escalation procedures.‖ a Web service stopped responding or a
person left the organization with an
The current version of the Business Process approval request still pending.‖
Platform consists of a server (runtime)
component, a workflow design tool, and a In addition, the company wanted to
monitoring application, all of which were eliminate potential causes of performance
developed using the Microsoft Visual degradation. ―The persistence runtime in
Studio 2008 development system and are Windows Workflow Foundation in the .NET
based on the Microsoft .NET Framework Framework 3.5 saved the entire workflow
3.5. The server component, which runs on instead of only the required data, which
3. ―The entire Visual Studio caused workflows that were persisted Visual Studio. We built our own design
frequently to slow down the entire application using Windows Presentation
IDE seems more runtime,‖ explains Piessens. Foundation and are taking advantage of
the workflow designer’s new extensibility
flexible—it’s easier to Solution points to host it within that application,
get it to do what I want.‖ RedPrairie is building the enhancements it thereby delivering a customized user
wants in the next version of its Business experience. Developers can still use Visual
Dan Piessens, Software Architect, RedPrairie
Process Platform by using Microsoft Visual Studio to design new workflows; it’s just
Studio 2010 Ultimate. Scheduled for release not required anymore.‖
in mid-2010, the next version of Business
Process Platform takes advantage of RedPrairie’s adoption of the latest version
enhancements in the .NET Framework 4 to of Windows Workflow Foundation also
extend workflow design capabilities to reduces performance penalties for
nontechnical users, eliminate performance frequently persisted workflows and delivers
penalties for frequently persisted work- improved support for long-running
flows, and deliver improved support for workflows. ―Developers at Microsoft
long-running workflows. RedPrairie also is rewrote the entire workflow persistence
taking advantage of resources provided by layer in Windows Workflow Foundation in
Microsoft Patterns & Practices, including the .NET Framework 4, making it much
the Microsoft Enterprise Library, Unity more extensible and efficient,‖ says
Application Block, and Composite Applica- Piessens. ―Multiple snapshots of a workflow
tion Guidance for Windows Presentation now can be persisted and only the required
Foundation and Silverlight (also known data is saved, resulting in significantly
as ―Prism‖). better performance and flexibility. We’re
also using new features such as content-
Building on New Workflow Features based correlation, which enables the
All of the above improvements to the correlation of a message to a given
company’s Business Process Platform workflow instance based on data in the
were made possible—or at least much message, such as an order number.‖
easier—thanks to enhancements to
Windows Workflow Foundation in the Also noteworthy is how RedPrairie is using
.NET Framework 4. ―The latest version of workflow tracking in Windows Workflow
Windows Workflow Foundation delivers Foundation in conjunction with its rehosted
significant improvements in many areas, workflow design tool. ―We use the rehosted
including hosting workflows, managing design tool to replay workflows visually,
data, and creating custom activities,‖ and diagnostic information and execution
says Piessens. ―We’re taking advantage statistics that are gathered through the use
of all these capabilities to deliver a of workflow tracking are overlaid on the
better product.‖ workflow diagram,‖ says Piessens. ―One key
benefit provided by our software is that we
Continues Piessens, ―The most significant also track the length of time required to
new feature of our Business Process complete different versions of the same
Platform is its business user–friendly workflow. For example, we can capture that
workflow design experience—made version 1 of a workflow takes two days,
possible because it’s now much easier to whereas version 2, in which people are
rehost the workflow designer that’s within notified twice as often, takes only one day
Windows Workflow Foundation outside of to complete.‖
4. ―Our move to the latest Streamlining Application Development and check that the user is authorized to
RedPrairie is taking advantage of several perform updates. Dependency-injection
Windows Workflow resources from the Microsoft Patterns & techniques help ensure that the customer
Practices library to streamline development, class correctly instantiates and populates all
Foundation in the .NET including the Microsoft Enterprise Library, of these objects, especially where the
Framework 4 has in- Unity Application Block, and Composite dependencies may be abstract.‖
Application Guidance for Windows
creased developer pro- Presentation Foundation and Silverlight. RedPrairie is using Unity for both com-
ductivity significantly.‖ ponents of its Business Process Platform.
Enterprise Library. A collection of reusable ―Unity is core to both our client and server
Dan Piessens, Software Architect, RedPrairie software components (that is, application code, and we’ve extended it pretty heavily,‖
blocks) that encapsulate proven practices says Piessens. ―Some may question the use
for application development on the .NET of Unity for server code, but we’ve found it
Framework, the Microsoft Enterprise Library to be up to the task, giving us the high
assists software developers with addressing performance we required as well as a highly
common issues such as logging, validation, modular and testable application. In fact,
data access, and exception handling. Appli- we tested Unity in comparison to an activa-
cation blocks are provided as source code, tor class and found very little difference.‖
test cases, and documentation that can be
used ―as is‖ or modified by developers. Prism. The Composite Application
Guidance for Windows Presentation
RedPrairie is using the logging, caching, Foundation and Silverlight (―Prism‖) helps
and exception-handling application blocks developers manage the complexity of large
on its server code and is using the logging applications by breaking the applications
block for its desktop client application. down into smaller, simpler, individually
―We’ve used the Enterprise Libraries for evolvable pieces that come together at
several releases, going back as far as runtime. The guidance includes a reference
version 3.1,‖ says Piessens. ―We’ve ex- implementation, reusable library code
tended its application blocks heavily, (named the Composite Application Library),
building custom providers and adding documentation, ―quickstart‖ tasks, and
custom design-time support to tailor the hands-on labs.
prewritten resources to our needs.‖
―We used Prism as the user interface
Unity. A lightweight, extensible, framework for our client—again taking the
dependency-injection container with base library and extending it significantly,‖
support for constructor, property, and says Piessens. ―Prism provides us with a
method-call injection, the Unity Application consistent, reliable base architecture for our
Block (Unity) helps developers build presentation layer and allows us to focus
component-based software applications. on the development of the actual UI rather
―Componentized applications are much than the underlying infrastructure. Auto-
easier to maintain, extend, and test—and matic event wiring, command support, and
dependency injection provides a way to view presentation allow us to test our UI
handle dependencies between objects in code more thoroughly and to create
such an application,‖ explains Piessens. ―For modular code that can be shared between
example, an object that processes customer the process monitor and process designer.‖
information may depend on other objects
that access a data store, validate the data,
5. ―The Patterns & Practices Enhancing Software Quality encing high developer productivity, and
RedPrairie also is taking advantage of new enhancing software quality overall.
resources we’re using and improved capabilities within Visual
Studio 2010 Ultimate itself, such as its Improved User Experience and
definitely help improve features for helping to ensure code quality. Functionality
software quality because ―Visual Studio 2010 delivers significant RedPrairie’s use of the rehostable workflow
improvements in its integrated testing and designer in Windows Workflow Foundation
they enable us to more code coverage tools,‖ says Piessens. ―We’re is giving business users of Business Process
easily build applications using the unit test features extensively. We Platform a powerful visual design environ-
also like the automated user interface tests, ment that eliminates the need to write
that are modular and which reduce manual test time and help code. Developers will benefit from the
easy to test.‖ ensure a consistent user experience, even same improvements to the company’s tool
at the display level. The test coverage tools set, which will increase developer produc-
Dan Piessens, Software Architect, RedPrairie and metrics provided in Visual Studio 2010 tivity yet allow them to continue using the
are also great—not only do they show what same, familiar tools.
we’re testing but, more importantly, they
show what we’re not covering and thus ―Our new design environment will reduce
help us guarantee that critical areas of code the time required to develop workflow
have been tested.‖ payloads by at least 50 percent, along with
extending that capability to nondevel-
Piessens also likes the Architecture Explorer opers,‖ says Piessens. ―We’re achieving this
feature. ―We use it to visualize the archi- improvement because the design tool com-
tecture and make sure the coupling points pletely eliminates the need to write code.
are correct,‖ he says. ―This helps ensure that Users see a list of resources, activities, and
we’re following our own design guidelines.‖ helpers instead of a list of code files, and
they can choose services from a catalog
Detachable windows, improved multi- that shows what’s running in our Business
monitor support, and other improvements Process Platform.‖
in Visual Studio 2010 also are proving to be
useful. ―I use the window-docking features RedPrairie also is improving its product’s
a lot,‖ says Piessens. ―The entire Visual support for long-running workflows and
Studio IDE seems more flexible—it’s easier reducing performance penalties for fre-
to get it to do what I want. It’s also more quently persisted workflows, both of which
responsive and stable, which is great for will make the company’s product more
developer productivity.‖ useful to customers. ―It’s always a good
thing when customers don’t need to worry
Benefits as much about performance or inherent
Through its use of the latest Microsoft system limitations,‖ says Piessens. ―Instead,
development tools and technology, they can focus on using our software to
RedPrairie is delivering a new version of its build workflows that model their complex,
Business Process Platform that empowers real-world business processes.
nondevelopers to design new workflows,
increases productivity when using those ―For instance,‖ explains Piessens, ―if a work-
workflow design tools, and improves flow step fails because of a Web service
performance and flexibility. What’s more, that is not responding, the user can see this
the company is delivering those customer failure and choose to reexecute the step
benefits quickly and effectively, experi- after the Web service is active again. Or, if a
6. ―Given all the other user has been sent an approval request but definitely help improve software quality
leaves the organization before responding, because they enable us to more easily build
benefits of our move to the business process administrator can applications that are modular and easy to
restart the workflow to send a new request test,‖ says Piessens. ―Similarly, the
Visual Studio 2010, the to that person’s replacement.‖ Architecture Explorer, code analysis, unit
fact that it also helps us test, and code coverage tools in Visual
Increased Developer Productivity Studio 2010 are all of great benefit when it
to build applications that RedPrairie’s use of the latest Microsoft comes to quality. Developers have confi-
are easier to test and development platform is increasing dence that their code is correct and meets
developer productivity. ―Windows design expectations, and product managers
more robust is icing on Workflow Foundation in the .NET have greater confidence in the reliability of
the cake.‖ Framework 4 uses Extensible Application the code base. Given all the other benefits
Markup Language instead of code to of our move to Visual Studio 2010, the fact
Dan Piessens, Software Architect, RedPrairie author workflows, which enables devel- that it also helps us to build applications
opers to work in a declarative environment that are easier to test and more robust is
versus one that’s type compiled,‖ says icing on the cake.‖
Piessens. ―Our move to the latest Windows
Workflow Foundation in the .NET
Framework 4 has increased developer
productivity significantly. It enables
developers to focus on the business logic
aspects of the code—and to complete
projects faster and under budget.‖
The company’s use of Patterns & Practices
also helps to reduce time-to-market. ―The
Patterns & Practices libraries handle a lot of
code infrastructure, enabling us to focus on
higher-level functionality,‖ says Piessens.
―Unity provides a great foundation for
delivering a loosely coupled application,
with modules that are easy to extend,
replace, and test. The Enterprise Libraries
and Prism also provide a lot of code that
we don’t need to build ourselves. Without
Patterns & Practices resources, our
development times would be at least 30
percent longer.‖
High Software Quality
The development framework and tool set
that the company chose is helping to
ensure software quality in several ways. For
one, they are enabling RedPrairie to focus
on writing high-quality code without
having to purchase third-party tools. ―The
Patterns & Practices resources we’re using
7. For More Information Microsoft Visual Studio 2010
For more information about Microsoft Microsoft Visual Studio 2010 is an
products and services, call the Microsoft integrated development system that helps
Sales Information Center at (800) 426- simplify the entire development process
9400. In Canada, call the Microsoft from design to deployment. Unleash your
Canada Information Centre at (877) 568- creativity with powerful prototyping,
2495. Customers in the United States and modeling, and design tools that help you
Canada who are deaf or hard-of-hearing bring your vision to life. Work within a
can reach Microsoft text telephone personalized environment that helps
(TTY/TDD) services at (800) 892-5234. accelerate the coding process and supports
Outside the 50 United States and the use of your existing skills, and target a
Canada, please contact your local growing number of platforms, including
Microsoft subsidiary. To access Microsoft SharePoint Server 2010 and
information using the World Wide Web, cloud services. Also, work more efficiently
go to: thanks to integrated testing and debugging
www.microsoft.com tools that you can use to find and fix bugs
quickly and easily to help ensure high-
For more information about RedPrairie, quality solutions.
visit the Web site at:
www.redprairie.com For more information about Visual Studio
2010, go to
www.msdn.microsoft.com/vstudio
Software and Services Technologies
Microsoft Visual Studio − Composite Application Guidance for
− Microsoft Visual Studio 2010 Windows Presentation Foundation and
Ultimate Silverlight
− Microsoft Enterprise Library
− Microsoft .NET Framework 4
− Unity Application Block
− Windows Workflow Foundation
This case study is for informational purposes only.
MICROSOFT MAKES NO WARRANTIES, EXPRESS OR
IMPLIED, IN THIS SUMMARY.
Document published May 2010