You are viewing an old version of this page. View the current version.
Compare with Current
View Page History
« Previous
Version 2
Next »
ID | IEP-65 |
Author | |
Sponsor |
|
Created | |
Status | DRAFT |
Motivation
Ignite.NET examples are in need of reorganization: majority of them target old .NET Framework, and thus are not cross-platform, can't be run from CLI, and are not friendly for some IDEs (VS Code). Then there are some basic .NET Core examples with duplicating logic.
Description
Goals
- Cross-platform (Windows, Linux, macOS)
- CLI-friendly
- Any example can be started from the command line without any extra steps
- IDE-friendly
- Examples are easy to select and run in all major IDEs (Visual Studio, VS Code, Rider, VS for Mac)
- Easy to download and build
- Do not require entire source or binary distribution
- Standalone server
- Nodes are easy to start: do not require complex commands
- Produce nice output
- Ignite logging should be minimal, example output should stand out
Implementation
- .NET Core only (2.1)
- .NET FW is more or less legacy now, and example code is the same for it anyway, only project files differ
- One project (csproj) per example, all in the same solution (sln)
- CLI friendly: cd ExampleName && dotnet run
- IDE friendly
- Visual Studio allows project selection on the toolbar
- Rider allows project selection on the toolbar and an icon to start the program in the source code
- VS Code needs special treatment: every example should be added to launch.json so that a list of them is visible in UI
- NuGet-based (same way as Java examples are Maven-based)
- Examples reference Ignite.NET packages, not Ignite source code or downloaded binaries (as it is right now)
- Examples folder can be downloaded separately (git clone --filter)
- Compilation is quick
Risks and Assumptions
// Describe project risks, such as API or binary compatibility issues, major protocol changes, etc.
Discussion Links
// Links to discussions on the devlist, if applicable.
Reference Links
// Links to various reference documents, if applicable.
Tickets
Unable to render Jira issues macro, execution error.