SiliconStudio .NET is a collection of shared C#/.NET code that is project independent.
###core###
- SiliconStudio.Core: Reference counting, dependency property system (PropertyContainer/PropertyKey), low-level serialization, low-level memory operations (Utilities and NativeStream).
- SiliconStudio.Core.Mathematics: Mathematics library (despite its name, no dependencies on SiliconStudio.Core).
- SiliconStudio.Core.IO: Virtual File System.
- SiliconStudio.Core.Serialization: High-level serialization and git-like CAS storage system.
- SiliconStudio.MicroThreading: Micro-threading library based on C# 5.0 async (a.k.a. stackless programming)
- SiliconStudio.AssemblyProcessor: Internal tool used to patch assemblies to add various features, such as Serialization auto-generation, various memory/pinning operations, module initializers, etc...
###presentation###
- SiliconStudio.Presentation: WPF UI library (themes, controls such as propertygrid, behaviors, etc...)
- SiliconStudio.SampleApp: Simple property grid example.
- SiliconStudio.Quantum: Advanced ViewModel library that gives ability to synchronize view-models over network (w/ diff), and at requested time intervals. That way, view models can be defined within engine without any UI dependencies.
###buildengine###
- SiliconStudio.BuildEngine.Common: Common parts of the build engine. It can be reused to add new build steps, build commands, and also to build a new custom build engine client.
- SiliconStudio.BuildEngine: Default implementation of build engine tool (executable)
- SiliconStudio.BuildEngine.Monitor: WPF Display live results of build engine (similar to IncrediBuild)
- SiliconStudio.BuildEngine.Editor: WPF Build engine rules editor and used by most projects.
###shaders###
- Irony: Parsing library, used by SiliconStudio.Shaders. Should later be replaced by ANTLR4.
- SiliconStudio.Shaders: Shader parsing, type analysis and conversion library (used by HLSL->GLSL and Xenko Shader Language)
###targets###
- MSBuild target files to create easily cross-platform solutions (Android, iOS, WinRT, WinPhone, etc...), and define behaviors and targets globally. Extensible.
###Source repository###
There is two options to integrate this repository in your own repository:
- git subtree documentation and blog post
- git submodule
###Basic use###
Simply add the projects you want to use directly in your Visual Studio solution.
###Optional: Activate assembly processor###
If you want to use auto-generated Serialization
code, some of Utilities
functions or ModuleInitializer
, you need to use SiliconStudio.AssemblyProcessor.
Steps:
- Include both SiliconStudio.AssemblyProcessor and SiliconStudio.AssemblyProcessor.Common in your solution.
- Add either a SiliconStudio.PostSettings.Local.targets or a YourSolutionName.PostSettings.Local.targets in your solution folder, with this content:
<!-- Build file pre-included automatically by all projects in the solution -->
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<!-- Enable assembly processor -->
<SiliconStudioAssemblyProcessorGlobal>true</SiliconStudioAssemblyProcessorGlobal>
</PropertyGroup>
</Project>