Showing posts with label telerik. Show all posts
Showing posts with label telerik. Show all posts

Wednesday, September 21, 2011

When Should You Use Metro, Version 2

picking-win-platform-v2

During my busy week at the Microsoft BUILD conference, I cranked-out a quick and rough decision tree designed to help you decide which Microsoft platform you should use for app development: Silverlight/WPF, HTML5, or the new Metro/WinRT. The chart proved to be very popular, so I thought I'd revisit the decision tree and with the benefit of more time to reflect, produce a new, more complete version.

Thus, I present version 2 of the "How to Pick Your Platform" chart.

What's Different?

In the original chart, the first question I made you answer was, "Do you need to support Windows 7?" It's a fair place to start given that everything new introduced at BUILD is Windows 8 only. There is no path for Metro back to Windows 7 (or Vista and XP, for that matter).

But in today's world, Windows is not the only relevant OS in town. We've been trained through years of Windows dominance to think building for Windows is building for the biggest audience, but we need to update our thinking.

Yes, Windows remains the dominant desktop OS. The problem is that many people are now doing more "computing" on non-desktop devices, like iPhones, iPads, Android devices, and (for now) Blackberry. In this realm, Microsoft (and Windows) is just one OS choice among the pack.

So the first question shouldn't be about which version of Windows you want to support, it should be about your desire to build software that targets the broad marketplace of devices and operating systems.

With that change, if you answer out-of-the-gate that you want to build an app that can reach iOS, Android, and Windows, the decision is easy. Use HTML5 and JavaScript for your frontend (perhaps using PhoneGap to leverage more native device features), and any server technology you prefer for your backend (including ASP.NET). (This is the type of app scenario perfectly served by the JavaScript/HTML5 Kendo UI framework.)

Silverlight, WPF, and WinForms

In the first version of the chart, I oversimplified the choice of Silverlight/WPF if you decided to build Windows apps that support all versions of Windows. I've expanded that decision tree in version 2.

As part of that expansion, I also reintroduced WinForms as valid platform choice (because it is).

I was reminded during the BUILD week after visiting with a customer that WinForms is still hugely active as a Windows development platform. Of course, I knew that from Telerik's own experience with growing WinForms popularity, but it doesn't get talked about often enough. We've all be talking XAML for the last 3 or 4 years, but WinForms has continued to get work done. It was good enough to solve business problems in 2001. It still remains good enough to solve many business problems in 2011.

So while Microsoft is spending time with Windows 8 trying to win the minds of consumers, the business app story marches on with Silverlight, WPF, and WinForms. Pick between these platforms the way you always have and the apps will work Windows 8 through Windows XP.

The only new "edge" for Silverlight is that your skills building those apps will more quickly translate to Metro if you decide to build Metro apps in the future.

Metro App Types

