Monday, March 14, 2005

Techie Toilet Humor

Fellow RD Scott Hanselman and cohort Rory Blyth have created a rather off-beat Tech*Ed 2005 promo video.  I would rate it somewhere between PG and R.  More are on the way, apparently, but check out the first one here.

#    |

SQL/VS 2005 February CTP Code Changes

I've been playing with the February CTP of both Visual Studio 2005 and SQL Server 2005 this weekend.  One of my exercises for the day was trying to get a Visual Studio SQL Server CLR project that I wrote for SQL 2005 Beta 2/VS 2005 Beta 1 to compile.  The project has a stored procedure, a UDT, and a stubbed out function, aggregate and trigger.  I couldn't get this to compile in the VS December CTP, but I was determined to get it to compile in the new February CTP.

I got it to work, though not easily.  I found that some of my code was using constructs that are now deprecated (that was fast!) and I also encountered a few compiler and deployment errors.  In reverse-engineering the latter, I discovered that CLR UDTs and Aggregates now must be implemented as structures, rather than as classes.  With hindsight this makes sense but it's a rather stark change...now (it would appear) you can no longer store "objects" in the database.  Of course, nothing stops you from serializing a .NET object as XML and storing it in an XML column, but that's another story.

Here are a few other changes I "discovered" (I use quotes because these changes are in fact documented on other SQL Server-oriented blogs like Bob Beauchemin's and Wally McClure’s and that's how I worked my way through them):

  • The SqlContext.GetPipe method is replaced by the SqlContext.Pipe property.  This is extremely important because it is through the returned SqlPipe object that you can send data and text back to a client from a CLR stored procedure.
  • Likewise, the SqlContext.GetConnection method is replaced by SqlContext.Connection property
  • The SqlConnection.CreateCommand method is effectively replaced by SqlContext.CreateCommand method (making less necessary the use of the SqlContext.Connection property, described above) 

I also had the darnedest time getting even the stubbed out trigger to deploy.  Since my CLR project points to the AdventureWorks database, I defined the code as a FOR UPDATE trigger on the Production.Product table, using the SqlTrigger attribute and it just wouldn’t work.  As best I can tell, this attribute will not work on a namespaced table!  When I pointed the trigger to the non-namespaced “DatabaseLog” table, everything worked fine.  Since that’s not a table I would want to create my own trigger on, I worked around to the problem.  I removed the SqlTrigger attribute altogether, compiling the code as a plain VB Sub (function in C#), then after deploying the assembly, executed the following T-SQL code:

Create Trigger trgInsertTest

On Production.Product

For Update

As External Name [SSProjTestFebCTP].[SSProjTestFebCTP.Triggers].[trgInsertTest]

 

If anyone knows how to get the SqTrigger attribute to work with a namespaced table, I’d sure like to know.

 

#    |
 Tuesday, March 08, 2005

Project Green: Build vs. Buy

 

Microsoft recently announced a “realignment” (for lack of a better euphemism) of its Project Green and its Microsoft Business Framework (MBF) technology plans.  Project Green is an initiative to foster the gradual union of the disparate product lines of Microsoft’s Business Solutions (MBS) division.  MBF is an initiative around making the technology that will theoretically be common among these products into a rich developer platform, and one that is, in effect, an extension of the .NET Framework.

 

It sounds good, but it’s also taking a long time.  With the benefit of hindsight, it shouldn’t surprise us that four acquired product lines (Great Plains, Solomon, Navision, and Axapta)  can’t just click together like Lego blocks.  Furthermore, users of these products and ISVs that are devoted to them are not content to wait for such a “big bang” initiative to bear fruit before the products get upgraded.

 

So Microsoft has now announced that Project Green will consist of two phases. The first phase, starting now and running through 2007, will involve upgrades to the existing MBS products and some modicum of we might call confederation between them.  The second phase, with deliverables due to start shipping in 2008 (yes, you read that right), will involve a more fundamental unification of the products and deployment of the MBF .NET building blocks (which by then might be called WinFX building blocks).  While forcing Microsoft to eat some crow, this modified strategy and timetable seems much more pragmatic to me.  But it’s also a long time to have to wait, especially in the world of technology, and it’s probably going to be a tough sell.

 

My guess is that Oracle, with its Project Fusion, will face many of the same challenges when it comes to rationalizing the code bases of JD Edwards, PeopleSoft and its own ERP applications.

 

The shakeout we’ve seen in the ERP/CRM space, and the idea of companies consolidating their market position through acquisitions, begs an important question.  In the long term, is it better to build than to buy?  Usually IT shops ask this, but now it’s the large software vendors that must ponder this question.  Is it realistic to buy a product if you really want to just buy its customer base?  Can you shunt these customers over to your own technology easily?  Can you ever really phase out the old stuff without alienating these customers?

 

I do wonder.  Seems like Microsoft’s purchase of Fox Software more than ten years ago provides some evidence to the contrary.  Wasn’t FoxPro supposed to be put out to pasture after version 3?  Aren’t we now at version 9?  The FoxPro customer base is a strong lobby indeed.  Has FoxPro been retrofit into the rest of the Microsoft stack?  While it was part of what was Visual Studio, it’s certainly not part of .NET.  Is this all a bad omen for Project Green?

 

I do hope that Project Green, in some capacity, succeeds.  I do think that, in some measure, it’s feasible, sensible and meets a legitimate need.  The concept of business applications as true development platforms, not based on proprietary languages, and not isolated from mainstream development capabilities and facilities, is a good one.

 

The question is whether this concept is best pursued by buying several products, trying to cherry-pick the best features of each, and combining them with each other and a pre-existing technology stack.  Good products have loyal and enthusiastic customer bases, and acquiring these products means acquiring responsibility for the “care and feeding” of these customers, while trying to create something new for your old customers.  That creates conflicts of interest, frankly.  And it will be interesting to see how Microsoft and Oracle (and Bill and Larry) deal with these conflicts.  I think it will be difficult for both companies.  I also think the outcome will have an impact on how future industry acquisitions are conducted, managed, and have their success measured.

#    |
 Sunday, March 06, 2005

Netscape 8.0: Reliant on Internet Explorer?

 

My RD colleague Venkatarangan mentioned to me that he downloaded the new Mozilla FireFox-based Netscape 8.0 Beta and discovered that it allows users to pick between the Netscape and IE “rendering engines.”

 

Sure enough, if you click on the Site Controls (shield) icon on a specific tab in the browser, you’re offered your choice of Rendering Engines at the bottom of the dialog:

 

 

This is quite convenient, especially because Netscape remembers your preference the next time you visit that particular site. But it’s also quite intriguing, in that Netscape seems to embed the IE browser control in its browser. The irony is striking: if Netscape had succeeded in getting IE ripped out of Windows not so many years ago, its newest browser wouldn’t even run! 

 

By the way, the support for IE is pretty robust.  If IE is selected as your rendering preference, and you click on the Advanced tab in the above dialog, you’ll be able to turn ActiveX support on or off!  But lest you think that AOL/Netscape and Microsoft are making nice, beware of the following warning box that the Netscape guys chose to display when users select IE as their rendering choice:

 

 

Pretty sophomoric, eh?  It’s nice to know some things never change. :-)

 

