This is the official C# implementation of the Piwik Tracking API.
Check the release page for supported versions of Piwik.
Three Visual Studio Solutions are provided :
- Piwik.Tracker.sln : Library project
- Piwik.Tracker.Samples.sln : Console Samples project
- Piwik.Tracker.Web.Samples.sln : ASP.NET Samples project
The Piwik C# Tracking API is a translation of the official PHP Tracking API in C#.
Translating the project is currently a manual process.
Manually translating the project is tedious because it requires
- identifying features that have already been translated
- merging code
We would ideally like to automate this process, we welcome contributions aimed towards this goal.
To ease the process in the mean time, the following rules are applied to any new code contributions :
- a commit in the PHP project implies a commit in the C# project with the same message and content
- one-to-one tag mapping between the PHP and C# projects
- the C# code should mirror as close as possible the PHP code
As long as we do not have an automated process, we welcome suggestions in improving the manual process.
To mirror as close as possible the PHP code, we copy-paste the PHP code in the C# class and alter it so it compiles.
This can lead in a loss of C# best practices. We consider the time savings an acceptable trade-off.
- The process detailed in this section must be executed right before adding a release tag to git.
- Publishing the project to NuGet must be done by a member of the Piwik team, holder of the private NuGet Key.
- Validate tests (requires #7)
- Update and commit
AssemblyInfo.cs
with new version - Create git tag
- Build the project using the Release solution configuration
- Create NuGet packages using
nuget pack Piwik.Tracker\Piwik.Tracker.csproj -Prop Configuration=Release -Symbols
- Publish packages using
nuget push Piwik.Tracker.VERSION.nupkg