First Look at Tools for Azure AppFabric Apps

Office in the cloud is stealing headlines today but the most important cloud developments for developers occurred last week.

Microsoft released the Windows Azure AppFabric June CTP. As promised at Tech-Ed North America 2011, it offers the first glimpse of tools and components for AppFabric Applications. The new tools and services are designed to help developers build n-tier applications (web, middle and data-tiers) that are "cloud-ready" and then manage all of the components and dependencies as a single logical entity, throughout the application's lifecycle.

The Visual Studio tools and components include simple configurations for Windows Communication Foundation (WCF) and Windows Workflow (WF), according to Microsoft, an Application Container service for running WCF or WF code and an Application Manager where developers deploy and monitor AppFabric apps with help from compositional models.

Microsoft's Karandeep Anand explained the new tools, components and concepts in the AppFabric Team blog:

In CTP1, we are focusing on a great out-of-box experience for ASP.NET, WCF, and Windows Workflow (WF) applications that consume other Windows Azure services like SQL Azure, AppFabric Caching, AppFabric Service Bus and Azure Storage. The goal is to enable both application developers and ISVs to be able to leverage these technologies to build and manage scalable and highly available applications in the cloud.

You can download the Windows Azure AppFabric SDK – June Update here. To sign up for a chance to try out the Application Manager CTP in the Labs environment, you'll need to sign in to the AppFabric Management Portal and follow the instructions outlined in this AppFabric Team blog.

Roger Jennings, a developer and author of the OakLeaf Systems blog and Cloud Computing with the Windows Azure Platform (WROX, 2009) has yet to try out the new tools but says he thinks that AppFabric is "quite innovative and has a great deal of potential."

Jennings explained in an email:

AppFabric (in general) is Microsoft's primary distinguishing feature for Windows Azure. I’ve been waiting for the AppFabric Applications CTP since they dropped support for workflows before Windows Azure released.

Check out Jennings' June VSM cover story, "New Migration Paths to the Microsoft Cloud", for more on Azure developer tools and hybrid platform features.

Express your thoughts on Microsoft and the cloud. Are you more excited about Office 365, or the potential of new Windows Azure AppFabric tools and components? Drop me a line at krichards@1105media.com.

Posted by Kathleen Richards on 06/28/2011 at 12:54 PM0 comments


Parallel Development: Fast Code on GPUs

Microsoft announced a new programming model to support data parallelism and concurrency on local General Purpose GPUs and APUs and, at some point, remote compute clouds. A new language extension, C++ Accelerated Massive Parallelism (C++ AMP), and related tooling are expected in the next version of Visual C++ with previews of the technology likely before the end of the year. According to the Microsoft C++ AMP team:

Developers will get an STL-like library as part of the existing concurrency namespace (whose Parallel Patterns Library – PPL- and its Concurrency Runtime – ConcRT- are also being enhanced in the next version of Visual C++) in a way that developers won't need to learn a different syntax, nor use a different compiler.

The new API is based on native C++ and designed to bring heterogeneous hardware programmability to mainstream developers. Visual Studio vNext is slated to support editing, debugging and profiling of C++ AMP code to enable developers to increase computational performance of data parallelism algorithms on GPUs and APUs beyond what is offered by multicore CPUs.

The intent is to make C++ AMP an open specification that any compiler can implement, according to Microsoft Senior Vice President Soma S. Somasegar, who announced the new programming model and Visual Studio tooling in his blog last week. Microsoft's initial implementation of C++ AMP is built on Windows DirectX and uses the DirectX11 DirectCompute subset of APIs.

Somasegar wrote:

By building on the Windows DirectX platform, our implementation of C++ AMP allows you to target hardware from all the major hardware vendors. We expect that it will be part of the next Visual C++ compiler and fully integrated in the next release of Visual Studio experience.

Herb Sutter, a Microsoft software architect and lead designer for the C++/CLI and the upcoming extensions for Visual C++, introduced C++ AMP during his keynote at AMD Fusion Developer Summit 11 on June 15th. AMD and Nvidia have announced plans to support C++ AMP.

Sutter outlines Microsoft's reasons for introducing C++ AMP in his June 16 blog posting. A major reason is to provide native C++ support to developers instead of C or some derivative of C, according to Sutter. This may explain why Microsoft is introducing its own language extension instead of supporting an open, cross-platform parallel programming standard for heterogeneous systems such as OpenCL (Open Computing Language), which is based on the C programming language and widely supported.

Daniel Moth, a program manager on the Parallelism team did a breakout session on C++ AMP with code samples at the conference. You can view his session, Blazing Fast Code using GPUs and more with C++ AMP on Channel 9.

Express your thoughts on C++ Accelerated Massive Parallelism. Are you excited about what's coming in Visual Studio vNext? Should Microsoft support widely adopted specifications such as OpenCL? Drop me a line at krichards@1105media.com.

Posted by Kathleen Richards on 06/21/2011 at 12:54 PM1 comments


Developers Hit Breaking Point with Ultimate Debugger Canvas

Ever see something that you'd really like to have but it remains out of reach, at least for now? Some developers felt the pinch this week as Microsoft released an exciting Visual Studio 2010 extension called Debugger Canvas. The new power tool released by DevLabs requires Visual Studio 2010 Ultimate edition, which limits its usage among Microsoft's core developers.

Described by Microsoft as a new user experience for debugging code, Debugger Canvas shows a path of related code bubbles on a Canvas, which offers a pan-and zoom capability. Each code bubble is a full blown Visual Studio editor, according to Microsoft. The technology lets you hit breakpoints, and step through code to debug methods with call lines and local variables, in the Visual Studio debugger. The tool supports C# and Visual Basic. Developers can save a Canvas as an XPS file and share it with team members. Support for code browsing and editing is expected in future releases of the power tool. The technology is built on top of Visual Studio 2010 and requires technologies in Visual Studio 2010 Ultimate edition, according to Microsoft.