Looking past Netscape’s industry-politics-hypocrisy, I must admit I like the browser.  Even if the whole UI is quite busy, the tabbed interface is beautifully integrated, the Sidebar, the Multibar and its trays collection are quite handy, and the now requisite pop-up blocker and form-fill/password minder seem good (haven’t played with them much yet though).  I look forward to checking out the integrated RSS functionality.  I’ve read that Netscape 8 is a bit buggy, but in my admittedly cursory review of it I’ve haven’t stumbled across any anomalies yet.

 

Good thing Microsoft decided to come out with an IE7 beta this summer.  I expect major improvements in it (and was briefed via conference call on many of them on Thursday), but beyond playing leap-frog, my hope is that Microsoft never lets the browser go this long without an update again.

#    |
 Tuesday, March 01, 2005

"Windows in the Living Room" Deconstructed


Today, over email, I found myself advising my wife’s friend on a potential Windows XP Media Center Edition (MCE) PC purchase.  In the course of all this, he asked what seemed like a simple technical question, but I realized later than it has wider ramifications.

 

His question was whether an MCE PC could replace his stereo receiver.

 

People familiar with this product line understand that MCE machines can integrate digital music and photos into their living room/home theater setups, and that they have DVR/PVR (TiVo-like) capabilities as well.  People more familiar with the products know that MCE machines can also replace their CD and DVD players, and even their FM tuners, and they can act as CD and DVD recorders.

 

But depending on the model you buy, you can also run stereo speakers, or even surround sound speakers (my HP z545 actually has 7.1 speaker outputs!) directly from the MCE machine.

 

So as long as you’re comfortable dispensing with AM radio, audio cassettes, and VHS (and assuming you’re satisfied with your MCE PC’s digital-analog converter), MCE machines can act as thoroughly integrated AV/digital media devices in a single box.  This makes these devices much more cost-effective than they might at first seem and I think it’s worth considering the fact home entertainment could evolve in this direction. 

 

And that could be a huge opportunity for Microsoft.  It could take them beyond the early adopter gadget freak market into the mainstream of consumer electronics.  And rather than just being an also-ran, Microsoft could have a killer product and a big, new revenue stream.

 

If Microsoft is serious about this market, they need to do a number of things to make the MCE devices have broader appeal.  Here’s a top ten list off the top off my head.  I may post more as I think of them:

 

  • 10. Add Dolby Pro Logic for enhanced sound on 2-channel audio sources.
  • 9. Add support for DVD Audio and/or SA-CD.  The latter would require MS and Sony to make nice…no easy task, but I think BillG wants it to happen.
  • 8. Add DTS decoding capabilities for a better DVD experience (my MCE box has Dolby Digital built in, but I have to use the digital audio output into my AV receiver to get DTS decoding).
  • 7. Add aux A/V inputs so old fogies like me can hook up their VHS decks, tape decks and turntables.
  • 6. Add top-notch digital-analog conversion.
  • 5. Strike OEM deals with audiophile manufacturers.
  • 4. Consider a retail partner program akin to the authorized dealership programs many home entertainment brands have (imagine a Microsoft-certified installer coming to your home to set up your gear).
  • 3. Add true HDTV support, not just through antenna signals, but by offering component video and DVI inputs (I know, I’m pushing it here).
  • 2. Consider, as with the Xbox, building a dedicated software environment for Media Center devices that is not based on Windows XP.  To work in most peoples living rooms, these boxes shouldn’t require the kind of maintenance and patching Windows does.
  • 1. (drum roll…) Realize that the living room is a major front in the battle against Linux.  TiVos are Linux-based (and they work very, very well) and HP has announced that they will introduce new media computers that are Linux-based.  If Microsoft wants to beat Linux, they need to look beyond the data center!
#    |