🚨 Vendr is now Umbraco Commerce 🚨
Release

Vendr 2.0.0 Alpha

09 July 2021

Vendr 2.0.0 Alpha brings .NET Core and Umbraco v9 support to the Vendr codebase. Find out all you need to know about this release and how you can get your hands on it.

Vendr 2.0.0 Alpha

Back in May we blogged about how we planned to get Vendr .NET Core ready and whilst implementing that plan wasn’t easy, today we are pleased to share with you Alpha release of our efforts.

What’s New in Vendr 2.0.0?

.NET Core / Umbraco v9

The biggest thing in Vendr 2.0.0 is that it now supports .NET Core (Umbraco v9) as well as .NET Framework (Umbraco v8). This is a huge leap for Vendr and we made a conscious effort to ensure we could support both versions of Umbraco in a single package so that we serve as many of our customers as possible regardless of which platform they choose to use.

Vendr in Umbraco v9

Project Refactor

In order to achieve this we have had to do a fair bit of project refactoring (be sure to checkout May’s blog post for why we needed to do this). For the most part though, functionally, things are a good 95% the same and so for most people the upgrade should be a case of finding where things have moved to, rather than figuring out a new way of doing things. This restructuring will affect people upgrading on v8 as well as those upgrading to v9, but we believe it’s important to align the project structure between versions to make future developments much simpler. And really, it’s a nice way to get you ready for the v9 port when you are comfortable with the move.

In terms of changes, there may be a few helpers that have moved to Dependency Injectable services, but the only real area we have made some improvements in is with Payment Providers.

Payment Providers

One of the big reasons we chose the route we did for our project structure is to allow payment providers to be coded once and be shared between v8 and v9 instances. In order to do that we have had to move them to be compiled against .netstandard 2.0. Because of this there will be some API changes to use the .netstandard versions of some classes.

Given we had to make this change and given what we’ve learnt from writing payment providers, we also took the opportunity to give them a slight update. This has come in 2 changes.

  1. All methods that are likely to communicate with a 3rd party are now asynchronous.
  2. All methods now accept a consistent `PaymentProviderContext` object which contains information that might be useful to a payment provider such as the Vendr endpoint URLs and the related order etc. We had these before, but they were inconsistently passed to the different methods, but with the PaymentProviderContext this ensures all methods receive the same contextual information.

Who is this release for?

Right now we have only carried out basic testing, going through the back office and ensuring that we can run through the order process so there is a lot more testing to be done.

As such, this is why we chose to release now as an Alpha as there may be things that crop up that require us to change how we are doing something / how something is implemented. Because of this, we would only advise people to use this release as a means to test and see how Vendr is going to look in .NET Core. We don’t recommend yet that people use this in production.

If you do decide to use this in the early stages of a new project, packages will be upgradable as we release more versions so we will make sure any changes include the relevant migrations, but if we need to change any API’s these won’t be done in a backwards compatible way.

How to get access to Vendr 2.0.0 Alpha?

The Vendr 2.0.0 Alpha release is available now from our dev NuGet feed at https://nuget.outfield.digital/prerelease/vendr/v3/index.json.

This should be added to Visual Studio as a NuGet source and then the latest Vendr 2.0.0-alpha build can be installed as normal (Please make sure you have the "Include prerelease" checkbox checked).

In addition to the above package files, you can also access copies of the Vendr Demo Store updated to use Vendr 2.0.0 alpha running in both .NET Framework and .NET Core for download from our GitHub repository.

What should we test?

Given how this update has touched pretty much all aspects of the original codebase, we need people to test pretty much everything to make sure things are still working how they should and that we haven’t missed anything in the migration.

Obviously if you created any Vendr add ons such as custom payment providers, it would also be great to start looking at porting these over to .netstandard and let us know if there is anything that needs improvement there also.

The other thing we are yet to test is Vendr's cross platform support. As .NET Core can run on both Windows and Linux it would be good to get some testing done here. We've currently focusing our efforts on Windows first as this will likely be the platform most people will be using, initially at least.

How should I give feedback?

Any issues found whilst testing the release candidate should be reported on our issue tracker, highlighting in the issue title that it is specifically related to the 2.0.0 Alpha.

If developers have any questions on implementing the changes from the alpha, these should be asked on the Umbraco developer portal support forums.

When will Vendr 2.0.0 be released?

We aren’t yet committing to any deadlines as it will all depend on what comes out of further testing. As this is an Alpha release there could be significant changes that need to be made should any problems show up in testing.

This said, we are working very hard to get Vendr 2.0.0 ready for when Umbraco v9 officially launches. We’ll be sure to keep you all posted of our progress and whether we think that deadline is achievable, via our blog, newsletter and Twitter.