Skip to content

Instantly share code, notes, and snippets.

View MelbourneDeveloper's full-sized avatar
🏠
Working from home

Christian Findlay MelbourneDeveloper

🏠
Working from home
View GitHub Profile
@MelbourneDeveloper
MelbourneDeveloper / PubSub3.cs
Created October 24, 2020 05:19
This version creates two threads and loops. It's no good.
/*
Name: One Message: Hi
Name: Two Message: Hi
Name: One Message: Hi
Name: Two Message: Hi
Name: One Message: Hi
Name: Two Message: Hi
Name: Two Message: Hi
Name: One Message: Hi
Name: Two Message: Hi
@MelbourneDeveloper
MelbourneDeveloper / PubSub4.cs
Last active October 24, 2020 22:08
Implement pub/sub with an IObservable
/*
Output
Name: One Message: Hi
Name: Two Message: Hi
Name: One Message: Hi
Name: Two Message: Hi
Name: One Message: Hi
Name: Two Message: Hi
Name: One Message: Hi
Name: Two Message: Hi
@MelbourneDeveloper
MelbourneDeveloper / HotObservable.cs
Last active October 25, 2020 00:08
Use a hot observable to share
/*
Output
Name: One Message: Hi
Name: Two Message: Hi
Name: One Message: Hi
Name: Two Message: Hi
Name: One Message: Hi
Name: Two Message: Hi
Name: One Message: Hi
Name: Two Message: Hi
@MelbourneDeveloper
MelbourneDeveloper / Hotobservable.cs
Last active October 25, 2020 06:03
Hot observable implementation which is modification of Enigmativity's sample
/*
Name: One Message: Hi
Name: Two Message: Hi
Name: One Message: Hi
Name: Two Message: Hi
Name: One Message: Hi
Name: Two Message: Hi
Name: One Message: Hi
Name: Two Message: Hi
Name: One Message: Hi
using System;
namespace FluentInterfaceDesignPattern
{
class Program
{
static void Main(string[] args)
{
var obj = EmployeeExtensions.CreateEmployee(default, default, default, default);
obj = obj.NameOfTheEmployee("Anurag Mohanty")
@MelbourneDeveloper
MelbourneDeveloper / DecoupleClassFromInterfaces.cs
Last active October 30, 2020 06:32
This samples demonstrates how to decouple a class from any dependent types. This is a step up from injecting interfaces. This class approach means that the business service can be moved to an assembly that does not depend on any interfaces (types) for loading or saving..
using Microsoft.Extensions.DependencyInjection;
using System;
using System.Linq;
namespace ConsoleApp2
{
class Program
{
static void Main()
{
@MelbourneDeveloper
MelbourneDeveloper / Example.csproj
Last active December 21, 2020 02:43
Modern csproj Targeting .NET Standard
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>netstandard2.0;net5.0</TargetFrameworks>
<LangVersion>9</LangVersion>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Bcl.AsyncInterfaces" Version="5.0.0" />
@MelbourneDeveloper
MelbourneDeveloper / ExampleClass.cs
Created December 21, 2020 02:18
.NET Standard Sample Code
using System;
using System.Linq;
using System.Text.Json;
using System.Threading.Tasks;
namespace DotNetStandardLibrary
{
public class ExampleClass
{
public string Test { get; }
@MelbourneDeveloper
MelbourneDeveloper / Program.cs
Created December 21, 2020 02:46
.NET 4.6.1 Sample
using DotNetStandardLibrary;
using System;
using System.Threading.Tasks;
namespace DotNet461ConsoleApp
{
internal class Program
{
private static async Task Main()
{
@MelbourneDeveloper
MelbourneDeveloper / Build.bat
Created December 25, 2020 05:30
Device.Net Build Batch File
git clean -x -f -d
"c:\temp\nuget" restore src/Device.Net.Pipelines.sln
msbuild src/Device.Net.Pipelines.sln /property:Configuration=Release
"c:\temp\nuget" pack Build/NuSpecs/Device.Net.nuspec
"c:\temp\nuget" pack Build/NuSpecs/Device.Net.LibUsb.nuspec
"c:\temp\nuget" pack Build/NuSpecs/Hid.Net.nuspec
"c:\temp\nuget" pack Build/NuSpecs/SerialPort.Net.nuspec