Monday, December 29, 2008

Windows Live Sky Drive

As part of series of cloud computing articles, i want to give a live example of cloud computing i.e Sky drive. Of course this is just tip of ice burg what cloud computing can do.

Windows Sky drive is part of the windows live initiatives. It offers you 25 GB free space.
The Sky Drive files can save near about 1,000 songs or 30,000 digital photos. Sky Drive allows up to 30 folders and any number of sub-folders to be created by its members. It was first introduced in August 2007. It is absolutely free and reliable. Look and feel will give you explorer like view.

All you need to have is MSN or Hotmail id to log in and start using. You need not install anything also.

So why cant we make use of our rightful 25GB space over Internet :-)

once you upload your content you will see url as below

Happy learning !!!!

Sunday, December 7, 2008

Tips and Tricks of Dotnet - III

This is the third in sequence, refer to the below link for earlier Tips and Tricks of Dotnet

Batch updates for Dataset in 2.0 increased the performance. Earlier DS used to do round trip for each updated row in dataset. From 2.0 onwards, datatables also have serialization.

Avoid openxml method on large xml documents, this method tries to open in DOM model, if the document is large it will use memory and resources.

Use XMLTextreader for large documents.

Security in Dotnet:

Refer to the ASP.NET security diagram below.

ASP.NET security settings are by default stored in web.config or machine.config.

In IIS message digest authentication password is sent in MD5 encryption key and value is mapped with password list stored on server. This is better than IIS basic authentication. For any of these two options it is suggested to use SSL, though it slows down the performance.
Check the below IIS authentication comparison table. Dont confuse them with security options windows, forms, passport.

These are IIS Security options in general.
Database Tuning:
Higher throughput and lower response time are the criteria of better performance.
Response time = service time + wait time
Throughput = Amount of work / Amount of Time
DataWarehouse projects response time is more important
OLTP projects thoughput (concurrency) is more important.
Aggregate functinos in DB are performance blocks, if there are high number of rows or unidexed data.
DataWarehouse projects response time is more importantOLTP projects thoughput (concurrency) is more important.

If there are more insert, update and delete then throughput need to be considered, if there are more select then response time need to be measured.

Health Insurance Domain in a Nutshell - II

Refer to the below article for Health Insurance Domain in a Nutshell

Medicare: person above 65 and other with certain disabilities.

Medicaid: Certain categories of medically needy.

StateWorkersCompensationProgram: workers suffered at work

Military Programs: active service, veterans and the dependents of both.

109 Life insurance companies and 51 property & Casualty insurance companies operating out of Canada. 105K people working in Insurance domain in Canada. Assets of Canadian Insurance companies is above 227 Billion $.

Canada has higher Mutual Insurance companies proportion to Stock companies when compared to US.

Mutual companies are difficult to take over, so Canada encouraged these type of companies to avoid take over from foreign companies.

Deductibles: the first X $ amount paid by insurer. Two kinds of deductible All cause deductibles, per cause deductibles.Corridor Deductibles: first deductibles, then basic coverage and then supplement coverage in order.

Coinsurance: EX:80% by insurance company, 20% by insurer.
Deductibles, coinsurance, co payment (fixed $ amount for every visit.)

Two types of prescription drug plan: Reimbursement, service plan (pays only copay amount shop will claim from insurance company.)

Happy Learning !!!

Monday, November 24, 2008

Dotnet Enterprise Library

Enterprise Library has 8 parts namely,Data Access Application blocks, caching application blocks, logging application blocks, Exception handling application blocks, security application blocks, cryptography application block, validation application block, policy injection application block.

It is not a pattern, it is not part of dot net framework, Its not an application framework. This is not a Microsoft framework, it is community project with source code.

Choose DataAccessApplicationBlocks when DB operations are standard and doesn't need any customization, need an easy way to switch between databases, portable code for multiple data sources.

Exception shielding in Exception Blocks helps prevent web service from disclosing internal information in case of errors.

Download latest enterprise library from below location.

You can use more then one application blocks with combination.

you can find all the releases of enterprise library in the below link

Consistency, easy of use, extensibility and integration are the main goal features of Enterprise Libraries.

Refer to below excellent article on application blocks, consider reading this before implementing.

Happy Learning !!!

Tips and Tricks of Dotnet II

Continued from part I, refer to part I below....

The TraceSwitch class provides a switch that allows you to control tracing and debugging output of a .Net application without recompiling the code. You can use the switch to change trace options simply by using the config file.

The invariant culture is a culture-neutral storage format.

Web user controls can only be shared by copying their files into each application that you want to use the control in.

A web garden is basically just a single computer with multiple processors. The advantage of a web garden is that you can add additional processors to this single computer to boost the power and speed of your web application.

DataList is the only one which allows you to display two columns.

The FileStream class allows for byte-by-byte input or output

The StandardTab property should be set to True to move the focus to the next control in the tab order rather than move focus to the next cell in the DataGridView

Use a TableLayoutPanel and create the desired rows and columns. It can change dynamically as the application environment changes hence adjusting the controls contained within it.

Sunday, November 23, 2008

Tips and Tricks of Dotnet

If you are implementing atleast 10 of the below tricks / tips in your code, you are giving performance oriented to your client. This is a collection from my previous experience or my reading on internet. namespace has the objects useful for zipping and unzipping files in .net 2.0 onwards. Sharpzip is also a opensource option.

To remove the dupliacates in an arraylist simply copy it into hashset (hashes eliminate duplicates) and copy that back into arraylist.

Databinder.eval has same syntax for and, it might be a performance block because it uses runtime reflection to convert the object (int,object,byte,string) into a string. Better use Databinder.datarow[i]......

using the WebRequest class, you can screen scrape web pages, and pass the resulting Html string to the MailMessage object. Mail will look like your html page.

How many TPS (Transactions Per Second) you want to your application to handle.

Perfromance Objectives are Throughput, Response time, Resource utilization, work load (data , users, transactions)

Coupling cohesion, communication, concurrency, resource, caching, state management, Datastructures and algorithms.

If your image has fewere colors use GIF format, if your image has more colors use JPEG.

Arraylist, sortedlist, Namedvalue collection --->sort

Hashtable, stringdictionary, listdictionary ---> search

Don't use Array list for storing strings, use it for custom objects and where you have insert and delete operations frequently.

use string collection to store strings. Use hash table for frequently queried data, with key pair combination. Use hybrid Dictionary for frequently queried data , low size.

use queue for FIFO kind of purposes and stack for LIFO kind of purposes. Use Sorted list for fast object retrieval (don't use it for large amount of data). In case of large data use array list and use sort method.

Hybrid Dictionary uses List dictionary for small size data and uses hash table for large data. List dictionary is useful for 10 or less key value players.

Use for loop instead of Foreach , because of enumeration in foreach loop performance will be hit.

StringCollection is strongly typed arraylist of strings.

StringDictionary is a hash table with the key strongly typed to be a string rather than an object.

Early binding allows the compiler to identify the specific type required and perform optimizations that
are used at run time. Late binding defers the type identification process until run time and requires
extra processing instructions to allow type identification and initialization. (TypeOf, GetType, and IsInstanceOfType)

each time you are using string concatination, new string is created. so use string builder instead of string if you want to do concatination.

always use page.ispostback == false for first time initializations

Use server.transfer than response.redirect, ensure debug is set to false, clientside validations

Don't mix multiple languages in the same directory.

pages having server control, datagrid will increase load of viewstate. Avoid server controls when not needed, like no need to retain across postbacks (labels), readonly data.

Use caching on page, it uses LRU(least recently used) algo to clear the content. you can expire the cache with timer also. put infrequently modified data like headers in cache.

If you want to store user specific data use session instead of caching.

Use cookies, hiddencontrol, querystring for lightweight data and not needed much security.

Response.write, string builder, htmltextwriter are good for performance.

From 2.0 onwards you can take advantage of 64 bit servers.

use for sql 7.0 onwards (as it uses TDS - Tabular Data Stream protocol). for sqlserver 6.5

when using datareader specify commandbehaviour.close connection.

use executenonquery for commands that doesnt return any data. dont use select *, specify columns you need. Set NO COUNT ON in stored proc.

Friday, November 21, 2008

Outlook Add - in with Dotnet

Do you know we have separate tool kit in Visual studio 2008 for creating Add-ins for outlook, Word , Excel etc., You can use it for specific business flows as well.

Let me explain how it will be useful in a typical business scenario. You can develop add-in called Purchase Order Processor to your outlook.

Whenever some one want to place a purchase Order, he will clik on the add-in it will open a windows form. He will enter all the details and it will submit the form for the approver with a mail. Once approver opens the mail he will get the details of that order, he can approver or Deny it. If he approves the order mail request will be sent to vendor, if he denys the order mail will be sent to requester.

You can achieve all functionalities like connecting to Database, reports, download of excel, pdf's. In short you can automize business workflow simply from outlook.
Lets see the technically options for implementation.

1. Developing COM add in VBA: In outlook go to Tools --> Forms --> Design Form --> select library from Look in. You have variety of standard library's from which you can select. You have to write code in VBA.
Quick development.
Old fashioned development. Customization, scalability is limited.

2. Developing using Visual Studio Tools for Office (VSTO): You can develop using or add-in for Outlook for 2003 or 2007. If you have visual studio 2005, you have to download VSTO from here:
If you are using Visual Studio 2008 it comes in built in.

Advantage of VSTO option:
A solution structure that includes both the add-in project itself and a setup project to ease deployment
Simple Start up and Shutdown events where developers start adding their code
A run time component
An add-in loader that creates the add-In's App Domain and handles security and some other add-in essentials
Not to mention better debugging and error handling.

You can select "Extensibility Projects" in "Other projects" in Visual Studio templates. You have to select add-in project specific for word, excel, outlook etc.,
You can handle all events in the IDTExtensibility2 class, Like On add-in start, update, on add-in connection, disconnection, close etc.,

You can implement windows form to create and submit custom Forms.

For deployment you can make use of click once deployment by Microsoft or simply copy the DLL and manifest to user computer office add-In's folder. When he starts the application (word, excel, outlook ) the add-in will be automatically detected.
Happy Learning.

Wednesday, November 12, 2008

Software Productivity, Quality and Innovations

--This article is compilation from different source embedded with my views.--

In old days programs are written in C and C++ (you can imagine how hard it must be) of course for controlling systems, Defense applications and automatic logic inside tools and appliances. Now the purpose of software crawled to new heights. Most of the development is happening on WEB or client applications. We have very good editors for programming languages, good tools for testing, source control, deployment etc., still Quality and Productivity in Software industry is a question. WHY ???

Besides maintaining quality and productivity how many major innovations happened in Software. Few of the impressive innovations are email, search engine, messengers, social community sites, ecommerce, TV on Internet, etc.,
Microsoft is working closely with a innovative firm in India to develop software for a robot, which can unharvest coconut from coconut trees. Research is going on. If it succeeds it will be a millions of dollars business and raises curtain for billions of innovations.
I strongly believe Universities are the places where the seed of innovation starts. we need to encourage R&D at universities especially in India. Though 30%+ employees in Microsoft are Indians no Indian entrepreneur was able to capture this market !!!

How many options are available at different stages software development:
the software industry has more than 600 programming languages in use. We
have more than 40 different methods of designing applications. We have 38 different
kinds of size metrics. We have some 26 named development methods. There are about
25 international standards that affect software. There are at least 18 different kinds of
testing, and four different kinds of review and inspection method.

How many methodologies Software has:
Agile development, the capability maturity model (CMM), the
capability maturity model integration (CMMI), CASE tools, clean-room development,
CRYSTAL development approach, dynamic system development method (DSDM),
extreme programming (XP), incremental development, ISO 9000-9004 standards,
iterative development, object-oriented development, pattern-based development, personal
software process (PSP), rapid application development (RAD), reusability, SCRUM, six sigma
for software, spiral development, team structured process (TSP), total quality
management (TQM), and the unified modeling language (UML).

Software Engineering Issues that have stayed constant over years
Initial requirements are seldom more than 50% complete.
Requirements grow at about 2% per calendar month during development.
About 20% of initial requirements are delayed until a second release.
Finding and fixing bugs is the most expensive software activity.
Creating paper documents is the second most expensive software activity.
Coding is the third most expensive software activity.
Meetings and discussions are the fourth most expensive activity.
Most forms of testing are less than 30% efficient in finding bugs.
Most forms of testing touch less than 50% of the code being tested.
There are more defects in requirements and design than in source code.
There are more defects in test cases than in the software itself.
Defects in requirements, design, and code average 5.0 per function point.
Total defect removal efficiency before release averages only about 85%.
About 15% of software defects are delivered to customers.
About 5% of modules in applications will contain 50% of all defects.
About 7% of all defect repairs will accidentally inject new defects.
About 5% of software outsource contracts end up in litigation.
About 35% of projects > 10,000 function points will be cancelled.
About 50% of projects > 10,000 function points will be one year late.
Development costs about $1200 per function point in the U.S.
Maintenance costs about $150 per function point per calendar year.
After delivery applications grow at about 7% per calendar year during use.
Programmers need about 10 days of annual training to stay current.

Hope you had fun !!!

Thursday, November 6, 2008

SOA through WCF in Dotnet

SOA came into picture in late 1990's and early 2000's. Microsoft also introduced this in their 1.1 dot net framework through webservices, which was released in 2001. Before this companies were using Vitria middle ware. Other ways of implementing SOA are Remoting, DCOM, MSMQ etc.,

After all this there is a need to write code irrespective of implementation details whether it is webservice, DCOM, MSMQ or Remoting. This requirement is the birth of WCF. Microsfot released WCF in Fall 2006 as part of Dotnet Framework 3.0.

WCF supposed to work interoperably irrespective of enterprise servers.

you can find some nice tips here as well.

SOA gives us new option to refactor the existing architecture aliging to todays needs and promising tomorrow's scalability. Reusability makes the SOA great, it is one of the core pillar. The core factors of WCF are simple, secure, reliable, interoperable.

WCF with combination of WF (Workflow Foundation) promise to bridge the gap between technology and business. WF defines the business workflow while WCF promises scalable mode to the businss using the existing legacy systems for tomorrow needs.

You will be building WCF in .net 3.0 by selecting new template from visual studio which WCF template.
After adding "Hello World" kind of program, publish the site using Tools menu.
Add Service reference (this is 3rd option after "add reference" and "web reference") by selecting the SVC extention file url.

If you would like to have code and want to explore all the functionalities check the workshopt links below

WCF is more than a web service in .net, it can handle other than HTTP interfaces, which web service can not do. WCF can handle MSMQ, TCP interface inputs as well.

Please keep in mind SOA will never be as quick as client application or database solution.

Happy Learning.......

Monday, November 3, 2008

Microsoft Solution Framework

While i was going through some of the articles on Microsoft methodologies. I found this new buzz word Microsoft Solution Framework.

This is a solution framework from Microsoft, targets a different approach than regular software methodologies and enables rapid applicaiton development.
Generally S/W development is basing on Water fall model or spiral model. MSF (Microsft Solution Framework) tried to get you best of both the worlds.

The main elements of solution are as below

Selected technologies and custom code

Give a look at the diagramatic representation of this methodology.

This model explains the relationship between key elements of S/W deliverables namely Resources, Schedule and Feature. This is named as Trade off Triangle. You can fix one of these three and you can adust the other two components as per your convenience.

It provides people and process guidance from Team perspective. So as you can expect it is part of MSTS. It brings in Milestone based approach as well.

Find more details about this at the below article.

If you are looking for a text book definition, here it is from Wikipedia. You can find the interesting version history also here.

So following atleast one methodology will mitigate the risk of "COWBOY CODING" (Team member do whatever they feel is right)

Happy Learning !!!

Tuesday, October 28, 2008

Microsoft User Group Meeting

Hi Friends, this article shares my experience with Microsoft user group meeting.

I attended my First Microsoft meeting here in Heartford, speaker was CTO of Tallan systems Mario. He is an expert in Biztalk and the interesting fact is, he is part of Microsoft Virtual Tech Specialists.

see his profile below.

He gave good overview of Biztalk, usage, applicability and .net integration. Believe me coding is on his finger tips.

Some points i learned in the meeting.

Microsoft changed its logo recently. Interesting right!!! check the new logo here

In biztalk you can integrate with all other applications through concept of adapters.
Basically, it is competition for IBM message queue server
we have some cool features like single sign on, WCF adapter SDK etc.,
We can define our own adapters by defining Source and destination XSD's, pipeline, map, functiods. Don't get scared with these words, they are really simple with Biztalk editor, which looks similar to visual studio editor.
License is around 30K for Enterprise edition it seems.
There is a concept called Orchestration, dont ask me what it is :-) i may have to dive deep to understand it more clearly.

