Which AWS Simple Email Service API is the latest - c#

I am building an application using AWS SES, but it is not clear to me which version of the API I should be developing against.
AWSSDK.SimpleEmail
AWSSDK.SimpleEmailV2
Looking at the Amazon Simple Email Service Documentation I see both API and API v2 listed.
Logic would tell me to use v2 as that is a higher number, but at the same time the Developer Guide primarily references API (not API v2).
Similarly the Code examples section is much smaller for v2.
If I look at the .NET libraries, which is the SDK I would be using, it isn't much help either, and both versions have had updates pushed in the last 24 hours, and both are on version 3.10X.XX.
Is there any documentation from AWS that indicates the status of their SES SDKs and when particular versions are going to be deprecated? I would prefer not to start developing against a specific version only to find that support is ending for it in a short time.
Thanks

As per https://docs.aws.amazon.com/cli/latest/reference/ses/index.html
AWS CLI version 2, the latest major version of AWS CLI, is now stable
and recommended for general use. To view this page for the AWS CLI
version 2, click here. For more information see the AWS CLI version 2
installation instructions and migration guide.
In other words, I would recommend using version 2.

Now the question you are asking is given the .NET SDK V3, what version of the SES .NET API should you use.
In the AWS Github, it uses SES .NET Service Client v1:
https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/dotnetv3/SES/Actions
However, now there is .NET Service Client v2.
https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/SimpleEmailV2/TSimpleEmailServiceV2Client.html
Both are supported and I do not think you have to worry about support for v1 ending in the short time. I will confirm and post back.

Related

Amazon S3 SelectObjectContent Support Missing for .NET v 5.0?

I found what appears to be a breaking change in the AWS SDK between .NET v4.8 and .NET v5.0 / .NETCore v3.1. Following the tutorial in an official blog, I found I could not compile/run the examples in .NET v5.0 or .NETCore v3.1 using the synchronous method SelectObjectContent. The AWS SDK API was clear this was a callable method, but my Visual Studio/Rider saw it was implemented as an internal method, so I couldn't cleanly access it. In fact, I couldn't even compile.
However, after exhaustive attempts, I realized moving back to .NET Framework v4.8 it worked as advertised, even using the same AWS SDK nuget (v3.7.0.21).
Is there a preferred way to access that function, or was a breaking change introduced accidentally that's not documented? I'm not sure how to differentiate whether this is a problem with .NET Framework or AWS SDK, so I'm unsure where to report it. The code is from AWS, but this is dependent on .NET Framework version.
The synchronous method is gone because it is intended to be this way for .NET/.NET Core projects and the respective SDK.
GitHub user normj who works for AWS stated in a thread:
The reason the .NET Core version only has async is because the underlying http client available in .NET Core only supports async operations. We debated about keeping the sync methods in the .NET Core version and have them just call the async versions and then block. The problem with that is the SDK would not be following best practice for the platform and more importantly it could mask a potential performance problem.
Thus the guide you followed isn't necessarily wrong but it could be a bit misleading - you just have to use whichever is available to you.
Also, despite using the same version of the AWSSDK, depending on what framework your project is targeting, it will reference a different DLL found in the lib folder of the package, which explains why for .NET Framework projects the method is available, but for .NET Core/.NET, it is not. The properties for the DLL in Solution Explorer in Visual Studio will also indicate this (note the Path property).

Is a Web Service Runtime available in .Net Core

My team has written maintains a library that wraps functionality around a full framework .net .dll, specifically the IBM FileNet.Api.dll. We have been transitioning our library to use .net Standard and so far, all is well. After creating a .net core app and attempting to connect to FileNet, we run into a web service runtime problem.
Here is the error that is thrown:
The operation cannot be completed because a supported web service
runtime is not present. Either Microsoft Web Services Extensions (WSE)
3.0 or the Windows Communication Foundation (WCF) is required.
Does anyone know of a NuGet package that provides this runtime for .net Core or a workaround for this issue?
Updade:
I have now had several conversations with the engineer team at IBM and they do not support .NET Core, nor do they plan on supporting it at this time. What I am doing is to create a .NET Framework 4.x API to basically convert to and from FileNet. It's a bit janky but when the customer wants their API in .NET Core I'm having to build something to make it work.
I'm running into the same issue. From what I've discovered System.Web.Services which is used by the FileNet.Api.dll and IBM's CEWSI for creating SOAP connections has been deprecated after .NET Framework 4.x in favor of WCF and is not available in .NET Core, .NET Standard, nor .NET 5.
It also appears that Microsoft is pushing developers to use REST instead of SOAP. I have not found anything from IBM to replace the DLL or CEWSI.
Sorry this isn't more useful, I'm still trying to figure out how to use .NET Core with it as well and short of basically recreating the functionality myself I haven't found a viable solution.