The head of Microsoft's developer division, Soma S. Somasegar, introduced the new tooling in his blog on Monday and indicated that the concept could be useful for many scenarios in addition to debugging:

It takes advantage of the flexibility of the new code editor to show fragments of files as bubbles on the canvas with a fully functioning editor in each. We built Debugger Canvas on top of Visual Studio Ultimate so that we could also use the underlying technology for the Dependency Diagrams to identify and display the right fragments on the canvas.

Debugger Canvas, which also uses the Intellitrace technology currently available only in Visual Studio Ultimate, was developed by Brown University (Code Bubbles) and Microsoft Research (Code Canvas).

The concept behind Debugger Canvas looks promising but many developers, who are interested in trying it out, will have to sit this one out. Visual Studio Ultimate, which is Microsoft's application lifecycle management solution (formerly Visual Studio Team System 2008 with Team Foundation Server) is typically employed after consultants or IT management convince corporate executives to invest in the technology.

Most of the developers who responded to Somasegar's blog post are using Visual Studio Premium (MSDN Premium subscription). Many people expressed their frustrations because they couldn't try Debugger Canvas based on Microsoft's product segmentation.

Yann Schwartz, who commented on Somasegar's blog on June 14, said:

A potentially mind-blowing extension only available to a mind-blowingly expensive edition of Visual Studio (just like Intellitrace debugging which is Ultimate-only). Please, keep the astronaut architects features (UML et al.) in Ultimate and trickle down actual useful features to the cheaper SKU's. Until then, there's not much point in advertising features that only a tiny fraction of your readership can afford.

I did pay for my VS Premium edition, but I'm wondering what's so premium about it after all.

Aaron agreed:

It's absolutely mind-blowing how much work Microsoft puts into creating awesome utilities for a version of VS that very few can afford to use. What an utter waste. It's like grilling up meats for the masses, only the masses stand behind the fence, staring and salivating ...

Bryan summed it up this way:

This just in: we invented a great technology called the "seatbelt". It will only be available in Ferraris.

Microsoft has indicated that some Debugger Canvas features may end up in future versions of Visual Studio based on further research and developer feedback. Check out the Canvas Debugger video and tooling and tell us what you think. Are you limited by Microsoft's product segmentation? Express your thoughts on power tools and any changes that you'd like to see with Visual Studio vNext product segmentation. Drop me a line at krichards@1105media.com.

Posted by Kathleen Richards on 06/14/2011 at 12:54 PM3 comments


Unexpected Drama: Windows 8 and Silverlight

In the span of 8 months, Microsoft has managed to alienate Silverlight developers, and many in the .NET community, by failing to effectively communicate its application development strategy as software moves beyond the desktop to the cloud and devices.

Last week Microsoft showed a glimpse of its next OS, codenamed 'Windows 8', and talked about multiple form factors and a new app model for 'Windows 8' based on HTML5 and JavaScript. The first demos of Windows 8 featured a touch-enabled, Live Tile interface that looked similar to that of Windows Phone 7. One of the tiles represented a store, although Microsoft did not officially confirm plans for a Windows App Marketplace.

The 'Windows 8' interface looked cool and competitive, especially for devices like tablets. Based on what was demonstrated, users will still be able to run "legacy apps" such as the Office suite, for example, in traditional Windows mode.

According to Steven Sinofsky, president of the Windows division, Microsoft is planning to talk more about Windows 8 and the new app model at its BUILD conference for developers in September. One of the key strategies behind Windows 8—and the BUILD conference—is to broaden the reach of Microsoft's platforms and development tools to developers outside of Microsoft's professional developer ranks. The strategy is sound; the execution is what matters, however.

About a week has passed since Windows 8 was first demoed and so far, Microsoft is running into some serious communication issues with its developer ecosystem, resulting in tremendous anxiety among many app developers who depend on the company's frameworks for their livelihoods. Silverlight developers, in particular, are up in arms as evidenced by the millions who have viewed or participated in the Windows 8 threads (the first of which was taken down) in the Silverlight forums.

Silverlight developers faced a similar crossroads during the PDC10 event in October when the RIA platform took a back seat--outside of Windows Phone development--and Bob Muglia appeared to confirm a shift in strategy in an interview with reporter Mary Jo Foley.

Some developers fear that the Windows division is calling the shots and panicking because they think there's a chance that .NET/Silverlight/XAML are not a key part of Windows 8 development. That dev scenario appears unlikely based on Microsoft's customer base of corporate and business users. Others are upset because based on the first Windows 8 demos, it appears that "legacy Windows code" going forward may include traditional Windows/.NET apps.

It's too early to get worked up over semantics. C#, Silverlight and Visual Studio are key dev tools for Windows Phone 7 and are likely to become even more prominent for certain types of apps with Windows 8 and the unconfirmed Windows Marketplace.

As Microsoft community program manager Pete Brown commented in the Silverlight forum in response to comments on a Gizmodo article:

Nowhere in there is a Microsoft person saying that HTML/Javascript are the exclusive way to write applications. It's a new way, it's an exciting way, and, let's face it, a way that is likely to be hugely popular with web developers.

Later in the same thread, he reiterated:

None of us at Microsoft can say anything until //build/ in September. No one likes that, including me. That's all we can do, however.

The Windows division (Steven Sinofsky and company) may be enforcing a code of silence until the Build conference but that's probably about it. The definition of software and where it resides is a moving target that depends on market forces outside of Microsoft's control. Microsoft appears to be addressing some of those realities, which is a good sign for developers who have invested in the company's technologies.

