-
-
Notifications
You must be signed in to change notification settings - Fork 134
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Strong typing and more idiomatic API #38
Comments
Hi @oliverjanik , Thanks for your feedback. I really appreciate it. I'm really glad you like the driver so far. By the way, were you able to get the solution to build in VS? I saw your question on Gitter. ICYMI, just run Idiomatic APII do have some additional ideas and plans already in the pipeline to make the driver more idiomatic in .NET. One of them is providing a LINQ to ReQL provider. I currently have a local branch that I've been using to start work on a LINQ to ReQL provider. The LINQ to ReQL provider can provide a more idiomatic approach to querying RethinkDB. It's probably as idiomatic as it gets ✨ 😄. Here's part of the conversation I had in #driver-dev on the slack.rethinkdb.com channel when I got the first LINQ to ReQL query to work (sorry for the screen grab, the Slack URL didn't work for archived messages after a certain date): There isn't much there in my local branch for the LINQ to ReQL provider except for a rough draft of the overall arching architecture of the LINQ provider that got the example above working. Development on this driver is mostly on my free time and I don't have an immediate need for the LINQ provider in my current projects. So, it's hard to say when it will be ready. Strong TypingI agree with you there. There could be some improvements in this area. Specifically, regarding I'd like to see if there's any movement in the Java driver first. The key driving force for me is maintainability right now since this is all mostly on my free time. So, I think any solution regarding strongly typed I hope that helps. Thanks, |
Thanks for the comprehensive reply. I understand you want to follow java driver closely. It looks like even the Java driver is not very strongly typed and idiomatic, yet. I'm just hoping this driver can drop the shackles in the future :-). Good work on the Linq provider I'll check it out. |
Whoa! Nice work with the LINQ to ReQL implementation ... Now that's something you should blog about |
@bchavez I am planning to start working on a Linq provider for this, is there anything you had in mind in terms of API before I start? I have some prior experience with Linq providers and would be really helpful to be able to use Linq in my current project |
Hi @jrote1 , I didn't have much in terms of an API yet. Mostly I got started with I've pushed what I have so far in the You can check it out and continue the work or start over if you come up with a better solution. Here's where I was going with it... so in terms of guidance, the LINQ provider should simplify expressions like this:
This is one reason why I chose to use Remotion's Re-Linq since it helps greatly with this. Especially with expressions involving Also, at some point Marshall Cottrell and I envisioned the LINQ provider leveraging attributed classes similar to:
And have the LINQ provider automatically pick up and recognize attributes and add Right now, the Also, if at all possible, I hope we could encourage taking the most maintainable route possible in whatever design choices we make. The burden and cost for me to maintain a high-quality driver + documentation + support is slowly creeping up. Most likely, I'll be maintaining the source for the foreseeable future so the simplest and most maintainable approach would be super awesome. 😺 If you have any questions about the driver I will do my best to help in anyway I can. Thanks, EDIT: From Slack:
|
First phase of Queryable Provider. Referencing #38.
@bchavez to add to this, in |
@marshall007 Hi currently the Linq provider will use indexes when properties are decorated with |
Thanks for all the work on this library. I like it so far.
Do you have any plans to provide more idiomatic API with strong typing? As it stands everything takes in an object.
Another example is optArgs which is string based. Why not have a class with all the supported properties e.g. InstertArgs that you can pass into .Insert() call?
The text was updated successfully, but these errors were encountered: