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 ado.net)
  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))
        {
            conn.Open();

            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 (ASP.net 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

Chapter 2 Life Changes

Each day I feel like I am writing a book. A tome that spans decades and includes so many smaller stories, and interesting characters. If I had to have put the words to paper I would have been unable. First my writing skills are a tad weak, and some things in life just have to be experienced to understand. For the last year I have had the privilege to work for Castle CRM in New York City. The executive team Tony, Bill, Kurt and the staff has been one of the best I have had the pleasure of working with. And meeting the countless customers and been a thrill. The team at Castle is great and it was one of those good sub stories for my ongoing book.

I however decided that it was time for me to ‘stake a claim’ and get my company up and going as a full time endeavour. This was a hard decision for me and took lots of sleepless nights, but in the end the change is for the best and in my opinion a very exciting time.

I have a old school mentality about level of service that I would like to share here and the reason I though that this was the right time to make this jump. Several indicators exist in the global market place that allow a software consultancy company like mine an attractive fit.

  1. In a downturn economy companies are going to look at ways to reduce there costs. Larger consultancy companies have a much higher floor in billing rates due to infrastructure surrounding the consultant.
  2. Distributed development has taken hold. Companies are warming up to the thought that you do not have to have a body in the office to ensure that work is getting done.
  3. Agile Methodologies are also gaining traction. There are many cases of development, or CRM customization where traditional processes are not needed. An individual capable of handling both the Business Role and Technical implementation can reduce the amount of cross talk.
  4. Software is Organic .. back on point 3, success does not come from generating large texts and process documents. Success comes working with the knowledge matter experts and building a product overtime that meets the users need. Having a physical application, or feature set working so the user can validate it determines the success.
  5. Offshore development to India or other development centre does not guarantee success.  Culture, language barriers, political changes and increasing labour costs are some of the issues. To succeed in offshore development process needs to be added at the level of PM’s, BA’s and Architects. There is also a requirement to have a paired PM onsite at the development centre.
  6. Small consultancy jobs. I believe that there are opportunities for the small duration work items. What we do in consultancy is create a relationship on good work and trust and should be thankful for the 4 hour request as well as the 4 month one.
  7. Migration, and new technology shifts. There is a ton of applications that exist built on VB6 or earlier, or Fox Pro.  Microsoft is discontinuing IDE support on VB and Fox Pro is pretty much done. There will be a time when it makes sense to either retire the application or migrate on top of a current technology stack. If this migration becomes more ‘affordable’ it just makes sense.

and Finally,

If you provide great services at a fair price, you make your self available for when the customer needs and you listen there will opportunity to succeed. Never take your relationships with your customers for granted.

All things being equal, this is an exciting time indeed.

This being said, We are open for business and you can locate us at www.bittelligentdev.com

– Mark