He explained a realworld example where it can be useful and then coded a simple application to get the feel of the biztalk development.

The most interesting and stunning part of it is , the next version is again pointing to Oslo (microsof model based development - yet to release) and Cloud computing.

Microsoft is counting big on these two. It would be separate article if i start writing about Oslo, Cloud Computing and can find it soon in my blog though.......

Dont worry.....Thirst for knowledge never killed any body in the history......

Tuesday, October 21, 2008

Install / Uninstall / start / stop Windows Service Programmatically

Necessity is mother of inventions one of my requirements turned out to be a blog entry again........

How to Install / Uninstall / start / stop Windows Service Programmatically
Sometimes you may want to install / Uninstall a Windows Service programmatically, but the target machine does not have InstallUtil.exe.

Install / Unistall:

To install/Uninstall a Windows Service programmatically, you can build an application to install that Windows Service.

Add a reference to System.Configuration.Install

Use this code: public static void InstallService(string ExeFilename)
System.Configuration.Install.AssemblyInstaller Installer = new System.Configuration.Install.AssemblyInstaller(ExeFilename);
Installer.UseNewContext = true;
To uninstall:public static void UninstallService(string ExeFilename)
System.Configuration.Install.AssemblyInstaller Installer = new System.Configuration.Install.AssemblyInstaller(ExeFilename);
Installer.UseNewContext = true;

Check for the service's startup type if disable. Keep it either Automatic or Manual.

Start and Stop of service

using System.ServiceProcess;
ServiceController controller = new ServiceController();
controller.MachineName = ".";
controller.ServiceName = "IISADMIN";
string status = controller.Status.ToString();
// Stop the servicecontroller.Stop();
// Start the servicecontroller.Start();

Happy Coding!!!!!

Windows HotFixes and updates, How they work???

I will try to keep this blog simple and precise.

Updates and Security Updates: They frequently contain security fixes. These are also known as GDR, General Distribution Release.
Hotfixes: Individual customer reported bugs will be fixed. These are also known as LDR, Limited Distribution Release.
Service Pack: The service pack is a major update in the life of an OS.


As described earlier GDR is General Distribution Release and LDR is Limited Distribution Release.

the below diagram explains how the flow work for each Service Pack.

Monday, October 20, 2008

MVC Pattern in ASP.NET

All of us are famous with MVC pattern. Model, View and Controller framework is in now introduced in ASP.NET. Please remember its not a replacement for ASP.NET, its an alternative only.

The major advantage with this is Testability. It gives boost to test driven approach. You can use NUnit to do the testing.

See how you can implement ASP.NET in MVC pattern
Model: datagrid
View: aspx, ascx or windows UI
Control: code behind.

In the ASP.NET Web Forms model, the input goes into the page (the View ASP.NET page), and the view is responsible for both handling the input and generating the output. When it comes to MVC, on the other hand, the responsibilities are separated.

In MVC model ASP.NET page that is VIEW is responsible for generation of output. Model (ex: datagrid) will handle the Input and controller (ASP.NET code behind) controls the business logic.
you can view half an hour video on MVC building from start to end at below link

you have more tutorials below ....

Happy Learning!!!!!!!!!!

Wednesday, October 15, 2008

Health check in Dotnet applications

Introduction: The purpose of this article is to automize some of the activities that are done manually to monitor the health of the Dot net application.

This means writing VBScript program to eliminate some of the below manual activities:

To check the count of rows in some critical tables of DB, this can cause problem if they grow large over the time.
Checking IIS is running or not
Checking specific process is running on the server or not
Checking the application pool status
Check status of taskschduler
Take list of task schedulers on the server


please reach me for code. I can not post my source code here :-0


At a high level I will explain each function achieving the points mentioned in Introduction.

