• Stars
    star
    231
  • Rank 173,434 (Top 4 %)
  • Language
    C#
  • License
    MIT License
  • Created over 12 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A lightweight, object-oriented (Model-View-Handler) framework for modern web development in .NET.

Simple.Web

Simple.Web is a REST-focused, object-oriented Web Framework for .NET 4. More information on it's background can be found here.

BUILD

You can build Simple.Web using the command-line options outlined below, or simply through MS Visual Studio or MonoDevelop. It is recommended that anyone planning to contribute to the project familiarise themselves with the command-line as it will be the successful completion of this build process that will stand your pull-request in good stead.

Command-Line

Ruby

The command-line process uses RAKE, a Ruby build system. It will therefore be necessary to have Ruby >= 1.9.2 installed. Dependent on your operating system there are several options to accomplish this but we first recommend you can check current installation by typing ruby -v from console prompt.

For example:

> ruby -v
ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-darwin11.1.0]

If you do not yet have Ruby installed on your system check out RubyInstaller (for Windows) or RVM (for *nix). You can also use RVM to install and manage multiple versions of Ruby in a *nix environment.

Rake

RubyGems are Ruby's own managed packages and it's through this system we need to install some build dependencies. To simplify their installation simply type the following at the console prompt:

Windows:

> .\InstallGems.bat  

*nix:

> ./installgem.sh

Using Ruby's gem utility it should install the Bundler, RAKE, and Albacore gems. You can check currently installed gems at any time by typing gem list --local from a console prompt.

Building

From the root of the repository you can see all available build tasks by typing:

> rake -T

rake build     # Build
rake clean     # Remove any temporary products.
rake clobber   # Remove any generated file.
rake full      # Build + Tests + Specs
rake publish   # Build + Tests + Specs + Publish (remote)
rake publocal  # Build + Tests + Specs + Publish (local)
rake quick     # Build + Unit tests
rake test      # Build + Tests (default)

You can specify any of these tasks when building Simple.Web, or simply just type rake for it's configured default.

Task: Build + ...

The variation available is to faciliate faster repetitive build times depending on your current workflow. For example if you are regularly compiling mid-development you may choose rake quick which confines it's boundary to unit tests. If you are looking for greater assurance rake test (the default) will run both unit and integration tests. Finally you can choose rake full to run all tests and specifications.

Task: Clean

This will remove all intermediate files creating during the build process, but leave build artifacts and results intact.

Task: Clobber

This will remove all build-time generated files, effectively restoring your repository to that in source control. This should be the same as performing git clean -xfd.

Task: Publish / Publocal

Allows you to package Simple.Web's nuget packages and publish to either NuGet.org using rake publish, or an alternative nuget server using rake publocal.

To enable publishing you will need to set the appropriate environment variables:

rake publish
  apiurl_local -- NuGet server url (e.g. "http://nuget.org")
  apikey_local -- ServerAPI key that authenticates your publish

rake publocal
  apiurl_remote -- NuGet server url (e.g. "http://nuget.local")
  apikey_remote -- Server API key that authenticates your publish

NOTES

Mono 2.10.x

Due to a [variance validity bug] 1 in Mono 2.10.x you will require version 3.x (MDK Installer recommended). We continue to petition Xamarin to make another 2.x STABLE release to address this. In the meantime our continuous integration setup will continue to run against 2.x STABLE and 3.x BETA releases of Mono.

NuGet.exe on *nix with Mono

If you are running on *nix or OS X Darwin (before Mountain Lion) you may need to tell Mono which certificate authorities to trust when performing NuGet operations over https:

> sudo mozroots --import --sync 

Mozilla Roots Importer - version 3.0.2.0
Download and import trusted root certificates from Mozilla's MXR.
Copyright 2002, 2003 Motus Technologies. Copyright 2004-2008 Novell. BSD licensed.

Downloading from 'http://mxr.mozilla.org/seamonkey/source/security/nss/lib/ckfw/builtins/certdata.txt?raw=1'...
Importing certificates into user store...
140 new root certificates were added to your trust store.
Import process completed.

CONTRIBUTE

Contributions to Simple.Web are gratefully received but we do ask you to follow certain conditions:

  • Fork the main markrendle/Simple.Web
  • Use a branch when developing in your own forked repository, DO NOT work against master
  • Write a unit test to validate new logic, ideally using TDD
  • Ensure all projects build and tests pass, use the command-line option rake full
  • Make a pull request from your-fork/your-branch to Simple.Web/master
  • Provide a description of the motivation behind the changes

.. but all that said, don't be afraid :-)

VERSION

Versioning is of assemblies and nuget packages is dictated by that specified through VERSION.txt. The main contributors to the project will manage releases and SemVer-compliant version numbers. We ask you do not include VERSION.txt in any of your pull-requests, just indicate in it's accompanying description any thoughts in this direction.

SUPPORT

Any problems raise an issue or shout and will get straight on it.

More Repositories

1

Simple.Data

