Thursday, August 18, 2005

Bitkraft - An "AJAX" Library for .NET with a difference

What is Bitkraft?

Bitkraft is a CLR based (.NET) web framework that allows distributed web content to be created and served in a unique fashion. It is written in C# and compiles for operation under the Microsoft .NET Framework 1.1+ or the .Mono Framework, making it portable to almost any platform.

At it's core, the Bitkraft framework extends the ASP .NET Architecture to fully support Javascript-based Server callbacks using the XmlHttpRequest object as a transport layer in a fashion referred commonly today as AJAX (Asynchronous Javascript Over XmlHttpRequest). There are many "AJAX" fameworks available today however, the Bitkraft framework is unique in the way that it seeks to blur the lines between client (browser) and server and the manner that it allows the development of truly Smart Web-Based applications that intelligently distribute their functionality between Client and Server in a seamless manner.

Indeed, Bitkraft deliberately tries not to describe it's technology as "AJAX" based because of the connotation of the use of XML (a'la SOAP/Webservices). Bitkraft does NOT use XML, instead JSON (JavaScript Object Notation) is used as the main transport for communications between client and server. Using JSON as opposed to XML for message formatting produces a lighter-weight message and also has the advantage of being a native format that can be accessed as a real object by most modern clients (browsers). the Bitkraft framework translates CLR Types directly to and from the JSON format resulting in objects that behave and appear the same both at the client and at the server.

The Bitkraft framework allows web content to be developed in a single environment and promotes the distribution of functionality between the client and the server. It allows objects to be created that behave predictably regardless of whether the implementation is being run at the client or at the server and allows objects to expose methods that are implemented either on the client or on the server without re-posting or rendering page content. This approach reduces the size and quantity of round-trips to the server, updating the content provided on a single page by requesting it on-demand from the server instead of relying on full -page re-posts and re-rendering of complete pages.

The end result?.....

  • Web content that is dynamic and fast!
  • A way of developing web content that hides the complexity of communicating between client and server from both the developer and the user.
  • A whole new breed of web applications that run inside the ever-popular and familiar Web Browser but break away from the mould of traditional a "Network Of Pages".
  • Not just Web Pages but real Web Applications.
  • Simply; a smarter web framework.
CHECK OUT THE BITKRAFT FRAMEWORK HERE!

3 comments:

Anonymous said...

Your library seems very promising, I was wondering if you were familiar with dotnetnuke and if so how would your library be integrated

Unknown said...

Hi There (Bitkraft User),

Thankyou for your interest in the Bitkraft Framework, i am always very interested to hear new techniques and ideas on how it may be used - your query regarding it's compatibility with DNN is an interesting one.

In short, as it stands currently, the Bitkraft Framework will not operate with DNN as it uses the same technique of Inheritance by inheriting from the DotNetNuke equivalent of the Bitkraft.Web.PageTemplate and it is not possible to inherit from multiple classes in this manner (that is to say you cannot inherit from Entities.Modules.PortalModuleBase and Bitkraft.Web.PageTemplate at the same time).

This is not to say that the two cannot work together though! - as i am in control of the source for the Bitkraft Framework, i can indeed inherit from Entities.Modules.PortalModuleBase instead of System.Web.UI.Page (which is already inherited by Entities.Modules.PortalModuleBase) soooo, what i am in the process of doing right now is downloading the source for DotNetNuke (v3.1.1) and recompiling the Bitkraft Framework with a NEW PageTemplate Class for DotNetNuke Users.

The short end of the story is that i have taken your query and the queries of others on-board and will be making a new set of Source and Binaries available this evening (AUS. Eastern Standard Time). I will be sure to email you with details of where they are availble from but the end result will be that, instead of inheriting from either Entities.Modules.PortalModuleBase OR Bitkraft.Web.Ui.PageTemplate, you will simply need to inherit from the NEW! - Bitkraft.Web.UI.DNNPageTemplate in order to get all of the features of DNN AND all of the power of Bitkraft at the same time.

I hope this is a timely and acceptable solution to your query and i will be in touch as soon as i have completed the final compilation with details of availability - i do ask that you report back to me with any information you have on how it goes - i am not running DNN on any of my production servers so am unable to test the full features if "Bitkraft in DNN" in a "Live" environment.

Thankyou again for your enquiry and interest in Bitkraft.

Happy Bitcrafting

T.T.F.N - TaTa for Now!

TIGGR.

On 8/26/05, (Bitkraft User) <@gmail.com> wrote:

I am intrigued by your library and I wonder if you know how to utilize it with Dotnetnuke
I am learning on a daily basis, but in DotnetNuke the pages already contain an inheritance

ie

Inherits Entities.Modules.PortalModuleBase

therefore I cant use

Inherits Bitkraft.Web.PageTemplate



this is probably something very simple that I am overlooking

or since I'm a new programmer just dont know about.

thanks for any insight..."

Anonymous said...

Hi Wayne,

All of the links to your Bitkraft page seem to take you to a blank page. Are you still making your library available for use? Sounds really good.
Neil