SendMailCDO (toaddress, subject, body):
This Function sends a mail to specified addresses (it can send mail to more than one mail id) with the row count of tables or with the specific errors you are looking in the table.

CheckPoolHealth(Computer): This function will query the IISPoolsettings through vbscript and displays the status as Starting, Running, Stopped etc.,

GetServers(Webserver1): Checks the Task Scheduler service on the server. This function queries the Win32 service and checks whether Task Scheduler Service is running on the server or not.

Function GetStatus(Computer): Checks IIS Status on the server. It queries “microsoftiisv2" on the IISWebserver to know the state of IIS Server.

Function GetProcessStatus (processName, ServerName): Displays the status of the process and memory utilization from the specified server. Mircorsoft provides tools to monitor process information on the server. You can download one of such tools from below url

This tool will check the processes running on that particular server.

Checkout the command it is using to do so

pslist -s \\ServerName ProcessName

PSLIST: This is the tool
-S: Run in task-manager mode, for optional seconds specified. Press Escape to abort. If no number is specified it runs continuously.
ServerName: Specify server name on which this process need to be checked
ProcessName: Specify the process name which needs to be monitored

Thursday, October 9, 2008

SQL Server 2005 - Selecting the Correct SQL Server 2005 Edition

Microsoft Corporations long-awaited SQL Server 2005 represents significant change for administrators—the database server includes several new features that add capability and improved performance, but they increase complexity as well.

Many organizations who already have their applications in SQL Server 2000, I would strongly recommend migrating to SQL Server 2005 as it would bring an additional management interface, improved performance and additional support for XML which made the management of the database more easy and more suitable for our applications.

Scenario: Business have decided to upgrade their database version from SQL Server 2000 - SQL Server 2005

Either migrating the existing database version to 2005 or setting up a new application with SQL 2005 as back-end database we need to be careful at each and every step we take in
performing the activity.

First step is "Selecting the Correct SQL Server 2005 Edition" understanding the different SQL Server editions and the features and functionality of each of these editions is a key to select the edition as per user requirements.

Following are the different SQL Server 2005 Editions:
1. SQL Server 2005 Enterprise Edition (32-bit and 64-bit) : Enterprise Edition is designed to support the largest enterprise online transaction processing (OLTP) environments, highly complex data-analysis requirements, data-warehousing systems, and active Web sites. DBAs designing large database installations should consider only Enterprise Edition

2. SQL Server 2005 Standard Edition (32-bit and 64-bit) : Standard Edition includes the essential functionality needed for e-commerce, data warehousing, and lineof business solutions that most small- and medium-sized organizations use. Organizations with databases that will contain large amounts of data but do not need installations with all the features of Enterprise Edition might consider Standard Edition.

3. SQL Server 2005 Workgroup Edition (32-bit only) : Workgroup Edition is the datamanagement solution for small organizations that need a database that has no limits on size or number of users and has the capability to serve as a back end to small Web servers and departmental or branch-office operations. DBAs working with small amounts of data on smaller servers might want to consider using Workgroup Edition.

4. SQL Server 2005 Developer Edition (32-bit and 64-bit) : Developer Edition includes all the functionality of SQL Server 2005 Enterprise Edition, but it is licensed only for use as a development and test system, not as a production server. Developer Edition is suited for developers in larger companies who need to develop applications that will use Enterprise Edition but who do not want to install Enterprise Edition on development or test servers.

5. SQL Server 2005 Express Edition (32-bit only) : SQL Server Express is a free, easyto-use, and simple-to-manage database that can be redistributed to function as the client database as well as a basic server database. Express Edition is usually suited only for very small data sets. Developers who are developing applications that require a small data store should consider using Express Edition.

Lets discuss the infrastructure requirements in the next item....Thanks for reading soo patiently :-)

Saturday, October 4, 2008

View and Modify SQL* Plus system variables

There are variables which control the behavior of SQL* PLUS. We can view these variables by SHOW command. ALL is used to view all the system variables. Thus to view all the SQL* PLUS system variable type:


To view the value for a single system variable use:

SHOW [Variable Name]

suffix “sql”

How to change the default file extension in SQL*PLUS

The variable SUFFIX displays the default extension of the file created/edited or saved through SQL* PLUS. To set a system variable use SET command like

Thus the default extension of files for the current SQL* PLUS session is set as txt. Thus when we use SAVE command followed by a file name without providing an extension file will be created as “.txt” file. Change in the system variable will be applicable only for the current session.
suffix “txt

Friday, October 3, 2008

IBM Rational Clear Case

ClearCase is multi-dimensional database. True to the database model all interaction with files are performed using database views.
Files and directories are base elements. It got its terminology from Unix.

VOB: versioned object base
09 in the below diagram is folder. The rest are files. Dots represent the history of the file. Filesystem will always have one main stream. look at the dots connected by lines.

Check the below content in Wiki for interesting history of it.....

you can download clearCase from below link

lot of help about clear case and other products is availble at below IBM site

Find some interesting discussion on VSTS VS Rational Clear Case in the below link

You can find more about VSTS in the below link. You can find some interesting real time case studies also.

ClearCase has its origins and words usage common with Eclipse project......To know what is eclipse project check the below link

Just like VSS, ClearCase is also integrated with Visual Studio. It is tightly integrated with other application like NetBeans, Eclipse IDE

Remember to put check-in and check-out comments in Quickbase.

If you compare two .RPT files in ClearCase you will get they are identical even though they are not. Because it compares the compressed binary files.

You can have as many views you want on a stream. Views are called Snapshot Views. These are created at creation time and as the view is updated or files checked in.

There are two categories basically, Base ClearCase, which is like plain Configuration management tool. Second model is UCM (Unified Change Management). In this model you can tie Config Management to project plans.

You can always check how many views you have on a particular stream. Make a clear naming convention to identify who is using that particular view in the stream.

CMMI recommends ClearCase for configuration management.

Wednesday, October 1, 2008

Dotnet Framework 4.0 / Visual Studiod 2010 / VSTS 2010

Dotnet Framework 4.0 / Visual Studiod 2010 / VSTS 2010 :

Next version of Dotnet is Visual Studio 2010 and Dotne Framwork 4.0.

What will be NEW: Microsof is focusing on below new 5 areas for Dotnet Framework 4.0 / VisualStudio 2010

PlatformWave: We have to wait and see what it is!!!!!
Developer Delight: As always developers can expect much more fancy, easy to use development environments from Microsft.
Departmental Applications: Sounds like domain specific solutions will be provided as default tools or packages (my assumption)
Cloud Computing: I expected this already, i wrote an article on this couple of days back in my blog. Checkout my blog for more details on cloud computing

ALM: Application life cycle management. May be more stuff like Visual studio team server!!!!!!

VSTS 2010 will have more features as expected.
Modeling Tools: Graphically collaborative modeling tools for both technical and non technical users. Includes "Oslo" repository, tools and language.
Check here if you would like to know SOA product OSLO of microsoft

