Hisham Elbreky

Simulate The Nature

  • Coding With Windows Azure IaaS

    This post will focus on some advanced programming topics concerned with IaaS (Infrastructure as a Service) which provided as windows azure virtual machine (with its related resources like virtual disk and virtual network), you know that windows azure started as PaaS cloud platform but regarding to some business cases which need to have full control over their virtual machine, so windows azure directed toward providing IaaS.

  • WebSockets and Web Pages Two Way Communication

    Suppose that you have to design a web application (i.e. stock exchange) which should be designed in the way that the client should be updated instantly with any change submitted by other clients, and also you have to implement this design using ASP.NET (or other web apps technologies).
    As you know that HTTP protocol is stateless protocol based on request/response using non-permanent connection with server which is not longer than your request/response time, there is no problem to implement this type of applications using windows forms and WCF full duplex, but the challenge here is to implement it using web pages technology.

    So what is the scenario that you can use to implement this design using ASP.NET Pages?
    - Periodical checking the server side for any updates from other clients (also the same will be done by other clients) which will lead into hitting server performance with direct proportion with transactions number, also this is not corresponding with real time apps like stock exchange due to the delay of periodical checking and other issues, So this scenario is not practical scenario for this type of apps.
    - The above scenario will leading you to think about something that let server side updating the subscribed clients with any change between each other, but again the nature of HTTP protocol will not help you to do that whilst the request direction always from client to server, some developers resolved this issue with some tricky way by letting the connection opened between server and client, and to do that your server side should be in continuous response until you ending your session with server. This scenario will resolve our issue concerned with HTTP protocol; but still complex to be implemented and hard to maintain.
    - Another scenario is to use the new invented technique “WebSockets” standardized by W3C and supported mainly by latest version of browsers like chrome and fire fox, also there is a Lab by Microsoft(part of HTML 5 Labs) to be supported in IE, WebSockets is a technique for two-way communication over one (TCP) socket, using WebSockets is the best scenario to implement Stock Change app based on web technology and also it will be the future of this type of apps, this solution will save a lot of time and work around to introduce real-time apps through web browsers.

    What is WebSockets? WebSockets is a technology providing for bi-directional, full-duplex communications channels, over a single Transmission Control Protocol (TCP) socket, it is designed to be implemented in web browsers and web servers, The WebSocket API is being standardized by the W3C, and the WebSocket protocol is being standardized by the IETF

    Good WebSockets links
    http://en.wikipedia.org/wiki/WebSockets
    http://dev.w3.org/html5/websockets/
    http://html5labs.interoperabilitybridges.com/prototypes/websockets/websockets/info

  • DB Documentation Tool

     Recently I have uploaded new project to codeplex site, DbDocument or DbDoc project is a helper tool used side by side with MS SQL server management studio tool, you can design your DB Tables in visualized way through Diagrams and then use “DbDoc” tool to generate design document in MS Word format, the generated file can be used in design review process or as history reference, the tool facilitate and reduce the time of writing DB structure document

  • WebShell, new web applications framework

     I have released the first beta version of WebShell framework on Codeplex, Which aims to facilitate and improve the process of development by providing new and easy way to build module/component driven applications based on request driven design pattern; so re-usability, integration, system updates and deployment will be done smoothly and faster with respect to market demands changes.

  • Game program for kids less than 2 years :)

    My daughter Mariam (=Mary) one year old always coming to my pc when I doing some work and climbing me then hitting keyboard randomly (oh, the pc gone to be like small cat fall in the pool :( )
    I’m decided to save my pc (as possible :) ) then I developed this simple game for kids less than 2 years that thinking the pc is a toy .

    mariam game

  • Swaplist [JQuery Plugin]

    A few days ago I developed Jquery plugin, it was very useful to use it in client side, the plugin generate UI for two lists and give you ability to swap items between them
    Plugin have methods to initialize it with data or get data from it, data is represented in plugin with JSON format

  • JQuery Tips

    Selectors:
    Getting text box value
    $(“#TextBoxId”).val();
    Chang or set label text
    $(“#LabelId”).text(“Your Text”);
    Set control CSS “i.e td border width”
    $(“#td_id”).css('border-width', '1px');

  • An entry to JQuery

    JQuery is  a JavaScript library simplify using JavaScript in client side, with JQuery you can handle document objects where you can select and change style or behavior in easy way, I think JQuery as a successful JavaScript Library will play a big role in the next days of web development and that is makes Microsoft embedding JQuery in ASP.NET AJAX.