With enterprise-level requirements, security issues, the emergence of cloud and devices and the consumerization of IT, Microsoft's strategy going forward is probably a work in progress that depends more than ever on developing a broad developer ecosystem. That ecosystem, however, will still center on the core base of professional developers who have invested heavily in Microsoft's frameworks.

As Paul Newman said in Cool Hand Luke, "what we've got here is a failure to communicate."

Microsoft needs to communicate better with its core developers or risk losing valuable Silverlight and .NET developers. Express your thoughts on the future of Silverlight, the Windows 8 app model and Microsoft's strategy going forward. Drop me a line at krichards@1105media.com.

Posted by Kathleen Richards on 06/07/2011 at 12:54 PM8 comments


Start Developing a Taste for Mango

Microsoft officially announced its next Windows Phone OS at an event in New York City. The major upgrade, code-named Mango, is expected to reach existing phones this year and new devices from a range of manufacturers, including Nokia, in time for the holiday season.

As promised at MIX11, Microsoft also released the Windows Phone Developer Tools 7.1 Beta, which supports Mango development. The Mango platform adds support for IE9 and HTML5, background processing, Silverlight 4, use of Silverlight and XNA in the same app, a local SQL database, contact and calendar APIs, networking and sockets, among other features.

The Mango SDK can't be used side-by-side with the Windows Phone 7 SDK. Developers can replace their existing SDKs with the updated version and target either Mango or the Windows Phone 7 platform, according to Microsoft.

Microsoft has not provided preview bits of the Mango platform, however. Matt Bencke, the Microsoft GM in charge of the Windows Phone Developer and Marketplace Experiences, commented in the Windows Phone Developer blog on Tuesday:

Yes we will be providing our developers a preview of our bits prior to launch, but again, we have yet to announce that date at this time.

With the release of the tools beta, Microsoft has updated its Windows Phone Developer Tools documentation on MSDN and introduced 10 hands-on labs and 22 code samples for Mango development.

Microsoft also announced that the Windows Phone Marketplace now supports app submissions and purchases in Australia, Austria, Belgium, Canada, France, Germany, Hong Kong, Ireland, Italy, Mexico, New Zealand, Singapore, Spain, Switzerland, UK and the United States. Developers in China, Israel and Luxembourg can also submit apps, even though the Marketplace is not supported in those countries.

With the release of Mango, Microsoft is planning to expand the Windows Phone Marketplace to 35 countries from 16. App submissions and purchases will be supported in Brazil, Chile, Colombia, Czech Republic, Denmark, Finland, Greece, Hungary, India, Japan, Korea (South), Netherlands, Norway, Poland, Portugal, Russia, South Africa, Sweden and Taiwan. Microsoft also plans to provide a Web version of the Windows Phone Marketplace, according to today's announcements.

Bencke outlined the announcements about Mango, the new tooling and Marketplace expansion plans in the Windows Phone Developer blog. He acknowledged the important role that developers will play in driving sales of the devices:

We recognize that the strength of our developer community and the Windows Phone ecosystem is a big reason why analysts are so optimistic about the Windows Phone ecosystem in predicting sales of hundreds of millions of units by 2015.

Windows Phone has 42,000 registered developers and 17,000 apps, according to Bencke.

IDC analyst Al Hilwa says that despite the criticisms leveled at Microsoft, the company is doing what is needed to win the battle of the ecosystems. "Very strong developer tooling, released months ahead of time, is a key enabler for developers to begin to develop and test apps, which is a strong-point for Microsoft," said Hilwa, program director for Application Development Software, in an email. "Most impressively, the growth of the app store is a sign of one of the healthiest developer ecosystems. Doing some back of the envelop calculations on app store growth rates, it looks like Windows Phone reached 15,000 apps (Oct 2010 to Apr 2011) in six months, roughly on par with the iPhone (July 08 to Jan 09) and faster than any other platform."

Are you developing for Windows Phone 7? If not, will that change with the Mango release? Express your thoughts on today's announcements. Drop me a line at krichards@1105media.com.

Posted by Kathleen Richards on 05/24/2011 at 12:54 PM0 comments


What's on Your Wish List for Visual Studio vNext?

Jason Zander showed an early glimpse of what's coming in the next release of Visual Studio at Microsoft Tech-Ed North America this week. Most of the new functionality is designed to support Agile development: storyboarding, lightweight requirements, stakeholder feedback, Agile planning dashboard, continuous integration testing, and so on.

Zander, who is the corporate vice president of the Visual Studio engineering team, explained the thinking behind the new application lifecycle management (ALM) features during the keynote and in his blog:

When we asked people what the biggest problem they faced in successfully delivering software, they identified the need for better collaboration. We know that building software takes a team of people including developers, testers, architects, project planners, and more. Out of this observation, we created the strategy for our ALM offering which focuses on helping people collaborate in very tightly integrated ways: collaboration, actionable feedback, diverse work styles (Visual Studio, Web browser, SharePoint, Office or dedicated tooling) and Agile transparent processes.

Visual Studio ALM vNext aims to bring more people into the application lifecycle, adding tool support for project stakeholders and  IT operations teams. On Monday, Microsoft released the first Community Technical Preview of a Systems Center Operations Manager 2007 R2 connector for Team Foundation Server 2010.

According to the keynote demo, stakeholders (customers) will be able to use the new storyboarding assistant, which is a plug-in to PowerPoint, to describe their ideas using a familiar tool. The tool provides a Storyboarding ribbon and controls to help team members create storyboards and understand ideas before they implement them into working software. The storyboarding assistant looked like a good approach during the demo but many people don't feel all that enlightened after looking at a PowerPoint—remember the Department of Defense's use of that technology?

Microsoft is also revamping the Web access tools for Team Foundation Server with a new Scrum model that allows users to manipulate the product backlog in real-time (drag and drop), assign a priority work item to the current sprint, monitor the capacity of the team, and manage the taskboard.

