Browse Source

Initial setup.

merge-requests/1/head
Craig Oates 7 years ago
parent
commit
ffb2a4e473
  1. 63
      .gitattributes
  2. 261
      .gitignore
  3. 37
      BUG_REPORT_TEMPLATE.md
  4. 48
      CODE_OF_CONDUCT.md
  5. 117
      CONTRIBUTING.md
  6. 25
      Console.Waterworks.Core.sln
  7. 8
      Console.Waterworks.Core/Class1.cs
  8. 7
      Console.Waterworks.Core/Console.Waterworks.Core.csproj
  9. BIN
      Documentation/GitHub_Assets/Page-Header.png
  10. BIN
      Documentation/GitHub_Assets/Sidebar-Logo.png
  11. 25
      PULL_REQUEST_TEMPLATE.md
  12. 100
      README.md

63
.gitattributes vendored

@ -0,0 +1,63 @@
###############################################################################
# Set default behavior to automatically normalize line endings.
###############################################################################
* text=auto
###############################################################################
# Set default behavior for command prompt diff.
#
# This is need for earlier builds of msysgit that does not have it on by
# default for csharp files.
# Note: This is only used by command line
###############################################################################
#*.cs diff=csharp
###############################################################################
# Set the merge driver for project and solution files
#
# Merging from the command prompt will add diff markers to the files if there
# are conflicts (Merging from VS is not affected by the settings below, in VS
# the diff markers are never inserted). Diff markers may cause the following
# file extensions to fail to load in VS. An alternative would be to treat
# these files as binary and thus will always conflict and require user
# intervention with every merge. To do so, just uncomment the entries below
###############################################################################
#*.sln merge=binary
#*.csproj merge=binary
#*.vbproj merge=binary
#*.vcxproj merge=binary
#*.vcproj merge=binary
#*.dbproj merge=binary
#*.fsproj merge=binary
#*.lsproj merge=binary
#*.wixproj merge=binary
#*.modelproj merge=binary
#*.sqlproj merge=binary
#*.wwaproj merge=binary
###############################################################################
# behavior for image files
#
# image files are treated as binary by default.
###############################################################################
#*.jpg binary
#*.png binary
#*.gif binary
###############################################################################
# diff behavior for common document formats
#
# Convert binary document formats to text before diffing them. This feature
# is only available from the command line. Turn it on by uncommenting the
# entries below.
###############################################################################
#*.doc diff=astextplain
#*.DOC diff=astextplain
#*.docx diff=astextplain
#*.DOCX diff=astextplain
#*.dot diff=astextplain
#*.DOT diff=astextplain
#*.pdf diff=astextplain
#*.PDF diff=astextplain
#*.rtf diff=astextplain
#*.RTF diff=astextplain

261
.gitignore vendored

