Sunday, January 11, 2009

Connecting to the Business Objects CMS with .NET

Here is some sample code to connect to the Business Objects CMS (Central Management Server) with .NET

Please note that the QueryBuilder SQL will return a maximum of 1000 records even if there are more to be returned. So logic should be included that if 1000 sorted records are returned, you should requery to retrieve missed records or until a recordset with less than 1000 returned records occurs.

This sample is a .NET 3.5 application.

Create a simple project and add references to

Sample Code:

using System;
using CrystalDecisions.Enterprise;

namespace ConsoleAConnection

class Program
static void Main(string[] args)
string query = "Select SI_ID,SI_KIND,SI_NAME,SI_PARENT_FOLDER FROM CI_INFOOBJECTS WHERE SI_KIND IN ('Folder','FavoritesFolder')";

InfoObjects infoObjects = getCMCConnection().Query(query);
if (infoObjects.Count > 0)
foreach (InfoObject infoObject in infoObjects)
string siId = "" + infoObject.Properties["SI_ID"] + ":" + infoObject.Properties.Count;
Console.WriteLine("SI_ID=" + siId);
Console.WriteLine("No results found for " + query);

static InfoStore getCMCConnection()
SessionMgr sessionMgr = new SessionMgr();
EnterpriseSession enterpriseSession = sessionMgr.Logon("UserName", "Password", "ServerName", "secEnterprise");
EnterpriseService enterpriseService = enterpriseSession.GetService("InfoStore");
InfoStore infoStore = new InfoStore(enterpriseService);
return infoStore;

Thursday, January 8, 2009

Software Estimation by Steve McConnell

I just finished "Software Estimation" by Steve McConnell. This is a good book for covering exactly what the title indicates.

Steve McConnell is a well known author of software development books including "Code Complete".

This book starts with the difficulties experienced in software estimation and how hard it is indeed.

He then proceeds to cover approaches to develop more accurate estimates.

Techniques which include:

- counting

- calibration with historical data

- expert judgment

- decomposition and recomposition

- estimatino by analogy

- proxy-based estimates

Coverage of expert judgment in groups, software estimation tools, handling multiple approaches, and standardizing estimating procedures. The latter half of the book covers special issues in estimating.

All in all a good book to provide a thorough covering of software estimation.

Wednesday, January 7, 2009

ASP .NET 3.5 - Application Architecture and Design

ASP .NET 3.5 - Application Architecture and Design by Vivek Thakur is a great overview of architecture principles in the .NET 3.5 framework.
This book is available at

Overview of major issues in application architecture with a perspective in regards to .NET 3.5.
Detailed explanation of the ASP.NET MVC framework!
Lots of screen shots and code samples to document the architecture principles and how to apply them in .NET 3.5. Very straightforward review for anyone looking to get basic architecture principles in the .NET 3.5 framework.

Chapter 1: Introduction to Architecture and Design
Lays out the importance of architecture and design and the associated definitions.Outlining the difference between tiers(physical separation) and layers(logical separation).
Chapter 2: 1-Tier 1-Layer Architecture in ASP.NET
Overview of simplest ASP applications: aspx files with code-behind
Chapter 3: ER Diagrams, Domain Model, and N-Layer Architecture
Review of ER graphical notation for data representationsReview of Domain Model notation with a UML reviewReview of 3 Layer Architecture (Data Access Layer, Business Layer, UI Layer)
Chapter 4: N-Tier Architecture
Reasons for N-Tier(Performance, Scalability, Reusability, Loose Coupling, better Plug and Play)5 Tier approach - Presentation, UI, Business, Data access, and Data tiers
Chapter 5: Model View Controller
Review of the Page Controller Pattern in ASP .NET(old style ASP .NET) and its problemsReview of the MVC Design or Model View Controller Detailed explanation of the ASP.NET MVC framework
Chapter 6: Design Patterns
Some review of useful design patterns as laid out by the "Gang of Four"Singleton, Factory, etc.
Chapter 7:SOA and WCF
Review of Service Oriented Architecture and Windows Communication FoundationSOA: XML, building and consuming Web ServicesWCF: the bundling of everything required for web services including performance gains
Chapter 8: Database Design
Issues with designing, modelling with Visio, and creation of databases
Chapter 9: Localization
Making your .NET application usable in multiple languages