Friday, February 13, 2009

Creating a SharePoint Solution Package (.wsp) in 5 steps

The following helps you to create .wsp (webpart solution package) for MOSS development without having WSP builder. Follow the below steps to generate wsp file.
  1. Create DeploymentFiles folder in your project. Have a folder structure in the project as given below.
  2. Create the file manifest.xml and the following is the sample content.
    xml version="1.0" encoding="utf-8" ?>
    Solution xmlns=""
    Assemblies> <Assembly DeploymentTarget="GlobalAssemblyCache" Location="WSPCreationApp.dll"> <SafeControls> <SafeControlAssembly="WSPCreationApp, Version=, Culture=Neutral, PublicKeyToken=d42377719d795a18" Namespace="WSPCreationApp"TypeName="*" Safe="True" /> 

    TemplateFile Location="XML\TestFile.xml" />
  3. Create the file BuildSharePointPackage.ddf and the following is the sample content.
    .Set DiskDirectoryTemplate=CDROM
    .Set CompressionType=MSZIP
    .Set UniqueFiles=Off
    .Set Cabinet=On
    .Set CabinetFileCountThreshold=0
    .Set FolderFileCountThreshold=0
    .Set FolderSizeThreshold=0
    .Set MaxCabinetSize=0
    .Set MaxDiskFileCount=0
    .Set MaxDiskSize=0
    .Set DestinationDir=XML
  4. Create the file BuildSharePointPackage.targets and the following is the sample content.
    xml version="1.0" encoding="utf-8" ?>
    Project DefaultTargets="BuildSharePointPackage" xmlns="">
    Target Name="BuildSharePointPackage">
    Exec Command="$(MakeCabPath) /F DeploymentFiles\BuildSharePointPackage.ddf /D CabinetNameTemplate=$(MSBuildProjectName).wsp /D DiskDirectory1=wsp\$(Configuration) /D BuildDir=$(OutputPath) "/>
    Exec Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU'"Command="$(MakeCabPath) /F DeploymentFiles\BuildSharePointPackage.ddf /D CabinetNameTemplate=$(MSBuildProjectName).cab /D DiskDirectory1=wsp\$(Configuration) /D BuildDir=$(OutputPath) "/>
  5. Create the file WSPCreationApp.Bat and the following is the sample content.
    Rem Retracted Solution
    stsadm -o retractsolution -name WSPCreationApp.wsp -allcontenturls -immediate
    Rem Deleted Solution
    stsadm -o deletesolution -name  WSPCreationApp.wsp -override
    Rem Added Solution feature
    stsadm -o addsolution -filename WSPCreationApp.wsp
    Rem Deployed Solution
    stsadm -o deploysolution -name WSPCreationApp.wsp -url http://learning -immediate -allowgacdeployment -force
  6. Modify the .CSProj /.VBProj file with the following entries.
    <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />

    Import Project="DeploymentFiles\BuildSharePointPackage.Targets" />
    Target Name="AfterBuild">
    CallTarget Targets="BuildSharePointPackage" />
  7. Build the project. You should be having a wsp folder gets created with .cab  and .wsp inside it.
You are done! Happy Coding.!!
Gangadhar Kotu

Thursday, February 12, 2009


Here are the some of the links useful to develop an applications in Silverlight.
~Gangadhar (గంగాధర్ కోటు)

Tuesday, February 10, 2009


Here are the list for deploying various kinds of applications.

~ Gangadhar Kotu (గంగాధర్ కోటు)

Monday, February 9, 2009

ASP.Net Performance


Here are the articles on how to improve the ASP.NET web application performance.
  1. 10 Tips for Writing High-Performance Web Applications here.
  2. Improving web application performance here.
  3. Asp forums here.
~ Gangadhar Kotu (గంగాధర్ కోటు)

Friday, February 6, 2009

Thursday, February 5, 2009

Product Vs Service


