GithubHelp home page GithubHelp logo

haziba / marten Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jasperfx/marten

0.0 1.0 0.0 13.95 MB

Postgresql as a Document Database and Event Store for .Net Applications

Home Page: http://jasperfx.github.io/marten

License: MIT License

Ruby 0.14% HTML 0.70% Shell 0.01% C# 82.66% JavaScript 14.73% CSS 1.62% PLpgSQL 0.13% SQLPL 0.01% Smalltalk 0.01%

marten's Introduction

Marten

Polyglot Persistence Powered by .NET and PostgreSQL

Join the chat at https://gitter.im/JasperFx/Marten Windows Build Status Linux Build status Nuget Package

marten logo

The Marten library provides .NET developers with the ability to use the proven PostgreSQL database engine and its fantastic JSON support as a fully fledged document database. The Marten team believes that a document database has far reaching benefits for developer productivity over relational databases with or without an ORM tool.

Marten also provides .NET developers with an ACID-compliant event store with user-defined projections against event streams.

Working with the Code

Before getting started you will need the following in your environment:

  • Access to a PostgreSQL 9.5+ database.
  • An environment variable of marten_testing_database set to the connection string for the database you want to use as a testbed. (See the Npgsql documentation for more information about PostgreSQL connection strings )
  • You will also need to enable the PLV8 extension inside of PostgreSQL for running JavaScript stored procedures for the nascent projection support. See this link for pre-built binaries for PLV8 running on Windows
  • Ensure you have installed .NET Core SDK 2.0
  • Once you have the codebase and the connection string file, run the rake script or use the dotnet CLI to restore and build the solution.

You are now ready to contribute to Marten.

Tooling

  • Unit Tests rely on xUnit and Shouldly
  • Rake is used for build automation. It is not mandatory for development.
  • Node.js runs our Mocha specs.
  • Storyteller for some of the data intensive automated tests

Mocha Specs

To run mocha tests use rake mocha or npm run test. There is also npm run tdd to run the mocha specifications in a watched mode with growl turned on.

Note: remember to run npm install

Storyteller Specs

To open the Storyteller editor, use the command rake open_st from the command line or rake storyeller to run the Storyteller specs. If you don't want to use rake, you can launch the Storyteller editor after compiling the solution by the command packages\storyteller\tools\st.exe open src/Marten.Testing.

Documentation

The documentation content is the markdown files in the /documentation directory directly under the project root. To run the documentation website locally with auto-refresh, either use the rake task rake docs or the batch script named run-docs.cmd.

If you wish to insert code samples to a documentation page from the tests, wrap the code you wish to insert with // SAMPLE: name-of-sample and // ENDSAMPLE. Then to insert that code to the documentation, add <[sample:name-of-sample]>.

Note: content is published to the gh-pages branch of this repository by running the publish-docs.cmd command.

Rake Commands

# run restore, build and test
rake

# run all tests including mocha tests
rake test

# running documentation website locally
rake docs

DotNet CLI Commands

# restore nuget libraries
dotnet restore src\Marten.sln

# build solution
dotnet build src\Marten.sln

# running tests for a specific target framework
dotnet test src\Marten.Testing\Marten.Testing.csproj --framework netcoreapp2.0

# mocha tests
npm install
npm run test

# running documentation website locally
dotnet restore docs.csproj
dotnet stdocs run

marten's People

Contributors

jeremydmiller avatar tim-cools avatar nieve avatar jokokko avatar mysticmind avatar coreykaylor avatar jimgolfgti avatar jenspettersson avatar ekulakov avatar ericgreenmix avatar scooletz avatar danielmarbach avatar jvdvleuten avatar mdissel avatar phillip-haydon avatar jeffdoolittle avatar wastaz avatar migajek avatar jnevins-gcm avatar vadimline avatar jarroda avatar lngr avatar ejsmith avatar dpen2000 avatar oskardudycz avatar khalidabuhakmeh avatar jamesfarrer avatar biboneup avatar cocowalla avatar bchavez avatar

Watchers

James Cloos avatar

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.