Thoughts?
Closed this issue ยท 6 comments
Hi,
I found your library after you commented on an issue in the SharpCaster repo.
The code looks nice and clean!
Without wanting to judge (you're free to start a new library, and it also gives opportunities to learn from each other), I was curious on why you decided to start from scratch.
I'm curious because maybe you found shortcomings or things you would like to see different in what we did already - I'm interested in such feedback to see where we can improve; also I'm wondering if you'd like to work together in any way since we seem to have the same goals - it could result in less duplicated work.
This isn't meant to be pushy; if you're happy the way things are then it's also fine.
Hello,
The principal reasons I decided to start from scratch (not really from scratch because I used the best of SharpCast and SharpCaster projects) were (in a random order) :
- For fun, to well understand the chromecast protocol
- I needed a .Net Standard library
- Because I didn't like the syntax of SharpCaster with the events and the strange Current static property on the ChromecastService class. I thinked that it would be possible to write a library that will be easier to use with only async/await syntax. As there were a lot of changes to do in the SharpCaster code, I prefered to start from scratch. So, I coded it quickly and shared it.
You are right, the ideal would be to have a single project. Personnally, I do not have a lot of time to devote to this project anymore. But, my code is here, feel free to use it and I can try to help if needed.
Cordially,
Stephane.
And when I saw the loop :
while (_controller == null)
{
await Task.Delay(500);
}
in the example, I thought : "There must be a way to do better." ๐
Hi,
thank you for your reply!
I understant most of your points,
- I also preferred a .Net Standard library but unfortunately currently it won't run on UWP when targeting .Net standard.
- The point about the Current static property I also found odd and I tried to solve it as a part of this PR.
- The async-await style also looks cleaner/simpler indeed.
- The loop is also a valid point
What I like about SharpCaster is that there is a lot of functionality already, with some sample apps, Google's own Protobuf nuget packages and a small community.
Out of curiosity: I saw you're using Zeroconf
instead of Rssdp
, is there a reason behind that?
Yes, it doesn't work (for the moment) on UWP (my own project that uses GoogleCast
NuGet package targets Windows desktop and Xamarin, so that was not a problem for me).
I prefer protobuf-net library compared to Google's Protobuf
nuget package. The API of protobuf-net
follows typical .NET patterns, you can use attributes, it's very simple to use, like Xml or DataContract serializer.
I'm using Zeroconf
because mDNS is the primary way of discovering a Chromecast that supports the v2+ API (SSDP was used in GoogleCast v1 SDK).
In SharpCaster, I believe that Tmds.MDns package is now used instead of Rssdp
. But, I personnaly prefer the async/await syntax of Zeroconf
(and I used it already in another personal project).
In terms of features, what is missing in my library compared to SharpCaster ?
It works now in UWP with Fall Creators Update.
๐