Improved testing features, Scalability for agile development.

VSTS 2010 will provide a unified development and DB product!!!! Do you expect anything other than .net and SQL server in it??????

you can expect to see more about Dotnet 4.0 in the coming months.

check the announcement from Sr. VP of Development division Microsoft, ha ha ha he is Indian

Tuesday, September 30, 2008

What Happens to the .NET Code You Write

What Happens to the .NET Code You Write?

Ever wondered what happens to your code on compilation and execution?

Suppose you write a code like this:

static void Main(string[] args)


TestClass testClass = new TestClass();


The managed language compiler builds it into MSIL (Microsoft Intermediate Language) like this:

.method private hidebysig static void Main(string[] args) cil managed{ .entrypoint .maxstack 1 .locals init ( [0] class DotNetCodeToMachineCode.TestClass testClass) L_0000: nop L_0001: newobj instance void DotNetCodeToMachineCode.TestClass::.ctor() L_0006: stloc.0 L_0007: ret }
On execution, CLR’s JIT compiler will convert this to assembly language like this (for a 32 bit x86 processor):

//static void Main(string[] args)


00000000 push ebp

00000001 mov ebp,esp

00000003 push edi

00000004 push esi

00000005 push ebx

00000006 sub esp,34h

00000009 xor eax,eax

0000000b mov dword ptr [ebp-10h],eax

0000000e xor eax,eax

00000010 mov dword ptr [ebp-1Ch],eax

00000013 mov dword ptr [ebp-3Ch],ecx

00000016 cmp dword ptr ds:[0091856Ch],0

0000001d je 00000024

0000001f call 794C717F

00000024 xor edi,edi

00000026 nop

//TestClass testClass = new TestClass();

00000027 mov ecx,3450248h

0000002c call FFCA0E54

00000031 mov esi,eax

00000033 mov ecx,esi

00000035 call FFCBB3C0

0000003a mov edi,esi


Note: Here - ebp, esp, eax, esi, edi etc are the general purpose registers of the x86 processor.

The assembly will be converted to machine language (binaries) before loading into the instruction area of the RAM. The Hex representation of machine code is given below:

//static void Main(string[] args)


00000000 55 //push ebp

00000001 8B EC //mov ebp,esp

00000003 57 //push edi

00000004 56 //push esi

00000005 53 //push ebx

00000006 83 EC 34 //sub esp,34h

00000009 33 C0 //xor eax,eax

0000000b 89 45 F0 //mov dword ptr [ebp-10h],eax

0000000e 33 C0 //xor eax,eax

00000010 89 45 E4 //mov dword ptr [ebp-1Ch],eax

00000013 89 4D C4 //mov dword ptr [ebp-3Ch],ecx

00000016 83 3D 6C 85 91 00 00 //cmp dword ptr ds:[0091856Ch],0

0000001d 74 05 //je 00000024

0000001f E8 5B 71 4C 79 //call 794C717F

00000024 33 FF //xor edi,edi

00000026 90 //nop

//TestClass testClass = new TestClass();

00000027 B9 48 02 45 03 //mov ecx,3450248h

0000002c E8 23 0E CA FF //call FFCA0E54

00000031 8B F0 //mov esi,eax

00000033 8B CE //mov ecx,esi

00000035 E8 86 B3 CB FF //call FFCBB3C0

0000003a 8B FE //mov edi,esi


But remember that in RAM it will be saved as pure binaries like this:

//static void Main(string[] args)


00000000 01010101 //push ebp

00000001 10001011 11101100 //mov ebp,esp

00000003 01010111 //push edi

00000004 01010110 //push esi

00000005 01010011 //push ebx

00000006 10000011 11101100 00110100 //sub esp,34h

00000009 00110011 11000000 //xor eax,eax

0000000b 10001001 01000101 11110000 //mov dword ptr [ebp-10h],eax

0000000e 00110011 11000000 //xor eax,eax

00000010 10001001 01000101 11100100 //mov dword ptr [ebp-1Ch],eax

00000013 10001001 01001101 11000100 //mov dword ptr [ebp-3Ch],ecx

00000016 10000011 00111101 01101100 10000101 10010001 00000000 00000000 //cmp dword ptr ds:[0091856Ch],0

0000001d 01110100 00000101 //je 00000024

0000001f 11101000 01011011 01110001 01001100 01111001 //call 794C717F

00000024 00110011 11111111 //xor edi,edi

00000026 10010000 //nop

//TestClass testClass = new TestClass();

00000027 10111001 01001000 00000010 01000101 00000011 //mov ecx,3450248h

0000002c 11101000 00100011 00001110 11001010 11111111 //call FFCA0E54

00000031 10001011 11110000 //mov esi,eax

00000033 10001011 11001110 //mov ecx,esi

00000035 11101000 10000110 10110011 11001011 11111111 //call FFCBB3C0

0000003a 10001011 11111110 //mov edi,esi


Before executing the method [“Main()” in this case], the starting address of that method is pushed onto the “Call Stack” along with it’s parameters and local variables. The reference variables (object pointers) will also be placed on the stack. These references will be pointing to their objects residing on the heap area of the RAM.

Instruction binaries will be moved to the processor from the RAM (normally chunks of this will be buffered in the L1/L2 cache of the processor for speedy access) and will be executed one by one. Intermediate results, flags and certain pointers (stack pointer, program counter etc) will be saved in the processor registers. Result binaries will be saved back to the RAM. As and when the method is completed, the binaries those were “pushed to” for that method execution get “popped out”(top most items) and removed from the stack. This cycle repeats for the rest of the methods as well.

You don’t have to worry about all these steps while you “JIT and Run”. But it would be interesting to think that you are juggling with thousands of binaries while writing a few lines of code!! Hope you enjoyed it!

Cloud Computing

Cloud Cmputing / Platform As A Service (PAAS) / On-Demand Platform / Software As A Service (SAAS):

According to the IEEE Computer Society "It is a paradigm in which information is permanently stored in servers on the Internet and cached temporarily on clients that include desktops, entertainment centers, table computers, notebooks, wall computers, handhelds, etc"

Definition: Cloud computing describes a system where users can connect to a vast network of computing resources, data and servers that reside somewhere "out there," usually on the Internet, rather than on a local machine or a LAN or in a data center. Cloud computing can give on- demand access to supercomputer-level power, even from a thin client or mobile device such as a smart phone or laptop.

The cloud computing "revolution" is being driven by providers including Amazon, Google, Salesforce and Yahoo! as well as traditional vendors including Hewlett Packard, IBM, Intel, Microsoft and SAP and adopted by users from individuals through large enterprises including General Electric, L'Oréal, Procter & Gamble and Valeo.

