Whammy …

Sometimes you get that great Idea .. In a nacho induced sleepless night the wheels of innovation were turning.  Of all things to think about, next generation mobile CRM UI and application composition. Now for the proof of concepts 🙂

More Later ..

– Mark

Android Just made my day

One of the biggest pains in developing an application for the BlackBerry was the lack of any form of database engine. To get this working with lots of data through a sync engine very difficult and was the bulk of work to get the mobile platform on the BB in the first place. For me it still is a pain for the difficulty of managing data access with the BB client. However, as I start to explore the Android SDK the first thing that pops out at me is the android.database.sqlite package.

Awesome, it means I do not have to worry about how to implement the data access layer. Given this it seem to be more on parity with the windows mobile SmartPhone implementation then the BlackBerry client.

– Mark

ADO.net Entity Framework

Last night I attended a local user group meeting on then Entity Framework (included in VS 2008 Sp1). The presentation was given by Bruce Johnson of ObjectSharp consulting. I enjoyed the presentation and finished up with the though that this implementation of a ORM solution is more then likely what I will settle on for future development. The defining moment … 3 things for me (1) The SQL generated was very clean and seemed optimized. I have been looking as some NHibernate queries lately and they seem (at least to me) somewhat heavy/ugly. (2) I really like LINQ and the query notations and could not use it directly against the SalesLogix provider (SQLClient only) and since with the Framework the provider/connection string can be provided this limitation has been lifted. I really think this will help bootstrap the development process for me and decrease my time to market . (3) I also quite like the visual designer built into the tool set and it allows the mapping/creation of the context/data objects to be a first class citizen.

I hope to play with this technology more in the future.

– Mark

New Coding Fun

Within my core I am a windows developer. Using the latest and greatest Microsoft technologies to get the job done. I do own a mac but one of the first things I did when I got it was to install Parallels and XP sp that I could continue my regular development gig.

Well over the last little while the mobile world has changed with the introduction of the IPhone and Android coming soon from Google. I have decided to kick the tires on both of these environments and put myself into new and exciting territories. This morning I downloaded the Android SDK and the Eclipse plug-in and had the conical hello world working in 5 minutes. I also downloaded Xcode from apple and started to look at the IDE. When it comes to using the Android SDK I should be fairly OK given it is in Java and I have BlackBerry development experience but the Xcode and iPhone has me a little apprehensive with the whole objective-C thing.

Watch my blog as I go through the learning curve with both of these technologies. I am thinking as a test I will build a SalesLogix client on each of these devices to contrast the effort and given my experience it seems to be a natural fit.

– Mark

Windows 7 to include Multi-Touch

Sometimes there is a technology paradigm that just gets me excited about the possibilities. One of those technologies is multi-touch. Microsoft just announced that this technology will be coming to windows 7 and they demo-ed the technology today. Previously this technology was only going to be available (in the windows world) in Surface. The fact that this technology is going to be a part of 7 means general availability without the high up front costs of a surface only solution.

Ah .. the possibilities ..

– Mark

Secondary Billing Methods

Given the turbulent economy in the US more and more companies will turn to their license agreements, or Support and Maintenance agreements to shore up incoming revenue. These agreements, for a percentage of the original purchase, and new ongoing licenses will give the customer access to the support services and guarantee free upgrades to the next version of the product. When the product is evolving at a nice pace and value add features and fixes are making in into the public stream quickly there is great value to these programs, however one has to question their validity when;

  1. Support is primarily derived from the partner and not the vendor where there seems to be no perceived value for that part of the agreement
  2. For the life of the agreement no discernable additions to the product have been made

If your model is built on the M&S premise then it makes complete sense to not only focus on the new customer acquisition but also existing customer retention and continue to deliver a compelling reason for them to continue to use and pay for the software in both the good and bad times.

– Mark

The 64 Bit Conundrum

The wonderful thing about .net is the ability to target the ‘Any’ CPU allowing your code base to run successfully on either 32 or 64 bit processors. This is a great thing when your application is completely running managed code. However where COM Interop is involved at any level this setting can be problematic. I have seen many programs fail to run because the compile setting is set to Any and the .net component actually hosts the 32 bit COM components. If any components you are using are 32 bit it is best to ensure that this value is explicitly set to x86 setting and application runs as expected.

– Mark

VS 2008 SP1 Released

If your a MS developer you have probably heard that the VS2008 Sp1 beta has been released. One of the items included in the release is the capability of running a .net application from a UNC Share. This will server to fill some of those centralized deployment use cases that popup from time to time.

– Mark

Changing my Tag Line

I decided to change my Tag-Line from ‘Thoughts of a Code Monkey’. After thinking about it for a while it seemed to me that I was minimalizing our capability by using phrasing that eludes to visions of a thoughtless developer pounding on the keys given the ‘Code Monkey’ wording. So to help reduce the confusion of what I or my company does I thought a change was in order.

While at Insights one of the recurring items that would come up often was that I was the ‘Mobile’ guy. Now do not get me wrong, I am proud of the work I have done in the creation of the Sage Mobile product and am so willing to work to help other partners get their customer solutions developed on Sage Mobile, but it is my hope that the general understanding is  I/We (as my company grows) are capable of delivering software solutions wether they be Mobile, Windows or Web.

– Mark

Insights 2008

In a few hours I will be ending my Insights journey this year and heading back to Toronto. While here I had the pleasure to be able to hang out with Ryan Farley whom I consider an incredible asset to the community and just a general all around nice guy. We share a common thread as we are both incredible code geek’s and could talk about lots of cool things.

One of the things that hit me most with the presentations was that the Sage Saleslogix development team are delivering the technologies that we as a partner community are going to need.

SDATA Implementation

I was quite impressed with the SDATA service implementation that allows full CRUD RESTfull access to SalesLogix data. The great thing about this technology is that it is a Sage initiative and not only targeted at the SalesLogix product. New and exciting integrations and 3rd party access will be available.  I already have some Ideas churning on how to user this technology in various scenarios.

Configurable Deployments

Another item mentioned was the capability of creating configurable deployments and then being able to snapshot the deployment. Follow me on this one for a moment;

  1. You create functionality that needs to be tested, so it is deployed out to the test server
  2. You snapshot that deployment which creates an image of all of the required components and stores it external to the designer
  3. New requirements come in and you need to add them to the system. You can continue to work on the base system as you have a ‘snapshot’ of what is on the testing server.
  4. The initial tests pass and need to deploy to production
  5. Select the deployment you want to deploy to and choose to deploy from snapshot


With this functionality you will also have full rollback capabilities. Pretty Cool eh!

UI Enhancements

So the product just looks nicer. Grids are more responsive and the work with the SDATA service to give a more cohesive feel.  I am sure when you see it you will agree, the design team did a great job in making the web client look like top notch. Added is Stackable tabs and depending on how you would like to work you can either have the child tabs that work today or you can drag each tab into the center drop region to have the child smart part always displayed.

Workspaces and visualizations are also new and in the future I will blog about them.

Also a more work has been done to have client parity between the Web and Windows clients. New entities and functionality has been added for orders, Support and other key items.

Development Enhancements

This is usually where I get the most warm and fuzzy, just because of my development background but several noteworthy enhancements have been made.

  1. Easier access to item create wizards (Forms, Entities…)
  2. Drag and Drop of fields onto Quick Forms.
  3. Form interface for developing customizations outside of the smartpart itself including support for Code Complete in AA

When the Product goes into BETA I will discuss more details on the AA enhancements. 

Wrap up

It has been a great time meeting with every one (except Nicolas Galler whom I was hoping to meet). I really look forward to continue the discussions and relationships started here.

– Mark