Microsoft’s recent discussion of mesh computing raises a few questions. For some details on what it is, go to the LiveMesh pages. The company has rattled about a lot of ‘Live” initatives, but this may be the first one with legs. Now, we are going to drop the mesh term immediately, and start to use ‘Cloud’ to describe whatever it is Ray Ozzie has been concocting – it is a more widely used term. Just think of it as a Grid on steroids, or rather a subset of a Grid on steroids.
Now the questions.
Who will the Microsoft Cloud effect? Seems like consumers are the target. It appears for now a way to connect one’s different electronic files and such. It may sneak into the enterprise, of course, just like Lotus 1-2-3 did.
Will it work? The answer there is yes, it will work about as well as most software; meaning, it will work much of the time, but you will come to curse it on occasion. Does IT have higher standards than individuals do on the question ‘does it work?’ – well, that is an open question.
Who is the competition? Basically, it is the nemesis called Google. Google has its own Cloud computing solution a’brewing, and Microsoft will have to meet the Valley Search Wizards of Googledom on that plain of battle because…well, because that’s what they are supposed to do. This is not mano on mano, no. It is geek-o on geek-o.
Of course, a wild card in the Cloud race is Yahoo. As you may recall, Microsoft is courting Yahoo with all the ardor of a CPA romancing a distant society deb. It is hard to guess how that will play out, but there is much about Yahoo that Microsoft will have to come to grips with. Yahoo has its own Cloud computing initiative – it has a lot of computers sitting around down on the farm, you know – which, like a lot of things at Yahoo, does not exactly work the same way as the Microsoft cloud alternative. As Blogster Par Excellance Mary Jo Foley points out, meshing these two platforms could be a real mess. Well put, Foley!
A whole new thing called ‘Web 2.0’ has arisen along with the AJAX phoenix. AJAX can improve responsiveness of networked applications by getting the client to do more work. But the first request from and the first download to the client-side cache can incur a dramatic performance hit.
Microsoft Research boffins have been cogitating on this, and have produce a PDF paper discussing Doloto, a system that analyzes application workloads and automatically performs code splitting of existing large Web 2.0 applications.
Since code download is interleaved with application execution, users can start interacting with the Web application much sooner, without waiting for the code that implements extra, unused features, using the Doloto framework, the team writes.
Microsoft development honcho Soma Somasegar reports that a Visual C++ 2008 Feature pack has shipped. In January the pack came out in beta.
MFC components included in the pack allow developers to create applications with the look and feel of Microsoft Office, Visual Studio and Internet Explorer. The VC++ 2008 pack can be downloaded from Microsoft’s Download Center.
That’s the good news. The bad news is VB6 has reached end-of-life status in terms of Microsoft formal support. The company has recently created a webcast explaining what that means, and what avenues are open for application migration.
Microsoft is working to make it easier for Eclipse developers write code for Windows apps. Microsoft will provide engineering support to allow Eclipse Standard Widget Toolkit (SWT) to use Windows Presentation Foundation (WPF). Such support would make it easier to Java developers to write applications that look and feel like Windows Vista. San Ramji, director of the Open Source Software Lab explains in his blog-posting Supernova, “We’re committing to improve this technology with direct support from our engineering teams and the Open Source Software Lab, with the goal of a first-class authoring experience for Java developers.”
Microsoft has released the Silverlight 2.0 lab so you can program this innovative technology while working in a safe, supportive environment. Some of the labs include: Basic Concepts, Concepts in building Connected Applications, Building Reusable Controls, Exploring the Integration between Silverlight and its browser host, and Dynamic Animation. All tutorials need Silverlight 2 Beta 1 Runtime, Visual Studio 2008 Tools and Silverlight 2 Beta 1 SDK installed.
You can also find out about new Silverlight Essential Training with how to add video, animations, and interactive features such as drag-and-drop functionality.
How much foresight must engineers have? At what point do threats become absurdly remote? The questions arise, as I look at an item that recently crossed my desk. It provides a view into a future in which application security will endlessly enter uncharted regions. It has to do with hacking pacemakers via radio.
“Pacemakers and Implantable Cardiac Defibrillators: Software Radio Attacks and Zero-Power Defenses” describes a study that University of Washington and University of Massachusetts researchers undertook to measure the security and privacy properties of implantable defibrillators that support radio-based reprogramming. Read more on SearchSoftwareQuality.com.
According to Wikipedia, a kludge (or, alternatively, kluge) is a clumsy or inelegant solution to a problem or difficulty. In engineering, a kludge is a workaround, typically using unrelated parts cobbled together. Especially in computer programs, a kludge is often used to fix an unanticipated problem in an earlier kludge; this is essentially a kind of cruft.
When I first stumbled upon the concept of anonymous methods in C# 2.0 the first thing I thought of was …jeez it’s just another name for GOTO! I’ve since changed my mind. Have any of you ever used the Gosub… Return programming construct from way back in the GW-Basic days? I’m dating myself but in a former life I had the responsibility of maintaining a servo controller program that ran a servo motor (a DC motor that is capable of moving in programmed increments forward and backward) for a plant that made flour tortillas. (yes – for Taco Bell no less!) But I digress. This particular brand of “Servo Basic” as it was called did not have the ability to address function calls. It was all done with line numbers. The program started at 10 and ended at the highest line number. The only way to program a function in this version of basic was to use the Gosub… Return construct. For instance “Gosub 100” would jump to line 100 in the program and start executing code until a “Return” statement was hit then control would return to the line after the calling “Gosub” statement. It was all very archaic but very versatile when it was all you had.
Now I tell you that story so I can tell you this one: I was happily coding one fine day when I encountered a problem that I needed to solve and it occurred to me that a Gosub… Return would be perfect here! It was a function with lots of values passed in that needed to perform the same processing multiple times but I didn’t want to pass all that data around on the stack. This, my friends, is the perfect case for an anonymous method. You can define an anonymous method anywhere inside a function and when you call the method, it has the same scope as the code that defined the method. The example here uses a SqlDataReader to populate an object. The reader may or may not have some columns in it. Since the only way to determine the columns in the reader is to use the GetSchemaTable() function and look at the results, I wrote an anonymous method to perform the search and was able to use the search to check for the existence of the questionable columns.
Notice the placement of the definition within the function. It is defined after the definition of the ReaderSchema DataTable. The executing code in the function has scope at the point of definition and so it “knows” about the DataTable. The syntax is a little funny but makes sense once you work through it. The name of the anonymous method is “HasColumn” and can now be called from anywhere in the function after its definition. It returns a boolean and accepts a string as designated by the delegate it is based upon.
Now I could have simply put the HasColum() in its own function and passed the table in to it along with the column name I’m searching for but then I wouldn’t have this totally cool use of an anonymous method, now would I? However, the question remains: elegance or kludge?
Dino Chiesa, who previously wrote about how not to write a REST app, finally spills his guts on how to go about doing so. The basic metaphor in WCF is that services receive and respond to incoming communication, and clients initiate those communications. The REST service is an application that receives and understands HTTP GET Requests according to the REST pattern. He notes that although these can be built using any text editor, Visual Studio makes it a lot easier to code, test, and debug. He also talks about how LINQ complements REST approaches.
Now that VS 2008 is out of the box, so to speak, it appears that a new era in Windows development is upon us. Language-Integrated Query is one of several game-changing technologies now supported in the Microsoft software kit. Although it is still early and there is a lot of learning to do, LINQ is poised as a whole new way of developing with data.
It is fair to say that the first rush of .NET technology was about catching up with Java, although there was much unique about .NET too. With LINQ, for now, it seems Microsoft has stolen a march on the Java opposition.
I spoke recently with Jason Beres, director of product management at Infragistics, which is one of the major third-parties in the Microsoft market. Beres said people will take LINQ very seriously. “I think it going to be the de facto way to do any real data binding or object access moving forward,” he said.
With the new Microsoft tool kit comes Windows Presentation Foundation (WPF). Is WPF game changing? That is hard to say. When it was first conceived, the ubiquitous Web interface seemed to be overstressed, and ready to be replaced by a new generation of WPF-based Smart Clients that would use something like WPF. But, before WPF made it too market, AJAX came on strong as a means to give new life to Web interfaces.
This means the plate of companies like Infragistics is pretty full. Infragistics has just rolled out NetAdvantage for WPF 2007, which is compatible with Visual Studio 2008. At the same time, according to Beres, the company has been re-tooling its frameworks around ASP.NET AJAX as well.
For Infragistics and others, Silverlight looms as another alternative interface. Watch for Infragistics and others to provide Silverlight components, especially now that Silverlight 2.0 (which, more than its predecessor, rightly bears the mantle of “WPF/Everywhere”) arrives in its first beta form.
LINQ, WPF and VS 2008 have been primary areas-of-interest for the SearchWindowsDevelopment.com site for some time. We invite you to check out our LINQ VS 2008 pages, and to stay tuned.
Visual Studio 2005 provides an Web site application template to create AJAX enabled ASP.NET Web sites.
However, when you use Visual Studio 2008, you will not find this template in the New Web site creation templates. The reason for this is that Visual Studio 2008, by default creates a .NET Framework 3.5 application. See the .NET Framework type at the top right section of the window image below.
AJAX is now integrated into the framework. In Visual Studio 2008 all web sites that are created using .NET Framework 3.5 are AJAX enabled. You don’t have to create a separate AJAX enabled web pages.