With the new Web access solution, the popular Excel-based Agile planning workbooks will not be part of vNext, according to Microsoft. The Web tools will support Excel. Word integration is still not on the roadmap.

Integration with multiple unit testing frameworks is also planned for Visual Studio ALM vNext. The upcoming IDE will support the MSTest command line utility, xUnit.net on CodePlex and open source NUnit for .NET and native C++ code, according to Zander.

Along with the support for Agile processes, Microsoft also showed a lot of improvements for developers who are coding in the IDE. A cool feature is the ability to suspend what you are doing and then resume the work with all your files and break points exactly as you left them. Zander referred to it as My Workspace functionality, which packages up your work as "a snapshot" in Visual Studio for easier context switching.

That's just the tip of the iceberg; Zander and his team demoed a lot of exciting features.

Express your thoughts on Visual Studio ALM vNext. What's on your wish list? Drop me a line at krichards@1105media.com.

Posted by Kathleen Richards on 05/17/2011 at 12:54 PM11 comments


Early Access Program Starts for JetBrains' Free .NET Decompiler

In February, JetBrains announced that it was introducing a bundled decompiler into version 6.0 of its popular .NET code analysis and refactoring tool ReSharper; and releasing a free standalone decompiler and assembly browser for "binary-as-a-source" applications. Today the company launched an early access program for the free standalone .NET decompiler, which is called dotPeek. It is designed for decompiling .NET 1.0 – .NET 4 assemblies to C#, and described by the company as having a Visual Studio look-and-feel.

dotPeek 1.0 will include most of the navigation and search capabilities supported in ReSharper, according to JetBrains. It will also support code from source servers, syntax highlighting and offer full keyboard support (i.e. ReSharper shortcuts).

The purpose of the EAP is to get feedback from developers. Check out the dotPeek 1.0 early access download here.The free decompiler is slated for release later this year.

The ReSharper 6.0 EAP started in late December. ReSharper 6.0 will offer the bundled decompiler as well as JavaScript, CSS and ASP.NET MVC 3 Razor view engine support among other new features.

JetBrains is introducing a free decompiler, and decompiling functionality in the upcoming ReSharper 6.0, as its competitor Red Gate Software attempts to move beyond a freemium business model and charge $35 for the former community edition of .NET Reflector 7, which shipped in March. The standard version of .NET Reflector supports class browsing, analysis and decompiling of .NET code and assemblies to C#, VB.NET and IL.

Charging for a product that had been free for more than decade is one thing, but Red Gate's intended use of time bombs in versions 6.x set off a firestorm in the .NET community. Red Gate has since retracted that announcement and introduced free perpetual licensing for developers who upgrade to the latest 6.x version of .NET Reflector by August.

ReSharper or Reflector? Have recent developments changed your allegiance to these tools? Express your thoughts belowor drop me a line at krichards@1105media.com.

Posted by Kathleen Richards on 05/11/2011 at 12:54 PM0 comments


App-centric: Expect New On-Ramps to Windows Azure

Microsoft Corporate Vice President Scott Guthrie, who is transitioning out of the Developer Division to lead the newly created Windows Azure Application Team, according to a leaked memo, whose contents were reported last week by Mary Jo Foley, has clarified his new role at Microsoft to a certain extent.

Guthrie replied to comments about his upcoming transition in his ASP.NET MVC 3 Tools Update blog, on May 3, 2011:

>>>>>> Scott, very sad to hear you are leaving .NET team :-( YOU were the main mentor to reach .NET to this stage...God bless .NET!

Don't worry - I'm not leaving .NET. I continue to run a lot of the core .NET teams (ASP.NET, WCF, WF, AppFabric, IIS, VS Web Tools, WebMatrix, among others).

I'm also spending a lot of time on Azure. But I'm not leaving .NET :-)

He offered a similar response to another commenter on his EF Code First and Data Scaffolding with the ASP.NET MVC 3 Tools Update on May 5, 2011:

>>>>>>>> As detailed and clear as ever! This is really kool !! Scott is the news(or rumor) of ur imminent transfer to the AZURE TEAM real ? I just hope Redmond is making a right calculation here.I will suggest you head both Azure and Dev Div teams together. Missing the kind of mentoring u'v shown the community will be a disaster to say the least...

I'm now involved in Azure - but am also very involved with .NET and VS too. I still run a lot of the .NET and some VS teams (including ASP.NET, WCF, WF, AppFabric, VS Web Tools, IIS, WebMatrix and more).

So don't worry - I'm not going anywhere... ;-)

Of course, Windows Azure is based on Windows/.NET and the applications are developed in Visual Studio. However, Windows Azure and the Windows Azure Tools are not part of the Developer Division, which is responsible for Visual Studio and the core .NET platform.

Migration of ASP.NET Web apps to Windows Azure is one of the paths to Azure but that transition is not as straightforward as it sounds – at least at this point.

Guthrie's leadership of ASP.NET and extensions like ASP.NET MVC, which is designed for scalability, according to Microsoft, combined with his new role as head of the Windows Azure Apps Team, points to another .NET platform-as-a-service that could serve as a model for an easier on-ramp to Windows Azure. AppHarbor, which is in public beta, is a .NET platform-as-a-service provider that takes your source code and then builds, tests and deploys your app in the cloud – currently on Amazon Web Services.

Several Microsoft developer evangelists have talked about AppHarbor in recent months, namely Scott Hanselman, who interviewed AppHarbor's Rune Sørensen in a podcast, and Aaron Evansteed.

Evansteed lauded AppHarbor and explained the PaaS in his blog in January:

Instead of managing a number of virtual machines on a service like EC2, you manage a number of application instances or some other such abstraction. PaaS combined with a continuous build / deployment system is a powerful combination indeed and allows for unparalleled productivity for agile web developers and startups.