Would like to give some insights between the product based orgranization and the services based organization.
It is a common notion among the freshers and also among some of the people in the industry to consider services company as completely devoid of innovation and thriving solely on labor arbitrage. I was myself guilty of similar thinking for a long time.
However, after the little experience I have in the industry and watching both Services and product development side by side, I have realized that both have their own unique challenges and it is not at all fair to put services companies on a lower pedestal than product companies.

Firstly, there aren't really any true product companies. No company can simply build and sell products without providing services around them. Microsoft - the epitome of software product development - has a very large fraction of its work force providing support and associated services around its products. Apple, IBM, Sun - you name it - all develop products and provide services around them. If anything - many of these companies (notably IBM) have realized that services is a much more profitable business to be in. IBM Global Services is probably world's largest software services company.

Secondly, unlike common perception, services companies constantly innovate to remain competitive. The innovation may be in the form of better processes, better hiring strategies, or in developing complex technical solutions for their clients. It is true that many large software services companies do routine incremental maintenance work for systems that were architected elsewhere. However, that is true for large product companies as well which need to invest majority of their resources in maintaining and updating previous versions of their products. If anything, a services company has better chances of doing interesting work in varied technologies as against a product company which is likely to be tied to a single platform and a single product. For a services company, every client and every project is an opportunity to pick up a new technology. The portfolio and technical breadth of services companies is undeniably greater than those of product companies.

The greatest advantage of working in a services company is that you learn to listen very carefully to what your customers are saying. On the shoulders of its clients, a services company gets an opportunity to look closely at varied business models, ship varied products and learn from mistakes and successes of others.

The product company on the other hand the product based company has its own systems in place and is more of ‘content’ than ‘presentation’.Let me elaborate a bit. A product company is not necessarily great because it innovates. What makes a (good) product company truly stand out is its ability to place its bets on building something in a way that nobody else has, and then giving it all the company's got. Product companies invest in R&D, they take chances, and in their DNA is the ability to know “what” to build without somebody telling them to. The what is a very key element.

The technical challenges and innovation will be similar but a services company does not own the intellectual property and also does not take the responsibility of the success of the idea. This responsibility makes a product company special because it makes long term revenue for the company. (And explains the swelling packages offered to the employees!)

Which one’s for you. You decide yourself..

Product companies are about innovation, service companies are about understanding, listening to clients and addressing the solution within deadlines. The processing of listening to the market is the common aspect of both. However, the kinds of people required for these roles are fundamentally different. Think consulting firm, and you can imagine the big B school MBAs in client relationship roles. There is a lot more emphasis on soft skills, on formal processes, less emphasis on precision or sustainability, less time for innovation, less thought on the code line and more on getting to a solution that works in time. Product companies require more creative people, but their social skills might not be as good. Again this is an observation and not a rule of thumb.

Final words:-
  • A product company uses its people to create intellectual property.

  • A services company rents its people out so others can create intellectual property.

  • A product company takes a $20/hour Java programmer and uses his skills to create a $20 million product.

  • A services company takes a $20/hour Java programmer and rents him out for $25/hour.

  • A Developer gets bored in the product company very easily but will have much time to do personal work.

  • A Developer gets irritated in the services company as he will not have much to do personal work.

  • A product company has a free way to learn any thing.A services company has a narrow way to learn only required things to the company.

~ Gangadhar Kotu (గంగాధర్ కోటు)

Monday, February 2, 2009

MOSS learnings

Here are the links for learning various parts of MOSS technology.

  1. Good idea to have all in a single place here.
  2. Creating a Basic SharePoint Web Part (Before trying, Install extensions for Sharepoint here VS 2005 extensions, VS2008 extensions )
    • This programming task includes the steps for creating a basic custom Windows SharePoint Services Web Part here .
  3. Good wiki link for MOSS developement here.
  4. Sharepoint Server developer center here.
  5. Check list for creating web parts here.
  6. Best Practices
  7. Technical Articles here.
  8. Windows Sharepoint Serives 3.0 here.
  9. iFrame enhancements in webpart here.
  10. Workflows
  11. WCF Patterns: here .
~ Gangadhar Kotu (గంగాధర్ కోటు)