Partial migration to .NET 8.0: Queue inspection & dead-letter replay
Overview
This PR begins the migration of Service Bus Explorer to .NET 8.0 (Windows). It lays the groundwork for working with the latest SDK by introducing new abstractions and partially migrating functionality around queues.
Although the migration is incomplete and the project does not currently build on the latest commit, the prior commit(s) can be checked out to run the application. This PR is shared in case the work is useful to others continuing the migration.
https://github.com/user-attachments/assets/fb0285bd-9d0c-4b36-abfb-583a220dffda
Changes
- net472 projects have been moved to net8.0-windows.
- Added
ServiceBusConnectionto encapsulate interactions with a Service Bus namespace. - Replaced
ServiceBusHelper2withServiceBusService(with interface) to centralise Service Bus interactions. - Introduced
QueueMetadatato encapsulateQueuePropertiesandQueueRuntimeProperties. - Queue functionality migrated:
- Inspecting queues (message counts, message bodies).
- Replaying dead-letter messages for both session and non-session queues.
- Inspectors rewritten to use models from the new SDKs.
Current Status
- The project does not build successfully at the latest commit.
- To run, check out either the commit before HEAD or the one before the latest.
- Migration is partial and focused on queues.
What's left
Further work is required to complete the migration:
- Additional entities:
- Full queue functionality
- Queue Creation
- Editing message body before replaying
- etc.
- Relays
- Subscriptions
- Topics
- Full queue functionality
- Package replacements for:
- System.ServiceModel.Channels
- System.Security.Permissions (obsolete in .NET 8).
- System.Configuration
Notes
- I hope this contribution provides a useful starting point for others.
I have a few questions related to this PR.
- @Ethan-67, are you able to commit beyond this PR? I've not seen any comments addressed for 3 weeks.
- @paolosalvatori and @ErikMogensen, I've not seen anything from you. Please share your thoughts.
This PR is solely focusing on Azure Service Bus. But SBE is, unfortunately, a monolith for various messaging services (EventGrid, EventHubs, ServiceBus, etc.) I'd be more comfortable if the tools were split out first, but this is not my decision or commitment to make.
I have a few questions related to this PR.
- @Ethan-67, are you able to commit beyond this PR? I've not seen any comments addressed for 3 weeks.
- @paolosalvatori and @ErikMogensen, I've not seen anything from you. Please share your thoughts.
This PR is solely focusing on Azure Service Bus. But SBE is, unfortunately, a monolith for various messaging services (EventGrid, EventHubs, ServiceBus, etc.) I'd be more comfortable if the tools were split out first, but this is not my decision or commitment to make.
Thanks @Ethan-67 for the PR and @SeanFeldman for the review. I agree with the direction, but the PR is currently blocked from merging until the following essential criteria are met:
- Full .NET 8.0 Migration: All dependent projects must be migrated to .NET 8.0 (not just a single project).
- Clean Build: All projects must build successfully without errors or warnings.
- Verified Stability: Comprehensive integration testing must confirm zero regressions and guaranteed functionality across all supported messaging services (Service Bus, Event Hubs, Event Grids, etc.).
Let's revisit once these points are complete and thanks for the contribution! cc: @ErikMogensen
I have a few questions related to this PR.
1. @Ethan-67, are you able to commit beyond this PR? I've not seen any comments addressed for 3 weeks. 2. @paolosalvatori and @ErikMogensen, I've not seen anything from you. Please share your thoughts.This PR is solely focusing on Azure Service Bus. But SBE is, unfortunately, a monolith for various messaging services (EventGrid, EventHubs, ServiceBus, etc.) I'd be more comfortable if the tools were split out first, but this is not my decision or commitment to make.
Hello @SeanFeldman appreciate the review, for now I will try and address the comments you made best I can. First I would like to bring the number of files changed down to make more manageable.
After that I was hoping this PR could be useful for others to continue from as there is much to port over still. Maybe I can contribute more in the future to.