.Net application ports: Speed or grace?

Daily Newsletters

Sign up to ZDNet UK's daily newsletter.

ANALYSIS
I want to tell you about a project that was simple at first glance. Initially, it looked like things would be fairly straightforward: Port a Web application over to ASP.Net and its Windows CE client application over to the Compact Framework. But as things turned out, it wasn't that easy. The particulars of the applications and the politics of the environment we were working under conspired to make us choose between a graceful solution that ran like a dog, and a relatively ugly but much better-performing solution. The trouble with Web services
The Web application in question used standard HTTP protocols, a proprietary compression algorithm, and a 1970s fugitive parsing algorithm for moving data between a Cold Fusion server and a set of mobile devices in the field. This app seemed to be an ideal candidate to move to a compiled ASP.Net environment and take advantage of Web services architecture. While testing this application, it became obvious early on where we would get the benefits of migrating it to .Net. Rewriting the Cold Fusion code as .Net components and ASPX pages would make the Web side of the application much more responsive. This structure would also make the application considerably more supportable going forward. We all know that Web services are a wonderful technology for allowing systems to exchange information at the object level. However, to support this functionality, those systems must have a common language that defines their interfaces (e.g., XML) and a common transmission carrier (e.g., SOAP). Unfortunately, what XML and SOAP give developers in ease of use, they take away in their verbosity. Moving even small amounts of data between two systems using Web services can result in large, wordy text files that must be serialised, transmitted, received, and deserialised. These processes are time-consuming, processor-intensive, and highly dependent upon the size of the pipe between the endpoints. During our performance testing of the Web application, it became clear that replacing the existing simple serialisation mechanism with one based on Web services would generate a substantial performance hit. When running in a local network environment, the difference was not very noticeable; it was taking only two or three minutes per connection vs. one to two minutes before. However, remote clients -- Windows CE applications -- were required to access the application. Our two or three minutes over the wire became 10 to 20 minutes over a digital wireless phone connection. In the end, we decided to use ASP.Net and rewrite the communications protocol to be more efficient, while keeping the simple serialisation mechanism instead of moving it to Web services. C++ vs. anything else
The aforementioned client application was originally written in Visual Basic and then ported to C++ using the Embedded Visual C++ toolkit. It was difficult to support even for the original developers, and virtually impossible for a new developer to decipher -- even assuming that he or she took the weeks necessary to study the nuances of developing VC++ applications for the Windows CE OS. This looked like an application that screamed to be ported to the Compact Framework, where it could take advantage of the standard functionality of the common language runtime (CLR) and be more easily supported and enhanced. One of the most difficult hurdles for any system architect to overcome in a large organisation is the insistence by the C++ gurus that no worthwhile program has ever been written in any other language. (An old joke illustrates my point: What's the difference between a C++ programmer and God? God knows he's not a C++ programmer.) Like the Assembler and COBOL developers before them, the C++ folks' insistence that their language is the only choice for real applications makes it difficult for architects to sell them on the benefits of a CLR and a core set of .Net Framework classes. C++ gurus will just insist that they already have a much better set of tools and classes than any vendor could offer. In defence of the C++ programmer, historically, there hasn't been much of a choice for Windows CE developers. Applications written in Embedded Visual Basic as a rule run too slowly to be usable and require a runtime to be installed on every device. Visual C++ applications, on the other hand, perform very well but are difficult to maintain and require a very specific set of expensive programming skills. The .Net Compact Framework represents a reasonable middle ground, and all new CE .Net devices will ship with the .Net Compact Framework installed, including the C# and VB.Net JIT compilers required to execute .Net applications. Our testing found that when rewritten for the .Net Compact Framework, our application performed acceptably in most situations, with one exception. When a large number of items had to be managed on the device, we needed to create C++ helper objects to maintain acceptable performance. We were lucky here: For some other applications we've tested, the performance of the application required the speed of C++. But we are thankful that over the next year, new Windows CE devices will be released that approach the 1GHz processing barrier (instead of the current 400-MHz processor maximum), and many of these performance issues will simply disappear. Choosing speed over grace
.Net architects face difficult decisions like these every day. In most cases, the decision basically boils down to one issue: Speed or grace? Writing applications that meet the performance requirements may mean creating applications that are more difficult to support and that use less strategic technology. In the end, the best thing an architect can do is design the applications to use the current technology where necessary, but use interfaces and methodologies that make it easier to port the application to a future platform when it becomes more viable from a performance point of view.
For a weekly round-up of the enterprise IT news, sign up for the
Enterpise newsletter. Find out what's where in the new Tech Update with our
Guided Tour. Tell us what you think in the
Enterprise Mailroom.

Post your comment

In order to post a comment you need to be registered and logged in.

You can also log in with Facebook. Log in or create your ZDNet UK account below

  • Login

Will not be displayed with your comment

