Shadow Network Framework  0.0.1-alpha
.NET Client Library for Shadow Network Framework
Loading...
Searching...
No Matches
Getting Started

First download the DLL from My Website or from Github

To Include this Library in any C# Project these lines in the .csproj

...
<ItemGroup>
<Reference Include="SNFClient">
<HintPath><Path to Downloaded DLL></HintPath>
</Reference>
</ItemGroup>
...

or to add in Visual Studio (Tried in VS 2022) after loading you project follow these steps
Project -> Add COM Reference -> Browse... -> Then Browse and Choose the downloaded .dll -> Add -> Ok

How does SNF work?

The general idea behind SNF is that it sends and receives Requests, automatically handles them behind the scenes on a Separate Thread Pool. Currently as of 0.0.1-alpha version there is not much you can customize other than to know that it works to some degree, the future version will allow you for more customization.

Overview on SNF Requests

Shadow Network Framework is based on an Unnamed Protocol ( Not yet named ) where it sends variables in one buffer

  • Request's Informations
  • Request's OPCode
  • Request's Content (Arguments)

Request's Informations

SNF Request must have a

  • Request's Unique IDentifier (See Request.UID for more information ).
  • Request's Registred OPCode Defining the action to do which would be encoded into a 4 bytes array

Request's OPCode

It is a series of 4 OPCode Members, 1 of each OPCode Member Ranks , Ranks are the following (In order from highest to lowest)

  • Category
  • Sub-Category
  • Command
  • Detail

There is by default some base OPcode Members which are required for the normal functioning of the framework.

Warning
Never Add/Modify Base OPCode Members!


See more about the base OPCode Members in OPCode Base Class

See more about OPCode's Structure

Request's Content (Arguments)

The Contents are ASCII Strings in byte format that are Separated by a character called UNIT_SCEPARATOR ( 31 )

The limitation of treating the arguments as string will be problematic when you want to send binary data, this will of course be changed in future releases , but for now remember Arguments are ASCII strings.