Another "enhanced" decision point in the chart is around deciding if your app belongs in Metro or in the "standard" Windows desktop mode (assuming you're already targeting Win8). With the support of a great new blog post from Telerik EVP Doug Seven, you can now decide if your app fits one of the five Metro app scenarios:

  • Data Snacks
  • Social Networks/Mash-ups
  • Content/Media Apps
  • Casual Games
  • Graphical Games

Metro in Windows 8 is not appropriate for every app.

Clearly, missing from Doug's classification are any business app scenarios. This is intentional. Business apps still belong in desktop Windows, even with Windows 8. And if you start building for the desktop, the platform decision is back to Silverlight, WPF, and WinForms.

Three Flavors of Metro

Finally, assuming you answer all of the questions correctly to lead you towards building Windows 8 Metro experiences, I expanded on the process of selecting the proper "flavor" of Metro. Generally speaking, there are three flavors of Metro, all underpinned by Windows Runtime (WinRT):

  1. XAML + C#/VB WinRT
  2. HTML + JavaScript WinRT
  3. DirectX + Native Code WinRT

You can theoretically use any of these options for building any Metro app, but realistically, some are better suited for certain tasks than others.

Most obvious, native code and DirectX. I guess you could build a Twitter app with Native Code, but why would you? You'll waste way more time coding than you'll gain in performance, so probably not the best choice. Instead, this raw, on the metal option is generally best reserved for rich, immersive games.

After that, it becomes more a matter of choice.

Blend 5 and Visual Studio vNext provide similar design and debugging experiences for .NET and JavaScript, so at some level it comes down to your preferred language and team skills. Microsoft is writing many of the built-in Metro apps with HTML/JS (like the Windows Store and Metro Mail), but my guess is that the community at-large will do lots of Metro development with XAML.

Don't Get Overwhelmed

Choice is good to a point. Too much choice is paralyzing.

With the introduction of three new ways to build apps for Windows, you may feel like you're trying to pick between a billion new and "old" ways to build for Windows. Don't panic. Just use my simple chart, and your decision is easy. And no matter which decision you make, Telerik will continue to make you a .NET Ninja Rockstar with industry leading tools and support.

Friday, September 09, 2011

Windows 8 Isn't for Desktops

Windows 8 Tablet Concept/Mock-upWith BUILD just around the corner, opinions are running high about what next week's Windows 8 unveil will bring. But here's a thought:

Even if Windows 8 is the most awesomest OS you've ever seen, who's going to buy it?

Of course, you, dear geek reader, don't count. You, like me, like to live at the cutting (sometimes bleeding) edge of everything. So outside of developers and geeks, who is the customer for Windows 8?

It Isn't Business

We can safely assume Microsoft's bread-and-butter business customer is not going drive record sales of Windows 8. For starters, much of what's new in Windows 8 is focusing on consumer value and experiences. The new immersive tile UI is cool, but it's probably not what a business wants to put in-front of its call-center/task-driven/Office-addicted employees. In fact, many businesses still would be content with Windows XP if it wasn't now (or almost now) unsupported and unavailable on new PCs, so even the modestly improved "Classic Shell" in Win8 (i.e. Win7-like explorer) offers little incentive to upgrade.

In fact, Windows XP plays a big role in the problem facing Windows 8.

As reported today by Gartner, businesses are suffering "upgrade fatigue" having just finished major upgrades to Windows 7. Due to the utter disaster that was Windows Vista, most businesses skipped that version and upgraded directly from Windows XP to Windows 7. In fact, by Gartner's reporting, 80 percent of companies upgraded from XP to Windows 7. That's an amazing accomplishment for Win7, but a big problem for Win8.

What has Microsoft inadvertently taught companies? You can upgrade your OS every 10 years. No need to incur the pain and costs of upgrading every 2 to 3 years as business used to do in the 90s.

Add to that the slowing hardware cycles in business (which often help usher-in new OSs) and increased push to virtualize the desktop, and it's clear business is not likely to help Windows 8.

It's Isn't Consumers

So if business isn't the customer, it must be consumers, right? Microsoft certainly seems to hope so with a big emphasis on consumer features in Windows 8. But do consumers (non-geek) really buy Windows anymore? Do they buy any operating system, for that matter?

Unlike 1995, when people stood in line to buy copies of Windows 95, the OS in 2011 is a commodity. It's an invisible layer that just comes with a PC, phone, or tablet. With constant crashing and BSODs a thing of the relative past, people have forgotten about the plumbing layer that makes their PC tick.

No, consumers don't buy Windows. They buy new computers, and an OS comes with the computer. But unfortunately for Microsoft, the sales of new computers are starting to fall-off, too. So the primary well through which new versions of Windows are pushed to consumers is starting to dry-up, with the consumer flocking to "cool" Apple hardware and tablets.

And like business, the family PC is lasting longer than it used to these days. Gaming has largely moved to the console (for which Microsoft is getting its share via the Xbox), and browsing the web, checking email, or creating a Office doc just doesn't need more megahertz.

Tablets or Bust

If the neither business or consumer customers are interested in buying an OS, then it's fair to conclude that Windows 8 is not for desktops. Sure, it will trickle-out to desktops via new computer purchases and the lagging corporate giant finally upgrading from XP, but the success of Windows 8 will not come from its traditional home on PCs and laptops.

For Microsoft and Windows 8, it's tablets or bust.

Think the new Metro Tile UI looks a little crazy on a desktop? Fine. Microsoft doesn't care, because it has clearly been designed to make the Windows tablet experience more exciting. You already know what you're going to get (and likely what you want) on a desktop with Windows 8: a lightly improved version of Windows 7. But on a tablet, everyone is ready to be wowed with something radical (and not in the deflating "WOW Starts Now" Vista sense).

That said, consumers still don't buy operating systems.

In this era of tablets, shoppers do not go in search of an "iOS tablet" or an "Android tablet" (see: Google Buys Motorola). Instead they buy the iPad, the Motorola Zoom, or the Samsung Galaxy. They buy the experience, software + hardware.

Who Will Control Microsoft's Fate?

Based on this complete analysis, the success of Windows 8 is going to come down to the hardware Microsoft can bring to market for Windows-powered tablets.

Traditionally, with the exception of Xbox, Microsoft leaves hardware manufacturing to partners. And so far, there's no reason to think Microsoft won't continue to rely on this model with Windows 8 and tablets. But given the unbelievable importance to Microsoft of a successful Windows 8 tablet, which will depend in large part on hardware, is Microsoft ready to leave its fate in someone else's hands?

Look left or look right and Microsoft's peer competitors are all controlling software and hardware:

  • Apple with iOS and the iPad
  • Google with Android and (acquired) Motorola hardware
  • Amazon with custom Kindle Android and assumed tablet hardware

Is it time for Microsoft to pivot and take control of the entire experience? Will Microsoft follow the Google model and acquire a major hardware partner (I wonder who that would be…) while still licensing the OS to the remaining partners?

If there's one announcement not widely rumored for BUILD, I would predict it will revolve around this very issue. And since Microsoft isn't likely to depend on the same partners that have failed to help Windows Phone, maybe BUILD will bring the introduction of the Windows Tablet (Designed by Microsoft in Washington. Assembled in China.).

We'll find out in a few days. Either way, Windows 8 isn't for desktops, it's for tablets.

Monday, August 29, 2011

Post-PC Era is a Myth: Relating the Evolution of Cars to Computers

CarsComputers

Cars (or more accurately, motor vehicles) have more in common with computers than you might think. In fact, comparing cars and computers can help settle one of technology's current contentious debates: computer form factors.

Everyone today is raging over the idea that new form factors like tablets and netbooks are the harbingers of the PCs death. Depending on who you talk to (or have to listen to), there is always some new form factor is definitely going to kill another.

"Tablets are replacing laptops."
"Netbooks are the new notebook."
"Phone is the only computing device you need."
"The PC is dead."

It's all nonsense. Nonsense is normal in technology conversation, but a shocking number of decision makers and journalists seem to be buying-in to this notion that we're in the "Post-PC" era. Let's set the record straight.

Evolution of the Car & Computer (in America)

In the beginning there was the Model T, and it came in any color you wanted (as long as that color was black). For cars, Ford's Model T was the IBM PC of it's era. Not the first car, but the first car that brought the technology to the masses, much like IBM did in 1981 with the 8088. Sure, there were cars and computers before the Model T and IBM PC. But just as massive, inefficient steam engines had to give way to internal combustion to propel cars to the people, so too did computers that filled rooms have to give way to the digital desktop.

Early cars and early computers offered little choice for the masses. As their value was more widely recognized, though, the need for new types of cars and computers became clear.

For cars, people recognized that a better form factor was need for doing work. Something less oriented towards carrying people, and more oriented towards moving stuff. Enter the truck. For computers, in a similar vein of needing better machines to focus on work, we introduced servers.

Having proven value for home and work, cars and computers were asked to do more.

Trucks were good for local work and transport, but if something needed to move a long distance, or if cargo was particularly large, we needed a bigger truck. We needed a Semi-Truck (or Tractor Trailer). Big business had the same problem with computers. Powerful server computers were useful, but we needed something beefier, more efficient for the data center. We needed mainframes.

Meanwhile, as society progressed and moved from country farms to cities, car owners started to crave a form factor that offered more than simple utility. They wanted something fast. Something fun. Something designed for driving, not for hauling or ferrying passengers. The result was the introduction of sports cars. Fast, fun, and focused on the driver. Computers made a similar transition as people, now addicted to computing, wanted to take it with them everywhere. The sports car of computers is laptops.

Finally, wrapping-up our brief run through history, we reach an era where new sensitivities are at play.

Fuel is not cheap anymore, and people are starting to think about using form factors that deliver better value. People want cars and computers that are friendly on the wallet, the environment, and even more suited for active, urban lifestyles.

If you're hip, your car is a Smart car and your computer is an iPad.
If you're a geek, your car is a Prius and your computer is a netbook.

Durable Form Factors

One thing we can learn from cars is that the world is big enough to support multiple form factors. In fact, the world needs multiple form factors to accommodate all of the different ways cars are used. Trucks didn't replace cars any more than sports cars replaced the family sedan. Each delivers distinct value, and for some people, that means owning multiple car form factors to cover all motor vehicle needs.

Let's break down the unique value some of the most common car form factors provide:

  • Basic Car/Sedan: Your all purpose car. Good for moving people. Come in variety of sizes (2-door, 4-door, SUV), shape, and power. Some are good enough for basic work; some are just good enough to move you around.
  • Truck: Your simple work vehicle. Better for stuff than for people. If you don't do any work, you probably don't need one.
  • Semi-Truck: Essential for big work where a personal truck just doesn't cut it. Usually owned by businesses, not individuals.
  • Sports Car: For people that just need to drive. Sometimes enough to replace all other cars, especially if you don't need to share your ride with many passengers. If you occasionally need a car for moving stuff or people, this may have to be a second car.
  • Hybrid/Small Car: Gets you from point A to B efficiently. Makes the most of a little gas. Good enough as an only car for some people, but you're up a creek if you need to haul anything. Still proving itself as a viable form factor on the market, but quickly becoming more popular.

Mapping Form Factors: Cars to Computers

The comparisons between cars and computers are so good, it's scary. Let's start by breaking down computer form factors in a similar fashion to cars:

  • Desktop PC: The all purpose computer for consumers. If you need a PC that's equally ready to edit some family videos as it is to browse the web and edit documents, this is the choice. Available in a huge variety of sizes, shapes, and price points.
  • Server: Need a computer that can just serve web pages all day? Need something to hold your source control? You're probably a professional (or professional hobbyist), and you need a computer for hauling bits. You don't need the "all-in-one," you need the 12-core tower.
  • Mainframe: When petaflops are your goal, mainframes are your computers. Certain computing tasks, usually the domain of big business, need a big mainframe for the most efficient processing.
  • Laptop: Good as primary computer for some, but often owned as a second computer to a "all purpose" PC. Laptops can pack all the punch of a PC, but the compact power comes at a premium. Laptops are a bit harder to share as a family computer, but are great for the computer users on the go.
  • Tablet/Netbook: Offering the ultimate in mobility and battery life, tablets are great for consuming digital information. If you need to do a lot of content creation, though, tablets strain. Tablets (and netbooks, to a lesser degree) have quickly become a popular computer form factor, but they are still proving their long-term market viability.

By now, the comparisons should be clearly forming in your head:

  • Basic Car = Desktop PC
  • Truck = Server
  • Semi-Truck = Mainframe
  • Sports Car = Laptop
  • Hybrid = Tablet/Netbook

Whether we're talking cars or computers, each form factor has a place in the world and a group of people that will continue to depend on it.

The "Post-Sports Car" Era

We don't see the media hailing the "Post-Sports Car Era" now that there are new smaller, greener car form factors. We don't see anyone claiming "the Truck is dead."

With cars, which have been part of our lives for nearly 100 years, we know that we need these different types of cars to accomplish different tasks. The introduction of a new type of car doesn't mean the end of what came before.

It's time to learn that lesson with computers.

The introduction of tablets and netbooks will no more kill the desktop PC than laptops have managed to do in their lifetime on the mass market. Will the new form factors change the PC landscape? Yes, definitely! More Americans buy cars than trucks today, but the truck remains a vibrant component of auto sales. The PC may be shuffled and re-balanced with these new form factors, but it will not go away.

Developer Impact

If this is not the "Post-Anything" era, what does that mean for developers trying to write software for computers? Depending on your temperament and situation, it means one of two things:

  • OPPORTUNITY: Different computer form factors have different software needs, which means more opportunity for developers to create more software. If you can embrace the opportunity, equip your toolbox with essential tools, then there is money to be made. The only question is if you'll choose to specialize (like a BMW Mechanic) or be a jack of all form factors.
  • MORE WORK: More form factors does mean than you cannot write software once and be done. Just as the markets for trucks, cars, and hybrids are unique, so are the needs for different computer form factors.

Optimist or Wendy Whiner, developers should prepare for a long-term future filled with different "classes" of computer form factor. Good tools are a way to simplify development targeted at multiple form factors, such as the new Kendo UI tools that can help simplify HTML5 development for touchscreens and keyboard/mouse input. But tools or not, developers would be foolish to buy-in to the notion that any of the common computer form factors on the market today will be "post" any time soon.

So the next time someone tries to tell you that tablets are the death of the PC and we're entering the "Post-PC Era," just remind them that there are still trucks and sports cars on the road.

Wednesday, August 10, 2011

Understanding the Microsoft Shift on Silverlight and HTML5

evolution-windows-html_xamlAs the old proverb goes, if you can’t beat ‘em, join ‘em. That must be Microsoft’s mantra as it prepares to unveil a new strategy for Windows development at BUILD. It’s hard to fathom that only four years have passed since Microsoft originally introduced Silverlight, but in that short period the world- and Microsoft- have clearly changed. With the rising HTML5 sun on the horizon, Microsoft is signaling a new dawn to its legion of developers.

Microsoft overstepped with Silverlight and HTML5 is the correction. A careful study of Silverlight’s roots makes this clear while simultaneously underscoring the close relationship HTML has with modern Window’s development. No observer of Microsoft history should be surprised by the coming changes to Silverlight or HTML5 in Windows 8.

Let me explain.

The Roots of Silverlight

Rewind your mind to 2003. Windows code named “Longhorn” is generating waves of excitement, showing-off the beautiful successor to XP and promising futuristic new ways for storing files and… a brand new Windows graphics subsystem, codenamed “Avalon.” Avalon eventually progressed to what we know as WPF, but what you may not know is that Avalon’s roots are actually in the web.

Prepare to have your mind blown.

Michael Wallent is not a name you may recognize, but you’ll definitely know the products he has been responsible for during his tenure at Microsoft: Dynamic HTML (IE4), IE5 & IE6, WPF, and ultimately the roots of Silverlight. His background with Internet Explorer and HTML are supremely interesting when overlaid with the foundations of WPF (aka Avalon).

In what should be required viewing for anyone looking to understand Microsoft’s Silverlight story, Michael expounds on the background of Avalon to Tim Sneath in 2006. From the Channel 9 video (emphasis mine):

Michael: “So we finished-up with IE6 in 2001 and we had this real choice: this ‘web-thing’ is really taking-off and we want to make sure we build a platform for that. But we’re not really sure Trident (IE) is going to do it for [Microsoft] because of the scalability issues. And because the programming model between [JavaScript] and C++ is dramatically different and fraught with security issues. And [Trident] just doesn’t scale to meet the problems we needed to solve. It doesn’t do a great job with media. It does an okay job with UI stuff. But we felt in many ways we were limited with [what we could do with Trident].”

“So we said, “Hey, we’re going to start this new project, code named Avalon.” We started it towards the end of 2000, beginning of 2001 to try to build a web client platform that was a follow-on to Trident, but something that was modern that we could really build Windows on top of, not just “dancing hamster” websites.”

Wait, what? That’s right! The roots of WPF are in a project that originally aimed to create a new, modern web client that Windows could be built on. HTML5 in Windows 8 is already sounding less crazy. More from the interview:

Tim Sneath: “When you started Avalon, was that really your goal to replace or supplant the web as we know it today? Or was it a contextual background [for the project]?”

Michael: “You know, “replace” is such a nasty word. I think what we were looking at at that time was that people wanted to build richer applications. And there wasn’t really a good way to do it. HTML is great for a lot of stuff. Nobody loves HTML and dynamic HTML more than me…but the fact is, there are some types of applications that you see people today where they fall off a cliff…what can we do to create a better seamless experience?”

“I think the market recognizes that HTML is good for some stuff, and then to go to the next step, you need other runtimes, because these HTML runtimes, coming from their SGML background, only can do so much. And you can’t push them too far or you’re not going to get a great user experience.”

Okay…so Avalon didn’t exactly aim to “replace” the web as we know it, but it clearly had the ambitions to take the web further. In fact, Michael goes on:

Tim: (paraphrasing) To go back to the genesis of Avalon, how did it incubate from that stage of recognizing the problems with HTML to a team of 100?

Michael: “Basically what happened is that we had a set of really smart folks working on Internet Explorer, and another set of smart folks working on the internals of Windows itself. And we merged those two teams together to create the Avalon team. So we thought it was the best of Windows, best of the web.”

And the veil continues to lift. The roots of WPF (and ultimately Silverlight) are in a project that literally merged Internet Explorer devs with Windows client devs, with heavy influence from HTML. And who had to bless this radical new “integrated platform” (Web/Windows) approach? Who do you think? From the video:

Tim: “Who did you have to persuade to build this team? What kind of buy-in did you have get internally to turn this in to a reality?”

Michael: “Basically, Bill [Gates].”

Tim: “You went and pitched him?”

Michael: “Many times. Many times. We effectively had a charter when we merged the Trident team with the User and DUser teams together to build the Windows platform.”

That explains (in part) why there were no new versions of IE for five years after IE6. It also underscores how significant this new “integrated” (web and Windows) platform decision was 10 years ago. It required approval from the top.

Digesting the Avalon Background

What do we ultimately learn from the Avalon interview with Michael:

  1. Avalon (and in turn WPF and Silverlight) has strong connections to HTML and the web
  2. Avalon was created because IE6-era HTML couldn’t meet the needs of Microsoft to build Windows (especially around media)
  3. Avalon was hugely impacted by Microsoft’s new (at the time) bet on managed code (.NET), which is one of the primary reasons Avalon did not use XHTML for markup.
  4. Windows, at least in concept, is built on an “evolved” web client platform

Bottom line: The Windows we know today already is heavily inspired by the web and HTML. The idea of Windows 8 integrating HTML5 for Windows development is nothing new. It’s just a new take on a 10-year-old concept.

The Silverlight Connection

When Avalon became WPF and shipped with Vista, Microsoft ushered in its rich new “evolved web client” platform for Windows development. That made sense.

Then Microsoft introduced WPF/e (e = everywhere), aka Silverlight. What started as a “merged” platform that combined the “best of the web with the best of Windows” was coming full circle in Silverlight and preparing to (in Microsoft’s view) replace the web as we know it (borrowing Tim’s words).

But the web of 2007 was very different from the web circa 2001 that inspired the roots of Silverlight. Browsers were evolving again. Standards were rapidly evolving to eliminate long-standing shortcomings. And perhaps most importantly, internet access was beginning to shift from Windows/Mac PCs to a world of multi-platform devices being lead by the iPhone.

Rather than read the writing on the wall and return to the tried-and-true Microsoft strategy of “embrace and extend,” Microsoft plowed ahead with their own custom approach to web application delivery.

Fast forward a few years and we find a developer community confused by the relationship of WPF to Silverlight. We find a Microsoft recommitted to the web via a reinvigorated IE development team. And we find a world where plug-ins are increasingly taking a backseat role to web application development.

Enter HTML5

Imagine how Windows might be different today if HTML5 had existed at the time of Avalon’s design. Given that the creators of Avalon were so inspired by the web, had the web of 2001 looked more like the web of 2011, maybe Vista would have ushered in an even more web-like development model that’s now being assumed to be part of Windows 8. And if that had happened, the conditions that created Silverlight would have never existed.

That’s not to say that XAML would never have existed (though clearly it would have evolved differently). What Michael says is true: HTML is great for some stuff, then other runtimes are needed to go further. Windows still needs its rich, native development environment. XAML provides that, and it will in Windows 8 and probably Windows 9.

What we don’t need is a replacement for the web. Michael knew better than to call Avalon a replacement, and Microsoft has now learned that lesson with Silverlight. Instead, with Windows 8 and HTML5, Microsoft is returning to the “embrace and extend” strategy that has served it well over the years, and re-calibrating what it means to create an OS that merges “the best of the web with the best of Windows.”

HTML5 in Windows is Not Radical

Despite the media and developer reaction to the early Windows 8 discussion of HTML5, the idea of Windows embracing web technologies for native client development is not radical. As you’ve seen in my documentation of Avalon’s evolution, the idea has been floating around Microsoft for at least a decade, and arguably for even longer than that (many of the anti-trust claims against Microsoft revolved around their deep integration of IE in to Windows in the early ‘90s).

Windows 8 and HTML5 are simply a re-focusing of this long-standing strategy, and it represents a “correction” by Microsoft to properly acknowledge HTML5 as the technology for the web, and XAML as the technology for Windows.

Microsoft “overreached” when it tried to make its “native” platform technology an equally suitable cross-platform, cross-device, “web replacement” platform. There are simply too many platforms and devices for Microsoft to attain that position. Instead, in September Microsoft will re-cast XAML as the solution for when HTML5 is just not enough, while simultaneously embracing more of HTML5 for “near native” Windows development.

Telerik Insurance

It goes without saying, but Telerik is insurance for perceived risk in Microsoft platforms. If XAML continues to be the platform that makes sense for your applications, Telerik will continue to be the premiere provider of XAML tools. If HTML5 and JavaScript make more sense for your next generation of “Windows” development, the new Kendo UI framework is worth investigation. Either way, Telerik, to paraphrase a customer, has your back.

Microsoft can’t replace the web, but that’s okay. With renewed clarity on where “native Windows development” and “native web development” meet, Microsoft and Windows 8 promise to usher in an era of clear developer direction and simplified Microsoft development decisions. Ultimately, what should now be obvious is that the “grand shift” Microsoft will discuss in Anaheim is nothing new. And with that perspective, you can start planning for the future with more confidence while Microsoft does a quick “take 2” on merging the web and Windows.

Wednesday, June 08, 2011

JustDecompile continues to evolve

JustDecompileIt's only been a few weeks since we introduced the JustDecompile beta to massive online audiences, and in the time that has passed JustDecompile has been downloaded thousands of times. The early feedback has been overwhelmingly positive, and we're happy that the community is as excited as we are to rethink the free .NET assembly browser and decompiler. You can join in the conversation and share your ideas by visiting the official JustDecompile UserVoice page today.

JustDecompile has already been updated a few times since the original beta, adding new functionality, improving performance, and refining decompiled code output. This is an ongoing process, but we hope that the early and frequent access to new bits helps you get the most out of JustDecompile and encourages you to stay engaged in the beta.

Latest Updates

This week, JustDecompile received another round of updates, building on the improvements introduced around the time of TechEd. Full release notes are available online, but I thought I'd highlight some of the things now in JustDecompile that were not in the original beta release:

  • Support for decompiling to VB (in addition to C#)
  • Support for processing variable names from PDB symbols (when available)
  • Ability to customize code viewer fonts, colors, and sizes
  • Support for viewing (and saving) assembly resources
  • Tool tips that display the full type name
  • Better decompiling support for:
    • nested types
    • anonymous delegates
    • lock statements
    • yield statements
    • generics
  • Improved installer

Clearly, this is all in addition to work on memory optimization, and lots of little things being done to improve the product. In the list above, four of the major items (all italicized) are a result of direct feedback through UserVoice! We're listening and improving quickly based on your input, so don't miss your chance to help shape the JustDecompile roadmap.

Custom Colors

One of the new features in the latest release is support for customizing the Code Viewer fonts, colors, and sizes. JustDecompile now provides a simple, interactive dialog, complete with a color picker, for customizing the colors for various code "tokens," along with support for adjusting the font and font size. There are two themes built-in to JustDecompile today: the default and a theme called VibrantInk (essentially, a dark background theme).

Any customizations you make to the theme are saved in the JustDecompile settings file (located in the JustDecompile AppData folder). So, while today's beta lacks the ability to easily add or share custom themes, you can directly modify the Settings.xml file to directly "import" your own custom theme.

justdecompile-colors

For an example, I've created a simple theme that simulates the code viewer stylings of Reflector 6.5 (yellow background, Segoe UI font, etc.). You can use this "theme" by simply replacing the <CodeViewSettings> XML in your settings file with the following:

File: C:\Users\{your username}\AppData\Roaming\JustDecompile\Settings.xml

<CodeViewerSettings>
<ColorSettings>
<ColorSetting>
<Name>Background</Name>
<Color>
<A>255</A>
<R>255</R>
<G>255</G>
<B>225</B>
<ScA>1</ScA>
<ScR>1</ScR>
<ScG>1</ScG>
<ScB>0.7529422</ScB>
</Color>
</ColorSetting>
<ColorSetting>
<Name>Reference</Name>
<Color>
<A>255</A>
<R>25</R>
<G>144</G>
<B>55</B>
<ScA>1</ScA>
<ScR>0.009721218</ScR>
<ScG>0.2788943</ScG>
<ScB>0.0382043719</ScB>
</Color>
</ColorSetting>
<ColorSetting>
<Name>Key Word</Name>
<Color>
<A>255</A>
<R>16</R>
<G>0</G>
<B>160</B>
<ScA>1</ScA>
<ScR>0.005181517</ScR>
<ScG>0</ScG>
<ScB>0.3515326</ScB>
</Color>
</ColorSetting>
<ColorSetting>
<Name>Literal</Name>
<Color>
<A>255</A>
<R>128</R>
<G>0</G>
<B>0</B>
<ScA>1</ScA>
<ScR>0.2158605</ScR>
<ScG>0</ScG>
<ScB>0</ScB>
</Color>
</ColorSetting>
<ColorSetting>
<Name>Text</Name>
<Color>
<A>255</A>
<R>0</R>
<G>0</G>
<B>0</B>
<ScA>1</ScA>
<ScR>0</ScR>
<ScG>0</ScG>
<ScB>0</ScB>
</Color>
</ColorSetting>
<ColorSetting>
<Name>Write Usage</Name>
<Color>
<A>255</A>
<R>255</R>
<G>200</G>
<B>216</B>
<ScA>1</ScA>
<ScR>1</ScR>
<ScG>0.577580452</ScG>
<ScB>0.6866853</ScB>
</Color>
</ColorSetting>
<ColorSetting>
<Name>Read Usage</Name>
<Color>
<A>255</A>
<R>173</R>
<G>228</G>
<B>240</B>
<ScA>1</ScA>
<ScR>0.4178851</ScR>
<ScG>0.7758222</ScG>
<ScB>0.8713671</ScB>
</Color>
</ColorSetting>
<ColorSetting>
<Name>None Usage</Name>
<Color>
<A>255</A>
<R>173</R>
<G>228</G>
<B>240</B>
<ScA>1</ScA>
<ScR>0.4178851</ScR>
<ScG>0.7758222</ScG>
<ScB>0.8713671</ScB>
</Color>
</ColorSetting>
</ColorSettings>
<FontFamilyName>Segoe UI</FontFamilyName>
<FontSize>12</FontSize>
</CodeViewerSettings>

Enjoy!

Reflector Lists

One final JustDecompile highlight. If you've built-up a library of Reflector assembly lists over the years and want to bring those over to JustDecompile, one of the Telerik product team devs has created a simple WPF tool to help you do just that. You kind find the simple import utility on his blog and start enjoying your Reflector lists in JustDecompile today.

Keep enjoying the JustDecompile beta and stay tuned for more updates. Another refresh is just around the corner!

Friday, June 03, 2011

The Impact of Windows 8

microsoft-store-logoBy now, you've no doubt seen the first preview of Microsoft's follow-up to the hit Windows 7 release (if not, take five minutes and check-out the video on YouTube - don't worry, it's "official" and not a leak). Windows 8 finally has a name and a face, and we finally have a (public) glimpse of where Microsoft is driving the modern OS experience. The preview does not dive deep or provide the full story for Windows 8 (expect more details as Microsoft marches towards the September Windows 8 "BUILD" conference), but it does highlight some interesting facets of Microsoft's plan you should start to think about as a developer.

Win8 Preview Summary

For in-depth analysis of the the live D9 Windows 8 preview, and analysis of the follow-up preview in the aforementioned YouTube video, Windows "super fan" Paul Thurott has your ticket. Microsoft RD and long-time Microsoft insider Andrew Brust also has some interesting commentary on RDN. I'll leave the reporting to the reporters, and simply highlight some of the bigger revelations to come out of this week's news so we're all on the same page:

  1. Windows codenamed "Windows 8" will not ship this fall (no surprise)
  2. Win8 will offer a new Windows Phone 7 like "Start" experience (tile view)
    • Further, according to the D9 Q&A, it will not be something that can be turned-off. (We'll see about that…)
  3. Win8 will still offer "full Windows" (aka Explorer) to run "real apps"
    • Also according to D9 Q&A, OEMs will not be able to prevent/hide access to "full Windows." (We'll see about that…)
  4. The new Win8 experience will feature HTML5/JavaScript "app" experiences
    • Sinofsky has not ruled-out Silverlight, though. He defended Silverlight at D9, so we'll just have to wait and see how that mixes with this story…
  5. Win8 is fully embracing Metro UI theme and touch input

Look Past the Hype

Understandably, a lot of people are very excited by this week's Windows 8 preview. What's being shown is very new (for Windows), and uncharacteristically bold for Microsoft. It's amazing how many people seemed to need this preview to avoid full-out Microsoft depression.

It's important to remember, however, that this is not the first of Windows 8 we've seen. Active industry watchers have been leaking bits-and-pieces of Windows 8 for the better part of the the last year (much to Microsoft's displeasure). From those leaks and other information shared by Microsoft in that period, we also know this about Windows 8:

  1. It's being built to run on Intel, AMD and (most importantly) ARM chips
  2. It won't require any additional horsepower beyond Win7 (in some cases, less)
  3. It will likely integrate (to some degree) with WebCams/Kinect
  4. It may feature more integration with Xbox/Xbox Live/Xbox Avatars
  5. It definitely will feature more native integration with social media (twitter, Facebook)
  6. It will feature direct integration with a Windows (App) Store (confirmed this week)
  7. It will likely feature a renewed cloud integration story (based on Azure)
  8. It will focus on delivering super fast start-up, sleep, and wake times
  9. It will likely use the Ribbon UI throughout Windows Explorer
  10. It will offer native support for mounting ISOs (finally!)

Those last two items are small, but important. Mounting ISOs or using Explorer are features that only matter when you're still using "traditional" Windows. The new "Start experience" getting the attention this week is cool, sure, but Microsoft is not forgetting, abandoning, or even stalling "traditional" Windows evolution. This is still Windows at the end of the day, the OS powering millions of business machines, and that core experience will continue to incrementally improve with Win8.

What Microsoft is showing now is a recognition that it needs to do something dramatic to re-win the hearts and minds of Windows consumers. It needs something to stem the flood of computing happening increasingly on non-Windows devices. It's an important piece of Window's future, but not the only piece.

The Gloves Are Off

What many observers are failing to key-in on with these Windows 8 details is that this is the first time, in a long time, that Microsoft is evolving Windows without the anti-trust consent decree settlement hanging over their heads. In 2002, to avoid splitting the company, Microsoft settled it's long anti-trust battle with the government, agreeing to a number of constraints that have limited Window's ability to evolve aggressively. Those limits expired last month, so now Microsoft, in a landscape where Windows is clearly no longer a monopoly, is freer to make some aggressive moves.

Like what?

Well, the limits imposed in 2002 essentially said that Microsoft could not exclude competitors from Windows, and conversely, that it must make Windows interoperate with non-Microsoft software. The net effect has been that it is difficult for Microsoft to build vertically integrated solutions because doing so could be perceived as excluding competitors.

With that regulation now a footnote in the history books, Microsoft can theoretically pursue vertically integrated strategies that have made rivals Apple and (to a lesser degree) Google very successful over the last 10 years. For example:

  • Maybe Microsoft will introduce tighter integration between Windows Phone, Windows "Slate" (or Tablet or Pad or whatever), and Windows PC.
  • Microsoft should finally be able to add features to Windows that have been conspicuously missing (like mounting ISOs, and maybe a native PDF reader, or more robust unzipping tools).
  • Microsoft might finally start shipping Windows with more of its "core experience" software pre-installed or embedded, like Live Writer (which I'm using now), Zune media experiences, or maybe even Silverlight. And let's not forget that $8.5 billion Skype purchase. We can virtually count on that playing some role in Microsoft's evolving Windows strategy.

Whatever the case, Microsoft is finally free to boldly create experiences that are "better with Microsoft" rather than always creating vanilla solutions designed to support everyone equally.

Bottom Line Windows 8 Impact

With the hype stripped away, and the full perspective in focus, what is the bottom line impact of the Windows 8 news up to this point? What is the real value in this week's very early preview? I think there are a few important takeaways:

  1. Windows 8 is being designed for a multi form-factor world There is a reason most of the demos of Windows 8 so far have been on touch-enabled, ARM-powered, "ultra mobile" devices. Microsoft is making it clear that Win8 is not a "PC" operating system with some device "layers" added last minute. Instead, Microsoft is showing that at its core, Win8 is being designed for different form-factors, processors, and input models. If nothing else, this week's preview plainly signals how Microsoft will bring Windows to tablets, and phones (maybe even replacing what we know as Windows Phone 7 today), while carrying traditional PCs in to the future.
  2. Windows 8 is a renewed push to bring more people in to the Microsoft developer ranks In 2000, Microsoft introduced a brand new way to develop for Windows called .NET. At the time, Java was starting to takeover the Enterprise, and Microsoft needed a language to bring Java developers in to its camp and help reinforce its position in corporate computing. Now, roughly a decade later, Microsoft is watching consumer computing drive the success of phones and tablets, and they're eyeing the HTML5 push by powerful competitors, like Google. Making HTML5 and JavaScript a core part of the Windows 8 strategy does for Microsoft what .NET did 11 years ago. It makes the Microsoft platform appealing to developers with "non-Microsoft" skill sets, and potentially represents the next explosion in Microsoft developer community.
  3. Windows 8 will be significant, but not life changing (and that's good) Yes, Windows 8 will deliver some significant new experiences, it will embrace some new developer languages, and it will extend the reach of Microsoft to the new era of computing devices. But at the end of the day, it's Windows under the hood. Your apps will still run. Silverlight will still run. WinForms will still run. The changes coming to Windows 8 help propel Windows in to the future of computing, but they don't equate to a Windows reboot. Windows 8 is about new opportunities, not about changing the way things are done.

Don't get lost in the emotional buzz of this week's preview. Enjoy it for what it is- an early preview- but then turn to level-heads and facts to see how this all fits the bigger picture. As long-time Microsoft partners, and experts in providing solutions for Microsoft developers, you can be sure Telerik is at the front of the Windows 8 process and you can turn to us to provide our informed analysis of Microsoft's directions.

Until then, have fun with the Windows 8 preview and start planning your travel for Anaheim in September!

Tuesday, September 01, 2009

Changing RadTicker content with nuthin’ but JavaScript

radticker As the Interwebs mature, and as web developers are pushed to deliver increasingly rich experiences through the browser, there are two technologies a developer can use to deliver to richness: (plug-in based) RIAs and JavaScript. Each technology has it’s pros and cons, but JavaScript has the serious advantage of being the “native” programming language for all Internet connected devices.

The Telerik RadControls for ASP.NET AJAX enable you to deliver standards-based richness using JavaScript, and in most cases you can deliver it without writing any code yourself. But what about those cases when you do want to take more control?

For that, the RadControls provide a very robust client-side API. In fact, most methods and properties available in the server-side API are available under the same (or very similar) names on the client. That means you can increasingly do more of your programming on the client (moving data with web services) and rely less on the “heavy” server-centric model.

That is a long introduction to get to today’s central point: how can you use JavaScript and the RadTicker client-side API to update RadTicker’s items on the fly?

RadTicker is unquestionably one of the “smaller” RadControls (when compared to RadGrid or RadScheduler), but it’s useful nonetheless. Unfortunately, today’s RadTicker doesn’t have a simple client-side API for changing items with JavaScript. But with a little jQuery and an understanding of how RadTicker works, we can easily change RadTicker items on the client and even bind our RadTicker to web service data.

Click to continue reading and see code for RadTicker client-side API

There are a couple of key concepts that you must understand to make this undocumented approach to changing RadTicker content work:

  • RadTickerItems are rendered as SPAN tags in a parent "itemContainer" SPAN. The RadTicker object simply rotates through displaying the content of all child SPANs in the itemContainer. Removing or adding SPANs to this collection allows you to change RadTicker's contents.
  • Related, the RadTicker object looks for specific SPAN IDs when rotating through items. Specifically, each TickerItem SPAN must have the ID "RadTicker1_i2"- where "RadTicker1" is the control's ClientID and "2" is the "index" of the item in the list of TickerItem SPANs.

Expressed in in code, this is how a basic RadTicker with three RadTickerItems renders on the page:

<span id="RadTicker1" style="display:inline-block;height:30px;width:400px;">
  <span id="RadTicker1_itemsContainer" style="display:none;">
      <span id="RadTicker1_i0">This is ticker item 1</span>
      <span id="RadTicker1_i1">Ticker item 2 is this</span>
      <span id="RadTicker1_i2">Finally, Ticker item 3</span>
  </span>
  <input id="RadTicker1_ClientState" name="RadTicker1_ClientState" type="hidden" />
</span>

By writing JavaScript that manipulates RadTicker's SPAN item collection, we can easily update the RadTickerItems completely client-side. For example, we can write code like this to append a new item to the RadTicker:

//Get reference to RadTicker and text input
var ticker = $find('RadTicker1');        
var container = ticker._getChildElement("itemsContainer");

var index = container.childElementCount;

//Create new SPAN - this will be our new Ticker item
var newElement = document.createElement("span");
newElement.setAttribute("id", 'RadTicker1_i'+ index);
newElement.innerHTML = txtEle.value;
     
$(newElement).appendTo(container);

//Tell RadTicker to recalculate number of Ticker items
ticker.set_numberOfItems($telerik.getChildrenByTagName(ticker._itemsContainer, "span").length)

Using this same basic pattern, we can easily expand on this example to also replace ticker items and bind ticker items to web service data. Check out a live running example showing this client-side approach for appending, replacing, and web service binding RadTicker.

NOTE: This is an undocumented client-side approach. RadTicker may (and probably will) provide a better API for doing this in the future. Use this approach in the mean time if you need to change RadTicker on the fly. Also note, if you do POST the page, your client-side changes will be lost.

Hopefully this tip will help you fully embrace client-side programming in your rich, standards-based web applications. The fully-commented code for this live demo is available for download below. Enjoy!

Live demo – Using JavaScript to change RadTicker Items

Download RadTicker JavaScript demo source code

Thursday, November 06, 2008

New Telerik website now live, Running on Sitefinity

As you may have noticed by now, I've been a little quiet on the blogs this week. The reason: this is an extremely busy week. Not only are we still wrapping-up our content from PDC and preparing content for DevConnections, we're also making some HUGE public launches. First-up among those launches, after years of planning and preparation, the new Telerik.com is now live! And while that might be a big enough announcement in itself, it gets bigger. The new Telerik.com is running entirely on Telerik's own Sitefinity CMS 3.5 SP1! First things first, though. The new Telerik.com has been completely redesigned with the goal of making it as easy as possible to find content on the site and (for active developers) easy to use all of our support resources. The new website has been in some form of planning for well over a year and we appreciate everyone's patience as we limped along on the "old site" for longer than planned. I think you'll really enjoy the new site's layout and features, especially the heavily updated Client.net account page and simplified forums! One of the coolest things about the new site, though, is that it is a huge case study for Sitefinity. Telerik.com is obviously a very high-traffic site with hundreds of thousands of visitors from all around the globe. Running Telerik.com on Sitefinity has helped us not only prove the capability of the Sitefinity platform, but it has also forced us to build-in the "real world" performance improvements the plaform needed to host huge sites. It's EYODF at it's best. The end result is a great looking (and easy to manage) Telerik.com and tons of performance imrpovements in Sitefinity 3.5 SP1. As with any new site, though, our work is not done. We're working quickly to optimize performance on production servers and squash any reported bugs. We also have some more new "sub sites" to role out soon for blogs and videos, so stay tuned for even more updates. Until then, enjoy the new site and let us know what you think!

Wednesday, September 10, 2008

Welcome new Telerik Evangelists

This was a big week for the Telerik Evangelism Team. As of Monday, our ranks grew by two as we welcomed John Kellar and Gabe Sumner to Telerik's Developer Evangelism role. Both of these guys are outstanding developers and great communicators, so we're very happy to have them on our team.

Gabe is coming to Telerik from a long background doing mostly web development for a large real estate company. But you probably know him as a Sitefinity MVP, a Telerik product Gabe has been involved with for quite some time now. As a Telerik Evangelist, Gabe will be focusing primarily on Sitefinity and SharePoint, so if you're working with either of those technologies, expect Telerik's attention to your needs to improve radically in the coming weeks and months.
Meanwhile, John is joining Telerik after spending the last few years consulting. John is already a very active .NET community member (he runs the big devLink conference in Nashville) and a C# MVP. He'll be applying his real world experience with client app development to focus on Telerik's WinForms and WPF products, so expect some great resources from John in the future to help you with your WinForms and WPF projects.
Join me in welcoming these guys to the Telerik Team and be sure to say 'hi' next time you see them at .NET event somewhere in the world!

Monday, July 28, 2008

Do you love Telerik? We may have a job for you

That's right. Telerik is looking for a very elect group of people to bolster the evangelism ranks. As many of you probably know, Telerik is growing in leaps and bounds these days and we're no longer "just" an ASP.NET UI component vendor. With our latest Q2 2008 release, we officially offer 6 distinct products- RadControls for ASP.NET AJAX, WinForms, WPF, Silverlight, Telerik Reporting, and Sitefinity CMS- and even more are on the horizon. And while I love to cover as many products as I can, there is no question that Telerik needs more energized evangelists that share our passion for making developer's lives simpler to help spread the Telerik word.

What are the responsibilities of an evangelist? In part:

  • Blogging and speaking at various .NET events
  • Building demo apps with Telerik's tools and bleeding edge MS technologies
  • Working with customers and product teams to improve Telerik's tools
  • Analyzing new technologies and tools and educating developers on their use
If you think you've got the chops, the energy, and the know-how that it takes to be an evangelist at Telerik, I want to hear from you. All you have to do if you're interested is send me an email with:
  • Your stats (name, current/past employers)
  • Your credentials (blog(s), speaking experience, portfolio)
  • Your location (where are you based)
We're especially interested in finding people passionate about WPF, Silverlight, and WinForms, so be sure to mention your interests, too. The format is flexible, so feel free to send your info in "traditional" resume format or just compiled in an email- the content is what matters here. Send all of your info to todd.anglin [at] telerik.com with the subject "Telerik Evangelist." I look forward to hearing from some of you soon!

Thursday, June 19, 2008

Meet Kevin Babcock, Telerik Evangelist

There is a new face at Telerik, the US wing of Telerik at that, and his name is Kevin Babcock. Kevin is our freshest Technical Evangelist and we are very excited to welcome him to the Telerik team. He recently graduated from Texas A&M University (whoop!) in Computer Science, but before going to school he served in the US Air Force for about 6 years. Aside from being a great mind and an engaging personality (why do you think we hired him?), Kevin is hitting the Technical Evangelist field with a running start. As a student, Kevin was Microsoft's Student Partner at Texas A&M, meaning he was Microsoft's peer liason to the 30,000+ students at the University. And inbetween graduating and starting with Telerik, Kevin even had the opportunity to sit down and interview Scott Guthrie for about 90 minutes. Not a bad way to start! You can catch the recorded interview for yourself on Channel8.

So, next time you're at a conference, stop by the Telerik booth and introduce yourself to Kevin. He- and I- would love to meet you. If you can't make the conferences, then at least add Kevin's new Telerik blog to your readers (those of you that subscribe). We look forward to getting Kevin plugged-in to the Telerik Community, so look for him everywhere soon!

Thursday, June 12, 2008

Become an official Telerik fan!

I've said it before, but it's worth saying again: one of the best aspects of a show like TechEd is getting a chance to meet Telerik's "fans." What (or who) is a Telerik fan? These are people that go beyond being loyal customers and transcend in to a realm of zealous enthusiasm for Telerik's products. These are the people that really help Telerik continue to drive forward and disrupt the status quo in the .NET UI components and developer tools market. These are my kind of people.

If you consider yourself a Telerik fan, we've got a great new outlet for your enthusiasm and a new way for you to connect with other Telerik fans! We've created a special Telerik page on Facebook that allows anyone to become a Telerik fan. You simply add yourself as a fan and then enjoy the community of like-minded Telerik fans from literally around the globe. We'll be adding photos from events and periodic announcements to our page so you're always tuned-in to the latest Telerik happenings without leaving the company of your social networking friends. Plus, you can even post your photos of Telerik at events, so bring your pics and join us for some fun on Facebook!