By signing up for this service, you indicate that you agree to our Terms and Conditions and have read and understood our Privacy Policy. Questions about membership? Find the answers in the Community FAQ

Get ZDNet UK's daily newsletter

Enter your email address to sign up

ZDNet UK Live

UnderINK

I agree with the previous commenter wholeheartedly. I couldn't say it better myself. This is very 'Big Brother'. And while I agree with protecting...

2 hours ago by UnderINK on European e-identity plan to be unveiled this month
Simon Bisson and Mary Branscombe

Nice to see that Turing's idea of a general purpose computer doing once-hardware-powered tasks in software is now universal ;-) Mary

7 hours ago by Simon Bisson and Mary Branscombe on Software with everything
Jason Burchell

seriously now. I've only bothered to read a small bit of the comments. do me and the rest of the world a favour. stop saying it does not work or...

11 hours ago by Jason Burchell via Facebook on Music industry negotiating over 24-bit downloads
Philip Charles Cohen

Read about it and weep, John Donahoe ... In addition to Visa’s V.me, there is now MasterCard’s PayPass digital wallet soon to arrive; another...

15 hours ago by Philip Charles Cohen via Facebook on PayPal takes phone-based payments to the high street
apexwm

Leslie Satenstein : Where have you ever seen Mozilla even mention this? Firefox is the most popular browser in the GNU/Linux OS, so I don't see...

16 hours ago by apexwm on Firefox rapid release improves Fedora Linux
songmaster

SHleG: Do you remember building a clockwork scorpion kit (I'm pretty sure I have a photo of it somewhere) — I think it was called something like...

18 hours ago by songmaster on Software with everything
Chris Wortman

Good I love Yahoo! Their search engine is getting better than Google as of late. I find more of what I want on the first page, and usually within...

18 hours ago by Chris Wortman via Facebook on Linux Mint 13 ramps up for KDE release
PatrickG

openhgs has made the point for Windows 8 multiple monitors without realising it! With Windows 7 you have to switch the mouse and so your focus...

20 hours ago by PatrickG on Windows 8 could speed multi-monitor uptake
Leslie Satenstein

Mozilla has threatened to stop supporting Linux. I guess that UBUNTU is going with another browser. I indicated that if Mozilla stops supporting...

21 hours ago by Leslie Satenstein via Facebook on Firefox rapid release improves Fedora Linux
Andy Bolstridge

Much as I abhor Microsoft's licensing practices, this is almost certainly down to purchasing IT equipment via 3rd party consultants - you get the...

22 hours ago by Andy Bolstridge via Facebook on 6 million wasted licences and £1,200 PCs: welcome to government IT
Jack Schofield

@openhgs Windows users have had multiple desktops since Linus started writing Linux. They just haven't shipped as standard because not enough...

2 days ago by Jack Schofield on Windows 8 could speed multi-monitor uptake
Jack Schofield

@Phil at Cloud4 What, Microsoft gets £1,200 per PC and £1,622 per server? Gosh, I'm amazed....

2 days ago by Jack Schofield on 6 million wasted licences and £1,200 PCs: welcome to government IT
craigsc

You guys have no idea what is going on at Autonomy. Autonomy could have been a much more profitable organization. The sales operations at Autonomy...

2 days ago by craigsc on HP cuts 27,000 staff as Autonomy chief Lynch leaves
Moley

How does this impact on dual or multi booting? Seems to me to more or less prohibit this, from Windows 8 anyway. Will Grub 2 recognise Windows 8,...

2 days ago by Moley on Windows 8 start-up speed forces USB boot workaround
apexwm

I don't understand why there cannot be a slight pause during the boot process so the user can press a key. Many operating systems do this, even if...

2 days ago by apexwm on Windows 8 start-up speed forces USB boot workaround
Gavin Goodman

You can now buy the Xi3 modular computer in the UK at http://www.ocdistribution.com . This can be bought with the Tand3m software, pricing and...

2 days ago by Gavin Goodman on CES 2012: Xi3 microSERV3R
Phil at Cloud4

I agree: Mike Lynch can clearly build a business and manage strategy. I suspect the exit of Mike is more likely the end of a planned handover...

2 days ago by Phil at Cloud4 on HP cuts 27,000 staff as Autonomy chief Lynch leaves
Phil at Cloud4

This is unbeleivable government wastage with only one winner... Microsoft 1 - Tax payer Nil!

2 days ago by Phil at Cloud4 on 6 million wasted licences and £1,200 PCs: welcome to government IT
Mispam

So what do you do when you can't boot into windows? Why can't I just hold Shift while I power up instead of having to boot into windows and click a...

2 days ago by Mispam on Windows 8 start-up speed forces USB boot workaround
apexwm

I've also seen that Mac OS X for Intel machines is supposed to run in VirtualBox, which would also be a nice solution. I've never tried it though.

2 days ago by apexwm on xTreme Triple Booting: Linux, Mac & Windows