Skip to content

Commit

Permalink
Merge pull request #65 from lmagyar/master
Browse files Browse the repository at this point in the history
Connect #35 NuGet packaging
  • Loading branch information
lmagyar committed Feb 27, 2016
2 parents cd8e9c8 + 9b43eaa commit 422849b
Show file tree
Hide file tree
Showing 65 changed files with 97 additions and 3,352 deletions.
31 changes: 20 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,30 @@

![Orleans logo](https://raw.githubusercontent.com/OrleansContrib/Orleans.Activities/master/src/Orleans.Activities.png)

Workflow Foundation (.Net 4.x System.Activities workflows) over Orleans framework to provide stable, long-running, extremely scalable processes with XAML designer support.
Workflow Foundation (.Net 4.x System.Activities workflows) over Microsoft.Orleans framework to provide stable, long-running, extremely scalable processes with XAML designer support.

__NOTE:__ This project currently is an __experiment__, not production quality! There is no NuGet package for it.
__Stable:__
[![GitHub version](https://badge.fury.io/gh/OrleansContrib%2FOrleans.Activities.svg)](https://badge.fury.io/gh/OrleansContrib%2FOrleans.Activities)
[![NuGet version](https://badge.fury.io/nu/Orleans.Activities.svg)](https://badge.fury.io/nu/Orleans.Activities)

[![Build status](https://ci.appveyor.com/api/projects/status/dy600wk9qn1fppqw?svg=true)](https://ci.appveyor.com/project/OrleansContrib/orleans-activities)
~~NuGet~~
[![Issue Stats](http://www.issuestats.com/github/OrleansContrib/Orleans.Activities/badge/pr)](http://www.issuestats.com/github/OrleansContrib/Orleans.Activities)
[![Issue Stats](http://www.issuestats.com/github/OrleansContrib/Orleans.Activities/badge/issue)](http://www.issuestats.com/github/OrleansContrib/Orleans.Activities)
__Master:__
[![Build status](https://ci.appveyor.com/api/projects/status/dy600wk9qn1fppqw/branch/master?svg=true)](https://ci.appveyor.com/project/OrleansContrib/orleans-activities)
[AppVeyor project feed (NuGet source)](https://ci.appveyor.com/nuget/orleans-activities-xqh82aku7sb3)

__Stats:__
[![Issue Stats PR](http://www.issuestats.com/github/OrleansContrib/Orleans.Activities/badge/pr)](http://www.issuestats.com/github/OrleansContrib/Orleans.Activities)
[![Issue Stats Issues](http://www.issuestats.com/github/OrleansContrib/Orleans.Activities/badge/issue)](http://www.issuestats.com/github/OrleansContrib/Orleans.Activities)

__Issues:__
[![Help Wanted (filtered view)](https://badge.waffle.io/OrleansContrib/Orleans.Activities.svg?label=Status-Help%20Wanted&title=Help%20Wanted%20%28filtered%20view%29)](http://waffle.io/OrleansContrib/Orleans.Activities?label=Status-Help%20Wanted)
[![Up for Grabs (filtered view)](https://badge.waffle.io/OrleansContrib/Orleans.Activities.svg?label=Status-Up%20for%20Grabs&title=Up%20for%20Grabs%20%28filtered%20view%29)](http://waffle.io/OrleansContrib/Orleans.Activities?label=Status-Up%20for%20Grabs)
[![Ready](https://badge.waffle.io/OrleansContrib/Orleans.Activities.svg?label=Phase-Ready&title=Ready)](http://waffle.io/OrleansContrib/Orleans.Activities)
[![In Progress](https://badge.waffle.io/OrleansContrib/Orleans.Activities.svg?label=Phase-In%20Progress&title=In%20Progress)](http://waffle.io/OrleansContrib/Orleans.Activities)

~~Documentation~~ (see [Samples](https://github.com/OrleansContrib/Orleans.Activities#samples) below)

[Branching Guidelines](https://github.com/OrleansContrib/Orleans.Activities/blob/docs-master/docs/Branching-Guidelines.md)

[Coding Guidelines](https://github.com/dotnet/corefx/blob/master/Documentation/coding-guidelines/coding-style.md)

[Design Guidelines](https://github.com/dotnet/corefx/blob/master/Documentation/coding-guidelines/framework-design-guidelines-digest.md)
Expand All @@ -26,7 +34,7 @@ This project is licensed under the [Apache License](https://github.com/OrleansCo

## Concept

![Overview](https://raw.githubusercontent.com/OrleansContrib/Orleans.Activities/master/docs/Orleans.Activities-Overview.png)
![Overview](https://raw.githubusercontent.com/OrleansContrib/Orleans.Activities/docs-master/docs/Orleans.Activities-Overview.png)

This is a very high level view:

Expand All @@ -36,12 +44,13 @@ This is a very high level view:
* The methods of the TWorkflowInterface and TWorkflowCallbackInterface are independent from the grain's external public interface, you can merge different public requests into one method or vice versa. Or a reentrant grain even can execute (read-only) public interface methods independently from the current running workflow operations.
* The method's signatures are restricted, their parameters and return values are lazy, async delegates with 1 optional parameter/return value. The delegates executed by the workflow activities if/when they accept them (command pattern).
* There are design-, build- and static-run-time checks to keep the interfaces and the workflows in sync.
* Though you can execute complete workflows as methods also.

A typical workflow grain manages operations in other grain(s) and handles only the process specific data in it's own state.

The goal, is to keep the C# code in the grain, and use the workflow only to decide what to do next. This way we can avoid a steep learning curve to use workflows: the developer doesn't need to write or to understand anything about activities, he/she can build workflows with the provided activities in a designer.

If it's needed, a mainly computational workflow can be executed also, even without any incoming or outgoing request.
If it's needed, a mainly computational workflow can be executed also, even without any incoming or outgoing request.

## Functionality

Expand Down Expand Up @@ -80,12 +89,12 @@ And there are nearly unlimited [Open issues](http://waffle.io/OrleansContrib/Orl

## Samples

[HelloWorld](https://github.com/OrleansContrib/Orleans.Activities/blob/master/docs/HelloWorld/HelloWorld.md)
[HelloWorld](https://github.com/OrleansContrib/Orleans.Activities/blob/docs-master/docs/HelloWorld/HelloWorld.md) - How to communicate with the workflow through custom interfaces.

[Arithmetical](https://github.com/OrleansContrib/Orleans.Activities/blob/master/docs/Arithmetical/Arithmetical.md)
[Arithmetical](https://github.com/OrleansContrib/Orleans.Activities/blob/docs-master/docs/Arithmetical/Arithmetical.md) - How to execute the complete workflow like a method.

## Details

This is still an overview, all the details of the classes are hidden. The goal is to give a map to understand the relations between the classes. See the comments in the source!

![Overview](https://raw.githubusercontent.com/OrleansContrib/Orleans.Activities/master/docs/Orleans.Activities-Details.png)
![Overview](https://raw.githubusercontent.com/OrleansContrib/Orleans.Activities/docs-master/docs/Orleans.Activities-Details.png)
68 changes: 48 additions & 20 deletions appveyor.yml
Original file line number Diff line number Diff line change
@@ -1,20 +1,48 @@
version: 0.2.0.{build}
branches:
only:
- master
os: Visual Studio 2015
configuration: Release
assembly_info:
patch: true
file: src\GlobalAssemblyInfo.cs
assembly_version: '{version}'
assembly_file_version: '{version}'
assembly_informational_version: '{version}-alpha'
cache: src\packages
before_build:
- cmd: nuget restore src\Orleans.Activities.sln
build:
verbosity: minimal
artifacts:
- path: src\Orleans.Activities\bin\Release\Orleans.Activities.???
name: Binaries
- branches:
only:
- master
version: -{branch}-{build}
install:
- ps: Update-AppveyorBuild -Version "$([regex]::match([IO.File]::ReadAllText("$env:APPVEYOR_BUILD_FOLDER\src\GlobalAssemblyInfo.cs"), 'AssemblyInformationalVersion\(\"(\d+\.\d+\.\d+)\"\)').Groups[1].Value)$env:APPVEYOR_BUILD_VERSION"
- ps: Set-AppveyorBuildVariable -Name productversion -Value "$([regex]::match([IO.File]::ReadAllText("$env:APPVEYOR_BUILD_FOLDER\src\GlobalAssemblyInfo.cs"), 'AssemblyInformationalVersion\(\"(\d+\.\d+\.\d+)\"\)').Groups[1].Value)"
os: Visual Studio 2015
configuration: Debug
assembly_info:
patch: true
file: src\GlobalAssemblyInfo.cs
assembly_version: $(productversion)
assembly_file_version: $(productversion)
assembly_informational_version: $(productversion)-{branch}-{build}
cache:
- src\packages -> appveyor.yml
- Samples\src\packages -> appveyor.yml
before_build:
- cmd: nuget restore src\Orleans.Activities.sln
build:
publish_nuget: true
publish_nuget_symbols: true
verbosity: minimal
- branches:
only:
- stable
version: -{branch}-{build}
install:
- ps: Update-AppveyorBuild -Version "$([regex]::match([IO.File]::ReadAllText("$env:APPVEYOR_BUILD_FOLDER\src\GlobalAssemblyInfo.cs"), 'AssemblyInformationalVersion\(\"(\d+\.\d+\.\d+)\"\)').Groups[1].Value)$env:APPVEYOR_BUILD_VERSION"
- ps: Set-AppveyorBuildVariable -Name productversion -Value "$([regex]::match([IO.File]::ReadAllText("$env:APPVEYOR_BUILD_FOLDER\src\GlobalAssemblyInfo.cs"), 'AssemblyInformationalVersion\(\"(\d+\.\d+\.\d+)\"\)').Groups[1].Value)"
os: Visual Studio 2015
configuration: Release
assembly_info:
patch: true
file: src\GlobalAssemblyInfo.cs
assembly_version: $(productversion)
assembly_file_version: $(productversion)
assembly_informational_version: $(productversion)
cache:
- src\packages -> appveyor.yml
- Samples\src\packages -> appveyor.yml
before_build:
- cmd: nuget restore src\Orleans.Activities.sln
build:
publish_nuget: true
publish_nuget_symbols: true
verbosity: minimal
Binary file removed docs/Arithmetical/AdderActivity.png
Binary file not shown.
Binary file removed docs/Arithmetical/Arithmetical-Adder-Overview.png
Binary file not shown.
Binary file not shown.
144 changes: 0 additions & 144 deletions docs/Arithmetical/Arithmetical.md

This file was deleted.

Binary file removed docs/Arithmetical/Arithmetical.vpp
Binary file not shown.
Binary file removed docs/Arithmetical/MultiplierActivity.png
Binary file not shown.
Binary file removed docs/HelloWorld/HelloActivity.png
Binary file not shown.
Binary file removed docs/HelloWorld/HelloWorld-Details.png
Binary file not shown.
Binary file removed docs/HelloWorld/HelloWorld-Overview.png
Binary file not shown.
Loading

0 comments on commit 422849b

Please sign in to comment.