Comments (30)
With .NET Standard coming out, that might be a better target than PCLs for Xamarin
from parse-sdk-dotnet.
This might be something worth working towards when we start updating this sdk.
from parse-sdk-dotnet.
Definitely! The feature has been in the queue for a while, but we currently are not actively working on it. We can bump the priority if there're more people looking forward to it.
from parse-sdk-dotnet.
I think more people (myself included) are building on and starting with Xamarin Forms. One of the reasons I even considered using Parse was the fact that I was it advertised Xamarin support. Supporting Xamarin Forma would open your service up to the grounding community of cross platform mobile devs
from parse-sdk-dotnet.
HUGE +1 on this! I'm using Parse in a Xamarin.Forms PCL project (and plan to use it on several more), and while it works to do the whole "platform-specific, linked file" approach for the code that directly touches Parse, it's kludgy and it adds complexity (DI, adapters, etc.) to my other code that lives in the PCL portion of the app but that also needs to get to Parse data.
As a short term solution (or possibly even the long term solution?), you might be able to just use "The Bait and Switch PCL Trick" ( http://log.paulbetts.org/the-bait-and-switch-pcl-trick/ ) to provide the PCL "implementation" while keeping the actual code in the platform-specific libraries. This would allow us to reference the real Parse classes in our common PCL code without actually needing to have a "real" PCL Parse library.
from parse-sdk-dotnet.
+1
from parse-sdk-dotnet.
@bbartlett I needed to do the bait-and-switch approach for our forms project, and can send a PR with the changes if Parse is interested.
@ParsePlatform, in order to be able to do this on all the platforms you support, each of the projects in your solution must implement the complete interface of the Parse.csproj. I know this is already the case with Android and iOS (for which I've implemented this method fur our App). I could work with you on this, if you'd like.
from parse-sdk-dotnet.
@gusennan Unfortunately, I think it's a bit more subtle than simply implementing all of the interface.
For example, ParsePush's interface is actually different right now between iOS and Android (due to different Push notification handling APIs).
We also need to figure out the minimal possible subset of the Parse APIs that we can implement, as with a PCL app there's no way to do any sort of LocalStorage in a portable way (that's why right now we abstract that into PlatformHooks.cs).
There certainly would be no way to do Installation or Push in a portable way, and perhaps even the User API would have to change for a PCL-compatible version of the SDK.
Eventually, we'll get there, and we would love community feedback and help. We just need a little more time to solidify the roadmap first, I think. I'lll have a more in-depth conversation with @hallucinogen offline at some point this week to see if we can create a high level list of tasks that need to be done to get there.
from parse-sdk-dotnet.
@richardjrossiii thanks for sharing that. I think there is a way it's possible to do Local Storage in a portable way, via the bait-and-switch approach. The push, probably not. At a minimum, all of the classes that are shared between the different projects (which, as I was working through Android and iOS Parse implementations, realized are the majority), could be made cross plat via bait and switch. At least, that's what I've done to access the ParseUser object from our Xamarin Forms project, which works.
from parse-sdk-dotnet.
@richardjrossiii Any update from your conversation on tasks towards a possible PCL implementation? I'm just about to start on a new project that uses Parse as its backend, and I'd LOVE to avoid the hoops that we currently need to jump through on a cross-platform app for getting to even the basic classes like ParseUser from our other PCL code.
I agree with @gusennan -- it does seem like most of the classes that are shared between the projects could be handled via bait and switch, but even making the core 80% (or even 50%) available would be a huge success. Remember that with the bait-and-switch approach, none of the real code is done in the PCL itself -- the PCL contains only interfaces and dummy implementations of the real code. The real code remains in the platform-specific libraries, so nobody needs to actually deal with problems like doing Local Storage in a portable way. The "interface" (the dummy implementation) is done in a portable way, but the actual implementation can remain exactly where it is right now.
I haven't used push notifications just yet but I've heard that that changes hugely between platforms. However, if that falls into the 20% that we still have to implement via DI or adapters, having the rest of the API available in the PCL is still a huge productivity win for us.
from parse-sdk-dotnet.
@bbartlett We've talked about it, and, if we could come up with a solid solution for our Push and Analytics APIs being different on different platforms, we definitely be on board with having basic PCL support.
Because of how assemblies work in .NET, and the fact that you cannot have a Partial class in another assembly, I'm not 100% sure how to go about this ATM. If C# had static extension methods, we'd be golden. Sadly, this is not the case.
from parse-sdk-dotnet.
@richardjrossiii we're using a (private) version of your library, forked off of 1.6.1 as a bait-and-switch PCL for our company's xamarin-forms app. I think the reason it's worked for us is because, to use what xamarin called "advanced-PCL" techniques (bait-and-switch), the assembly names must be the same. I'd be happy to share a version with our corporate code pulled out.
from parse-sdk-dotnet.
@gusennan that would be good pony of reference for the rest of us
from parse-sdk-dotnet.
Here's a pony of reference:
https://github.com/gusennan/Parse-SDK-dotNET/tree/public
The public branch is forked off of 1.6.1. To create version 1.0.0 of bait-and-switch nuget package, run in the root:
sh build-pack-parse-rebuy.sh 1.0.0
We've adopted the library a bit more for our personal needs, which you won't see in this branch, but this at least gives you a PCL-compatable version that will be suitable for the 80% of the cases mentioned above. If you compare this with the 1.6.1 release of parse, you'll see that there aren't so many differences.
from parse-sdk-dotnet.
@gusennan Thanks for the reference. We're actually currently in the process of a project restructure (see #108), which should hopefully make it significantly easier to play around with ideas like this.
Also, if you're forking this internally, feel free to suggest any changes publicly that might benefit others, even if you can't directly share them with us! We're always looking for ways to improve.
from parse-sdk-dotnet.
@richardjrossiii I'll try to share the good and avoid the half-baked ideas, because I have a lot of those too.
One idea that I'm exploring is saving the keys in the ApplicationSettings (as defined in PlatformHooks.Mono.cs for the Android and iOS platforms). On Android, because of the order that the application is loaded (or rather, not loaded, see #37) on receiving a push notification, having these keys defined in a place accessible by the SDK without the app running is necessary. Setting them in code on the first application launch and then saving them in the ApplicationSettings seems like a decent approach.
from parse-sdk-dotnet.
Hey guys. Just wanted to give an update - we've recently switched to a fully modular design for the SDK, and this feature should be rolling out in the 1.8.0 release, along with several new awesome features.
from parse-sdk-dotnet.
Great news...Thanks for all the hard work you guys have been putting in to keep Parse alive...Most appreciated!
from parse-sdk-dotnet.
@gusennan, @thewizster : Question, I thought parse was shutting down?
from parse-sdk-dotnet.
The hosted service is shutting down. I was referring to the parse-server open source project. @cecilphillip
from parse-sdk-dotnet.
@cecilphillip The client SDKs are not dying either! We will work hard to bring you the best possible features, including some that weren't possible to bring while parse.com was still a thing.
Parse is dead, long live Parse!
from parse-sdk-dotnet.
+1
from parse-sdk-dotnet.
@richardjrossiii that's great to hear.
from parse-sdk-dotnet.
Any updates?
from parse-sdk-dotnet.
Any updates? Has this been abandoned? Last minor edit July.
from parse-sdk-dotnet.
Any updates?
from parse-sdk-dotnet.
Hi, since PCL is almost dead, I filled a bug here #274 in order to know if ParseSDK is working on .Net Standard. If anyone have the answer, fell free to answer there. 😊
from parse-sdk-dotnet.
Parse.NeTStandard2 sdk is already out, but i'm still trying tpo figure out how does it work because i seems like i can't connect to my backend, Im using xamarin.forms based on netstandard2 and prism.
Help please
from parse-sdk-dotnet.
Any update on this?
Would be great if I can use Parse on Xamarin Forms
from parse-sdk-dotnet.
Did anyone how you tried the current state of the Parse SDK with an Xamarin application?
I did not yet as Xamarin.Forms is not my focus and it will take some time until I have the opportunity to do so, but I don't see why the current state should have problems to run in Xamarin.Forms.
Or, of course, I'm missing any explicit error which occurs?!
from parse-sdk-dotnet.
Related Issues (20)
- Sign in with Apple? HOT 5
- Parse .NET SDK doesn't work as expected for heroku server HOT 1
- Parse .NET Standard NuGet bounty ... HOT 2
- Allow Custom Object Id HOT 1
- My Winform app can not work with self-signed SSL HOT 1
- saveEventually offline saving feature not implemented for Unity dotnet HOT 1
- [v2.0.0-develop-1][Xamarin] User SignUp HOT 4
- Ability to compile dotNET SDK within Unity HOT 4
- .NET client not able to connect to parse-server anymore HOT 1
- Readme improvements for Xamarin clients
- Preventing initialization exceptions in Xamarin client HOT 1
- How to implement offline storage? HOT 2
- The name 'ParseCloud' does not exist in the current context HOT 2
- Await _parseClient.GetCurrentUser is null after login HOT 1
- I can't Load a scene through SceneManager when I use the Async Parse Method
- Error: ArgumentException: Input JSON was invalid. HOT 1
- ParseClient.Instance.GetCurrentUser() returns null when closing and restarting the app
- Add auto-release HOT 4
- The automated release is failing 🚨 HOT 1
- The automated release is failing 🚨 HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from parse-sdk-dotnet.