NationalAssociationOfRealtors / libRETS

libRETS is RETS client library written in C++ that allows rapid development of RETS client applications. By saving the developer from dealing with the RETS protocol details, the application writer can concentrate on their application, saving them time and money in the process
Other
107 stars 59 forks source link

Time to Release 1.6.3 Maybe? #67

Closed ooglek closed 5 years ago

ooglek commented 6 years ago

It looks like the NEWS was updated over a year ago with improvements such as 1.8 GetObject improvements.

Any chance a new release is forthcoming?

Also, the README.md for this project seems to have gotten updated with some libRETS Docker info, which seems strange and wrong.

jazzklein commented 6 years ago

Are you looking for a Windows release? If so, that probably won't happen unless someone with better Windows experience than I can rebuild this. If not, keep in mind you can always build from HEAD and get what would be in 1.6.3. I'll try to do a release when I get some time free.

kjaleshire commented 6 years ago

Is it possible to include a .NET Core target in the next release?

abidCharlotte49er commented 5 years ago

Is this project actively maintained? I'm trying to add Librets library in .Net Core project, I have tried all these 3 packages in nuget and none of them worked https://www.nuget.org/packages?q=librets it says current library is unsupported or I get "The type initializer for 'librets.libretsPINVOKE' threw an exception." I'm working on a project to connect to MLS from Amazon AWS over Lambda and can't use current Librets libraries. Is there source code for .NET ?

jazzklein commented 5 years ago

It is only being maintained by individual contributors these days. And it is not at .NET application ... it is Linux based, but uses a wrapper to mostly make it work on Windows. That said ... there is someone with updates to the Windows version that we're trying to get merged.

kjaleshire commented 5 years ago

@abidCharlotte49er You must copy \libRETS-x64\1.6.2\lib\native\librets-pinvoke.dll to your application folder. Because the NuGet package is a wrapped native library, you're restricted to running in Windows.

I stopped using it this weekend in fact. It was easy enough to re-implement directly in C# with HttpClient, SocketsHttpHandler, and an XML parser.

abidCharlotte49er commented 5 years ago

@kjaleshire @jazzklein Thank you both for your advice, honestly didn't expect you anyone would respond so quickly. Really appreciate you guys taking time and responding. I have added librets-pinvoke.dll in my application and I could now get RetsSession, hopefully this is all I need to do to make this work.

On a side note I see someone posted beta1 last night but there is no release notes. I wonder what's in it ?

https://www.nuget.org/packages/libRETS-x64/1.6.3-beta1

abidCharlotte49er commented 5 years ago

Ran into another problem. AWS ignores pinvoke.dll. I tried adding that library as reference. I get "Invalid or unsupported" error. I can manually copy that file in my project but AWS ignores this file since it is not added in the project files. I have added below item in the csproj and that didn't help either. Why can't pinvoke part of the Nuget package? Any other workaround to add this library as part of project file ?

`

bin\Release\netcoreapp2.1\librets-pinvoke.dll

`

also tried creating my own nuget package and added it to the project that way. I see pinvoke.dll is being sent in the AWS zip but error still remains.

image

jazzklein commented 5 years ago

Sorry, I'm not a Windows guy and maybe one of them will speak up. But, I do remember that there were somethings about security issues surrounding signed objects in the cache if that means anything to you. You may need to self sign things if your target machine is running at a higher security level. Hope that helps. Otherwise, you'll need to wait for a Windows guy to respond.

behm commented 5 years ago

The v1.6.3-beta1 NuGet package includes the updates created by @jbramleycl in PR #72. I am not sure how/when an official 1.6.3 release would be created so I named it 1.6.3 to increase the NuGet package version. I have started work on a .NET Standard version of a RETS library but it's been slow going. Maybe @kjaleshire has the best approach for .NET Core support.

abidCharlotte49er commented 5 years ago

Thanks Brian, Please keep us, Windows guys posted when we have an update on that.

jazzklein commented 5 years ago

1.6.3 Released.

kjaleshire commented 5 years ago

What I have is nowhere a complete implementation. It's only able to login, do resource searches, and de-serialize the results back. But if this interests anyone I'm fine spending some time extracting what I have and open-sourcing it.

abidCharlotte49er commented 5 years ago

Mark,

Is there a complete release notes for 1.6.3 ?

Kyle,

Can you please send what you have ? I’ll review and see if I can contribute.

Thanks

jazzklein commented 5 years ago

Unfortunately, the release notes are not complete as there were a bunch of pull requests over the past few years that didn't include updates. You're best bet is to review the git log.

kjaleshire commented 5 years ago

Sure, I'll try to find some time this weekend to post it and let you know.

kjaleshire commented 5 years ago

@abidCharlotte49er I've posted my client code at https://github.com/kjaleshire/RetsExchange. It's not well-organized or packaged because I'm not familiar with those aspects but feel free to do so.

abidCharlotte49er commented 5 years ago

