After several months of research, review and revision, a white paper I wrote for the SQL Azure team, "NoSQL and the Windows Azure Platform", has been published by Microsoft. If you go to
http://www.microsoft.com/windowsazure/whitepapers
and do a find within the page for "NoSQL" you'll see a link for it. If you'd rather download the PDF directly, you can do so by
More
Posted on 04/25/201123 comments
The term "going native" can be a terribly derogatory phrase, connoting the prejudiced outlook of colonists toward the peoples on whom they've imposed themselves. But it can also be playful or empathetic, summoning images of intrepid travelers who get out of their hotels and try to meet people in the countries they visit, and maybe even eat their local delicacies and learn a few words of their language.
Are platforms like people? Are operating systems like countries? Is Silverlight a colonizer? Is HTML, especially HTML 5, an empathetic visitor to foreign lands? Or is it the conqueror, of Silverlight, of Flash, and even of the Windows API?
Talk about overloaded terms! After two days of MIX keynotes, the word "native" has been bandied about a lot. In the day 1 keynote, we heard a lot about the "native" support for HTML 5 in Internet Explorer 9/Windows 7 today and the greater support coming in IE10 and Windows v. Next sometime soon. In the day 2 keynote, we even saw how the "Mango" update to Windows Phone 7 will bring the same kind of integration between that operating system and its own implementation of IE 9. These operating systems will natively support HTML, making Windows the HTML place to be. Go where the natives go.
So native is a good thing, right? Not so fast. Because native can also refer to an application written specifically for the operating system's own application stack. Like a Win32 app, or a .NET Windows Forms or WPF app. And as much as native is a good thing when it comes to HTML support, it seems like native apps, in the non-HTML sense of the word, were on Redmond's naughty list at MIX this week. In fact, in the day 2 keynote, the only truly native apps we saw were ones that Microsoft Corporate Vice President Joe Belfiore and others showed running on Windows Phone 7 devices, or else they were demos of the Kinect SDK.
So maybe native is good, or maybe native is bad. Or maybe non-native things are bad, which means native is good. Because when something is native, there's something it's not: a plug-in. And in the day 1 keynote, Microsoft Windows Division President Steven Sinofsky, and Corporate Vice President for Internet Explorer Dean Hachamovitch, in talking about IE9 and IE10, were clear that the hallmark of these two browsers is that they have rid of us on our dependency on pesky plug-ins.
Which is noteworthy, because the very centerpiece of every MIX event up until this one was Silverlight, and Silverlight is, of course, a plug-in. The centerpiece has become an adornment, editorially, this year, at least. Draw your own conclusions. But make sure you learn at least some of the native markup language, because not everyone speaks XAML.
Posted on 04/14/20113 comments
In the run up to Microsoft's MIX conference, next week in Las Vegas,
a new post on the Silverlight Team Blog
from Microsoft Developer Division VPs Walid Abu-Hadba, Scott Guthrie and Soma Somasegar provides new clarification of Microsoft's position on Silverlight and HTML 5. Read the post and interpret it for yourself. My take is this: given the current landscape of Smartphone and tablet OSes, only HTML 5 can let you reasonably target all of them, so Microsoft's going to bring you greatly improved dev tools for that platform. If your app needs to run only on Windows, Mac OS and/or Windows Phone 7, then Silverlight provides a richer, more optimized experience and greater developer productivity, so Microsoft's going to continue to invest there too.
More
Posted on 04/05/201118 comments
Billy Hollis, my
Visual Studio Live!
colleague and fellow Microsoft Regional Director said recently, and I am paraphrasing, that the computing world, especially on the consumer side, has shifted from one of building hardware and software that makes things possible to do, to building products and technologies that make things easy to do. Billy crystallized things perfectly, as he often does.
More
Posted on 02/28/20113 comments
On Wednesday, HP pre-announced the second coming out for its recently acquired Palm webOS mobile operating system. I happen to think webOS is quite good, and when the Palm Pre first came out, I thought it a worthwhile phone. I was worried though that the platform would never attract the developer mindshare it needed to be competitive, and that turned out to be the case.
Then HP acquired Palm and announced it would be revamping the webOS offering, not only on phones, but also on tablets. It later announced that it would also use webOS as an embedded solution on HP printers.
More
Posted on 02/10/20116 comments
Most of my posts are about Microsoft. This one is about a new firm that helps companies build strategies around Microsoft, and its stack. The company is called
Blue Badge Insights
, and I'm proud to announce I've launched it, effective immediately.
There's been a lot that's led up to this. For over two years now, I have written the Redmond Review column for Visual Studio Magazine (VSM) and Redmond Developer News (RDN). I've had this blog longer than that, but I got a lot more serious about it when the column started, and when VSM and RDN picked the blog up as Redmond Diary on their Web sites.
I've been in the Microsoft-oriented writing/speaking world now for more than 15 years. I've been a Microsoft Regional Director for almost 10 years, and I've advised the tech press on Microsoft products, technologies and news for most of that time. Most of that has been a side line though, because I've been in the technology consulting business for over 20 years, and that's been my primary focus.
But as much as I like the technology and have enjoyed implementing it, or facilitating its implementation by others, I've started to enjoy the strategy around, and analysis of, the technology even more. So Instead of just writing about Microsoft, I've decided to take my Redmond-focused analyst and advisory activities and promote them from hobby to profession.
From our office in the Empire State Building, Blue Badge Insights has already started work for two major ISVs, a solution provider that is an established Gold Partner, a BI startup and even Microsoft itself. It's a great start, but there's a long way to go, and I hope readers here will consider telling friends, colleagues and their executives about Blue Badge Insights' services. In time, we'll be publishing a subscription-based written briefing that may be worthy of mention as well.
All that said, I must point out that Redmond Review and this blog are not going anywhere. In fact, they've just become a lot more important. What I talk about here and what I hear back in the form of reader comments is extremely important to my new business. Without the public content, there would be little credibility to our fee-based writings and services, and there would be little motivation behind them, too.
Blue Badge Insights is a new kind of business. Some people think it's a great idea. Other people think it's crazy. No matter who is correct, I have to make some noise. I hope you'll keep reading, I hope you'll keep commenting and I hope you'll grant me this one especially self-promoting post.
Posted on 01/24/20110 comments
Amazon Web Services (AWS) today announced the
beta release of its "Elastic Beanstalk" Platform as a Service (PaaS) offering
. The platform initially is available to Java developers only, but it sounds pretty snazzy: you wrap your code up as a Java WAR file (a Web Application Archive), upload it and deploy it. There are tools developers can integrate into Eclipse to do the upload or you can use the AWS Management Console. Wait a few minutes and then visit your app at http://myapp.elasticbeanstalk.com/ or something similar.
More
Posted on 01/21/20111 comments
I’m just back from the 2011 Consumer Electronics Show (CES). Every year I go to CES to get a sense of what Microsoft is doing in the consumer space, and how people are reacting to it. When I first went to CES two years ago, Steve Ballmer announced the beta of Windows 7 at his keynote address, and the crowd went wild. When I went again last year, everyone was hoping for a Windows tablet announcement at the Ballmer keynote. Although they didn’t get one (unless you count the unreleased HP Slate running Windows 7), people continued to show anticipation around Project Natal (which became Xbox 360 Kinect) and around Windows Phone 7. On the show floor last year, there were machines everywhere running Windows 7, including lots of netbooks. Microsoft had a serious influence at the show both years.
More
Posted on 01/10/20118 comments
I have been spending the last 2 weeks immersing myself in a number of Windows Azure and SQL Azure technologies. And in setting up a new business (I'll speak more about that in the future), I have also become a customer of Microsoft's BPOS (Business Productivity Online Services). In short, it has been a fortnight of Microsoft cloud computing.
On the Azure side, I've looked, of course, at Web Roles and Worker Roles. But I've also looked at Azure Storage's REST API (including coding to it directly), I've looked at Azure Drive and the new VM Role; I've looked quite a bit at SQL Azure (including the project "Houston" Silverlight UI) and I've looked at SQL Azure labs' OData service too. I've also looked at DataMarket and its integration with both PowerPivot and native Excel. Then there's AppFabric Caching, SQL Azure Reporting (what I could learn of it) and the Visual Studio tooling for Azure, including the storage of certificate-based credentials. And to round it out with some user stuff, on the BPOS side, I've been working with Exchange Online, SharePoint Online and LiveMeeting.
I have to say I like a lot of what I've been seeing. Azure's not perfect, and BPOS certainly isn't either. But there's good stuff in all these products, and there's a lot of value.
Azure Goes Deep
Most people know that Web and Worker roles put the platform in charge of spinning virtual machines up and down, and keeping them up to date. But you can go way beyond that now. The still-in-beta VM Role gives you the power to craft the machine (much as does Amazon's EC2), though it takes away the platform's self-managing attributes. It still spins instances up and down, making drive storage non-durable, but Azure Drive gives you the ability to store VHD files as blobs and mount them as virtual hard drives that are readable and writeable.
Whether with Azure Storage or SQL Azure, Azure does data. And OData is everywhere. Azure Table Storage supports an OData Interface. So does SQL Azure and so does DataMarket (the former project "Dallas"). That means that Azure data repositories aren't just straightforward to provision and configure... they're also easy to program against, from just about any programming environment, in a RESTful manner. And for more .NET-centric implementations, Azure AppFabric caching takes the technology formerly known as "Velocity" and throws it up into the cloud, speeding data access even more.
Snapping in Place
Once you get the hang of it, this stuff just starts to work in a way that becomes natural to understand. I wasn't expecting that, and I was really happy to discover it. In retrospect, I am not surprised, because I think the various Azure teams are the center of gravity for Redmond's innovation right now. The products belie this and so do my observations of the product teams' motivation and high morale. It is really good to see this; Microsoft needs to lead somewhere, and they need to be seen as the underdog while doing so. With Azure, both requirements are in place.
BPOS: Bad Acronym, Easy Setup
BPOS is about products you already know; Exchange, SharePoint, Live Meeting and Office Communications Server. As such, it's hard not to be underwhelmed by BPOS. Until you realize how easy it makes it to get all that stuff set up. I would say that from sign-up to productive use took me about 45 minutes... and that included the time necessary to wrestle with my DNS provider, set up Outlook and my SmartPhone up to talk to the Exchange account, create my SharePoint site collection, and configure the Outlook Conferencing add-in to talk to the provisioned Live Meeting account.
Never before did I think setting up my own Exchange mail could come anywhere close to the simplicity of setting up an SMTP/POP account, and yet BPOS actually made it faster.
What I want from my Azure Christmas Next Year
Not everything about Microsoft's cloud is good. I close this post with a list of things I'd like to see addressed:
- BPOS offerings are still based on the 2007 Wave of Microsoft server technologies. We need to get to 2010, and fast. Arguably, the 2010 products should have been released to the off-premises channel before the on-premises one. Office 365 can't come fast enough.
- Azure's Internet tooling and domain naming is scattered and confusing. Deployed ASP.NET applications go to cloudapp.net; SQL Azure and Azure storage work off windows.net. The Azure portal and Project Houston are at azure.com. Then there's appfabriclabs.com and sqlazurelabs.com. There is a new Silverlight portal that replaces most, but not all of the HTML ones. And Project Houston is Silvelright-based too, though separate from the Silverlight portal tooling.
- Microsoft is the king of tooling. They should not make me keep an entire OneNote notebook full of portal links, account names, access keys, assemblies and namespaces and do so much CTRL-C/CTRL-V work. I'd like to see more project templates, have them automatically reference the appropriate assemblies, generate the right using/Imports statements and prime my config files with the right markup. Then I want a UI that lets me log in with my Live ID and pick the appropriate project, database, namespace and key string to get set up fast.
- Beta programs, if they're open, should onboard me quickly. I know the process is difficult and everyone's going as fast as they can. But I don't know why
it's so difficult or why it takes so long. Getting developers up to speed on new features quickly helps popularize the platform. Make this a priority.
- Make Azure accessible from the simplicity platforms, i.e. ASP.NET Web Pages (Razor) and LightSwitch. Support .NET 4 now. Make WebMatrix, IIS Express and SQL Compact work with the Azure development fabric. Have HTML helpers make Azure programming easier. Have LightSwitch work with SQL Azure and not require SQL Express. LightSwitch has some promising Azure integration now. But we need more. WebMatrix has none and that's just silly, now that the Extra Small Instance is being introduced.
- The Windows Azure Platform Training Kit is great. But I want Microsoft to make it even better and I want them to evangelize it much more aggressively. There's a lot of good material on Azure development out there, but it's scattered in the same way that the platform is. The Training Kit ties a lot of disparate stuff together nicely. Make it known.
Should Old Acquaintance Be Forgot
All in all, diving deep into Azure was a good way to end the year. Diving deeper into Azure should be a great way to spend next year, not just for me, but for Microsoft too.
Posted on 01/03/20111 comments
The news hit Monday morning that Google has decided to
delay the release of its Google TV platform
, and has asked its OEMs to delay any products that embed the software. Coming just about two weeks prior to the 2011 Consumer Electronics Show (CES), Google's timing is about the worst imaginable. CES is where the platform should have had its coming out party, especially given all the anticipation that has built up since the initial
More
Posted on 12/21/20101 comments
Today, at the Silverlight Firestarter event on the Microsoft Campus in Redmond, Scott Guthrie (Microsoft's Corporate Vice President, .NET Developer Platform) announced Silverlight 5 and introduced us to its features. Among them:
- 1080p video, GPU-acceleration, "trickplay" (variable speed playback with pitch correction)
- WS-Trust support, low-latency networking for real time apps
- Ability to set breakpoints on data binding expressions and debug them
- Merging into Silverlight of WPF data binding features
- <LoadTransition> tag in XAML, letting you do fly-ins without storyboards
- Style setting "binding"
- Multi-column text flow, font tracking/leading, vector-based PostScript printing API
- Pivot Control, now be built into the Silverlight SDK
- Immediate Mode Graphics API w/ GPU-accelerated 3D support
- P/Invoke for low-level API programming
- 64-bit version of SL Runtime
For more details,read this post on Silverlight team member Tim Heuer's blog.
It's a lot of stuff. And as to what this all means to the prognosis for Silverlight's continued existence among the living, I would say the technology will be with us for a while. Of course, part of the reason for that longevity is that the Beta for Silverlight 5 won't make an appearance until the Spring, and RTM/RTW won't be until later next year. But that's fine.
If Silverlight seems off its heretofore aggressive release "cadence," at least part of the reason is that the version for Windows Phone 7 (a version that a lot of people do not count) shipped only recently. And if the wait seems long, realize that normally the Silverlight team wouldn't talk to us until they were almost ready with a CTP. But given the PDC brouhaha, the team knew they had to brief the developer community. I wouldn't wish it any other way.
But let's put aside the SL5 vs. HTML5 debate for a moment; the battle of the 5s seems less urgent now. Let's instead consider what the SL4 demos that were shown, and the SL5 features that were announced, really mean for the product.
Here's the message I got today: Silverlight is a technology for building serious business applications, and building them under the highly productive tooling regime of Visual Studio. Yes, Silverlight apps can look subtle, futuristic and kiosk-like. Yes, Silverlight is a venerable media platform. But also, and perhaps above all, Silverlight is Microsoft's rich client platform. It lets you build line-of-business applications. They can include powerful data visualization capabilities. They can be highly data-connected. They can be tested and debugged efficiently. They can be re-skinned programmatically.
Whether you can or cannot create similar applications in HTML5, given enough time, is beside the point. Because in business you're probably not "given enough time." You have an application to write; it's got to be written quickly. It's got to run mostly bug-free, and the few bugs that get out have to be easily diagnosed and corrected. And while these apps do not have to look like consumer-oriented kiosk installations, they should still have some punch: nice transitions, good use of color and graphics, and anything else that will make them fun enough and engaging enough to get users to adopt them and enjoy using them. And this has to be do-able under time and budget constraints that are tough and getting tougher.
That's what Silverlight's for. One day, you'll be able to do that with HTML. That day's not here. Not yet.
Posted on 12/02/20101 comments
With all the noise (not to mention the funk) around HTML5 and Silverlight at PDC 2010, we could be forgiven for missing the numerous keynote announcements about Windows Azure and SQL Azure. And with all
those
announcements, we could be forgiven for missing the ostensibly more arcane stuff in the breakout sessions. But one of those sessions covered material that was very important.
That session was Lev Novik's "Building Scale-out Database Applications with SQL Azure," and given the generic title, we could be further forgiven for not knowing how important the session was. But it was important. Because it covered the new Federation (aka "sharding") features coming to SQL Azure in 2011. Oh, and by the way, you'd also be forgiven for not knowing what sharding was. Perhaps a little recent history would help.
When SQL Azure was first announced, its databases were limited in size to 10GB, in the pro version of the service. That's big enough for lots of smaller Web apps, but not for bigger ones, and definitely not for Data Warehouses. Microsoft's answer at the time to criticism of this limitation was that developers were free to "shard" their databases. Translation: you could create a bunch of Azure databases, treat each one as a partition of sorts, and take it upon yourself to take the query you needed to do, and divide it up into several sub queries -- each one executing against the correct "shard" -- and then merge all the results back again.
To be honest, while that solution would work and has architectural merit, telling developers to build all that plumbing themselves was pretty glib, and not terribly actionable. Later, Microsoft upped the database size limitation to 50GB, which mitigated the criticism, but it didn't really fix the problem, so we've been in a bit of a holding pattern. Sharding is sensible, and even attractive. But the notion that a developer would have to build out all the sharding logic herself, in any environment that claims to be anything "as a service," was far-fetched at best.
That's why Novik's session was so important. In it, he outlined the explicit sharding support, to be known as Federation, coming in 2011 in SQL Azure, complete with new T-SQL keywords and commands like CREATE/USE/ALTER FEDERATION and CREATE TABLE...FEDERATE ON. Watch the session and you'll see how elegant and simple this is. Effectively, everything orbits around a Federation key, which then corresponds to a specific key in each table, and in turn determines what part of those tables' data goes in which Federation member ("shard"). Once that's set up, queries and other workloads are automatically divided and routed for you and the results are returned to you as a single rowset. That's how it should have been along. Never mind that now.
Sharding does more than make the 50GB physical limit become a mere detail, and the logical size limit effectively go away. It also makes Azure databases more elastic, since shards can become more or less granular as query activity demands. If a shard is getting too big or queried too frequently, it can be split into two new shards. Likewise, previously separate shards can be consolidated, if the demand on them decreases. With SQL Azure Federation, we really will have Database as a Service... instead of Database as a Self-Service.
But it goes beyond that. Because with Federation, SQL Azure gains a highly popular feature of so-called document-oriented NoSQL databases like MongoDB, which features sharding as a foundational feature. Plus, SQL Azure's soon-to-come support for decomposing a database-wide query into a series of federation member-specific ones, and then merging the results back together, starts to look a bit like the MapReduce processing in various NoSQL products and Google Hadoop. When you add to the mix SQL Azure's OData features and its support for a robust RESTful interface for database query and manipulation, suddenly staid old relational SQL Azure is offering many of the features people know and love about their NoSQL data stores.
While NoSQL databases proclaim their accommodation of "Internet scale," SQL Azure seems to be covering that as well, while not forgetting the importance of enterprise scale, and enterprise compatibility. Federating (ahem!) the two notions of scale in one product seems representative of the Azure approach overall: cloud computing, with enterprise values.
Posted on 11/23/20101 comments
Readers of my
blog
and/or
column
know that I am a big fan of PowerPivot. And because of that, I was excited to see, both at June's Microsoft BI Conference (part of Tech Ed) and this week's
PASS Summit
More
Posted on 11/12/20100 comments
I didn’t go to the Microsoft Professional Developers Conference (PDC) this year because it was, as far as I could tell, a made-for-streaming video event. As such, I watched the keynote about 24 hours after it took place and used my Media Center PC to watch it on my plasma television. And I have to say, the keynote was worthy of the medium. Not only did the Silverlight Smooth Streaming technology deliver a fine HD image, but the content of the keynote itself, merited a big screen, and necessitated the ability to pause, rewind and play back.
More
Posted on 10/29/20101 comments