Channels ▼
RSS

.NET

Evernote Abandons Microsoft .NET in Favor of Native Code


Evernote's popular note-taking technology has recently moved to release version 4.0 with some major structural changes in terms of the technology's previous adherence to Microsoft .NET and the Windows Presentation Foundation (WPF), versus native code.

The company says that Evernote 4 is a major departure from Evernote 3.5 in every way, but that there were some problems that it simply couldn’t fix while using Windows .NET and WPF.

According to Evernote's official blog announcement, "The blurry fonts, slow startup times, large memory footprint, and poor support for certain graphics cards were all issues that the technology behind 3.5 was incapable of resolving. As a result, we ended up chasing down platform bugs rather than adding the great features our users wanted."

Evernote says that it decided to start over from scratch and use speedier native C++ code that it felt it could rely on.

Writing on his "IT Writing" software application development blog, British journalist Tim Anderson says that the WPF as part of Windows Vista was originally intended to be the main GUI API for Windows, until the notorious "reset" midway through the Vista development cycle marked a retreat from managed code back to native code in the operating system.

So what are the lessons here? Is WPF no good asks Anderson?

"It is not so simple. WPF is brilliant in many ways, offering the productivity of .NET coding and a powerful layout framework. However, it was a technology which Microsoft itself hardly used in its key products, Windows and Office — a warning sign," suggests Anderson.

"When Microsoft built Visual Studio 2010 and .NET 4.0, the development team used WPF for the Visual Studio shell. This move by an internal team to create such a complex product in WPF was good for the framework itself. The font issue was addressed, performance improved. Evernote might not have found all its issues fixed in version 4.0, but it would likely have been better," adds Anderson.

Balancing his argument, Anderson finishes by saying that if a development team faced with these predicaments lacks the resources to build WPF-equivalent functionality in native code, then there may be another way without abandoning .NET — since Silverlight has many of the features of WPF, is lightweight, and runs on the Mac as well as Windows.


Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.
 

Video