GithubHelp home page GithubHelp logo

captainprice / fake-implementation Goto Github PK

View Code? Open in Web Editor NEW
4.0 2.0 0.0 567 KB

Removes instructions/variables from all of the methods in the given input assembly.

License: MIT License

C# 100.00%
fake-implementation mono cecil dnlib

fake-implementation's Introduction

Fake Implementation

Build status Release MIT License
Removes instructions/variables from all of the methods in the given input assembly.

What is the point of this?

The point of this is being it allows developers to generate a "preview" assembly, that is, all of the implementation is removed out.

UPDATE

This tool has been superseded by (official) C# compiler (in 7.1 release).
Therefore I recommend using the official compiler option (-refonly), the concept is called "Reference-only assembly" (see docs).
And for more information, click here.
This tool is small and easy to use, but I don't know if there is anyone actually making the use of such concept in the wild.
This were supposed to be pushed towards Facepunch devs, for their prototype game called S&Box, but I don't think I have established this concept back in a day.
As it stands now, you can continue to use this tool, it will remain working for those of who used it without any problems in their build process.
I am closing this project as I believe it is final and stable to use. I no longer have much interest in developing this project any further.
Shutdown.

Usage scenario & More info

The main goal of this project is to provide support to 3rd-party .NET developers to build stuff for Your unreleased/internal software, and be ahead of time together.
If the XMLDoc file exists, it will be preserved for the generated assembly, and may be shared directly if you wish to provide original documentation to 3rd-party as well.
If the program is run successful, an output assembly will be named *-preview.
Linux (with mono) & Windows OS are both supported.

Running on Linux Running on Windows

Here is a small IL/C# inspection of the generated "preview" assembly (Mono.Cecil-preview.dll): IL Decompiled to C#

The generated "preview" assembly enables 3rd-party users to compile their project, but it is not going to run properly (yes, of course, this is normal and does not matter for us at all; the internal software is yet to be released at that point).
Because, a "preview" assembly is meant to be used as a reference for pure advantages of IDE features (such as IntelliSense, XMLDocs, etc).
Once the internal software becomes released, then 3rd-party users would simply just need to update their reference to use non-preview version.

Using the generated preview assembly in C#

Contribution

Visit the Contributor Guidelines for more details. All contributors are expected to follow our Code of Conduct.

Support

If you think you have found a bug or have a feature/enhancement request for Fake Implementation, use our issue tracker.

Before opening a new issue, please be kind and search to see if your problem has already been reported. Try to be as detailed as possible in your issue reports.
When creating an issue, clearly explain

  • What you were trying to do?
  • What you expected to happen?
  • What actually happened?
  • Steps to reproduce the problem.

Also include any other information you think is relevant to reproduce the problem.

License

Fake Implementation repository/code is freely distributed under the MIT license. See LICENSE file for more details.

Credits

It is made possible thanks to all dnlib and Mono.Cecil authors.

CaptainPRICE for developing Fake Implementation.

fake-implementation's People

Contributors

captainprice avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.