Substantial .NET, Visual Studio 2008 update in Service Pack 1

Microsoft’s Scott Guthrie has announced .NET 3.5 SP1 and Visual Studio 2008 SP1 beta. Some of the things which caught my eye:

  • Performance: up to 40% faster startup for desktop .NET apps, up to 10% faster ASP.NET.
  • Smaller runtime in .NET “Client profile”. There is a new cut-down runtime for Windows Forms or WPF client apps, bringing the setup down to “only” 26MB. The key point here is the size of the file a user must download and run if she does not already have .NET installed in the right version. Tim Sneath has more details about the new client profile.

A bit of context: the .NET 2.0 runtime is only 22.4MB. This ballooned to 50.3MB for .NET 3.0, and 197MB for .NET 3.5 (check the size of the full package, not the 2.7MB bootstrapper which launches further downloads) – though there are ways to reduce the size of the 197MB monster, which actually includes several versions of the .NET Framework.

  • New vector shape, Printing, and DataRepeater controls for Windows Forms – echoes of old VB controls.
  • A datagrid for WPF – not actually in SP1, but promised shortly afterwards.
  • WPF interop with Direct3D
  • ADO.NET Data Services (formerly Astoria) and Entity Framework

The new SP offers compatibility with SQL Server 2008, and the database product itself is still expected “third quarter” as far as I’m aware. I guess it may go final at the same moment as SP1 for .NET and Visual Studio.

The smaller runtime for .NET desktop apps is welcome, but those in search of a lightweight .NET runtime should look at Silverlight 2.0, which is currently 4.38MB.

Lax bank lets through fraud

A friend is in the habit of checking her online credit card statement most days, just in case.

Recently she noticed an item that made no sense to her. It was a pending payment for several hundred pounds. Pending payments do not show a supplier, just an amount that counts against the credit limit.

The card is operated by John Lewis, a large chain of department stores in the UK (though it is general credit card, not a store card). She called immediately. The customer service representative advised that it was not possible to identify the payment in detail, and to wait until it was properly itemised.

She remained anxious and called back later to request that the card be blocked.

Later that same day, Dell dispatched a computer system to my friend, but not to her address; it had been paid for fraudulently. A couple of days later she discovered that the customer service representative at John Lewis was wrong; it would have been possible to identify the payment. The delivery could have been prevented; or if the powers that be actually wanted to catch the fraudster, they could have intercepted the goods at the moment of delivery. Frustrating.

By coincidence, a similar thing happened to me two years ago. In my case it was the bank that spotted the fraud and contacted me; but I still had to intervene myself to stop the delivery of the goods. It suggests that this type of event is common.

It strikes me that it would be worth pursuing these cases more vigorously, when there is an obvious opportunity to identify the offender, if only to deter others from committing similar crimes.

Technorati tags: ,

Xobni: Outlook users should try this now

Yes, Xobni is brilliant.

Have you ever tried sorting an Outlook inbox by conversation? Of course Outlook goes into a thrash while it prepares the view. Then when it has finished, it does not work right. It has a limited view of what a conversation is, based on the email title. It does not show your sent items, unless you sort them into the same folder. In fact, it is more frustrating than useful, which is why I never use it.

Xobni (the name is inbox reversed) does this right. When you select an email, a panel shows your previous emails from that person, with your replies, which you can read without changing the focus from the message you are attending to. It is based on an index together with some simple analytics. Who else has appeared in the cc list on emails from this person? Where are their messages? What is the sender’s phone number? All of this information is shown automatically; no need to hit confusing menus like Arrange By or Current View.

There’s also a search box; it’s smoother and quicker than Microsoft’s desktop search, also used by Outlook in the latest version. Under the covers lies my favourite desktop database engine: sqlite. I’ve turned off the official Outlook search; anything to speed performance.

Xobni is free right now (it is a beta), so what’s the business model? Still up in the air, apparently. However, given the number of Outlook users, I expect it will be possible to monetize it. Apparently Microsoft tried to buy the company and was refused.

Technorati tags: , , ,

Another DRM trainwreck

A former URGE subscriber tells her story on Valleywag:

I got an email that said Urge was closing and my membership would be transferred to Rhapsody 25 … I was unable to refresh my licenses because Urge had closed … turns out, they never moved the DRM over to their servers because “they couldn’t.” Something about DRM being specific to a server and when the Urge server was shut down all of the licenses were “lost.” … Basically, IMHO, Rhapsody stole $311 of CDs from me, which is what I told them.