How ETL the google analytics data by using SSIS component (C#) and Google.Apis.AnalyticsReporting.v4

I want to use Google.Apis.AnalyticsReporting.v4 to ETL the google analytics data to our data warehouse. It is worthy to mention that I use SSIS (Microsoft Integration Service) and use Script Component (C#) as task to ETL aforementioned data.
I found this task very hard and find these references,
Use Google Analytics API to show information in C#
It used Google.Apis.Analytics.v3 for doing this and it is not V4. First of all, I create service account,
https://cloud.google.com/iam/docs/creating-managing-service-accounts#iam-service-accounts-rename-console
and save service account email and .p12 key, after that I use this method,
Analytics Reporting v4 with API key
that use Google.Apis.AnalyticsReporting.v4 but many references have errored and they are old, such using Google.Apis.Services;
I confused and want to know the code for ETL the GA data by C#. Appreciate to help me on this issue. I want to ETL metrics like "session" and dimension like "campaign"
I was never able to get it to work using a scripting component because of the .net version of the dlls. The library dlls are around .net 4.5 and as far as far as i could see most versions of MS Sql server dont support higher then .net 4.0. You also have to figure out where the dlls need to be in order for ssis to find them. If your going to get it to work your going to need all the dlls from the library as you cant use nuget install. i would start with the basic tutorial get that working as a console application then copy it over to SSIS and put that into your scripting component you need all the using and their corresponding dlls there is a lot of them.
Google apis.services isnt old its the auth part of the library it just hasnt needed to be changed.
custom component
What I have done was create a custom component to connect to Google analytics. The main issue I had was the dlls and the .net framework. I was never able to use the Google .net client library. I was only able to get this working by manually creating my own Google analytics library targeting .net 3.5 and using Oauth2 rather than service account.
Coding my own service account authentication code has so far escaped me. I beleave i have a very old open question here on stack asking how to get it to work.
Disclaimer: I work at ZappySys
Calling API is possible in SSIS using Script Task by referencing SDK dlls but you have to consider two things.
How much effort needed to code this flow. Some times its not worth it to develop your own if any one already developed such component (Free or Paid).
Is SDK provided by Google is compatible with SSIS version? Each SSIS version supports specific .net version(s). So you must use Google SDK compatible with that. For Example if you like to code this for SSIS 2012 then you must use SDK which is coded in .net 4.0 or Lower version. Using latest SDK might not work sometimes if its coded in .net 4.6 for example.
Here is the list of supported .net versions by various SQL Server / SSIS
SSIS / SQL Server 2012 - Use .net 4.0
SSIS / SQL Server 2014 - Use .net 4.5 or lower
SSIS / SQL Server 2017 - Use .net 4.6.0 or lower
SSIS / SQL Server 2019 - Use .net 4.6.2 or lower
If you do not want to go through hassle you may consider 3rd party components such as ZappySys Google Analytics Source for SSIS

.NET Standard 2.0 Nuget package for CRM REST

My team and I are working on a new netstandard 2.0 project that will make CRUD requests on XRM/Dynamics CRM (v9+). We need a new nuget that is compatible with netstandard 2.0 and makes REST calls.
We have tried the nuget Microsoft.CrmSdk.CoreAssemblies but we would like to avoid using the CRMContext and make REST calls passing the access token inside.
Web API is built on open standards, ODATA, and you don't need to add specific assemblies to use it. You just have to compose HTTP requests for specific operations.
This guide can be a good starting point https://learn.microsoft.com/en-us/dynamics365/customer-engagement/developer/use-microsoft-dynamics-365-web-api
Microsoft is transitioning with v9 of CRM to give more parity to the new WebAPI accesses and will probably eventually phase out the organization service which is supported via the SDK lib

Azure Storage SDK Upgrade for .Net 3.5

I'm maintaining a legacy product that is deployed to SharePoint 2010, and targets .Net framework 3.5. It uses the Azure SDK 1.7 for blob operations and with the SDK getting deprecated soon, we need to upgrade it. According to this blog post the minimum SDK version should be 2.1, but the issue is that the it does not support .net 3.5.
I looked at the SDK code on GitHub and it's highly dependent on .Net 4 features so I cannot recompile it in .net 3.5. I looked for 3rd party SDKs but couldn't find any.
Is there a straightforward way to keep the functionality after Azure Storage service version removal?
(Please note that upgrading the .Net framework is not an option for me.)
No, unfortunately our client library support is only for .NET 4.0 (2010) and later.
If you need to maintain support for the legacy project, you'll need to decide between writing your own REST calls to Azure Storage or upgrading your .NET framework to 4.0 to use a newer version of the library. Sorry!
For anyone who might have the same problem:
The deprecation of Storage client library 1.7 is postponed beyond August 2016.
Microsoft Azure Storage Service Version Removal Update: Extension to 2016

Categories