Skip to content

genoher/Noodles

 
 

Repository files navigation

#Noodles#

Noodles, built on .NET, is a what you might call an OIM (Object-Interface mapper). By simply marking your classes up to indicate relationships between domain objects, and to expose methods and properties (based on dynamic rules), you can build an application or API.

Currently there are two implementations:

  • Noodles.AspMvc: build full featured maintainable HTML web applications. Progressively enhance your UI conventions to increase UI quality, and provide overrides for custom features.
  • Noodles.WebApi: build rich Hypermedia APIs with HATEOAS compliance and ContentType versioning.

####Live Example MVC application: http://noodles.example.web.5.9.55.208.xip.io/####

####Live Example WebApi application: http://noodles.example.web.5.9.55.208.xip.io/api####

Key Benefits

  • Reusable UI conventions across your site
  • Standardised API interaction
  • Very fast development
  • Dynamic, cross cutting security features
  • Opt in - you can use it for your whole app, or just alongside a standard app

Features

  • MIT Licence
  • Routable within existing ASP MVC and WebAPi applications. You can use it just for your admin area if you want.
  • Customisable UI conventions
  • Call methods via Post-Redirect-Get, with automatic client-side validation
  • Control access to properties and actions dynamically using Harden
  • Built on top of standard ASP MVC/WebApi
  • Database agnostic. You have control over persistence, so you can use SQL, Raven/Mongo/Couch or something clever you have rolled yourself.
  • Form generation using FormFactory (Noodles.AspMvc)

Getting started##

a. Create an empty MVC4 or WebApi application

b. Install the following Nuget packages (the dependencies aren't set up yet, sorry!)

For MVC

Install-Package Noodles
Install-Package Noodles.AspMvc
Install-Package EmbeddedResourceVirtualPathProvider

For WebApi

Install-Package Noodles
Install-Package Noodles.WebApi (for WebApi)

c. Create your domain model, marked up with [ShowAttribute] to expose properties and methods, and [Link] attributes to indicate relationships between objects. Use Harden methods and attributes to secure your system.

d. add a wildcard route to your application (AspMvc / WebApi), and for MVC, a controller, passing the root of your object graph.

e at this point you should be able to start your app, and have a functional application. Amazing!

alternatively, check out the Example projects!

##Future work##

  • Mobile UI
  • Realtime object sync using SignalR
  • PJax
  • Inline property editing

##Finally##

Please don't be a vacuum - emails, tweets, follows and questions actively sought after!

thanks - Harry McIntyre @mcintyre321

githalytics.com alpha

Bitdeli Badge

About

a .NET library for building model driven web/API/mobile* applications on top of ASP MVC or WebApi - SEE BELOW!

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 68.5%
  • JavaScript 29.4%
  • CSS 1.7%
  • Other 0.4%