This customer got all her money back.

Technorati tags: , ,

Peter Gabriel at Dreamforce Europe

Peter Gabriel was a guest at the Dreamforce Europe conference this morning. He was introduced by CEO Marc Benioff and then interviewed.

Why was he there? He is promoting his work with Witness, which tackles the deniability of human rights abuses by encouraging and enabling victims and observers to publish photos and videos of what is taking place. Apparently the existence of this type of evidence makes a substantial difference, putting pressure on governments or other groups to reform their practices.

The link is that Witness is one of the recipients of funding from the company’s charitable donations.

While this strikes me as the most worthy of causes, I have mixed feelings about corporate flaunting of good deeds at events like this; PR and philanthropy make uncomfortable bedfellows.

Still, I am easily beguiled by Gabriel being a fan of his musical output. He didn’t talk much about music in his interview, except in saying that it is a great cross-cultural bridgebuilder. The other link is to do with pursuing your passions; thirty-five years ago he had a passion for music; now he has a passion for human rights (I’m interpreting something he said about pursuing your dreams).

His delivery was low-key and he looked almost elfin sitting up there on the stage.

Making sense of

The marketing pitch here at DreamForce Europe is wearying at times but it is not complete nonsense. CEO Marc Benioff spent the first hour of his keynote yesterday re-iterating what he has said 1000 times before about “no software”. The “no software” slogan is deceptive, since is a software platform; Benioff deliberately conflates multiple issues, including zero software deployment, cloud availability, and outsourced hardware maintenance.

