Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for .NET iOS / .NET MAUI apps #1617

Closed
mattleibow opened this issue Jan 7, 2024 · 6 comments
Closed

Support for .NET iOS / .NET MAUI apps #1617

mattleibow opened this issue Jan 7, 2024 · 6 comments

Comments

@mattleibow
Copy link

Are you requesting automatic instrumentation for a framework or library? Please describe.
I am wondering about the plans and/or interest in supporting .NET for iOS and/or .NET MAUI for iOS.

Is your feature request related to a problem? Please describe.
I would like to use DataDog RUM with my .NET mobile app, but I am unable to find any bindings for the DataDog SDK for iOS.

Describe the solution you'd like
An official or community .NET binding for the iOS SDK so I ca use it in my apps.

Describe alternatives you've considered
I am not able to maintain a binding myself at this time.

Additional context

@MaelNamNam
Copy link
Contributor

Hi Matthew and thanks for reaching out! x-posting this from our Android repo but indeed, we are not supporting .NET frameworks at the moment, and unfortunately do not have plans to bring official support in the near future. However, it's something that has been on our radar for some time already, and I was wondering if you could go through your support channels to escalate this feature request? It will help us better track demand to re-asses our priorities, and retrieve more details about your needs (number of apps, volume of sessions, particular use cases...) in a more confidential way :)
Cheers!

@craigwi
Copy link

craigwi commented Oct 29, 2024

As I mentioned on DataDog/dd-sdk-android#1811, DataDog is referenced as a recommended solution for the retirement of https://appcenter.ms/apps. Will you be ready by March 2025?

@ivandamyanov
Copy link

As I mentioned on DataDog/dd-sdk-android#1811, DataDog is referenced as a recommended solution for the retirement of https://appcenter.ms/apps. Will you be ready by March 2025?

Same reason I am looking into DataDog for Xamarin - the AppCenter recommendation. I guess not all AppCenter were using Xamarin (which I am) and maybe that's why Microsoft recommended it even though Xamarin/MAUI is not even planned. That's why I am looking into New Relic as well.

@mariedm
Copy link
Member

mariedm commented Nov 4, 2024

Hi! Support for Xamarin or MAUI is currently not on our roadmap. As @MaelNamNam suggested, please feel free to submit this feature request through your support channels to ensure it’s escalated internally.

@prashanth-ardex
Copy link

Hi,
Has there been any change regarding the status of this feature request?

@oddfrer
Copy link

oddfrer commented Mar 10, 2025

I've tested the binding Bcr.Datadog.iOS.Sdk for Logs and RUM, and it works great.

Easy setup:

// DDConfig
var configuration = new DDConfiguration(ClientToken, environment);
configuration.Site = DDSite.EU1;
DDDatadog.Initialize(configuration, DDTrackingConsent.Granted);

// DDLogs
var logsConfiguration = new DDLogsConfiguration(null);
DDLogs.Enable(logsConfiguration);

// DDCrashReporter
DDCrashReporter.Enable();

// DDRUM
var rumConfiguration = new DDRUMConfiguration(AppId);
DDRUM.Enable(rumConfiguration);

_rumMonitor = DDRUMMonitor.Shared;

// DDLogger
var loggerConfiguration = new DDLoggerConfiguration
{
    Service = "test.test.test",
    Name = "ios-logger",
    NetworkInfoEnabled = true,
    RemoteLogThreshold = DDLogLevel.Info,
    RemoteSampleRate = 100,
    PrintLogsToConsole = true,
};

_logger = DDLogger.Create(loggerConfiguration);

Example of custom RUM events and page tracking:

static partial void TrackAppPagePlatform(string pageName)
{   
    _rumMonitor?.StartView(pageName, pageName, new NSDictionary<NSString, NSObject>());
}

static partial void StopTrackAppPagePlatform(string pageName)
{
    _rumMonitor?.StopView(pageName, new NSDictionary<NSString, NSObject>());
}

static partial void TrackTapEventPlatform(string viewName)
{
    _rumMonitor?.AddAction(DDRUMActionType.Tap, viewName, new NSDictionary<NSString, NSObject>());
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

9 participants