My Gestalt

Understand the chaotic world by developing meaningful perception through the acquisition of seemingly disparate knowledge.

Collect information in large quantity with precise detail and connect the dots of meaning to form your own picture of the universe.

Act upon it

Knowledge and understanding without action is waste.

Be Grateful

Never underestimate the power of gratitude.

Charity

Forgiveness will make your heart happy. Forgiveness is not about someone deserving it, it's about healing your heart.

Todo tada

Todo Applications seem to be the standard today for samples.

This sample shows you how to construct a complete Application using WebAPI, RavenDB, VB.Net and CanJS.

What it shows is a completely responsive mobile first application in HTML5/CSS3 Client against a WebAPI written in VB.Net and CanJS.

CanJS is a Client-side Framework that operates directly against the WebAPI, nothing is done in Razor except the Authentication.

Logging In:

 

Home:

What you will see in the Output Window of Visual Studio when this loads: iisexpress.exe Information: 0 : Message='TodosController', Operation=DefaultHttpControllerActivator.Create iisexpress.exe Information: 0 : Message='TodosController', Operation=HttpControllerDescriptor.CreateController iisexpress.exe Information: 0 : Message='Selected action 'Get()'', Operation=ApiControllerActionSelector.SelectAction iisexpress.exe Information: 0 : Operation=AuthorizeAttribute.OnAuthorization iisexpress.exe Information: 0 : Operation=HttpActionBinding.ExecuteBindingAsync iisexpress.exe Information: 0 : Message='Action returned 'System.Collections.Generic.List`1[Todo]'', Operation=ReflectedHttpActionDescriptor.ExecuteAsync iisexpress.exe Information: 0 : Message='Will use same 'JsonMediaTypeFormatter' formatter', Operation=JsonMediaTypeFormatter.GetPerRequestFormatterInstance iisexpress.exe Information: 0 : Message='Selected formatter='JsonMediaTypeFormatter', content-type='application/json; charset=utf-8'', Operation=DefaultContentNegotiator.Negotiate iisexpress.exe Information: 0 : Operation=ApiControllerActionInvoker.InvokeActionAsync, Status=200 (OK) iisexpress.exe Information: 0 : Operation=TodosController.ExecuteAsync, Status=200 (OK) iisexpress.exe Information: 0 : Response, Status=200 (OK), Method=GET, Url=http://localhost:24178/api/Todos, Message='Content-type='application/json; charset=utf-8', content-length=unknown' 'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Numerics\v4.0_4.0.0.0__b77a5c561934e089\System.Numerics.dll' iisexpress.exe Information: 0 : Operation=JsonMediaTypeFormatter.WriteToStreamAsync iisexpress.exe Information: 0 : Operation=TodosController.Dispose

Editing a Todo produces this in the Output: iisexpress.exe Information: 0 : Message='TodoController', Operation=DefaultHttpControllerActivator.Create iisexpress.exe Information: 0 : Message='TodoController', Operation=HttpControllerDescriptor.CreateController iisexpress.exe Information: 0 : Message='Selected action 'Put(Int32 id, Todo entity)'', Operation=ApiControllerActionSelector.SelectAction iisexpress.exe Information: 0 : Operation=AuthorizeAttribute.OnAuthorization iisexpress.exe Information: 0 : Message='Parameter 'id' bound to the value '2'', Operation=ModelBinderParameterBinding.ExecuteBindingAsync iisexpress.exe Information: 0 : Message='Value read='Todo'', Operation=JQueryMvcFormUrlEncodedFormatter.ReadFromStreamAsync iisexpress.exe Information: 0 : Message='Parameter 'entity' bound to the value 'Todo'', Operation=FormatterParameterBinding.ExecuteBindingAsync iisexpress.exe Information: 0 : Message='Model state is valid. Values: id=2, entity=Todo', Operation=HttpActionBinding.ExecuteBindingAsync iisexpress.exe Information: 0 : Message='Will use same 'JsonMediaTypeFormatter' formatter', Operation=JsonMediaTypeFormatter.GetPerRequestFormatterInstance iisexpress.exe Information: 0 : Message='Selected formatter='JsonMediaTypeFormatter', content-type='application/json; charset=utf-8'', Operation=DefaultContentNegotiator.Negotiate iisexpress.exe Information: 0 : Message='Action returned 'StatusCode: 202, ReasonPhrase: 'Accepted', Version: 1.1, Content: System.Net.Http.ObjectContent`1[[Todo, CanVS, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], Headers: { Content-Type: application/json; charset=utf-8 }'', Operation=ReflectedHttpActionDescriptor.ExecuteAsync iisexpress.exe Information: 0 : Operation=ApiControllerActionInvoker.InvokeActionAsync, Status=202 (Accepted) iisexpress.exe Information: 0 : Operation=TodoController.ExecuteAsync, Status=202 (Accepted) iisexpress.exe Information: 0 : Response, Status=202 (Accepted), Method=PUT, Url=http://localhost:24178/api/Todo/2, Message='Content-type='application/json; charset=utf-8', content-length=unknown' iisexpress.exe Information: 0 : Operation=JsonMediaTypeFormatter.WriteToStreamAsync iisexpress.exe Information: 0 : Operation=TodoController.Dispose

A Full VB.Net Starter Kit based on this is available by request.