SharpConsole 0.0.7

dotnet add package SharpConsole --version 0.0.7
                    
NuGet\Install-Package SharpConsole -Version 0.0.7
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="SharpConsole" Version="0.0.7" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="SharpConsole" Version="0.0.7" />
                    
Directory.Packages.props
<PackageReference Include="SharpConsole" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add SharpConsole --version 0.0.7
                    
#r "nuget: SharpConsole, 0.0.7"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package SharpConsole@0.0.7
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=SharpConsole&version=0.0.7
                    
Install as a Cake Addin
#tool nuget:?package=SharpConsole&version=0.0.7
                    
Install as a Cake Tool

SharpConsole

A powerful console application framework for .NET that provides auto-completion, command execution, and more.

Features

  • Auto-completion for properties, methods, and fields
  • Command execution in a REPL-like environment
  • Support for nested object navigation
  • Modern .NET 8.0 support
  • Entity Framework Core integration
  • Dependency Injection support

Installation

Add the SharpConsole package to your console project:

dotnet add package SharpConsole

Usage

Here's how to use SharpConsole.Platform in your project:

  1. Create a class that inherits from SharpConsoleBase:
public class CustomConsole : SharpConsoleBase
{
    public string Name { get; set; }
    public int Age { get; set; }
    public string[] Tags { get; set; }
    public AppDbContext db;
}
  1. In your Program.cs, create an instance of your console class and start it:
using Microsoft.EntityFrameworkCore;
using SharpConsole.Platform.Application;
using SharpConsole.Core.Entities;

var options = new DbContextOptionsBuilder<AppDbContext>()
    .UseInMemoryDatabase(databaseName: "ExampleDb")
    .Options;

using var context = new AppDbContext(options);

context.Users.Add(new User { Name = "Guga", Age = 38 });
context.Users.Add(new User { Name = "Bia", Age = 13 });
context.SaveChanges();

var console = new CustomConsole()
{
    db = context,
    Name = "Guga",
    Age = 38,
    Tags = new[] { "tag1", "tag2" }
};

console.Start();

Now you can interact with the console:

  • Type Name to see the value
  • Type Age to see the value
  • Type Tags to see the array
  • Type db.Users to see the database context
  • Type exit to quit

Example Project

To help you get started quickly, we've created a comprehensive example project that demonstrates all the features of SharpConsole. The example includes:

  • Basic property access and navigation
  • Entity Framework Core integration
  • Custom command implementation
  • Dependency injection setup
  • Best practices and patterns

You can find the example project at: SharpConsole.Examples

Contributing

Contributions are welcome! Feel free to submit a Pull Request.

License

This project is licensed under a custom license based on the Apache License 2.0 with additional restrictions to protect the source code:

  • Use of this software is permitted for both commercial and non-commercial purposes via official package distribution channels only (e.g., NuGet.org).
  • The source code may not be copied, forked, mirrored, or redistributed in whole or in part, whether modified or unmodified, without explicit written permission from the author.
  • Republishing or re-hosting the source code, including forks or derived public repositories, is strictly prohibited.
  • This license grants permission to use, execute, and link against the compiled version of the software.

Please refer to the full license in the LICENSE file.

License of the .examples folder

The files in this folder are provided solely for demonstration and learning purposes.

You may copy and adapt code snippets for your own projects, including commercial ones.

However, redistributing, forking, or publishing this folder as a whole or in derived form is prohibited without explicit permission from the author.

For more details, please see the main license file in the root repository.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.0.7 229 5/27/2025
0.0.6 264 5/27/2025
0.0.5 212 5/27/2025
0.0.4 239 5/25/2025