Windows & .NET Watch: Chain reactive



Email    print   
October 1, 2009 —  (Page 1 of 2)
An interactive program is one in which the program pulls input from the environment: System.Console.ReadKey(). A reactive program is one in which (after an initial wiring-up) the environment pushes input to the program: myKeyPressEventHandler(Object sender, KeyPressEventArgs e) { … etc … }. Today, most programmers mostly write reactive programs.

The reactive style is a good fit for programs that wish to remain active while waiting for a particular input event (e.g., fire other events relating to the cursor position, repaint the screen, update a graphic, etc.). In other words, it’s a good fit for applications with GUIs and for Web pages seeking that AJAX-y goodness. (“Functional reactive programming” is more mathematically rigorous and involves not just events but continuously varying valuables; we can leave it aside for this discussion.)

The reactive style requires more setup, but it allows for the program to more easily do other things while waiting for a particular input event. The success of AJAX is testament to the perceived benefits of the reactive style. It combines JavaScript’s event-handling mechanism with the extraordinarily slow callback mechanism that is a Web query, but nonetheless applications written with AJAX are generally seen by users as more responsive because they don’t involve a whole-page refresh.

While the market has voted in favor of the end result of the reactive style, the plumbing beneath such a Web-based application is a mess. Such applications are very likely running JavaScript to dynamically power the UI, a server-side language such as C# to describe the business logic, and SQL to describe its persistence model.

Even if you put the programming language aside, the data models at hand are confusing. The display inside the browser is based on a Document Object Model. Complex data flowing over the Web is in another hierarchical text-based format, either XML or JSON. Business logic running at the server is likely to be working with a directed graph of objects. Persistence, for most of us, is a combination of filesystem objects (for “mere” content and configuration) and relational data described with SQL.



Related Search Term(s): LINQ

Pages 1 2 


Share this link: http://sdt.bz/33792
 
Most Read Latest News Blog Resources

Add comment


Name*
Email*  
Country     


  • Comment
Loading




close
NEXT ARTICLE
ComponentOne previews LINQ optimizer, Web Parts
LINQ developers will be able to use LiveLinq to speed up LINQ queries in memory. Meanwhile, Silverlight 2 serves as the basis for a trio of Web Parts for SharePoint developers Read More...
 
 
 
 
News on Monday
more>>
SharePoint Tech Report
more>>


   

 
 

Download Current Issue
FEBRUARY 2012 PDF ISSUE

Need Back Issues?
DOWNLOAD HERE

Want to subscribe?


 
blogs tab
Agility, mom, and apple pie
If we're to evaluate the state-of-the-art in software development, we should start with the values espoused in the Agile Manifesto.
02/07/2012 11:57 AM EST

RIM woos developers with free tablet
How do you get more apps ported to the BlackBerry PlayBook? By giving every developer a free tablet, of course!
02/04/2012 01:57 PM EST

GitHire: Use Headhunters to Find Your Perfect Programmer
Are you a hiring manager tired of scouring the job boards? Check out this new service that will find 5 people interested in your jobs.
02/03/2012 12:17 PM EST

Facebook claims hacker cred
Facebook's SEC S-1 filing form includes a short essay on the Hacker Way by Mark Zuckerberg himself.
02/02/2012 08:26 AM EST

Ryan Dahl steps down
Ryan Dahl, creator of Node.js, steps back from his position as gatekeeper for the project.
02/01/2012 04:58 PM EST

Bloomberg opens its API
Bloomberg's APIs could lead to a future standard for accessing market data.
02/01/2012 04:41 PM EST

 
Events calendar tab
2/13/2012 to 2/16/2012
Santa Clara
TechWeb

2/26/2012 to 2/29/2012
San Francisco
BZ Media

2/27/2012 to 3/2/2012
San Francisco
RSA

3/4/2012 to 3/7/2012
Las Vegas
IBM Tivoli

3/5/2012 to 3/9/2012
San Francisco
TechWeb