SalesLogix .Net Extensions Connection Management

Through the SalesLogix .Net extensions a SLX Application wrapper is provided to the extension. Access into the core functionality is very possible including calling the GetNewConnection() method. I actually believe that this is a bad thing and see no reason why this is here. Some of my reasons;

  1. This method call returns back an unmanaged ADO connection (not
  2. There is a property exposed that provides the actual connection string ISlxApplication.ConnectionString
  3. Using the connectionstring paired with the OleDb database objects is the correct way to go in writing code that is in the .net extensions that needs database access
  4. Is the right thing to do


My feeling is there is still a lot of developers out there that understand SalesLogix scripting very well but not .Net and how to write well partitioned code.

So in a nut shell …  in your code do the following;

private string _connectionString;

    void IRunnable.Initialize(ISlxApplication SlxApplication, ILicenseKeyManager LicenseKeyManager)
        _connectionString = SlxApplication.ConnectionString;

    object IRunnable.Run(object[] Args)
        using (OleDbConnection conn = new OleDbConnection(_connectionString))

            using (OleDbCommand command = conn.CreateCommand())
                command.CommandText = “Select count(*) from Account”;
                int count = (int)command.ExecuteScalar();


– Mark

My first Vista Problem

Recently I decided to move my primary machine over to Vista 64 and support customers through VPC instances. It seems like a pretty good idea with sand boxing each environment and within vista my machine can recognize all of the memory which is a plus.

Last night before shutting down for the night I looked over the updates that vista was reporting that were required and one was available for SQL Server 2005. Since I have not loaded any DB’s on my SQL instances (either 2000 or 2005) I decided to go for it and apply the changes. 

Machine was shut down for the night and when I returned this morning at 6:00 am I was welcomed with a non-working SQL 2000 instance. Going into the SQL enterprise manager and selecting my 2000 instance provided a error message that I need to use the Sql 2005 tools instead … Whaaaat …. Since I had installed the SQL 2005 64 bit instance the Enterprise manager was not available for me to go into. 

So I decided to clean house once again and revert back to the developer version of SQL Server 2005 32 bit (so that I have all of the tools available). Long and short of it, 45 minutes later I had all previous versions of SQL removed and reinstalled and was up and running. Sometimes the cost of debugging is far greater then the cost of a reinstall, at least in this case it was.

– Mark

Hosting Silverlight Locally – What’s the big deal

The other day I was reading a blog from Miguel de Icaza on moonlight and hosting Silverlight application locally as desklet’s (or something like that) and his thoughts that MS should introduce functionality with the Silverlight implementation. My first inclination was ‘Why’. To me it seemed strange to want to want to bring back a reduced function set to the desktop. Given that we as developers have access to the full 3.5 .Net framework with WCF, WPF, and all of the other goodness without having to code around the limitations. The argument seemed strange to me. However given that there is no reason that Silverlight applications cannot be hosted locally given;

1. A local web server can be implemented in the Casinni ( hosting server example)

2. IE browser can be hosted in a web form app. To make it look a little nicer the window can be made borderless

3. Wire up the target URL in the App.config file on the startup that will load in the application

Given that all of this things are do-able today and if you look at MS Mesh you can see some indications of this then the local hosting is no big deal and really is only a matter of customer need.

– Mark

Going Vista

So I finally decided to go and use vista as my primary development environment. It came about because my XP machine was showing some wear and tear and the TFS client was not working correctly after many un-install/reinstall sessions.  At first glance it looks like everything is now set up correctly and really the only aspect of the migration I had difficulty was adding secondary email accounts to my outlook 2007 instance. (The icon for email is under 32 bit Control panel Items so it was not readily visible.

reattaching old .pst files was a non issue and reloading the configuration settings into my favorite RSS reader also was a painless act.

– Mark

Sage MVP Program

Dare I say it. Not to my knowledge does such a program exists, but I was thinking about it today. So much of what we do now is about community and raising  awareness for our products and services. One of the things I really like about Microsoft is their capability of recognizing valuable community based effort outside of its walls. An example of this is when Visual Studio 2008 was in beta I was signed up to the Connections program and did some user testing on the product. In my testing I reported some bugs and interacted with Microsoft. At the end of the process I was sent a small token of appreciation as a thank you that now sits on my desk.

Now Microsoft has a rich MVP program across its product lines. I am not a MVP for Microsoft at this time but the program from my view makes sense. I believe these are the reasons it does

Recognizes Community Contributors

The community in general is the first line in elevating awareness. When you have those individuals that go out of their way to prop up the rest of the community being recognized formally is a very positive and lifting thing. I cannot count the number of posts I have read from proud MS MVP’s announcing their admission to the program

Forces Other Partners to Bring their Game

Being a member of the MVP program should offer some perks. Enough perks that ensures that other individuals would strive to be part of the program. This would enrich the community with more information and voices and should have the trickle effect of displaying to the end users a rich ecosystem of qualified partners.

Allows for MVP Contributions at Events

One of the things that would be positive is that at the Insights or Sage Summit, MVP’s could provide a presentation of material. Showing that deep knowledge for the Sage products exists outside of the internal teams is a really good thing and should be embraced.

Now, MVP enrolment should not be based on revenue dollars, but on community contribution, capability and a nomination process.

– Mark

Building Rome

Coming from a development background where I can just fire up my chosen language tools and build out the utility of the day just became more complex. Since re-starting my company BITtelligent Software I’ve realized that going to C# and writing that application may not be the best thing to always do.

Case in point

All small, no all consulting firms need to track project hours. Understand the utilization of resources and trend the customers, projects and items that make up the revenue generating daily efforts. Tracking the non-revenue generating efforts is also good as one could discover patterns and look for efficiencies to reduce or remove those efforts from the day-to-day. So I could buy a product and make it work for me, I could use Excel, but from a user work flow that may not be as efficient, or I could build out an application.

So last night my mind was churning. I have the tools, I could use all of the new technology in the .net 3.5 stack and I own some great 3rd party development libraries to make a UI that did not look like something raising from the primordial goo.

But then I stopped myself. Why build all this infrastructure for a tool that is not generating revenue but for helping discover inefficiencies and track and bill for actual customer facing work. I have touted that I really believe that CRM applications are application platforms and this requirement fit well into that premise. So to that end, I have decided to build out the project time tracking tools onto of SalesLogix 7.x Web. My goals will include

  1. Creation and association of projects to Accounts
  2. Association of contacts to project roles
  3. Tracking of individual work items
  4. Tracking of non billable items
  5. User Resource Allocation
  6. End of Month, End of Year and Period Reporting
  7. Mobility support though BB, Pocket PC and Smart Phone

At the end of this project I expect to have a running time tracking extension into SalesLogix and documentation on how I proceeded to build out all of the components and layers.

– Mark

Scott Hanselman

I just wanted to say what a great guy Scott Hanselman is. Not only does he have a huge impact in the Microsoft developer community, but he also takes time to answer questions when asked. I am in the market to upgrade my development PC and was looking for some advice on motherboard, etc. that could handle 8 GB of ram. (My local installer could not offer any). I shot him an email, he replied and again warning me to be sure to flash to the latest BIOS. What he did was not a big thing, but was a nice thing.

If you do not know Scott check out his blogs here

Thanks Scott