@ -0,0 +1,261 @@
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
# User-specific files
*.suo
*.user
*.userosscache
*.sln.docstates
# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs
# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
bld/
[Bb]in/
[Oo]bj/
[Ll]og/
# Visual Studio 2015 cache/options directory
.vs/
# Uncomment if you have tasks that create the project's static files in wwwroot
#wwwroot/
# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*
# NUNIT
*.VisualState.xml
TestResult.xml
# Build Results of an ATL Project
[Dd]ebugPS/
[Rr]eleasePS/
dlldata.c
# DNX
project.lock.json
project.fragment.lock.json
artifacts/
*_i.c
*_p.c
*_i.h
*.ilk
*.meta
*.obj
*.pch
*.pdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc
# Chutzpah Test files
_Chutzpah*
# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opendb
*.opensdf
*.sdf
*.cachefile
*.VC.db
*.VC.VC.opendb
# Visual Studio profiler
*.psess
*.vsp
*.vspx
*.sap
# TFS 2012 Local Workspace
$tf/
# Guidance Automation Toolkit
*.gpState
# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user
# JustCode is a .NET coding add-in
.JustCode
# TeamCity is a build add-in
_TeamCity*
# DotCover is a Code Coverage Tool
*.dotCover
# NCrunch
_NCrunch_*
.*crunch*.local.xml
nCrunchTemp_*
# MightyMoose
*.mm.*
AutoTest.Net/
# Web workbench (sass)
.sass-cache/
# Installshield output folder
[Ee]xpress/
# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html
# Click-Once directory
publish/
# Publish Web Output
*.[Pp]ublish.xml
*.azurePubxml
# TODO: Comment the next line if you want to checkin your web deploy settings
# but database connection strings (with potential passwords) will be unencrypted
#*.pubxml
*.publishproj
# Microsoft Azure Web App publish settings. Comment the next line if you want to
# checkin your Azure Web App publish settings, but sensitive information contained
# in these scripts will be unencrypted
PublishScripts/
# NuGet Packages
*.nupkg
# The packages folder can be ignored because of Package Restore
**/packages/*
# except build/, which is used as an MSBuild target.
!**/packages/build/
# Uncomment if necessary however generally it will be regenerated when needed
#!**/packages/repositories.config
# NuGet v3's project.json files produces more ignoreable files
*.nuget.props
*.nuget.targets
# Microsoft Azure Build Output
csx/
*.build.csdef
# Microsoft Azure Emulator
ecf/
rcf/
# Windows Store app package directories and files
AppPackages/
BundleArtifacts/
Package.StoreAssociation.xml
_pkginfo.txt
# Visual Studio cache files
# files ending in .cache can be ignored
*.[Cc]ache
# but keep track of directories ending in .cache
!*.[Cc]ache/
# Others
ClientBin/
~$*
*~
*.dbmdl
*.dbproj.schemaview
*.jfm
*.pfx
*.publishsettings
node_modules/
orleans.codegen.cs
# Since there are multiple workflows, uncomment next line to ignore bower_components
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
#bower_components/
# RIA/Silverlight projects
Generated_Code/
# Backup & report files from converting an old project file
# to a newer Visual Studio version. Backup files are not needed,
# because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm
# SQL Server files
*.mdf
*.ldf
# Business Intelligence projects
*.rdl.data
*.bim.layout
*.bim_*.settings
# Microsoft Fakes
FakesAssemblies/
# GhostDoc plugin setting file
*.GhostDoc.xml
# Node.js Tools for Visual Studio
.ntvs_analysis.dat
# Visual Studio 6 build log
*.plg
# Visual Studio 6 workspace options file
*.opt
# Visual Studio LightSwitch build output
**/*.HTMLClient/GeneratedArtifacts
**/*.DesktopClient/GeneratedArtifacts
**/*.DesktopClient/ModelManifest.xml
**/*.Server/GeneratedArtifacts
**/*.Server/ModelManifest.xml
_Pvt_Extensions
# Paket dependency manager
.paket/paket.exe
paket-files/
# FAKE - F# Make
.fake/
# JetBrains Rider
.idea/
*.sln.iml
# CodeRush
.cr/
# Python Tools for Visual Studio (PTVS)
__pycache__/
*.pyc

37
BUG_REPORT_TEMPLATE.md

@ -0,0 +1,37 @@
# ![Logo](Documentation/GitHub_Assets/Page-Header.png "Header")
## Bug Report
Note: Before submitting, please make sure your issue has not already been filed. You can do this at [GitHub Issues](https://github.com/CraigOates/Console.Waterworks.Core/issues/new).
### Description
[Description of the issue. Use images and GIFs if necessary.]
### Steps to Reproduce
[Use images and GIFs if necessary.]
1. [First Step]
1. [Second Step]
1. [and so on...]
### Expected Behaviour
[What you expect to happen]
### Actual Behaviour
[What actually happens]
### Reproduction Rate
[What percentage of the time does it happen?]
### Versions
[You can get this information from using the Nuget Package Manager tools in Visual Studio/Project References.]
### Additional Information
[Any additional information, configuration or data that might be necessary to reproduce the issue.]

48
CODE_OF_CONDUCT.md

@ -0,0 +1,48 @@
# ![Logo](Documentation/GitHub_Assets/Page-Header.png "Header")
## Contributor Covenant Code of Conduct
### Our Pledge
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
### Our Standards
Examples of behavior that contributes to creating a positive environment include:
* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery and unwelcome sexual attention or advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a professional setting
### Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
### Scope
This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
### Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at craig@craigoates.net. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
### Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]
[homepage]: http://contributor-covenant.org
[version]: http://contributor-covenant.org/version/1/4/

117
CONTRIBUTING.md

@ -0,0 +1,117 @@
# ![Logo](Documentation/GitHub_Assets/Page-Header.png "Header")
## Contributing to Console.Waterworks.Core
Let me begin by saying thank you for stopping by and checking out Console.Waterworks.Core.
The following is a set of guidelines for contributing to Console.Waterworks.Core. I must stress, though, they are guidelines and nothing more. They are not set in stone. Please feel free to use your own judgement when contributing.
### Code of Conduct
The [Console.Waterworks.Core Code of Conduct](https://github.com/CraigOates/Console.Waterworks.Core/blob/master/CODE_OF_CONDUCT.md) governs every participant of this project. If you decide to take part in developing and cultivating the project, the expectation is you adhere to it.
Please report any unacceptable behaviour to craig@craigoates.net.
### The Creator's Expectations for Console.Waterworks.Core
To those who do not know, Console.Waterworks.Core is the creation of Craig Oates (A.K.A. [me](http:github.com/CraigOates)). I am a person, like you, and I argue it is important you know a bit about me. The reason why this is important is because it will help you gauge if this project is for you. I do not want you to feel frustrated when working on Console.Waterworks.Core due to people problems. I know I cannot foresee every problem and counteract it. But, I can let you know the type of person I am and what I expect from the project. This will help you gauge the likelihood of us having conflicting personalities. And, it will highlight any differences in perspectives sooner -- if all goes as intended.
If it does look like we have a miss-match at the person level, I would like to take a moment and say one thing. It is okay -- we do not all think alike. You will face no hard feelings from me and I have no problem with you forking the code. If you do, I wish you the best of luck. And, do not feel like you cannot contact me and show me your weird and wonderful concoction.
Now back to the project stuff...
From my point-of-view, I am not in a rush to turn Console.Waterworks.Core into a jack-of-trades thing. I would like to keep the scope of it as a simple "plumbing code" Nuget package. That does not mean I am against adding any new features, though. Because of this, I ask you to expect a conservative mind-set.
Before moving on, I would like to reiterate a point from above. You will not receive any ill-will from me if our goals do not align. It is okay to disagree. I am well aware one persons "done" is another person’s starting point.
### "I don't want to read this, I want to ask a quick question"
The easiest and faster way to contact me is via email. Which is craig@craigoates.net. I do not recommend filling an issue because of this.
### "What Should I Know Before I Get Started?"
Before you jump in, I recommend you read [The Complete Guide to Console.Waterworks.Core](https://github.com/craigoates). Console.Waterworks.Core is not the most expansive or complex piece of code on the planet. But, it does have its own quirks and behaviours. I have tried to make it as modular and as easy to read as possible. But, it still has a reasonable amount of complexity to it. So, please read the guide.
### "How Can I Contribute?"
You can contribute to the project in several ways. The obvious two ways are [filing issues](https://github.com/CraigOates/Console.Waterworks.Core/issues/new) and sending [pull requests](https://github.com/CraigOates/Console.Waterworks.Core/compare). You can, also, contribute by sending me an email. Although, the last one is not as open as the previous two. It is still an effective route to take if you want to discuss something at length. My email address is craig@craigoates.net.
#### Reporting Bugs
I track bugs using [GitHub Issues](https://github.com/CraigOates/Console.Waterworks.Core/issues/new). If you find one, fill out the template provided and file an issue.
- [Bug Report Template](https://github.com/CraigOates/Console.Waterworks.Core/blob/master/BUG_REPORT_TEMPLATE.md)
When you file a bug report, do not hold back with the details. The more information I have, the chance of me fixing it increases.
#### Suggesting Enhancements
You might have read [The Creator's Expectations](https://github.com/CraigOates/Console.Waterworks.Core/blob/master/CONTRIBUTING.md#the-creators-expectations-for-consolewaterworks) above... If you have, you will know I hold a conservative attitude for adding features. With that said, I am not against adding new features -- stated above as well. If you believe your suggestion has some merit, please feel free to submit it. I am more than happy to discuss your plan. Please, do not feel offended if your suggestion does not get added to the project, though. That is not my intension.
#### "How do I Submit an Enhancement Suggestion?"
You can submit an enhancement suggestion via [GitHub Issues](https://github.com/CraigOates/Console.Waterworks.Core/issues/new). Before you do, here is a list of things to consider when submitting an enhancement suggestion.
- Use a clear and descriptive title for the issue to help identify the suggestion.
- Describe your enhancement in a brief summary. Aim to be as clear as possible.
- Highlight the area where this enhancement will improve Console.Waterworks.Core.
- Provide a summary of how you intend to add your suggestion.
- If you have any step-by-step instructions, include them.
- Include any code snippets you think will help explain your points better. You can provide either links to an external source or include them as markdown blocks.
- Include screenshots and animated GIFs. They will help me understand your proposal better. It will, also, help explain where it will fit into Console.Waterworks.Core.
- You can use [Licecap](https://github.com/justinfrankel/licecap) to help you record GIFs. It is available on Windows and MacOS. If you are on Linux, you can use [Silentcast](https://github.com/colinkeenan/silentcast) or [Byzanz](http://github.com/gnome/byzanz). They are, also, GIF recording programs.
- Explain why this suggestion will be useful for most consumers of Console.Waterworks.Core. I ask you to do this because it is one thing to work on Console.Waterworks.Core and another to use it as a Nuget package.
- List any other examples of your suggestion in a working context. Also, highlight the benefit it has brought to that codebase.
I have decided not to include a template here because writing proposals can be a messy and tricky affair. They can be the rally call to the great unknown or a meticulous path to paradise. Each approach has its place in this world and I aim to keep it that way. With that said, try to keep your suggestion as clear and concise as possible. I ask this because -- to be frank -- if I do not understand your suggestion how can I agree to include it?
#### Pull Requests
Before submitting a pull request, I must stress the importance of talking to me first. I do not want you spending hours of your time writing code for Console.Waterworks.Core to then face rejection. Your time is not my time and I would like to avoid wasting either of ours if I can help it. If there is something you would like to add to Console.Waterworks.Core, you can do two things. The first is email me (craig@craigoates.net) and talk about your plans. This is the quickest way for you to find out if your idea is worth pursuing. The second thing you can do is send an [enhancement suggestion](https://github.com/CraigOates/Console.Waterworks.Core/issues/new) via GitHub Issues and hold the discussion there. This will result in a slower response but the conversation will be in the open. If you decide to file a suggestion, make sure you have read "Suggesting Enhancements", above.
Now back to the pull requests...
Here is a list of things to consider when submitting a pull request:
- Fill in the [Pull Requests Template](https://github.com/CraigOates/Console.Waterworks.Core//blob/master/PULL_REQUEST_TEMPLATE.md)
- Do not include issue numbers in the pull request title.
- Include screenshots and animated GIFs in your pull request whenever possible.
- Follow the C# and Code Comments style guides.
- Describe how you intend to add the code into the project's documentation.
### Style Guides
As the title of this section implies, the following pertains to a collection of guides and not rules. With that said, I ask you to adhere to them as best as you can. Doing so, you will make my life easier. It will, also, mean you will have a faster response from me -- less work for me to work through. If you feel like you need to break away from these guides, please do so with care and caution.
#### Git Commit Messages
- Limit the first line to 72 charters or less.
- Reference issues and pull requests after the first line.
- When changing documentation and nothing else, include "[Doc-update]" in the pull request title.
- I am not against the inclusion of the odd emoji but go easy on the amount you use.
- Use past tense (E.G. "Added feature X" not "Add feature X" or "Adding feature X").
- Aim to keep the message list-like until the end. From there, include any extra information in standard prose.
- Try to keep everything as clear and concise as possible.
#### C# (C-Sharp)
Aim to adhere to the standard C# coding conventions. If you are working in Visual Studio, the automatic formatting should suffice.
I have tried to reduce the inclusion of comments to public facing and "messy" code. This is due -- for the most part -- to intelliSense. It provides the user of Console.Waterworks.Core with help when wiring it up to their console program. With that said, what makes sense to me does not mean it does for you. So, if you feel like something needs further explanation, please add a comment. I would prefer it is comments aimed to explain the "why" and not the "how" or "what". But, this preference is a starting point and not an absolute. If you add a comment, please use XML-Comments for public code and standard comments for private code. I am not fussed if you use one multi-line comment or several inline ones.
- [C# Coding Conventions](https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/inside-a-program/coding-conventions)
- [C# Documentation Comments](https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/language-specification/documentation-comments)
### Even more Notes
If you would like to contribute to the project, thank you. Before you do, though, please make sure no one has already provided what you are offering. I am yet to come across someone with a liking for processing repeated issues, points or mistakes. And, I doubt I ever will, so please check. I appreciate all efforts by those checking to see if what they are saying is something new.
Do not feel put-off if I am slow to respond. I will read what you have to say but I am not at my desk all the time. On top of that, I encourage you to refrain from instant replies if you can help it. This allows me to consider what you have said without feeling pressured. I do not want to waste your time by retracting a hasty and ill-thought-through response.
And with that...
Do not feel like you need to reply back as fast as possible. If you feel the need to ponder something, do so. I am under the impression a good answer is better than a quick one. If you still feel bad for not replying as fast as possible, I have a piece of advice: Let me know you have received the communication (email, issue comment Etc.) and state you are thinking about it -- job's a goodun.
Last but not least...
I will not tolerate anyone acting like an "arsehole". I put Console.Waterworks.Core on GitHub to help others. It is a nice thing to do. I owe you nothing and you owe me nothing. The same applies to everyone participating here. There is no need for any heated behaviour. So, with that said, welcome to Console.Waterworks.Core and thanks again for contributing.

25
Console.Waterworks.Core.sln

@ -0,0 +1,25 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.27004.2006
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Console.Waterworks.Core", "Console.Waterworks.Core\Console.Waterworks.Core.csproj", "{D3F12E66-79AF-4CC3-BDAE-D574AA6CEA3E}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{D3F12E66-79AF-4CC3-BDAE-D574AA6CEA3E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D3F12E66-79AF-4CC3-BDAE-D574AA6CEA3E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D3F12E66-79AF-4CC3-BDAE-D574AA6CEA3E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D3F12E66-79AF-4CC3-BDAE-D574AA6CEA3E}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {D2E60B90-7187-4B27-BEF7-3DDFAF455FDE}
EndGlobalSection
EndGlobal

8
Console.Waterworks.Core/Class1.cs

@ -0,0 +1,8 @@
using System;
namespace Console.Waterworks.Core
{
public class Class1
{
}
}

7
Console.Waterworks.Core/Console.Waterworks.Core.csproj

@ -0,0 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework>
</PropertyGroup>
</Project>

BIN
Documentation/GitHub_Assets/Page-Header.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

BIN
Documentation/GitHub_Assets/Sidebar-Logo.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

25
PULL_REQUEST_TEMPLATE.md

@ -0,0 +1,25 @@
# ![Logo](Documentation/GitHub_Assets/Page-Header.png "Header")
## Pull Request
Note: Filling out the template is required. Any pull request which does not include enough information to be reviewed in a timely manner may be closed at the maintainers' discretion.
### Description of the Change
[TO DELETE] Aim to be as clear and concise as possible here. Use illustrations and gifs if you believe it will help explain your point.
### Significant Design Changes
[TO DELETE] If your pull request alters the design of the code in a significant manner, please state here what the changes are. If the changes are minor, feel free you include them in the description above. Do statement there is no major changes, though, for clarity.
### Benefits
[TO DELETE] List out the benefits. Aim to keep them short and to the point.
### Possible (Immediate) Drawbacks
[TO DELETE] List out any drawbacks your pull request introduces to the project. If you feel is necessary, elaborate as much as you can to help explain the drawbacks with accepting the pull request.
### Foreseen Issues
[TO DELETE] If you can foresee a problem **beyond** this pull request, use this section to highlight them. This will help determine the steps beyond the pull request, if any need to be taken.

100
README.md

@ -1,2 +1,98 @@
# Console.Waterworks.Core
The .Net Core version of the Console.Waterworks respository. Console.Waterworks is a Nuget package for writing extendable command-based console programs in .Net.
# ![Logo](Documentation/GitHub_Assets/Page-Header.png "Header")
## Console.Waterworks.Core is not live on Nuget just yet. Please check back here for more details
## About Console.Waterworks.Core
Console.Waterworks.Core is the .Net Core version of Console.Waterworks. Both projects are Nuget packages. And, their main purpose is to help you write extendable command-based console programs. If you want to write a console program using the full .Net Framework, use Console.Waterworks.
**[Console.Waterworks Repository](http://www.github.com/CraigOates/Console.Waterworks)**
## About Documentation
In this repository, you will find instructions on how to **use** Console.Waterworks.Core. This is because the architecture and concepts between the two projects are the same. So, it felt unnecessary to repeat that part here. Instead, I will point you to the Console.Waterworks' wiki. Once there, you can explore how they are built.
Please note, the code examples used in the wiki are the **same** for both repositories. Also, the wiki's main focus is on explaining the architecture and concepts of the projects. So, you will not find a lot of code samples in it. If you want to explore the code, I recommend you start in the class called `CW_Liaison`. It is the entry point (for both projects).
**[Console.Waterworks Wiki - Artictecture Overview](https://github.com/CraigOates/Console.Waterworks/wiki/Architecture-Overview)**
### Pre-Requisites
To use Console.Waterworks.Core, I recommend you meet the following pre-requisites:
- You have experience with [C#](https://docs.microsoft.com/en-us/dotnet/csharp/).
- You can create a [.Net console program](https://docs.microsoft.com/en-us/dotnet/core/tutorials/with-visual-studio) in [Visual Studio 2017](https://www.visualstudio.com/vs/).
- You have experience with [Nuget](https://www.nuget.org/).
- You have Microsoft [.Net Framework 4.7](https://docs.microsoft.com/en-us/dotnet/framework/install/guide-for-developers) or higher.
### Quick Start - Wiring Console.Waterworks.Core in to your Console Program
Before continuing... I am skipping the part about creating a .Net console program. This is because I assume you know how to do that. I am, also, assuming you are using Visual Studio 2017 and C# (not VB or F#).
1 Add Console.Waterworks.Core to your project via Nuget. You can do this using Visual Studio's (2017) Package Manager GUI. Or, you can use the Package Manager Console. Here is the command for the PM Console,
```powershell
# Enter the version of number of your choice.
Install-Package Console.Waterworks.Core -Version 0.1.0-alpha1
```
2 Create a class called `ConsoleCommands`. It can go anywhere as long as it is in the same project as the console program.
3 Make a note of the `ConsoleCommands` namespace.
4 Head to the `Main` method in `Program.cs` and add the following lines of code,
```c#
public static void Main(string[] args)
{
CW_Liaison liaison = new CW_Liaison();
liaison.Run("CW_Console", true);
}
```
5 Head back to `ConsoleCommands` and make it public and static.
6 Stay in `ConsoleCommands` and write the following method,
```c#
public string Test()
{
return "Congratulations! It works.";
}
```
7 Run the program and type "Test" into the console.
8 If all has gone well, you should see the “Congratulations! It works." message.
9 Add more methods to you console program.
### (Offline) Guides
I provided a link to Console.Waterworks' Wiki as a online guide for learning about Console.Waterworks(.Core)'s architecture. With that said, I have, also, mad a couple of guides for when you are offline. The are as follows,
- The Quick Guide to Console.Waterworks.Core
- The Architecture Guide Console.Waterworks.Core
These guides are printer friendly. And, they are best consumed on your favourite reading chair.
### Code of Conduct
Please visit the Code of Conduct page for Console.Waterworks.Core at,
- [Code of Conduct page](https://github.com/CraigOates/Console.Waterworks.Core/blob/master/CODE_OF_CONDUCT.md)
- [MIT License](https://github.com/CraigOates/Console.Waterworks.Core/blob/master/LICENSE)
### Contributing to the Console.Waterworks.Core Repository
Please visit the Contributing page for Console.Waterworks.Core at,
- [Contributing page](https://github.com/CraigOates/Console.Waterworks.Core/blob/master/CONTRIBUTING.md)
### About the Creator
Hi, my name is Craig and I'm the creator of Console.Waterworks.Core. Thanks for checking it out.
- Email:craig@craigoates.net
- Web: [http://www.craigoates.net](http://www.craigoates.netk)
- Project's Site: [http://craigsappshed.azurewebsites.net/Waterworks](http://craigsappshed.azurewebsites.net/Waterworks "Project's site") (Subject to change)
Loading…
Cancel
Save