All Projects → umutozel → Beetle.js

umutozel / Beetle.js

Licence: MIT license
🪲 Javascript ORM, manage your data easily.

Programming Languages

javascript
184084 projects - #8 most used programming language
C#
18002 projects

Projects that are alternatives of or similar to Beetle.js

Beef
Business Entity Execution Framework
Stars: ✭ 95 (+79.25%)
Mutual labels:  entity-framework, webapi, odata
Abp Asp.net Boilerplate Project Cms
ABP module-zero +AdminLTE+Bootstrap Table+jQuery+Redis + sql server+quartz+hangfire权限管理系统
Stars: ✭ 677 (+1177.36%)
Mutual labels:  mvc, entity-framework, webapi
Audit.net
An extensible framework to audit executing operations in .NET and .NET Core.
Stars: ✭ 1,647 (+3007.55%)
Mutual labels:  mvc, entity-framework, webapi
Remote.linq
Simply LINQ your remote resources...
Stars: ✭ 136 (+156.6%)
Mutual labels:  linq, entity-framework, entity
Gridify
Easy and optimized way to apply Filtering, Sorting, and Pagination using text-based data.
Stars: ✭ 372 (+601.89%)
Mutual labels:  linq, entity-framework, odata
Data Forge Ts
The JavaScript data transformation and analysis toolkit inspired by Pandas and LINQ.
Stars: ✭ 967 (+1724.53%)
Mutual labels:  linq, data-management
Linq.translations
Declare properties on an object that can be translated by LINQ
Stars: ✭ 51 (-3.77%)
Mutual labels:  linq, entity-framework
Linq2db.entityframeworkcore
Bring power of Linq To DB to Entity Framework Core projects
Stars: ✭ 166 (+213.21%)
Mutual labels:  linq, entity-framework
Faqguru
🎒 🚀 🎉 A list of interview questions. This repository is everything you need to prepare for your technical interview.
Stars: ✭ 4,653 (+8679.25%)
Mutual labels:  angularjs, mvc
SpaceWar-ECS
A space war game made with ECS and JobSystem in Unity.
Stars: ✭ 26 (-50.94%)
Mutual labels:  entity-framework, entity
codegenerator
Generate EF6 WebApi with an AngularJS font-end
Stars: ✭ 11 (-79.25%)
Mutual labels:  entity-framework, webapi
dotnet-learning
Материалы для обучения C# и ASP.NET
Stars: ✭ 62 (+16.98%)
Mutual labels:  linq, webapi
System.linq.dynamic.core
The .NET Standard / .NET Core version from the System Linq Dynamic functionality.
Stars: ✭ 864 (+1530.19%)
Mutual labels:  linq, entity-framework
ReaLocate
ASP.NET MVC 5 Real Estate Application
Stars: ✭ 18 (-66.04%)
Mutual labels:  mvc, entity-framework
Nein Linq
NeinLinq provides helpful extensions for using LINQ providers such as Entity Framework that support only a minor subset of .NET functions, reusing functions, rewriting queries, even making them null-safe, and building dynamic queries using translatable predicates and selectors.
Stars: ✭ 347 (+554.72%)
Mutual labels:  linq, entity-framework
Opentouryo
”Open棟梁”は、長年の.NETアプリケーション開発実績にて蓄積したノウハウに基づき開発した.NET用アプリケーション フレームワークです。 (”OpenTouryo” , is an application framework for .NET which was developed using the accumulated know-how with a long track record in .NET application development.)
Stars: ✭ 233 (+339.62%)
Mutual labels:  mvc, webapi
.NET-Core-Learning-Journey
Some of the projects i made when starting to learn .NET Core
Stars: ✭ 37 (-30.19%)
Mutual labels:  mvc, entity-framework
aspnet-api-versioning
Provides a set of libraries which add service API versioning to ASP.NET Web API, OData with ASP.NET Web API, and ASP.NET Core.
Stars: ✭ 2,396 (+4420.75%)
Mutual labels:  webapi, odata
Diamond
Diamond is a full-stack web-framework written in The D Programming Language using vibe.d
Stars: ✭ 173 (+226.42%)
Mutual labels:  mvc, webapi
Denunciado
This project born from the need from people to have a way of communication between municipalities and communities. Some municipalities, have their platforms, but they are complex to validate the veracity of complaints. Denounced, it was born with the purpose of offering a free platform to these municipalities. Denounced consists of three main modules developed with Microsoft technologies, using the .Net Framework and Xamarin for its development: 1. Back End Web Project: Module of administration of the complaints, by the employees of the town councils. In this tool, the employees of the city council receive, validate, report and close the complaints, after being served. 2. Web Portal Client: It consists of a web project, so that the community make their complaints, in the same, the users of the service create a profile, must specify when making their complaint, evidence to support this. Through the portal, they can see the complaints of other community members, follow it, give their opinion or provide possible solutions or more evidence. 3. Mobile Project: It has the same functionalities as the web portal, with the addition, that the automatic location can be sent, from the cell phone.
Stars: ✭ 183 (+245.28%)
Mutual labels:  mvc, webapi