The core of the model is multi-tenancy. One entity ( takes responsibility for your hardware and application server. Multiple entities (including you) get shared use of those resources, financed by a subscription. Originally this was a single CRM application; now it is called a platform (known as since you can build many types of application on that platform. Is this “software as a service”, or just a web application? It is both, especially since publishes a SOAP API and claims to be the largest users of SOAP in the world.

I asked Adam Gross, VP of developer marketing, whether the platform can also support REST; the answer is not really; you can create your own REST API to some extent, but authentication must be done through SOAP.

Developers can customize Salesforce or write their own applications (which is really the same thing) either by simple configuration, or writing code in APEX, which is a language created especially by and for Salesforce. Under the covers, I understand that Salesforce runs on Java and Oracle, (an upgrade to 10g is due later this year) so your APEX code ends up as Java byte code and queries Oracle; but this is hidden from the developer.

One of the interesting features of is that you can develop entirely online. You can also write APEX code in Eclipse. There is a sandbox facility for testing. Another idea is to create mashups which use web services to combine Salesforce applications with other web applications (just as Salesforce itself does with Google documents).

The next version of the platform, available shortly, includes VisualForce, a tag-based syntax for creating a custom web user interface. VisualForce uses a model – view – controller pattern.

The model has several attractions. It has inherent advantages. For example, hosted applications make more efficient use of hardware than on-premise servers. Another advantage is that rolling out a implementation is easier than introducing something like SAP. There is no hardware aspect to worry about, and the application is usable out of the box. Some of the customers I spoke to talked about failed or arduous implementations of SAP or Siebel systems.

As the customer base grows  – it is currently 41,000 customers and 1.1 million subscribers – it becomes a more attractive target for third party software vendors. You can market a custom Salesforce application through the official AppExchange, or create your own on-demand application and sell it to your own subscribers.

What then are the main reservations? Well, CEO Marc Benioff apparently has not read Chris Anderson’s essay on Free. As a customer, you have to be willing to pay a per-subscriber annual fee for ever. As a third-party vendor, you have to be willing to pay a proportion of your revenue for ever. Custom objects, custom language, custom UI tags: it won’t be easy to move away. This is proprietary lock-in reborn for the Web.

Second, if you use any hosted application platform you lose control. If you find yourself needing some new feature that the platform doesn’t implement, you have to ask nicely and wait in hope, or find some way to implement it using a mash-up or APEX code. If you can’t wrest the performance you want from the platform, you can’t upgrade the hardware or introduce a stored procedure: it is what it is. As an example, I’ve heard users here complain that the security system is insufficiently fine-grained; improvements are coming, but they have to wait.

Third, you have to trust with your data, and trust it to stay available. If you run your business on, and it goes offline, you may as well all go home. Now, arguably the guys at will work as hard or harder than your in-house team to keep systems up and running, and in most cases have more resources to work with, but nevertheless, it is a matter of trust.

Fourth, this is mainly a web application platform, though you can make offline applications or desktop applications using the API. The core user interface is functional rather than attractive, and I saw lots of flashing screens and browser messages saying “waiting for”. VisualForce AJAX components will help; though in practice business users do not care that much provided they get the results they want. Still, it’s a point worth noting; Microsoft argues that “software plus services” delivers a better user experience. The rejoinder is that “software plus services” removes key benefits of the software as a service model.

In the end, it comes down to a business case. It should be possible to sit down and calculate whether a move to for some part of an organization’s IT provision will cost money, or save money. The people I speak to here think it works for them.

Codegear sold to Embarcadero

CodeGear, Borland’s developer tools business, is to be acquired by Embarcadero; though to be more precise, CodeGear is being acquired by the owner of Embarcedero, a private equity company called Thoma Cressey Bravo.

Embarcadero has a range of database and data modeling products, including ER/Studio, EA/Studio, RapidSQL, PowerSQL and DBArtisan.

This is the end of a long road – CodeGear was put up for sale in 2006.

Good news? Insofar as it ends a long period of uncertainty, yes. On the other hand, I sense that many of CodeGear’s customers have valued its renewed focus on software development, as opposed to application lifecycle management, modeling, change management and all those other enterprisey things. Embarcadero just might take it back in that direction. From the press release:

Customers and partners will benefit from Embarcadero’s ability to help fully integrate their application development lifecycle, automate error-prone tasks and dramatically increase their productivity.

Talk of “dramatically increased productivity” is bound to strike fear into the hearts of those who like their dev tools mean and lean.

The problem from a business perspective is that enterprise sales are where the money is, and plain old IDEs and compilers are thoroughly commodotized. Eclipse, NetBeans, Visual Studio Express…

That said, CodeGear still has some interesting products, and increased resources for things like quality control and documentation would do them no harm at all.


Running a business on plus Google Adwords

At the Dreamforce Europe party this evening I took the opportunity to chat to some customers. Most were traditional CRM customers (and seemed happy on the whole), but one person I spoke to used the platform more extensively. His business repairs domestic appliances. The entire booking system runs on Salesforce; and they use a mashup with Google Maps to inform their engineers of upcoming jobs.

I was told that Google Adwords is the most effective advertising they do. They have done some fine-tuning in order to get the best results. If potential customers search for upmarket brands, the wording of the ad might emphasise professionalism, whereas for budget brands the wording might focus on value for money. They analyzed the results and have proved the benefits of these adjustments. They do not use the content network at all, as they only want to target customers actually searching for something related to their business.

Another twist: they like being able to switch off Adwords temporarily when they have too much work.

All of this has been achieved on a low budget, mostly by configuring Salesforce rather than writing code. Interesting.

Technorati tags: , , ,

Marc Benioff: Google deal is aimed at a common enemy

Here at Dreamforce Europe, I asked CEO Marc Benioff about the company’s agreement with Google, in which Salesforce becomes an OEM for Google Apps. We saw this demonstrated in the keynote. You can start a email via  Gmail from within a Salesforce contact. When sent – provided you click the Salesforce send button and not the Gmail send button – the email is added to the contact history. A similar feature lets you attach a Google document to a Salesforce record.

It’s a useful feature; but long term, will and Google be competitors rather than partners? It is a natural question, since both companies are promoting their services as a platform for applications. Salesforce has the Apex programming language, while Google has its App Engine. According to Benioff, App Engine is primarily for Python developers, while is a platform for enterprise applications. This struck me as downplaying Google’s likely ambitions in the enterprise market.

I therefore asked Benioff whether the agreement with Google included any non-compete element, or whether Google might be a future platform competitor. He did not answer my question, but said:

The enemy of my enemy is my friend

The identity of the enemy is unspecified; but given that Benioff used Microsoft .NET as the example of what his platform is supposedly replacing, and that Google docs competes with Microsoft Office, and that Benioff makes constant jibes at the complexity and expense of developing for Windows, I guess we can draw our own conclusions.

For sure, it did little to allay my suspicion that and Google will not not always be as warm towards one another.

As an aside, there are ironies in Benioff’s characterization of .NET. Microsoft launched .NET as a “platform for web services”, which is exactly what has become. Microsoft was a key driver behind the standardization and adoption of SOAP, which is the main protocol in the API.