.NET developers have had PaaS available to them for a couple of years in the form [of] Windows Azure, but Azure is really meant to service the needs of rapidly growing services and cloud applications, not brand new projects that have no users yet.

AppHarbor fills two needs that are unmet by Azure – it makes it easy (and currently, free) for .NET developers to have access to a Git-enabled continuous development environment, something which our friends on Rails have had for a long time, and it supports the sorts of rapid build / test / deploy workflow that is common among agile groups and startups in particular.

This, in my opinion, makes AppHarbor the perfect starting place in the lifecycle for any new ASP.NET or WCF project.

AppHarbor is modeled after Heroku, a Ruby PaaS that offers a simple deployment mechanism and doesn't require code modifications, according to Sørensen.

A similar offering from Microsoft, or partnership with AppHarbor (based on Guthrie's openness to innovative .NET frameworks) may be on the horizon.

Have you checked out AppHarbor? Express your thoughts on the Heroku model, will it work for Microsoft's cloud? Drop me a line at krichards@1105media.com.

Posted by Kathleen Richards on 05/10/2011 at 12:54 PM0 comments


.NET Open Source Support in Trouble without Guthrie?

Scott Guthrie, corporate vice president of the Microsoft .NET Developer Platform, is transitioning out of the Developer Division to lead the Windows Azure Application Platform team, starting next month, as the company reorganizes its Server and Tools Business. Guthrie is highly respected by .NET developers and Microsoft is probably hoping that the ASP.NET and Silverlight crowd follow him to the cloud.

In recent years, Guthrie has been viewed as one of leaders within Microsoft who understood that developers needed to support Web standards and take advantage of some of the excellent .NET open source frameworks and tools (instead of waiting for Microsoft to implement similar functionality).

After news of the Microsoft re-org was reported by Mary Jo Foley in her All About Microsoft blog on Monday, some people in the .NET community expressed concerns about whether the strides that Microsoft has made towards more openness in .NET, Visual Studio, new Web tools and frameworks, would dissipate with Guthrie's departure.

Jouni Heikniemi, the CEO of Offbeat Solutions, a consultancy that works with Microsoft .NET technologies, voiced those concerns in his Hardcoded blog:

One thing I’m a bit worried about is the openness [of] development that has been set well into place in Guthrie’s previous organization. Co-operation with the jQuery team, integration of new open source technologies into the Visual Studio / .NET mix, growing support for releasing previously closed source, very open and straightforward relation to the developer scene… All this has been highly valuable.

I’m sure the Gu will take much of the goodness to his new org, but I’m less certain if the goodness will remain in the old one.

Are you worried that Microsoft's recent efforts to release .NET source code and ease the integration of open source technologies with its platforms and tools may falter with Guthrie's departure? Express your thoughts on Microsoft's latest moves. Drop me a line at krichards@1105media.com.


Posted by Kathleen Richards on 05/03/2011 at 9:03 AM4 comments


Red Gate Reversal: Free Licensing for .NET Reflector

Red Gate Software has decided to drop its time bomb.

The company has apparently heard the cries of foul from many in the .NET developer community and decided to hold off on the expirations of 6.x versions of its widely used .NET Reflector tool. Red Gate said this week that .NET Reflector 6.x versions will not expire on May 30 as previously announced.

In February, we reported that Red Gate Software was moving away from the Freemium model for .NET Reflector, a class browser and decompiler that integrates with Visual Studio. Red Gate acquired .NET Reflector from its creator Lutz Roeder in 2008. At the time, Red Gate implied that it would continue to offer a free community edition; .NET Reflector was initially released as a free tool in 2000 and the standalone version has remained free for about a decade.

Starting with .NET Reflector v7, which was released on March 10, the cost of the standalone Windows product (the former community edition) is $35.

Many developers are okay with the new pricing structure but the company's plans to force paid upgrades by using expiration time bombs in .NET Reflector v6.6 on May 30th caused outrage among users, including some RDN readers.

Richard summed it up this way up this way:

Ironically, I would have been prepared to pay for v7 - it looks like it has some nice improvements over v6. However, Red Gate's decision to force everybody to pay for the upgrade, even if they don't want it, is nothing short of extortion. It shows a complete lack of respect for their users, which has only been reinforced by their responses in the Reflector v7 forum.

Red Gate Software has finally responded. On Tuesday, the company announced that users of .NET Reflector 6.x versions can now get free perpetual licenses for the tool by upgrading to v6.8 by the end of August.

On April 30, v6.6 users will still get the expiration warning, which they should ignore, according to the company. Current users can get the v6.8 upgrade, which is expected to become available in early May, through the tool's automatic update mechanism. After Reflector is updated, the user will receive a serial key via email that can be used to activate the free license on as many as five machines, according to Red Gate Software.

Express your thoughts on the free licensing and new 6.x upgrade path. Have you downloaded .NET Reflector 7? Is the paid standard edition better than the previous community editions? Express your thoughts below or drop me a line at krichards@1105media.com.

Posted by Kathleen Richards on 04/27/2011 at 12:54 PM2 comments


Software Development in 2011: Spending and Other Trends

Forrester Research surveyed 2,500 developers and 933 technology decision-makers in North America and Europe and reported some interesting findings about the state of application development earlier this month. Survey participants worked in companies of all sizes, from the small and medium business to the large enterprise. Most of the surveys were conducted in Q3 and Q4 2010.

Overall spending and the percentage of the total software budget spent on new development are expected to increase in 2011, according to Forrester Research. "The overall picture is one of development shops in transition, moving from new technologies and updated development frameworks to meet evolving customer demands," wrote analysts in The State of Application Development in Enterprises and SMBs, a report released in mid-April.

Among the findings:

In 2011, enterprise software decision-makers estimate that 49 percent of their software budget will go to operations and maintenance, 25 percent to new software licenses and 26 percent to custom development projects. Spending on ongoing software operations and maintenance has dropped dramatically since 2007, when it represented 67 percent of the total enterprise software budget.

Roughly 71 percent of enterprises (1,000 or more employees) reported using the .NET platform for custom-developed applications, followed by Java at 64 percent, rich interface in the browser (e.g. AJAX, Flash or Flex) at 40 percent, open source frameworks (Spring or Hibernate) at 24 percent and lightweight Web frameworks (Ruby on Rails, Zend, Cake PHP) at 18 percent. Use of the .NET platform across organizations of all sizes is higher in North America at 71 percent, than in Europe at 54 percent.

Adoption of the latest versions of the .NET Framework is picking up with large scale deployments of Windows 7. Of the Visual Studio developers surveyed, 75 percent reported using .NET Framework 3.0 or higher.

About 26 percent of .NET developers reported using Windows Presentation Foundation as their primary client-side development technology, compared to 16 percent in 2009. WinForms remains the dominant client-side framework for deployed apps at 51 percent. Survey results also indicate that 31 percent of Visual Studio developers reported using ADO.NET Entity Framework for data persistence mapping in deployed applications.

Open Web technologies are gaining momentum, according to the Forrester Research. About 8 percent of the developers surveyed said that they were already using HTML5 and related APIs; and 52 percent were planning to use the technology in the next six months to two years. Developer interest in the next 12 months ranked highest for CSS3 at 41 percent, followed by HTML5 audio/video at 26 percent, Web Sockets at 18 percent and Canvas at 17 percent.

Mobile development is on the short list (top five) for most organizations. About 78 percent of the dev organizations surveyed, plan to use in-house developers for mobile development, and expect those developers to support multiple platforms. Of the organizations currently developing mobile apps, 56 percent develop for the Apple iPhone, 50 percent for the Android, 42 percent for Windows Mobile/Windows Phone, 36 percent for the Apple iPad, 19 percent for the Blackberry and 8 percent for Symbian.

According to Forrester Research, one in eight dev organizations has already deployed a production app to the cloud. Cloud adoption varies widely by industry. High tech manufacturing is at the forefront of production deployment with 24 percent, followed by services at 19 percent, media and entertainment at 12 percent, utilities (water, waste, telecom) and financial services at 11 percent. The preferred cloud dev target for Visual Studio developers is Windows Azure at 59 percent, followed by Amazon Elastic Compute Cloud at 12 percent and Google App Engine at 7 percent.

Does the data from Forrester Research mirror what is going in your dev shop? What trends do you see in 2011? Express your thoughts below or drop me a line at krichards@1105media.com.

Posted by Kathleen Richards on 04/26/2011 at 12:54 PM1 comments


Microsoft Rolls Out Cloud Services and Azure Tools

At MIX11 last week Scott Guthrie announced the commercial availability of the Windows Azure AppFabric Caching service, an in-memory distributed application cache for Windows Azure and SQL Azure. The Caching service will be available by the end of April.

Guthrie also announced the commercial availability of the updated AppFabric Access Control, which includes support for Single Sign-On through Active Directory and standard Web identity managers such as Windows Live ID, Google, Yahoo! and Facebook. The production version of AppFabric Access Control is available now.

Both of these AppFabric services have been available as CTPs since PDC10. According to the Windows Azure AppFabric Team blog, Microsoft is offering the commercial services to Azure customers for a promotional period of a few months at no charge.

Microsoft also highlighted the Azure SDK 1.4 Refresh at MIX11. It adds support for a Web Deploy plug-in with a Visual Studio 2010 interface. Web Deploy is an IIS extension meant to simplify Web server and app migrations, synchronization and deployment. Microsoft cautions developers, however, that the Web Deploy plug-in to the Azure SDK is targeted at iterative development and testing scenarios only.

As the Windows Azure Team explained in their blog on Friday when the Azure 1.4 SDK Refresh was made available (again) for download:

Until today, the iterative development process for hosted services has required you to re-package the application and upload it to Windows Azure using either the Management portal or the Service Management API. The Windows Azure SDK 1.4 refresh solves this problem by integrating with the Web Deployment Tool (Web Deploy).

Microsoft's Bill Zack offers a brief walkthrough of Web Deploy in Visual Studio in the Ignition Showcase blog.

Roger Jennings, a consultant and author of the OakLeaf Systems blog, will take a closer look at some of the latest Windows Azure features and tooling in the June cover story of Visual Studio Magazine. He examines Microsoft’s evolving cloud strategy since PDC10. He also discusses platform features and patterns that can help developers adapt existing ASP.NET applications and workloads, and run them quickly and securely in the 2011 commercial Windows Azure platform.

Jennings attended MIX last week and was impressed by James Conard’s demonstration of the upcoming Windows Azure Traffic Manager, which was also announced at the conference, in the "What's New in Windows Azure" breakout session.

Jennings explained his take on the Windows Azure Traffic Manager, which is available in a Community Technology Preview:

Windows Azure Traffic Manager (WATM) lets Windows Azure DevOps staff easily balance application performance across multiple Microsoft data centers in different geographic regions. Users can choose from the following three routing strategies:

  • Performance: route traffic to one region or another based on performance
  • Failover: it the Traffic Manager detects that the service is offline, it will send traffic to the next best available hosted service
  • Round Robin: route traffic alternatively across the hosted services in all regions

The WATM CTP is free but requires an invitation; request access on the Windows Azure Portal, and invitations will be processed based on feature and operational criteria, so you’ll have to be patient.

Express your thoughts on the Windows Azure platform and Microsoft's roll out of new services and tooling. Did you attend MIX11? What's your verdict on the Microsoft cloud? Drop me a line at krichards@1105media.com.

Posted by Kathleen Richards on 04/19/2011 at 12:54 PM2 comments


Building the Case for Cross-Platform Mobile Development in Visual Studio

Guest blogger Krystyna J. Rosicka-Blonska, a software architect at Not Rocket Science Inc., offers her take on reasons to consider cross-platform development of mobile apps in .NET and Visual Studio 2010.

How can .NET developers handle increasing pressure from customers to deliver iPhone, iPad, iPod and Android business applications without losing the paramount productivity that Visual Studio offers? I spent some time recently evaluating the practicality of mobile development with Mono, the open source implementation of the .NET Framework, which is sponsored by Novell, and its extensions, MonoTouch for iOS apps and Mono for Android, then still in beta.

Last week Novell released MonoTouch 4.0 and Mono for Android 1.0 (formerly called MonoDroid). Those product releases, combined with the latest hints from Microsoft about HTML5 tooling coming to Visual Studio, build a strong and compelling case, in my opinion, for moving into cross-platform development of mobile apps with C#, .NET and Visual Studio. Both new releases target Mono 2.10, which offers everything in .NET 4 except Entity Framework, Windows Presentation Foundation, Windows Workflow Foundation and somewhat limited Windows Communication Foundation.

MonoTouch and Mono for Android are lightweight subsets and extensions of the Mono 2.10 framework. This is not very far from what WP7 Silverlight is in relation to .NET 4. On the device specific-side both MonoTouch and Mono for Android support the greatest and latest of their respective platforms: iOS 4.3 and Android 2.2.

Getting started with Mono for Android and Visual Studio is almost as easy as getting started with WP7 development. In addition to the Mono for Android Visual Studio 2010 Plugin, you'll need the Java 1.6 JDK, Android SDK and a configured simulator for target devices. A visual UI designer is not present in the current release but an open source substitute is being offered. In my experience, an XML editor is more than adequate for creating UI layouts for most business applications. I take this approach often with Windows Phone XAML files. To me, Mono for Android is a production ready toolset.

Developing for iOS with MonoTouch requires a Mac OS X computer (Snow Leopard for SDK 4.3). In addition to MonoTouch, you'll need to install Xcode SDK, Mono and MonoDevelop, which is the open source IDE for developing with Mono on the Mac. With a few additional tweaks you can create a functional development environment for building iOS applications in Visual Studio on a Windows box. You'll need to set up a shared development directory on Windows, copy MonoTouch DLLs from the Mac to the Windows machine and generate XML documentation files with mdoc to add Visual Studio IntelliSense support for MonoTouch APIs.

To use the graphical Interface Builder or to run and debug the app in the simulator, or in the device, you'll need to switch to MonoDevelop on the Mac OS X. To crank some code or to refactor, you'll work in Visual Studio on Windows 7, where you'll enjoy all the productivity features and plug-ins (ReSharper and the like). To support switching between MonoDevelop and Visual Studio, you'll need to make a few modifications to project files (see the MonoTouch to Visual Studio project converter for tips).

Neither MonoTouch nor Mono for Android in Visual Studio can match the richness of the Windows Phone ecosystem. But they both offer .NET developers a chance to make a quick move into cross-platform mobile development by lowering the learning curve of the native APIs and by helping to transfer existing skills and knowledge. You can prototype apps quickly as WP7 projects, factor in all business logic into reusable libraries; and factor out all UI and device -specific code into platform-specific projects.

When the HTML5 tooling for Visual Studio becomes a reality, the developer’s life should become even easier. Factor in most of the UI-related code into the HTML5 library and factor out just absolutely necessary UI and device-specific code into WP7, iOS or Android device projects for even greater reusability and maintainability.

Express your thoughts. How can .NET developers handle cross-platform pressure from customers without losing the productivity that coding in Visual Studio offers? Do you consider cross-platform mobile development in C#, .NET and Visual Studio a viable option?

Interested in writing a guest blog? Contact RDN Express editor Kathleen Richards

Posted by Kathleen Richards on 04/12/2011 at 12:54 PM3 comments


Plug-in to Beta: Untangling the Web Around Silverlight 5

Microsoft confirmed on Monday that the Silverlight 5 beta will ship later this month at its MIX 11 conference, April 12-14 in Las Vegas. MIX has traditionally targeted Web developers and designers but last year, Windows Phone 7 and mobile development took center stage.

Scott Guthrie, head of the Microsoft .NET developer platform, announced Silverlight 5 and highlighted some of its new features in early December during a highly anticipated Silverlight Firestarter Event keynote. The Silverlight 5 announcement quelled some of the unrest and uncertainty among developers about the immediate future of the technology after months of mixed messages from Microsoft that played out in the blogosphere and mainstream press. Developers' anxiety started with Microsoft's embrace of HTML5 support in Internet Explorer 9 and was heightened by limited discussion of Silverlight outside of Windows Phone 7 development at PDC10 in October. In December, Guthrie said that a Silverlight 5 beta would ship in the first half of 2011 with the RTW slated for later in the year.

Microsoft appears to be on track with regards to that roadmap but the future of Silverlight remains unclear. Despite assertions from Microsoft that Silverlight is a strategic technology for client apps inside and outside of the browser, apps on devices (Windows Phone and Windows Embedded) and media solutions.

As a technology Silverlight 5 offers many exciting features, according to Microsoft, including better support for databinding and MVVM, WCF RIA Services, text clarity, a Postscript Vector printing API, Pivot support and more out of browser features. The upcoming technology also adds WS-Trust, 3D graphics, support for 64-bit apps and integration with hardware acceleration in IE9.

As an investment, developers aren't so convinced anymore. Many people have had to weigh the pros and cons of using Silverlight for rich client applications inside and out of the browser, especially for business apps that may have to support tablets and devices outside of the Windows environment. In the "rich versus reach" scenario, Microsoft recommends investigating HTML5 for Web apps that need to reach cross-platform to multiple Internet-connected devices. The company is starting to introduce limited HTML5 and related tooling in Expression Web 4, Visual Studio 2010 Service Pack 1 and Visual Studio templates for its new app generation tool WebMatrix.

Perhaps Scott Guthrie and others will shed light on Silverlight development at MIX 11--demos of Silverlight 5 apps are promised--and provide some answers to developers who are evaluating its use in current and future projects. But the big questions probably won't be answered:

Is Silverlight 5 now a Windows only technology that is viewed as a replacement for Windows Presentation Foundation?

Will Silverlight for Windows Phone (which is currently based on Silverlight 3 with a bit of 4) catch up to Silverlight 5, or remain distinct as Silverlight 5 becomes more tied to the Windows platform?

When is Microsoft going to provide more insight into its Windows tablet strategy? With touchscreen interaction on tablets, won't Silverlight and Silverlight for Windows Phone development have commonality beyond .NET, XAML and reusable skill sets?

In an analyst note last week, IDC's Al Hilwa had an interesting take on how Microsoft could grow its market in what he deemed "the battle for the third mobile ecosystem."

According to Hilwa, Microsoft is reaching Windows Phone app milestones at an impressive clip but the device portfolio needs more work, especially with Nokia unlikely to release handsets until late this year. Hilwa wrote:

"What Microsoft is not leveraging right now is the tablet space to add expand the socket count. I would advise them to leverage their PC installed base to transparently run Windows Phone apps directly from the marketplace. It is not an ideal environment for apps designed for a small screen, but there may be enough game players and other interested users in the vast PC installed base to provide the platform with short-term critical mass on top of the growing smartphone base. Some developers may even write PC-specific apps for a higher price-point."

What role will Silverlight play as people increasingly move to Internet-connected devices that run various platforms? Guthrie has asserted that putting a Silverlight runtime on all of those platforms is unrealistic and part of the reason for the shift in Microsoft's strategy.

Even with the release of the Silverlight 5 beta, MIX 11 is likely to focus on Internet Explorer and the next platform preview, Silverlight for Windows Phone and its support of Internet Explorer 9 and HTML5.

If you are confused or worried about Microsoft's strategy, you are not alone. Despite a Silverlight team blog posting on Monday that largely reiterates what has been said about Silverlight and HTML5 since December, the strategy for Silverlight, tablets and even Windows Phone remains unclear and developers are left with some tough decisions.

What's your take on the future of Silverlight and Microsoft's strategy going forward? Express your thoughts below or drop me a line at krichards@1105media.com.

Posted by Kathleen Richards on 04/05/2011 at 12:54 PM6 comments


Regex Code Revisited

A recent DevDisasters column on the politics of peer code review focused on the use of regular expression classes and .NET.

Bob, who worked at a financial software company, sent out a term-validation process for peer review, which was required before the code could be promoted. His code involved a single VB.NET function with an accompanying class definition, which was used to see if at least one of the terms, passed as an array of strings, existed in the second parameter, a document body.

After reviewing the code, his colleague Jed responded with a private e-mail. Jed explained that while Bob's implementation was viable and would surely work, there had to be a better way that didn't involve recreating built-in stack functionality.

Instead of reworking Bob's code, Jed suggested that regex matching might be a better approach and offered up his own solution, which after extensive testing turned out to be magnitudes faster and more stable.

Bob wasn't buying it: "Jed, the term-validation process of CAPBACS is a performance bottleneck that's costing our company thousands in lost sales every month. This change must go in ASAP. While I appreciate your feedback and input, I don't believe that your experience working on the Web places you in a position to critique my work. Thanks!"

The column entitled The Regex Code Review by the The Daily WTF contributor Mark Bowytz got some feedback from readers.

Xavier wrote, "maybe I don't understand the problem statement because I don't like either Bob's or Jed's solution."

He offered a third option and explained:

Bob's solution involves lots of parsing, pushing and popping, which of course is why it's the butt of the joke and I won't spend time on it.

But Jed's solution seems to needlessly invoke regular expressions, when as I read the problem normal substring search is sufficient. It also commits some minor crimes like concatenating immutable strings within a loop, rather than using StringBuilder/StringBuffer, and has some verbose constructions, e.g. If count > 0 return true else return false should be written as Return ( Count > 0). And it needlessly branches to checks for a zero-length array.

Rewritten to be short and simple, Jed's solution, let's call it Jethro's solution, becomes:

Public Function ContainsAtLeastOne(Byval terms() as String, 
   Byval searchText As String) as Boolean
    
    For i as Integer = 0 to terms.length-1 Step 1
 
         If  CultureInfo.CurrentCulture.CompareInfo.IndexOf( 
         searchText, terms(i), 
         CompareOptions.IgnoreCase)  >= 0 Then
             return true
         End If
    Next
 
    Return False
 
End Function

Beyond brevity, this solution is superior to Jed's first cut because it works correctly even if the various strings contain "special" characters which if left unattended would cause the regex engine to misfire. You'll note that I made it case-insensitive without requiring temporary copies of any of the strings -- so we don't have to quibble about how the strings might best be copied, though for sure it's not with the += operator inside a loop. Case-insensitive was a guess, since Bob's version was case-insensitive and Jed's was case-sensitive because Jed forgot to tell regex to ignore case.

All in all, the column reminds me of the saying that when people view their problem as one that can be solved with regular expressions, they now have two problems. Just a joke, I like regular expressions but I don't think they add value for Jed's simple case.

Express your thoughts on regex matching in .NET and the solutions offered. Drop me a line at krichards@1105media.com.

Posted by Kathleen Richards on 03/29/2011 at 12:54 PM2 comments