You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

IDIEP-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.

  • No labels