C# + Html5 =C3
There are some rumors lately about a new Microsoft project called C3 (cloud computing client, or a synonym to C# [the # key is the same as '3' in a QWERTY keyboard]) which is designed to bring better development experience to web, using Html5, JavaScript and CSS in combination with some Microsoft based technologies (.Net, C#, etc.).
In very high level, what Microsoft is trying to do with this project is to ease the development experience of building a web application using Html5 by providing better coding tools that will provide things that do not exist today such as:
- type-safe variables
- modular architecture
- managed languages such as C#
Microsoft is constantly trying to keep developers from leaving Visual Studio in favor of other IDE's and a new set of tools for Html5 can definitely bring value to web developers aiming to build features rich applications that will work both online and offline.
I've recently predicted that by 2013, Html5 based applications will rule the enterprise, because of all the advantages this technology brings together with being the only true device agnostic technology to date.
Since I've recently participated in a project which involved Html5, mobile apps, offline mode, and an extremely powerful design, I would like to give an example of how web development (for mobile) can change with the introduction of Html5:
In most web applications, every time you a submit a request, save a change, or goes to another page – you actually send a request to the server. This is probably the oldest pattern in web, but it also means you need a valid connection to the server 100% of the time.
The request is sent to the server, the server builds the response, generates the page and content, and sends it back to the client.
This is perfect for desktop applications , but what about a smartphone or tablet which is sometimes offline? no connection then, which means the application is stuck.
This is where Html5 can come to the rescue; with a local database, caching of the pages, and some extensive JavaScript code – you can practically process the requests in the client side, without having to call the server. The requests to the server can be stored in the database as well and can be synced whenever connectivity is back. (In the past, developers tried to minimize the use of JavaScript in the client side due to performance issues – but as we progress, browsers are now completely capable of doing massive JS work without any issue).
Such kind of pattern (offline storage, message queues, client side processing) was typical for native mobile applications years ago, and now Html5 enables such patterns for mobile web apps as well. The only problem with it is that as a developer you have to build your product infrastructure to make it work. That's a lot of work, and I'm talking from my own experience. Unless… unless Microsoft comes up with a new technology that will make most of it ready, and thus simplify the entire thing. It will be similar to building a new improved version of Silverlight which is based on Html5, JavaScript and CSS and does not require any ActiveX installation whatsoever. Think how efficient that could be!
Now, if Microsoft can also add to it some C# wrappers so that developers can use C# when they code instead of JavaScript – that can be even better! Faster coding, type-safe, database, client side processing, a perfect world.
Amazing stuff.
What's even more amazing is that such a product already exists.
Thousands are already using it. It's called: Script# (Script Sharp).
Oh, and it's free too…
And you can read all about it in here: Script#.
---
You can read more about Microsoft C3 in here.