Beetle.js

Build status NuGet Badge npm version Known Vulnerabilities Join the chat at https://gitter.im/umutozel/Beetle.js

Beetle is a data manager for Javascript. The goal is to be able to work with data as easy as Entity Framework and LINQ.

Features

  • Tracks objects and persists changes to server
  • Can work with Knockout and ES5 properties (others can be implemented easily)
  • Can work with Q, Angular, ES6 and jQuery promises
  • Supports data model inheritance
  • Supports aggregate functions
  • Can work without metadata
  • Can work with Mvc and WebApi Controllers
  • Supports property, entity validations
  • Can use existing data annotation validations (carries multi-language resource messages to client)
  • Can query server with Http POST
  • Can be extended to support almost every library (client and server side), flexible architecture
  • Auto fix navigation properties (after foreign key set, entity attach etc..)
  • Can check-auto convert values for its proper data types
  • Can be internationalized (for internal messages, validation messages etc..)

Current prerequisities

All dependencies have base types so custom implementations can be made easily.

  • Entity Framework
  • WebApi or Asp.Net Mvc project for service
  • Knockout.js or EcmaScript5 Properties for providing observable properties

Usage

  • Create a Controller and inherit from BeetleApiController, generic argument tells we are using Entity Framework context handler with TestEntities context (DbContext)
public class BeetleTestController : BeetleApiController<EFContextHandler<TestEntities>> {
		
	[HttpGet]
	public IQueryable<Entity> Entities() {
		return ContextHandler.Context.Entities;
	}
}
  • Configure routing
public static class BeetleWebApiConfig {

	public static void RegisterBeetlePreStart() {
		GlobalConfiguration.Configuration.Routes.MapHttpRoute("BeetleApi", "api/{controller}/{action}");
	}
}
  • Create an entity manager
var manager = new EntityManager('api/BeetleTest');
  • Create a query
var query = manager.createQuery('Entities').where('e => e.Name != null');
  • Execute the query and edit the data
manager.executeQuery(query)
	.then(function (data) {
		self.entities = data;
        data[0].UserNameCreate = 'Test Name';
    })
  • Execute local query
var hasCanceled = self.entities.asQueryable().any('e => e.IsCanceled == true').execute();
// q is shortcut for asQueryable, x is shortcut for execute
var hasDeleted = self.entities.q().any('e => e.IsDeleted').x();
// alias is optional
var hasDeleted = self.entities.q().any('IsDeleted').x();

// with beetle.queryExtensions.js we can write queries like these;
// this query will be executed immediately and returns true or false
var hasExpired = self.entities.any('IsExpired == true');
// below query will be executed after it's length property is accessed (like LINQ GetEnumerator)
var news = self.entities.where('IsNew');
  • Add a new entity
var net = manager.createEntity('EntityType', {Id: beetle.helper.createGuid()});
net.Name = 'Test EntityType';
  • Delete an entity
manager.deleteEntity(net);
  • Save all changes
manager.saveChanges()
    .then(function () {
        alert('Save succesfull');
    })

Supported Data Types

string, guid, date, dateTimeOffset, time, boolean, int, number (for float, decimal, etc..), byte, enum, binary, geometry, geography (spatial types are supported partially, can be fully supported once we decide how to represent them at client side)

Validators

required, stringLength, maximumLength, minimumLength, range, emailAddress, creditCard, url, phone, postalCode, time, regularExpression, compare

Supported Query Expressions

ofType, where, orderBy, expand (include), select, skip, top (take), groupBy, distinct, reverse, selectMany, skipWhile, takeWhile, all, any, avg, max, min, sum, count, first, firstOrDefault, single, singleOrDefault, last, lastOrDefault

Supported Query Functions

toupper, tolower, substring, substringof, length, trim, concat, replace, startswith, endswith, indexof, round, ceiling, floor, second, minute, hour, day, month, year, max, min, sum, count, avg, any, all, contains (can be used in expression strings, some are not supported by OData but can be used with beetle query string format)

License

See License

drawing Thanks to JetBrains for providing me with free licenses to their great tools.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].