A light-weight, dynamic data access component for C# 4.0
C#
1,329
star
2

Flux

Lightweight web server for .NET and Mono
C#
70
star
3

Simple.Data.Pad

A GUI tool for writing Simple.Data queries, with database-driven auto-completion.
C#
24
star
4

brackets-grunt

A Brackets extension to run Grunt tasks
JavaScript
21
star
5

AngularTS

A TypeScript Declaration Source File for AngularJS
JavaScript
16
star
6

Simple.Data.Sample

Sample project demonstrating features of Simple.Data
C#
15
star
7

nogit

Disable Git SCC plug-in in Visual Studio 2013 to 2017
C#
15
star
8

moist.js

Write HTML as JavaScript
14
star
9

grunt-typescript

TypeScript compilation task for Grunt
JavaScript
12
star
10

CodeProjector

A VS2010 plug-in to reflect code window to a separate window, for projecting in presentations
C#
11
star
11

Myxo

Jasmine in C#
C#
9
star
12

Simple.Data.Azure

Azure Table Service adapter for Simple.Data
C#
9
star
13

mofo

Everybody seems to be creating serialization formats, so here's mine: Mark's Object FOrmat
8
star
14

AzureStorageToolList

Single-page site providing a list of tools for working with Windows Azure Storage
JavaScript
7
star
15

NancyTwitter

Authenticating a Nancy application using Twitter OAuth
C#
7
star
16

FuncLinq

An even more functional version of Bart de Smet's MinLinq
C#
7
star
17

ripgac

A site about ASP.NET vNext
C#
7
star
18

Trespasser

Dynamic proxy for accessing non-public members in .NET tests.
C#
6
star
19

FunctionalAlchemy

Code from the Functional Alchemy talk
C#
6
star
20

AngularTS-Minify-Demo

DI-compatible Minification with AngularJS and TypeScript
JavaScript
5
star
21

todo-sample

Reference implementation of Nancy/SimpleData ToDo list app
C#
5
star
22

SimpleWebSignupDemo

A demo signup application for Simple.Web
C#
5
star
23

FluxUv

Flux on libuv
C#
5
star
24

Heckle

Live feedback for presenters and audience
C#
4
star
25

InterfaceTests.Net

A repository of copyable tests for implementations of .NET BCL interfaces
C#
4
star
26

NExtLib

General purpose extension library for Microsoft .NET and Mono
C#
4
star
27

MvvmRx

A Model-View-ViewModel implementation using the Reactive Framework from Microsoft DevLabs
C#
4
star
28

Simple

Extracts from Simple projects into a useful library
C#
3
star
29

StreamIntro

Console application that I use for my Twitch stream intro
C#
3
star
30

BedAndBroadband

Simple.Web Demo code from MonkeySpace 2013
JavaScript
3
star
31

WpfPrimitives

Some basic stuff that should be in WPF but isn't.
C#
3
star
32

Simple.WebServer

This is not a real thing. It's just an OWIN spike.
C#
3
star
33

AsyncWrapperGenerator

Generates TAP Async extension methods from Begin/End methods
C#
3
star
34

Simple.Data.VistaDB

Simple.Data ADO Provider for VistaDB
C#
3
star
35

ConcurrentSet

A thread-safe Set with no locks. I think.
C#
2
star
36

bamlats

TypeScript
2
star
37

Extensions

Extensions for .NET
C#
2
star
38

MEFF

MEF Function Export Provider
C#
2
star
39

Aggro

A game created using Silverlight.
C#
2
star
40

ProgNet13

Code for ProgNet13
JavaScript
2
star
41

PocketIDE

JavaScript
2
star
42

tweaker

An ASP.NET module to fix the horrible HTML that some things generate
JavaScript
2
star
43

Simple.Migrations

Class-based migrations for .NET
C#
2
star
44

Confabulum

Duplex presentations
C#
2
star
45

CoffeeScriptVS

C#
2
star
46

AzureDocumentStore

Indexed JSON document storage R&D
JavaScript
2
star
47

GrpcWindowsService

C#
1
star
48

XMap

XML-POCO mapper
C#
1
star
49

SemanticConventionLibraryGenerator

Generate .NET types representing OpenTelemetry Semantic Conventions
C#
1
star
50

markrendle.github.com

Github page
1
star
51

blazor-desktop-select-issue

Repro solution for bug with `select` controls in Blazor Desktop
CSS
1
star
52

gotocms

Demo of Node.js CMS for GOTO Amsterdam 2012
JavaScript
1
star
53

Simple.Data.Docs

Documentation for Simple.Data
1
star
54

TaskBoard

Silverlight TaskBoard
JavaScript
1
star
55

essentialdotnet

Source for essentialdotnet.com
1
star
56

fretweb

C#
1
star
57

OneBRC

C#
1
star
58

IronMock

Proof-of-concept .NET mocking library using DLR and embedded IronRuby
C#
1
star
59

blog

My blog
HTML
1
star