MWTech.Dataverse.PluginToolKit
1.0.0.8
dotnet add package MWTech.Dataverse.PluginToolKit --version 1.0.0.8
NuGet\Install-Package MWTech.Dataverse.PluginToolKit -Version 1.0.0.8
<PackageReference Include="MWTech.Dataverse.PluginToolKit" Version="1.0.0.8" />
<PackageVersion Include="MWTech.Dataverse.PluginToolKit" Version="1.0.0.8" />
<PackageReference Include="MWTech.Dataverse.PluginToolKit" />
paket add MWTech.Dataverse.PluginToolKit --version 1.0.0.8
#r "nuget: MWTech.Dataverse.PluginToolKit, 1.0.0.8"
#:package MWTech.Dataverse.PluginToolKit@1.0.0.8
#addin nuget:?package=MWTech.Dataverse.PluginToolKit&version=1.0.0.8
#tool nuget:?package=MWTech.Dataverse.PluginToolKit&version=1.0.0.8
MWTech.Dataverse.PluginToolKit 💡
A battle-tested, sugar-loaded plugin helper library for Dynamics 365 / Dataverse development — designed by developers, for developers ⚔️
🧩 What is this?
MWTech.Dataverse.PluginToolKit
is your all-in-one toolbox for writing clean, maintainable, and efficient Dynamics plugins.
Skip the boilerplate. Focus on the logic. This kit does the rest.
✨ Features
✅ Plugin Base
UltimatePluginBase
— abstract base class for fast, structured plugin dev.PluginContext
— all plugin services injected and ready to roll.
public class MyPlugin : UltimatePluginBase
{
protected override void ExecutePluginLogic()
{
Logger.LogInfo("Plugin running!");
var name = Target?.Get<string>("name");
//or
var name = Target?.GetString("name");
}
}
🔧 Extension Libraries
🧠 EntityExtensions
entity.Get<T>("attribute")
entity.Has("field")
entity.GetLookupId("parentid")
entity.HasChanged(preImage, "field")
⚙️ ExecutionContextExtensions
context.IsCreate()
,IsUpdate()
,IsDelete()
GetTargetEntity()
,GetPreImage()
,GetPostImage()
🔥 TracingServiceExtensions
.LogInfo("...")
.LogError(ex)
.Log("CustomLevel", "message")
🌐 HttpHelper
HttpHelper.Post<T>()
HttpHelper.Get<T>()
- Supports headers (e.g., Bearer tokens)
🧙 ServiceExtensions
service.RetrieveEntity("account", id, columns)
service.SafeUpdate(entity)
service.RetrieveMultipleEntities(query)
🧙♀️ FetchXmlExtensions
service.Fetch<T>(fetchXml)
service.FetchSingle<T>(fetchXml)
- Typed results from FetchXML with minimal effort
🧙♀️ Annotation Helpers
AnnotationHelper.AddSimpleNote( Service, Context.GetPrimaryEntityReference(), subject: "Plugin Ran", noteText: "Some useful note." );
AnnotationHelper.AttachAnnotation( Service, new EntityReference("contact", contactId), qrCodeBytes, "qrcode.png", "image/png", subject: "QR Code", noteText: "Auto-generated QR" );
📦 Installation
dotnet add package MWTech.Dataverse.PluginToolKit
Or from NuGet Package Manager UI:
Browse → Search
MWTech.Dataverse.PluginToolKit
→ Install
🔥 Sample Plugin Usage
public class MyPlugin : UltimatePluginBase
{
protected override void ExecutePluginLogic()
{
Logger.LogInfo("Plugin running!");
var name = Target?.Get<string>("name");
//or
var name = Target?.GetString("name");
}
}
Built with ❤️ for real-world CRM developers by MWTech
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 is compatible. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETFramework 4.6.2
- Microsoft.CrmSdk.CoreAssemblies (>= 9.0.2.59)
- System.Formats.Asn1 (>= 9.0.7)
- System.Net.Http (>= 4.3.4)
- System.Security.Cryptography.Pkcs (>= 9.0.7)
-
.NETStandard 2.0
- Microsoft.CrmSdk.CoreAssemblies (>= 9.0.2.59)
- System.Formats.Asn1 (>= 9.0.7)
- System.Net.Http (>= 4.3.4)
- System.Security.Cryptography.Pkcs (>= 9.0.7)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.