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

[WIP] Switch to Microsoft.Azure.ServiceBus #91

Open
wants to merge 14 commits into
base: master
Choose a base branch
from

Conversation

0xced
Copy link
Contributor

@0xced 0xced commented May 29, 2018

The Microsoft.Azure.ServiceBus package conforms to .NET Standard and thus works fine on Linux and macOS (using Mono). The WindowsAzure.ServiceBus package can't run on Mono since it depends on kernel32.dll.

Required incidental changes:

Note that this pull request is not ready to merge because of the local version of Mossharbor.AzureWorkArounds.ServiceBus which must be downloaded and compiled on its own.

@drewfreyling
Copy link
Contributor

@0xced love the work you have done here. The downside of this is that it removes support of on premise Windows Service Bus. Having said that, WSB is dead so now should be the time we consider to drop support for it.

@lukeschafer
Copy link
Contributor

lukeschafer commented May 30, 2018 via email

@Mossharbor
Copy link

@0xced Mossharbor.AzureWorkArounds.ServiceBus GetQueues and GetTopics should be available in version *.15 through nuget, thanks to your pull request.

@0xced
Copy link
Contributor Author

0xced commented Jun 3, 2018

Like #93, passing continuous integration testing would require to upgrade AppVeyor image to a more recent version of Visual Studio.

Current issue:

error CS0012: The type 'System.Object' is defined in an assembly that is not referenced. You must add a reference to assembly 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'

@0xced 0xced force-pushed the Microsoft.Azure.ServiceBus branch 2 times, most recently from ce8b49c to e91fdfd Compare June 6, 2018 19:06
0xced added 9 commits June 7, 2018 08:46
The [`Microsoft.Azure.ServiceBus`](https://www.nuget.org/packages/Microsoft.Azure.ServiceBus/) package conforms to .NET Standard and thus works fine on Linux and macOS (using Mono). The WindowsAzure.ServiceBus package can't run on Mono since it depends on kernel32.dll.

Required incidental changes:

* Upgrade target framework from v4.6 to v4.7.1
* Swith to async code
* Upgrade `Newtonsoft.Json` from version 9 to version 10
* Delete IsBodyConsumed and State for which I have found no equivalent
* Take a dependency on `Mossharbor.AzureWorkArounds.ServiceBus` since management is not (yet) supported with a service bus connection string, see Azure/azure-service-bus-dotnet#65
* Use a local version of `Mossharbor.AzureWorkArounds.ServiceBus` since `GetQueues()` and `GetTopics()` are not implemented in the published package Mossharbor/AzureWorkArounds.ServiceBus#6
Continuous integration on AppVeyor uses C# 5
Microsoft.Azure.ServiceBus now provides this feature with `EntityNameHelper.FormatDeadLetterPath()`
This was omitted when refactoring to use Microsoft.Azure.ServiceBus
The features of Serilog.Sinks.Literate have now been merged into the default Serilog console sink.

The motivation behind this change is to be able to easily change the theme `WriteTo.Console(theme: ConsoleTheme.None)` so that the output in the JetBrains Rider console isn't white text on white background.
The Microsoft.Azure.ServiceBus library targets .NET Standard 2.0 which is actually compatible with .NET Framework 4.6.1, see https://github.com/dotnet/standard/blob/release/2.0.0/docs/versions.md
@0xced 0xced force-pushed the Microsoft.Azure.ServiceBus branch from e91fdfd to 43c8a10 Compare June 7, 2018 06:47
@0xced 0xced force-pushed the Microsoft.Azure.ServiceBus branch from 43c8a10 to bd84777 Compare June 7, 2018 07:01
@0xced
Copy link
Contributor Author

0xced commented Sep 27, 2018

Note: dependency on Mossharbor.AzureWorkArounds.ServiceBus can be removed now that Microsoft.Azure.ServiceBus 3.1.0 supports management operations, see Azure/azure-service-bus-dotnet#481

@drewfreyling
Copy link
Contributor

drewfreyling commented Sep 27, 2018

You may as well tag/fork/whatever the last build that supports SBWS for anyone that cares and move

@lukeschafer done - https://github.com/GlobalX/SbManager/tree/WSB

@drewfreyling
Copy link
Contributor

Now that WSB is out of the way this PR can proceed.

0xced added 3 commits March 8, 2019 22:54
Although the [documentation (Additions to the csproj format for .NET Core)][1] seems to imply that this is a .NET Core feature, it works with .NET Framework too and is much easier to maintain.

With this commit, the OctoPack feature is gone because the new .csproj format is not yet supported by OctoPack. Here is the [suggested workaround][2]:
> We have this support on our radar, but don't have an ETA at this stage.
In the meantime, you could try running `dotnet publish` and then run `octo.exe pack` against the publish output folder.

[1]: https://docs.microsoft.com/en-us/dotnet/core/tools/csproj
[2]: OctopusDeploy/Issues#3822 (comment)

# Conflicts:
#	src/SbManager/SbManager.csproj
#	src/SbManager/packages.config
Drop Mossharbor.AzureWorkArounds.ServiceBus now that management operations are supported in the Microsoft.Azure.ServiceBus library.
Since WindowsService doesn't use the `HostControl` parameter, we can use IService directly.
@0xced
Copy link
Contributor Author

0xced commented Mar 9, 2019

Could you please update the AppVeyor configuration to use VS 2017 instead of VS 2015?

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

Successfully merging this pull request may close these issues.

4 participants