The Roles and Responsibilities involved in it are:
Provider: A cloud computing provider or cloud computing service provider owns and operates live cloud computing systems to deliver service to third parties.
User: A user is a consumer of cloud computing.
Vendor: A vendor sells products and services that facilitate the delivery, adoption and use of cloud computing.
Computer hardware (Dell, HP, IBM) : Storage provided by (3PAR, EMC)
Computer software (3tera, Hadoop): Operating systems (Linux including Red Hat[49]) , Platform virtualisation (Citrix, Microsoft, VMware)

Cloud services can be grouped into Three broad categories: (Please refer to the diagram)

SAAS: (Software As A Service): A SaaS application runs entirely in the cloud (that is, on servers at an Internet-accessible service provider). The on-premises client is typically a browser or some other simple client. The most well-known example of a SaaS application today is probably, but many, many others are also available.

Attached services: Every on-premises application provides useful functions on its own. An application can sometimes enhance these by accessing application-specific services provided in the cloud. EX: ITunes, Micorsoft based spam filtering, archiving services.

Cloud platforms: A cloud platform provides cloud-based services for creating applications. The direct users of a cloud platform are developers, not end users

Real World Example: offers a couple of cloud services. Web service developers can use its Simple Storage Service (S3) to store any amount of data. And developers can use Amazon's Elastic Compute Cloud (EC2) to set up a virtual server in minutes, with none of the maintenance of buying and installing server hardware and software. Both services are offered on a pay-per-use basis.
you can get some more details at wiki about cloud computing history

if you want description about each feature of cloud computing refer the below article, it gives the internals.

Dotnet Framework / Visual Studio Versions

All about .NET Framework versioning

There has been a lot of confusion around the .NET Framework version numbers and it's implications to applications as well as the development environment. This page will attempt to explain it all and clear up any outstanding confusion.

.NET Framework v1.0
The original version of the .NET Framework (early 2001). This has it's own set of assemblies in C:\WINNT\Microsoft.NET\Framework\v1.0.3705 - this includes the core functionality such as "mscorlib.dll" and "System.dll". Development for .NET 1.0 will not be supported on Vista.

.NET Framework v1.1
This was the enhancement release for .NET 1.0 and is an entirely new release - although it can and often is installed side-by-side with .NET 1.0 with no conflicts. These components exist independantly in C:\WINNT\Microsoft.NET\Framework\v1.1.4322 - this includes NEW versions of mscorlib and System.dll. Development for .NET 1.1 will not be supported on Vista.

.NET Framework v2.0
This was a fundamentally significant release where many aspects of the framework changed. These components exist independantly in C:\WINNT\Microsoft.NET\Framework\v2.0.50727 and include a new mscorlib and System.dll. Development for .NET 2.0 will be supported on Vista.

.NET Framework v3.0
This is where the confusion begins. This is NOT a release or update to the core framework. This was instead a release of several .dlls to supplement the .NET 2.0 Framework. .NET 3.0 functionality means that the application is in essence a .NET 2.0 application but supports some new features such as WCF, WF or WPF. These few add-on files mostly exist in C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0. Development for .NET 3.0 will be supported on Vista.

.NET Framework v3.5
Unfortunately, the confusion continues here. Version 3.5 is ALSO NOT a release or update to the core framework. There is no 3.0 nor 3.5 version of mscorlib or System.dll. Instead, the 3.5 release put significant core changes into a file called System.Core.dll - and also included several new assemblies. This is a pretty significant release - but it is still fundamentally .NET 2.0 - with some .NET 3.5 assemblies added on. The files for these add-on assemblies are mostly in C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.5. Also, the installer for .NET 3.5 also installs the .NET 2.0 and .NET 3.0 framework files. Development for .NET 3.5 will be supported on Vista.


Visual Studio .NET 2002 (codename: Rainier)
This was the the first version of Visual Studio that Microsoft released back in February 2002 introducing the concept of managed code for the first time. This version of Visual Studio was based on .NET Framework 1.0. Along with this release Microsoft also introduced the new programming language C# (C-sharp). This IDE is not supported on Vista by Microsoft nor Aetna.

Visual Studio .NET 2003 (codename: Everett)
This was the second release of the development IDE for .NET development. This supports .NET 1.1 only. It also came with built-in support for developing programs for mobile devices, using either ASP.NET or the .NET Compact Framework. This IDE is not supported on Vista by Microsoft nor Aetna.

Visual Studio 2005 (codename: Whidbey)
This is what is currently supported at Aetna on the XP 6.2.1 and Vista 7.1.1. desktop image. Visual Studio 2005 can only reasonably create .NET 2.0 and .NET 3.0 applications. Although a developer can technically use functionalty from .NET 3.5, much of the new functionality in .NET 3.5 is based around new features that are available in Visual Studio 2008.

Visual Studio 2008 (codename: Orcas)
At some point in 2009, we will likely get Visual Studio 2008 - which has significant feature improvements for the development environment. Visual Studio 2008 has the ability to "target" version 2.0, 3.0 or 3.5 of the .NET Framework too.

You can find some more useful information about Dotnet 3.5 here....

to get indetail view about every new topic in Dotnet 3.5 view check this out....

To find each and every new feature in 3.5 refer to nice blog below, it has user comments as well.....

Friday, September 26, 2008

Dotnet 3.5 New Features

.net 3.5 features:
LINQ: Language integrated query
Language-Integrated Query (LINQ) in .net3.5, can query from XML, SQL etc.,

Improved ASP.NET ajax support: This improves UI page efficiency.
partial page refresh updates are possible. Calling webservice methods from client scripts is made easy.

Find the ASP.NET and AJAX architecture diagram below

WCF: windows communication foundation: Microsft recomended approach for communication between applications.
Windows Workflow foundation (WF): Workflow is common with any domain or business problems. Most of the business solutions go like a workflow. so the improved workflow in dotnet 3.5 should help in building seamless workflows for business problems.
Windows Presentation Foundation: support for videos, animation, 2 & 3 D graphics
windows Cardspace Windows card space is a form of improved identity.

Wednesday, September 17, 2008

troubleshooting two versions on .net

you can try some of the options below

Try running aspnet_regiis.exe -lk to see what version of is associated with the application
Make sure you have separate application pools for 1.1 and 2.0
Make sure default.aspx is on top in the default document tab in IIS

Monday, September 15, 2008

How to prevent your PEN drive from VIRUS

Friends many of your PC/laptop's normally gets virus because of Pen Drives or USB devices (Even PC's who are not connected to network ). Some Virus like Ravmon Virus , Heap41a worm which are not detected by anti virus normally spreads mostly by the Pen Drives . In such a case what can you do to prevent your PC from getting infected with Virus that spreads through USB devices or Pen Drives ?

You can protect your PC by just following the simple steps below . It won't take much time.

Connect your Pen Drive or USB drive to your computer .

Now a dialogue window will popup asking you to choose among the options as shown in the


Don't choose any of them , Just simply click Cancel.

