

<feed xmlns="http://www.w3.org/2005/Atom">
  <id>https://www.jibberwock.com/</id>
  <title>Jibberwock</title>
  <subtitle>Personal collection of projects and useful links</subtitle>
  <updated>2024-01-13T13:13:03+00:00</updated>
  <author>
    <name>Edward Neal</name>
    <uri>https://www.jibberwock.com/</uri>
  </author>
  <link rel="self" type="application/atom+xml" href="https://www.jibberwock.com/feed.xml"/>
  <link rel="alternate" type="text/html" hreflang="en"
    href="https://www.jibberwock.com/"/>
  <generator uri="https://jekyllrb.com/" version="4.3.3">Jekyll</generator>
  <rights> © 2024 Edward Neal </rights>
  <icon>/assets/img/favicons/favicon.ico</icon>
  <logo>/assets/img/favicons/favicon-96x96.png</logo>


  
  <entry>
    <title>Serializing derived classes using System.Text.Json.JsonSerializer</title>
    <link href="https://www.jibberwock.com/posts/system-text-json-inheritance/" rel="alternate" type="text/html" title="Serializing derived classes using System.Text.Json.JsonSerializer" />
    <published>2020-02-11T22:00:00+00:00</published>
  
    <updated>2020-02-11T22:00:00+00:00</updated>
  
    <id>https://www.jibberwock.com/posts/system-text-json-inheritance/</id>
    <content src="https://www.jibberwock.com/posts/system-text-json-inheritance/" />
    <author>
      <name>edwardneal</name>
    </author>

  
    
    <category term="Bullet Points" />
    
  

  
    <summary>
      





      Overview
By default, ASP.NET Core uses a new JSON serializer: System.Text.Json.JsonSerializer. This has slightly different behaviour to Newtonsoft’s Json.NET when serializing derived types.

Example Code
public class Program
{
    public class BaseClass
    {
        public string BaseClassProperty { get; set; }
    }

    public class DerivedClass : BaseClass
    {
        public string Derive...
    </summary>
  

  </entry>

  
  <entry>
    <title>Using 32-bit COM objects from 64-bit clients</title>
    <link href="https://www.jibberwock.com/posts/x86-com-x64-client/" rel="alternate" type="text/html" title="Using 32-bit COM objects from 64-bit clients" />
    <published>2020-02-09T21:00:00+00:00</published>
  
    <updated>2020-02-09T21:00:00+00:00</updated>
  
    <id>https://www.jibberwock.com/posts/x86-com-x64-client/</id>
    <content src="https://www.jibberwock.com/posts/x86-com-x64-client/" />
    <author>
      <name>edwardneal</name>
    </author>

  
    
    <category term="Bullet Points" />
    
  

  
    <summary>
      





      Overview
This can sometimes arise during server migrations: moving from older versions of Windows Server (which are usually 32-bit) to newer ones (which have been 64-bit-only since Windows Server 2008 R2.)

The reason that this causes problems is that a 64-bit process can’t directly host 32-bit code (and vice versa.) This means that if you’re updating an application which has moved from 32-bit ...
    </summary>
  

  </entry>

  
  <entry>
    <title>Using COM methods in PowerShell</title>
    <link href="https://www.jibberwock.com/posts/powershell-com-variants/" rel="alternate" type="text/html" title="Using COM methods in PowerShell" />
    <published>2020-02-09T21:00:00+00:00</published>
  
    <updated>2020-02-09T21:00:00+00:00</updated>
  
    <id>https://www.jibberwock.com/posts/powershell-com-variants/</id>
    <content src="https://www.jibberwock.com/posts/powershell-com-variants/" />
    <author>
      <name>edwardneal</name>
    </author>

  
    
    <category term="Bullet Points" />
    
  

  
    <summary>
      





      Overview
PowerShell can create instances of COM objects using New-Object -ComObject. Calling methods on these objects can be difficult though - it doesn’t seem to properly handle methods which have VARIANTs in their signature.

I found this StackOverflow answer which describes the fix. You effectively need to add System.Runtime.InteropServices.VariantWrapper as another level of indirection.

Sa...
    </summary>
  

  </entry>

  
  <entry>
    <title>Connecting to Application Insights with Managed Service Identities</title>
    <link href="https://www.jibberwock.com/posts/application-insights-msi/" rel="alternate" type="text/html" title="Connecting to Application Insights with Managed Service Identities" />
    <published>2020-02-09T20:00:00+00:00</published>
  
    <updated>2020-02-09T20:00:00+00:00</updated>
  
    <id>https://www.jibberwock.com/posts/application-insights-msi/</id>
    <content src="https://www.jibberwock.com/posts/application-insights-msi/" />
    <author>
      <name>edwardneal</name>
    </author>

  
    
    <category term="Bullet Points" />
    
  

  
    <summary>
      





      Overview
A lot of services can drop data into Application Insights - Azure VMs, Azure App Services, Azure Functions, custom web services and on-premise services. Getting access to this data typically requires an API key though, which can add complexity.
If you don’t want to deal with managing a secret, you can also use Azure AD authentication. This will allow you to access the API using the ide...
    </summary>
  

  </entry>

  
  <entry>
    <title>Atlassian StatusPage Client</title>
    <link href="https://www.jibberwock.com/posts/statuspageioclient/" rel="alternate" type="text/html" title="Atlassian StatusPage Client" />
    <published>2019-10-01T20:31:00+01:00</published>
  
    <updated>2019-10-01T20:31:00+01:00</updated>
  
    <id>https://www.jibberwock.com/posts/statuspageioclient/</id>
    <content src="https://www.jibberwock.com/posts/statuspageioclient/" />
    <author>
      <name>edwardneal</name>
    </author>

  
    
    <category term="Projects" />
    
    <category term="Libraries" />
    
  

  
    <summary>
      





      Overview
statuspage.io (later acquired by Atlassian and renamed Atlassian Status) is a fairly common service which provides a hosted status page. Part of this service is a publicly-accessible REST API, which enables people and services to get the current status, any current incidents and scheduled maintenance events. While there are a few clients which enable .NET Framework applications to acce...
    </summary>
  

  </entry>

</feed>


