Archive for October 10th, 2006

Apex (Salesforce API 2.0) is announced

October 10, 2006

Details for the much anticipated Salesforce API 2.0 have been released and I will have to say that my first impression is that there is a whole lot of marketing going into this. As an example they have registered a new 1-800 number (didn’t all 1800 numbers become extinct at one point) – 1-800-NO-SOFTWARE.

The number gives away the whole idea behind Apex (afore mentioned API upgrade). General idea is that a subscription to Salesforce allows all out of the box capabilities (Account, Contact, Lead’s etc. management) of the standard CMS, with an extremely flexible architecture which allows unique custom application development. The tag line is “Develop. On Demand.” I have some mixed opinions about this but before I weigh in let me talk a bit about some of the features it does have:

Java based development interface
Essentially, what they have done is taken the application tier and opened it up to interact with Server Side applications that you build. If you are familiar with the current Java API, they look very similar. The difference being that you can:

1.) Bind business logic coding to almost any user interaction – buttons, views, forms, reports etc…
2.) Build triggers to update data to enhance the Business Process Flow (something that was very lacking before this).
3.) Expose interaction as Web services
4.) Completely write compile and execute code in a “test” environment without the cost of hardware/software licenses (this is the marketing side)

Some of the extension coding that you can do (outside of the previous SOQL language and Salesforce Object instantiation) now is incredible, especially for this individuals that use or have built custom objects. For instance now you can:

Create a custom object and allow content that is updated in that custom object directly modify content located in standard Salesforce Object. In our case, we have built a custom Statement of Work object that we bound to the Projects custom object. When a Statement of Work is created it would be nice to update the Project’s Statement of Work delivery date. Or, if you have a Time Entry objects against a Statement of Work object, each Time Entry can update the Estimated Statement of Work and Project Tasks Custom Object.

All tasks that you would do in normal application development.

Questions currently unanswered
What about security? Since users will essentially be loading scripts to a server that is technically available to everyone, how do we prevent people from uploading miscellaneous scripts to extract data from other accounts?

What about the interface? It would seem likely that this would fit nicely into the Eclipse platform. A plugin that allows a developer to enter their SForce username and password and develop “locally” with no startup hardware/software costs.

What about .NET developers? Not that I care too much, but the syntax for this API is based on the constructs of Java which means users that have currently built applications that integrate with Salesforce and are written in .NET will be missing out (unless they want to learn another language).

What about access for Professional level accounts? Currently the extensible API calls for Salesforce are only available for Enterprise customers. Salesforce would have a larger audience if they opened this API up to Professional Level subscribers.

In retrospect?
Is this really that new of an idea? What if you compare this to say ColdFusion (or the like). ColdFusion applications can be pre-compiled server side objects that interact with data. What about the Building Blocks API in Blackboard where you have a core set of data objects, interface objects and global methods for data manipulation. Is Salesforce building something revolutionary, or are they putting a lot of marketing behind a few ideas that have been around before but that nobody has positioned correctly for proper public acceptance?

powered by performancing firefox

Add-Ons for IE vs. Extensions/Themes/Add-Ons for Firefox

October 10, 2006

Before we begin we need to be clear on the definition of on Ad-on.

Ad-on’s ARE:
1.) Applications that offer time saving benifts and enhance your online experiene
2.)
Applications that are integrated directly in the browser (Developer’s
tool kit, Flickr upload tool, Sage RSS Reader, GMail account tracker,
IE View etc..)

Ad-on’s are NOT:
1.) Links to external applications from within the browser
2.)
Applications that add completly no value or have no clear definition of
purpose (this definately comes from both sides of the camp – IE:
Developers Toolbar – Firefox: US Department of Homeland Insecurity
Idiocy Level)

General
Ad-on’s are becoming a hot topic especially with the impending launch of IE 7 (which appears to be next month). Currently there are 1800+ Add-on’s available for the Firefox browser and approximately 435 available for IE7 (which is not to bad considering the browser is still in beta). The idea behind the growth of Ad-on’s is pretty simple – improve the experience of the online user. We are constanly on-line working in or around our browser. Whether we are searching for information on the web (hopefully work related) or we are using the Web to access information from various Web based applications. The Web browser is our window into the world of information.

A while ago the notion of the “Web browser as the desktop” became a popular topic of discussion and quite frankly it makes a lot of sense. For instance, right now I have at my finger tips (i.e. without leaving Firefox), the ability to check my email, look at all of my RSS feeds, post to my blog, upload pictures and find any information I want. Although I have other tools opened (One Note, Eclipse, Outlook and IE 7 – doing some comaprisons), a majority of what I need is all right here. Why would I leave.

Sophistication
The main difference between the IE7 and Firefox “tools” are the level of sophistication. Firefox has been at it longer and the developer’s community has responded. Additionally, the API’s available for the Firefox browser require “lite” programming knowledge (you don’t need to know Com Objects, Java Objects or true Object Oriented programming). I will admit, there is a lot available to you in Javascript that has an Object oriented feel (and I may be bias because I like JavaScript so much) but it seems easier to understand.

With the launch of the Windows RSS Platform, Windows and IE7 are starting to tip the scales a bit. You can details here, but the general idea is that your OS would manage a Common Feeds List. Firefox Add-ons currently can post your RSS feeds (and bookmarks) to various placess, but there is no central repository. One that I feel is important. While this Platform is interesting, the only application that is currently taking advantage of this is the “Desktop Sync” application which is not truly an Ad-on since it breaks rule number one of the Ad-on’s definition.

What is interesting though is the concept of the Platform. What I could envision are many RSS applications tied into the browser as Ad-on’s that utilize this common-feeds architecture.

Accessing the outside from within
The idea of updating a hosted Web application from the browser is not totally new. Firefox has allowed developers to build unique tools which keep users up to date with their information stored in various applications. For instance, there are a few GMail extensions available in Firefox which will notify you when a new email arrives and will even show you a snippet of that email. I am actually a bit surprised that non one has written an extension which allows for easy uploads of RSS feeds to NewsGator (would be really nice if it also notified you when a feed is updated).

IE Addons – http://www.ieaddons.com/default.aspx?cid=4&scid=79 (also available from within the IE 7 browser)
Firefox Addons – https://addons.mozilla.org/ are also available within the browser.

The edge clearly goes to Firefox here and that goes even without talking about Themes (Azerty III for me currently).

powered by performancing firefox