*Now go to Start--> Run and type cmd to open the Command Prompt window ..
*Now go to My Computer and Check the Drive letter of your USB drive or Pen Drive. ( E.g. If it is written Kingston (I:) , then I: will be the drive letter ..)
*In the Command Window ( cmd ) , type the drive letter: and Hit Enter ..
*Now type dir/w/o/a/p and Hit Enter
*You will get a list of files . In the list , search if anyone of the following do exist
1. Autorun.inf
2. New Folder.exe
3. Bha.vbs
4. Iexplore.vbs
5. Info.exe
6. New_Folder.exe
7. Ravmon.exe
8. RVHost.exe or any other files with .exe Extension .

If you find any one of the files above , Run the command attrib -h -r -s -a *.* and Hit Enter.
Now Delete each File using the following Command del filename ( E.g del autorun.inf ) .
That's it . Now just scan your USB drive with the anti virus you have to ensure that you made your Pen Drive free of Virus .

Hi Friends...
This virus is very very common now...
To know whether ur system is infected just type C:\heap41a in the address bar...
if there is a folder named heap41a, then ur system is infected...
(AVAST antivirus is the best solution for this worm...) symantec also works.

Health Insurance Domain in a Nutshell

Insurance industry in statistics

More than 70% of the population had private health insurance in US.
950 companies are competing in health insurance
3000 companies provide property insurance in US.
1500 Life insurance companies
Current assets of Life and health insurance industry is $2.5 Trillions. These assets are invested in real estate, govt securities, coroprate bonds etc.,
2.2 Million people in US are working in Insurance industy out of that 900K work in Life and health insurance industry
Employees in insurance industy are earning $122.7 Millions as wages/slaries. $12.1 Millions earned by self employees.
To start an insurance company in US minimum capital is $100 K to $1000K

What is Insurance Industry.....

Four Approaches of dealing with risk
1. Own the risk
2. Dont do that task at all - not possible in some cases (dont ride , because there is threat of accident)
3. Reduce the risk by taking some preventive actions (burglur alarm.)
4. Transfer some or whole part of Risk - INSURANCE

Insurer: Generally the company who pays in the event of loss
Coverage: Contractual agreement that insurer will pay insured in case of pre agreed incidents.
Insured: The person whol transfers the risk to insurer with small premiums paid periodically.
Claim: Demand by insurer for payment of benefit
Benefit: Amount paid by insurer to insured as a compensation to risk
Premiums: Insured pays insurer periodically for coverage of risk.

1. Uncertainity of loss: No self damages and deliberate cause
2. Measurability of loss: Loss should be able to be measured in currency value
3. Large Number of Insureds:
4. significant size of potential Loss:
5. Equitable sharing.
6. Speculative risk (share market), Pure risk (fire accident)

Category of insurance
1. Individual (person insures himself and his family)
2. Group (company insurers for employee)

Types of Insurance
1. Whole life insurance Or permanent insurance
2. Term life insurance (covers for a specific period)
3. Credit Life insurance (pay the remaining debts of the insurer in case of his discontinuity due to unfortunate incident)
4. Annuity Contracts (paying the beneficiary dependents for a specific period.)

B) HEALTH INSURANCE: Medical, dental, surgical coverage
1. Direct: Loss of actual damage
2. Indirect: loss due to no rent, loss of profits, temporary shifting of house.
liable for an accident and has to pay the damage by insurer is covered by insurance company.

Types of Insurance Organizations:

Stock Insurance Comapnies: Stock holders are the owners of the company.
Mutual Insurance Companies: Policy holders are the owners of the company.

Demutualization: Shifting from Mutual company to Stock company.
Large capital source
Ability to acquire other companies
Tax reduction in US
Attracting top level employees: can offer stocks to top executives.


Troubleshoot Error/Messages in DOCUMENTUM Technology

Troubleshoot Error/Messages in MS Word document (opening through IE browser or MS Word) In DOCUMENTUM


A) “The disk is full”:

When you try to save a document using File àSave or CTRL+S, you may receive following error:

It’s generally found when you open a document using IE or any application or program which display a document in IE browser. This issue could be due to missing reference in the document.

What shall you do then?

a) Open the document.

b) Press ALT+F11

c) Click ToolsàReferences

d) See if it shows something like Missing:, if you find such option selected, deselect it.

e) Click on FileàClose and Return to Microsoft Word (ALT+Q)

f) Save the document.

Now open the document in IE and save it, it should get saved without any problem.

B) “Update Table of Contents”:

When you try to print a document using File àPrint or CTRL+P, you may receive following message:

Now this is generally seen for a document which has table of contents and before printing a document may prompt for updating the table of Content.

If you are getting this message every time you print a document, you can:

a) Go to Tools à Option in your document.

b) Click on the Print Tab

c) Under ‘Printing Options’ uncheck ‘Update Fields’.

d) Now try to print the document, no ‘Update Table of Contents’ message will be prompted.

Note: This setting is stored at the system level and will impact all the documents. So if you still need the prompt for other documents ensure that you keep the field ‘Update Fields’ checked.

You Can reach the author at

Friday, September 12, 2008

Migration from VB 6.0 to VB.NET

Advantages of Migration:

Visual Basic .NET is the next version of Visual Basic. Rather than simply adding some new features to Visual Basic 6.0, Microsoft has reengineered the product to make it easier than ever before to write distributed applications such as Web and enterprise n-tier systems. Visual Basic .NET has two new forms packages (Windows Forms and Web Forms); a new version of ADO for accessing disconnected data sources; and streamlined language, removing legacy keywords, improving type safety.

Visual Basic .NET is now fully integrated with the other Microsoft Visual Studio .NET languages. Not only can you develop application components in different programming languages, your classes also can now inherit from classes written in other languages using cross-language inheritance. With the unified debugger, you can now debug multiple language applications, irrespective of whether they are running locally or on remote computers. Finally, whatever language you use, the Microsoft .NET Framework provides a rich set of APIs for Microsoft Windows® and the Internet.
Visual Basic is now a true object-oriented language; some unintuitive and inconsistent features such as GoSub/Return and DefInt have been removed from the language.
Error handling in VB.NET has considerably increased the efficiency of the applications and free threading is a plus point as against to single threading in Visual Basic

Problems in Migration:

The following features in VB projects are not supported in the VB.NET environment:
OLE Container Control
Dynamic Data Exchange (DDE)
DAO or RDO Data Binding
Visual Basic 5.0 Controls
DHTML Applications
ActiveX Documents
Property Pages

While migrating from VB to VB.NET you should not use late binding and lines and shapes are not supported in VB.NET. Instead you can make use of images. Moreover, in VB.NET you have to use only Zero-Bound array.

Strategy of Migration:

Migration Wizard / tool:

I) Use the microsfot assessment tool to analyze the migration effort.
Please find attached Migration Strategy diagram

II) Migration through Visual Studio IDE Wizard:
Visual Studio IDE has a menu item to bring up a wizard needed for migrating either VB or Java programs to .NET World. Everything in VB may not go to

Fresh Design:

Redesign the entire applicationt to dotnet. you can use below techniques

1. Do a UML design of your whole application (if it is not available earlier)

2. Identify the functions/Subs in VB 6.0 which can be grouped as classes and components, identified in UML. If your team has done a better coding by following std. coding practice then forming components can be easily done.

3. Wrap the classes by providing appropriate access specifiers which will give way for covering security aspect of your project

4. Try to fit in your application in any of the standard patterns, this may require code change. But the benefit you get is easy maintainance and better effort estimation. Atleast follow a 2-tier architecture

5. Once the basic steps are done, then you can start replacing the code by .Net featured code (like string manipulation, multi-threaeding, security protocol, delegation, remoting etc)

successfully migrated solution!

Friday, September 5, 2008

How to get the path for "My Documents" and other system folders in DotNET

Use the GetFolderPath method of the System.Environment class to retrieve this information.

MessageBox.Show( Environment.GetFolderPath( Environment.SpecialFolder.Personal ) );

Thursday, September 4, 2008


(All the below information is my personal opinion and understanding of the IT business , need not be apt in all case all sense scenarios)

About Myself: I worked with two of the top 4 Indian MNC software companies and 2 of top Fortune 100 clients. Here I would like to share my experience about how Software Business is generated and how it flows.
What I am going to cover: The journey of Software Industry business from end to end and broader perspective of the software business at industry level.
Interesting Facts and Figures:
Total revenue of IT industry in 2008 will be $87 billion dollars.
IT exports account for 35% of total exports of India.
Indian IT export breakdown by Region Wise:
U.S. 61%
U.K. 18%
Continental Europe 12%
Others 8%

Indian IT export breakdown by Industry Wise:
Financial Services 40%; (Includes Banking and Insurance)
Technology & Telecom 19%;
Manufacturing 15%;
Retail 8%; and
Others 18%.

Some of the top companies (industry wise) generating large source of income for IT companies:
Worlds top 10 companies generating lots of revenue to IT companies are as below.
1. Wal-Mart Stores
2. Exxon Mobil
3. Royal Dutch Shell
4. BP
5. Toyota Motor
6. Chevron
7. ING Group
8. Total
9. General Motors
10. ConocoPhillips

Worlds Top Air Line companies:
Air France-KLM Group
Lufthansa Group
Japan Airlines
Delta Air Lines
British Airways

Worlds Top Banking Companies

ING Group
Dexia Group
HSBC Holdings

Worlds Top Health care and Insurance companies:
United Health Care

Worlds Top Petroleum Refining Companies:
Exxon Mobil
Royal Dutch Shell

Worlds Top Telecommunication companies
Verizon Communications
Nippon Telegraph & Telephone
Deutsche Telekom
Telefónica France Télécom

How does client companies operate (from Software company perspective):
Client Company for a software business works in its own business model, it differs from industry to industry, company to company from country to country.

Live Examples: BP is one of the US top oil major company. It operates in almost all the countries of the world. It will have different internal business units like Refining, Retail, Pipeline, E&P, Supporting units like HR, legal etc.,

I know one such company generating 5 Billion dollars of income for software companies over 5 year period!!!!!!

Signa is one of the US top health insurance company it operates through out US in different divisions like Claims, Disbursement, Underwriting (giving an insurance quote), Customer support, Vendors (generally companies opted for XYZ insurance for their employees ), Doctors (authorized doctors/hospitals for this insurance company).

I know one such company which is operating in different locations of US east coast generating more than 300 million dollars per year business for software companies!!!!

Target is one of the Worlds largest company in retail, it will have its branches all over world. It will operate in different divisions like Billing, purchasing, marketing & advertising, customer support etc.,
I know one such company operating from Minneapolis in a 35 floored building full of software employees to support its business!!!

IT Divisions: Each client company will have its own IT department to support its IT needs. It will be headed by CTO (Chief Technology Officer). It will provide budget for each division and those respective division heads will chalk out a plan to spend it on different projects.

Customers / End users will play a major role by providing their IT needs for the year ahead, IT division then will facilitate those projects with Software companies

Bids: Bidding happen for two kind of projects. Developing New project: Client company will invite the software companies they are interested to send proposals and due diligence will be done by client company. Maintaining existing project: It might be migrating from one software vendor to the other.

Preferred Vendors:Some top companies have Accenture and IBM as their preferred vendors. All the server, system administration, network support and firewall support is provided by such companies. There will be no competition. Interesting part is they take a broad band or private line lease from companies like AT&T to support internet connections of the client company.

Partners / Business Transformers: Client companies will identify some software vendors as their partners or business transformers. They will take their help in shaping up their business with the experience of software vendor.

Product Vendors: Some companies like Banking will purchase an existing proven product to serve their customers.
Iflex, Infosys have some good banking solutions.
ESS , ESP and Wipro has proven Compliance and legal solutions.
PLAN VIEW has pre dominant time tracking and reporting tools.
NCR is specialized in ATM software and it has more than 70% of the business world wide.

Staff Augmentation: Some client companies carry on the projects on their own, by taking staff augmentation to deliver project. Like they will hire Software company or outside contractors to deliver the projects.These days Client Companies are preferring to out source their Project Management, Development, Support and Architchturing of applications to software companies rather than maintaining employees within its own company.

How does Software companies operate:

OFFSHORE: Project is executed from countries like India, China and Malaysia. Major economical advantage for client company, but communication and coordination is a problem.
ONSITE: Project will be executed from the same place of the client. Might be Costly for client company, but advantage face to face interaction and better assessment of situation. Less Risk.
ONSITE - OFFSHORE MODEL Project will be executed by some people being at onsite and some people will be in offshore supporting onsite folks.
NEAR SHORE: New trend !!! project will be executed from different country than that of client but will be in the same geographical region. EX: Project in America will be executed from Canada and Mexico. Travel and communications are easier and less expensive, Some commonality of language and culture.

Foreign based MNC Companies Like IBM they operate in different mode like for a project in Netherlands, IBM Netherlands will interact with client and IBM India will be the outsourcing company for IBM Netherlands.
The above categorization is from generalized view, These kind of exceptions will always be there.

If you have your own company you can customize this in more meaning full way to you and your client may be !!!

Internal Structure of Software Company: Software companies generally operate in Horizontal and Vertical Slicing model. Banking, Insurance, Manufacturing, Retail, Energy and Utilities etc., will be vertical domains. Horizontal units will support the vertical units in delivery. Like Data Base Administration, SAP, ERP, Testing will be horizontal units will come and serve the vertical business unit as needed. Marketing division of Software company will be responsible for brand building and Sales department will be responsible for bringing projects, Pre Sales department for sending proposals to clients for new projects, Account management for handling issues at client level and finally delivery units will deliver the Development or Maintenance projects. Learning divisions, HR, Finance, Immigration, Travel desks, Network and Security desks will support the entire company for seamless business.
web counter
Download a free hit counter here.