@kjaleshire Thank You I will review when I get a chance. I manged to host my .NET Core application on windows server working with LibRETS 1.6.3 release. I had to add references manually. It won't work when I install LibRets from Nuget PM. I also have to change something in the build properties to work. Adding those screenshots for .NET developers for reference. Thanks

image

image

abusalaa7 commented 4 years ago

@abidCharlotte49er can you share what the csproj file look like?

I'm running into the same problem and it's causing me a world of pain right now. I have added these properties to the csproj file but still get the same errors.

<AllowUnsafeBlocks>true</AllowUnsafeBlocks> and

  <ItemGroup>
  <Reference Include="external\librets-pinvoke.dll"/>
  <Reference Include="external\librets-dotnet.dll" />
</ItemGroup>

I removed the nuget package and referenced them manually and I still get

An exception of type 'System.TypeInitializationException' occurred in librets-dotnet.dll but was not handled in user code: 'The type initializer for 'librets.libretsPINVOKE' threw an exception.' Inner exceptions found, see $exception in variables window for more details. Innermost exception System.DllNotFoundException : Unable to load shared library 'librets-pinvoke.dll' or one of its dependencies. In order to help diagnose loading problems, consider setting the DYLD_PRINT_LIBRARIES environment variable: dlopen(liblibrets-pinvoke.dll, 1): image not found at librets.libretsPINVOKE.SWIGExceptionHelper.SWIGRegisterExceptionCallbacks_librets(ExceptionDelegate applicationDelegate, ExceptionDelegate arithmeticDelegate, ExceptionDelegate divideByZeroDelegate, ExceptionDelegate indexOutOfRangeDelegate, ExceptionDelegate invalidCastDelegate, ExceptionDelegate invalidOperationDelegate, ExceptionDelegate ioDelegate, ExceptionDelegate nullReferenceDelegate, ExceptionDelegate outOfMemoryDelegate, ExceptionDelegate overflowDelegate, ExceptionDelegate systemExceptionDelegate) at librets.libretsPINVOKE.SWIGExceptionHelper..cctor()

Building the project throws this warning in the terminal

warning MSB3246: Resolved file has a bad image, no metadata, or is otherwise inaccessible

abidCharlotte49er commented 4 years ago

Here you go. It has been a while so I documented what I did back then so that it will be helpful to others. Please note our project is DotNet Core.

MLSCSProj.txt

kalmantri1 commented 4 years ago

@abidCharlotte49er, Do you happen to have the working dlls for both librets-net and librets-pinvoke. I am using .net core and followed the same suggestions as you stated , but I am getting this error: {"The type initializer for 'librets.libretsPINVOKE' threw an exception."} We were using older version of librets so far and looks like somethings changed by our RETS provider, it could be related to the TLS 1.2 support. I appreciate if anyone else has run into this problem and have fixed it, to give some leads. Thanks in advance

abidCharlotte49er commented 4 years ago

Here you go try these. Make sure you drop the PINVOKE file in appropriate place. You can't add reference to that file so you need to manually drop it in the appropriate folder. see session.SetModeFlags(RetsSession.MODE_NO_SSL_VERIFY)

RetsSession session = new RetsSession(mlsVendor.RETSUrl); session.SetUserAgent(mlsVendor.Useragent); if (!string.IsNullOrEmpty(mlsVendor.UseragentPassword)) session.SetUserAgentPassword(mlsVendor.UseragentPassword);//This is required for some session.SetRetsVersion(RetsVersion.RETS_1_7_2); session.SetModeFlags(RetsSession.MODE_NO_SSL_VERIFY); session.Login(mlsVendor.Username, mlsVendor.Password);

librets-dotnet.zip

kalmantri1 commented 4 years ago

Really appreciate your response. Thanks a Mil !!

On Tue, Jul 14, 2020 at 12:31 PM abidCharlotte49er notifications@github.com wrote:

Here you go try these. Make sure you drop the PINVOKE file in appropriate place. You can't add reference to that file so you need to manually drop it in the appropriate folder. Also see NO_SSL_VERIFY flag

RetsSession session = new RetsSession(mlsVendor.RETSUrl); session.SetUserAgent(mlsVendor.Useragent); if (!string.IsNullOrEmpty(mlsVendor.UseragentPassword)) session.SetUserAgentPassword(mlsVendor.UseragentPassword);//This is required for some session.SetRetsVersion(RetsVersion.RETS_1_7_2); session.SetModeFlags(RetsSession.MODE_NO_SSL_VERIFY); session.Login(mlsVendor.Username, mlsVendor.Password);

librets-dotnet.zip https://github.com/NationalAssociationOfRealtors/libRETS/files/4919972/librets-dotnet.zip

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/NationalAssociationOfRealtors/libRETS/issues/67#issuecomment-658281994, or unsubscribe https://github.com/notifications/unsubscribe-auth/ANFZZWXIDHYPNMIP2Z2JKDLR3SB7NANCNFSM4FS4GZZQ .