- dnSpyEx - Unofficial revival of the well known .NET debugger and assembly editor, dnSpy
- CodemerxDecompile - .NET multi-platform decompiler (original makers of JustDecompile)
- de4dot - .NET deobfuscator and unpacker. (archived 2020)
- ILSpy - .NET Decompiler with support for PDB generation, ReadyToRun, Metadata - cross-platform!
- Iced - Blazing fast and correct x86/x64 disassembler, assembler, decoder, encoder for Rust, .NET, Java, Python, Lua
using Microsoft.Maui.Storage; | |
using System.Security.Cryptography; | |
using System.Text; | |
// Based on: https://github.com/soyfrien/ImageCache | |
namespace MyProjectNamespace; | |
/// <summary> | |
/// Use this class to cache images from the Internet. | |
/// Its functions receive a URI and turn the resource into an ImageSource, byte array, Stream, or Func‹Stream›. |
<UserControl.Resources> | |
<ResourceDictionary> | |
<DataTemplate x:Key="FlatDeviceInfo" DataType="models:DeviceInfo"> | |
<TextBlock> | |
<TextBlock.Text> | |
<MultiBinding StringFormat="{}{0} - {1}"> | |
<Binding Path="Address" /> | |
<Binding Path="DeviceTypeName" /> | |
</MultiBinding> | |
</TextBlock.Text> |
/* | |
* Example showing how to share an API route with a Web (view) | |
* If the request expects JSON, it shall receive it. Otherwise, display the View. | |
* Remember, just because you can, doesn't mean you should. | |
*/ | |
class ActivityController extends Controller | |
{ | |
/** | |
* Display a listing of the resource. | |
*/ |
The example code here references Docker and IoT Edge as an example. The user/pass is Base64 encoded as part of the Bash class in this example.
By no means should you keep the admin user/pass hard-coded in the production class, this is an example piece.
The Bash
class has both RunAs(..)
and Command(..)
, and each allows you to run using sudo
. The difference is, the RunAs(...)
method does not require your app to be started with elevated privledges. Where as, Command(..)
requires you to start the app with elevated privledges in order to execute commands using sudo
.
When developing in medium to larger teams, becomes more important to be able to automatically maintain code styling throughout the project to maintain readability and clarity. This rule also applies to smaller projects as well, abiet at times easier to manage ("New guy, please remove the 5 blank lines in a row in the method. And the blank spaces after the statements.").
Below is a quick snip for configuring VSCode to automagically take care of this every time you press save (Ctrl+S). The following assumes you already have a project workspace already started in VSCode.
Key files:
.vscode/extensions.json
.vscode/settings.json
<UserControl ...> | |
<!-- Sample 1 - ListBox Data Template - Dobule-Tapped --> | |
<UserControl.Resources> | |
<ResourceDictionary> | |
<DataTemplate x:DataType="models:HardwareEvent" x:Key="BleAdvertisement"> | |
<Panel Background="Transparent"> | |
<i:Interaction.Behaviors> | |
<ia:EventTriggerBehavior EventName="DoubleTapped"> | |
<!-- Must set the parent, otherwise it will look for the 'Command' in the template's DataType --> | |
<ia:InvokeCommandAction Command="{Binding $parent.((vm:BluetoothViewModel)DataContext).CmdCopyText}" |
using System.Windows.Input; | |
using Avalonia; | |
using Avalonia.Xaml.Interactivity; | |
namespace SuessLabs.Tool.Common.Behaviors; | |
/// <summary>Base class for behavior command binding event on its source and executes its actions when that event is fired.</summary> | |
/// <typeparam name="T">Type of behavior.</typeparam> | |
public class CommandBehaviorBase<T> | |
: Behavior<T> |
using System; | |
using System.Collections; | |
using System.Collections.Concurrent; | |
using System.Threading; | |
using System.Threading.Tasks; | |
using Microsoft.Extensions.Caching.Memory; | |
using CacheExample.Extensions; | |
namespace CacheExample.Services; |