System.Ben icon indicating copy to clipboard operation
System.Ben copied to clipboard

Needs to be factored correctly

Open davkean opened this issue 8 years ago • 4 comments

I've noticed that you have a single binary System.Ben.dll. As it stands, this won't work across the breadth of platforms that run .NET; phones, desktops, nano servers, fridges and Phony's new Toastmaster 3000.

I'd recommend factoring this out into multiple assemblies:

Assembly Description
System.Ben.dll Type-forwarding facade that forwards onto the other dlls for compatibility
System.Ben.Core.dll Core API containing exchange types that runs everywhere
System.Ben.Core.Extensions.dll Core API containing extension types that runs everywhere
System.Ben.Devices.dll API containing types for devices that are smaller enough to fit in a pants pocket
System.Ben.Extensions.dll API containing extensions types for devices that that are larger than a box of cereal
System.Ben.Kitchen.dll API containing types for devices that live permanently in a kitchen
System.Ben.FireGuard.dll API containing types for devices that have a history of catching on fire, or catching things on fire
System.Ben.SecureString.dll Extensions for devices that ship with SecureString
System.Ben.Extensions.Abstractions.Interfaces.IBen Contains the IBen (coming in v2) interface separated out for sharing between unrelated open source libraries

@terrajobst to setup an architecture review, @blowdart for the security side of things.

davkean avatar Mar 22 '17 01:03 davkean

Can you define "permanently"? Sometimes our Optigrill leaves our kitchen for another kitchen, but it's always in a kitchen, where does this fall in the distribution list? Also, which of these is best for running my botnet?

NickCraver avatar Mar 22 '17 01:03 NickCraver

This code is too secure to run on any IoT device.

alexwiese avatar Mar 22 '17 01:03 alexwiese

Forgot about the IBen assembly, added it.

@NickCraver Good point, I'll bring this up in the next Framework Design Core meeting. My feeling is that we'll support System.Ben.Kitchen.dll on it. We're also considering adding support for System.Ben.Kitchen on phones, as turns out 43% of people charge their phone in their kitchen.

davkean avatar Mar 22 '17 01:03 davkean

I believe you need a System.Ben.RolledMyOwnCrypto library, plus appropriate interface project.

blowdart avatar Mar 22 '17 01:03 blowdart