Skip to content

Latest commit

 

History

History
122 lines (70 loc) · 6.4 KB

README.md

File metadata and controls

122 lines (70 loc) · 6.4 KB

neo-npcc2

NEO Persistable Classes (NPC) Compiler 2.1 (npcc) - Compiler for the NEO Persistable Classes (NPC) Platform 2.1

NEO Blockchain C# Center of Excellence

The neo-csharpcoe project is an "umbrella" project for several initiatives related to providing tools and libraries (code), frameworks, how-to documentation, and best practices for enterprise application development using .NET/C#, C#.NEO and the NEO Blockchain.

The neo-csharpcoe is an independent, free, open source project that is 100% community-supported by people like yourself through your contributions of time, energy, passion, promotion, and donations. To learn more about contributing to the neo-csharpcoe, click here.

CURRENT NPC V2.0 PROJECT can be found here (https://github.com/mwherman2000/neo-persistableclasses/blob/master/README.md).

PREVIOUS NPC V1.0 PROJECT can be found here (https://github.com/mwherman2000/neo-persistibleclasses/blob/master/README.md) (with the mispelled project name :-)).

What is NPC?

  • NEO Persistable Classes
  • Long name: NEO Persistable Class (NPC) Platform 2.1
  • Byline: An Efficient Entity-based Platform for enterprise application development using .NET/C#, C#.NEO and the NEO Blockchain.

What is the subset of C# supported by the NEO compiler and NEO VM?

npcc 2.1 - Autogeneration of NPC Level 0-4 Reusable Entities (Smart Classes)

NPC Platform Architecture: Development and Execution

NPC Architecture

Step-by-Step Example

  • Input NPC Model Class Project: Plain Old C# Classes

    C#.NPC Model Class Project

  • npcc Compiler Output

    npcc Compiler Output

  • Autogenerated C#.NPC NeoContract smart contract project

    A. Input Model Class Project: Plain Old C# Class(es)

    B. Autogenerated NoeContract Smart Contract Project

    C. Line Entity C#.NPC Partial Classes

    D. NeoEntityModel C#.NPC Classes

    E. Point Entity C#.NPC Partial Classes

    Autogenerated Visual Studio NeoContract smart contract project

npcc 1.0 - initial results

  • Input NPC Model Class C#.NPC Source File

    Input NPC Class

  • npcc Parser Output

    npcc Parser Output

NEO Persistable Class (NPC) 1.0: Deep Dive (NEO Community Bluepaper)

NPC Levels of Layered Persistance Supported

There are a number of different levels when it comes to applying the NPC Framework to classes in C#.NPC. There are:

  • NPC Level 0 Basic
  • NPC Level 1 Managed
  • NPC Level 2 Persistable
  • NPC Level 3 Deletable (Bury/Tombstone)
  • NPC Level 4 Collectable
  • NPC Level 5 Extendible (roadmap)
  • NPC Level 6 Authorized (roadmap)
  • NPC Level 7 Optimized (roadmap)

Who is Michael Herman?

Michael Herman (Toronto) (photo)

Independent Blockchain Developer

Michael Herman is a independent developer and writer who contributes to several NEO Blockchain projects including:

  • NEO developer tool suite (neo-lux, neo-debugger and neo-gui-developer projects)
  • mwherman2000/neo-persistableclasses project – home of the NEO Persistable Class Framework (NPC) for efficient entity-based smart contract development using C#.NEO
  • mwherman2000/dotnetquickstart project – home of the NEO Blockchain Quick Start Guide for .NET Developers.

Michael is also the founder of the NEO Blockchain C# Center of Excellence as well as the first Canadian NEO Blockchain Meetup group (NEO Blockchain Toronto). He has helped bootstrap several additional Meetups worldwide including NEO Blockchain Vancouver, NEO Blockchain Cancun, and NEO Blockchain Turkey.

Contact

Feedback

  • In just 10 days you [made] tons of progress, you're probably [one of] the fastest learners around here.