Giter VIP home page Giter VIP logo

ravendb.contrib's Introduction

RavenDB Community Contributions

These projects are for community contributions to RavenDB, such as extension methods, base classes and helper methods. Feel free to fork this project, add your own code, and submit a pull request.

This project is maintained and supported by the RavenDB community, not by Hibernating Rhinos. For questions, please visit the RavenDB Google Group.

Status

The project is relatively stable, but is no longer being maintained. Please consider that the contributions here were written in the Raven 2.x time frame, and may or may not act differently in the current release.

Installation

There are multiple projects in this repository, but the primary one is Raven.Client.Contrib. It can be installed via NuGet:

PM> Install-Package RavenDB.Client.Contrib

The NuGet feed can be found here

Other projects may also have NuGet packages, or may require manual compilation.

Contribution Guidelines

To contribute to this project, fork the main repository from here and make your changes locally. Then submit a pull request with your changes. Be sure to describe what your contribution does and what value it adds to Raven.

Please keep the following in mind:

  • We are using Visual Studio 2012.

  • The master branch targets RavenDB 2.5, and whenever possible targets both .Net 4.0 and 4.5 via linked projects.

  • The 2.0 branch is currently maintained for RavenDB 2.0 under .Net 4.0. If an item is compatibile with RavenDB 2.0, it should be added to both branches. Of course, code that is not applicable to RavenDB 2.0 will only exist in the master branch.

  • We are not supporting RavenDB 1.0 at all.

  • Whenever possible, libraries should support the current stable release of RavenDB. However, the minimal supported stable version of RavenDB should be referenced unless their is a breaking change.

  • You should use xml summary comments on all public members, so that consumers of your code can use intellisense to easily figure out what your contribution does. This is especially important for extension methods.

  • There are additional restrictions for the Raven.Client.Contrib project, as follows:
    ** No dependencies on 3rd party libraries or nuget packages. If you require a dependency, build a separate project.
    ** Must support the current stable release of RavenDB.

  • Contributions to this repository should augment the official RavenDB libraries - not subvert them. A pull request for code that does something Raven already handles (even if in a slightly different way), will likely be rejected.

  • Contributions should be small, discrete chunks of code that can operate independently from each other. If you have a medium to large sized bundle, extension, or demo, then it should probably be hosted in your own repository.

  • Hibernating Rhinos retains the right to veto anything we do here. Raven is their baby. Let's not make it ugly. Try to keep their design principles in mind, such as "Safe by Default".

  • If something contributed here is eventually pulled in to Raven, it should be deprecated by marking it with an [Obsolete] attribute and replacing the contrib implementation with a call to the new official version.

  • If you contribute something to this project, you should be prepared for others to modify it. You can certainly still make changes, but you are relinquishing control back to the community at large. If you desire to retain control of your project, you should keep it in your own github repository.

  • Everything in this repository is MIT licensed. You may not change the license for any partial contribution. Unlike Raven's Contribution Rules, we do not require a signed contributor license agreement. By submitting a contribution, you are agreeing to release the code under the MIT license.

  • If you have a suggestion, opinion, or disagreement, please either create an issue on github here, or discuss in the RavenDB Google Group.

THANKS!

ravendb.contrib's People

Contributors

cmircea avatar damianh avatar kijanawoodard avatar mattjohnsonpint avatar purekrome avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ravendb.contrib's Issues

Provide a way to use the Account object outside the AuthProvider

I would like to be able to extend the user's Account by associating it with a Profile object. However, I need to be able to access the Account from my web app so I can create the user Profile object and set it's AccountId to the Id of the Account for the specified user.

Also, it would be nice to be able to do more manipulation to the Account from outside the provider for more advanced user management than what the AuthProvider provides. Have you considered making the Account extensible by storing an IAccount rather than an account and giving the user the option of how to implement IAccount in their web application?

Project namespaces and organisation

Raven.Client.Contrib should have it's default namespace as "Raven.Client" as that is the namespace it is extending. Thus when a user adds a reference to Raven.Client.Contrib package they will see the extensions in their intellisense without having to add a 'using Raven.Client.Contrib" directive.

The *Extensions types should be in matching namespaces that they extend. For instance, DocumentExtensions should be in a Connection folder and thus have namespace "Raven.Client.Connection". Again this helps discovery in intellisense.

Raven.Client.Contrib.Tests project default namespace should be Raven.Client (unit test classes don't have to be in a "Tests" namespace...)

Associate oauth client with existing account - error

  • First having registered a user using Google, giving the name "Anders".
  • Then adding a password, and removing the Google association.
  • Then logging out.
  • Then using Google to login.
  • On the associate with user page I then write "Anders".
  • Going to the /Manage page now returns an error in \Raven.Contrib.AspNet.Auth\AuthProvider.cs:

Sequence contains more than one element

Line 278:            using (var db = _store.OpenSession())
Line 279:            {
Line 280:                var user = db.Query<Account>()
Line 281:                             .Customize(q => q.WaitForNonStaleResultsAsOfLastWrite())
Line 282:                             .SingleOrDefault(a => a.UserName == userName);

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.