Saturday, July 12, 2014

Migration Strategy and Solution for multiple Document Management Systems

Today I am going to write my experiences with a project which involved migration from one document management system to another.
Actually,  there were three different DMS's that were involved. The problem was to migrate the multiple GBs of content from 2 different DMS to a 3rd one. It was was something like centralizing the documents stored across different locations of an organisation to a central DMS.
This looks like a current general trend in the industry as it makes more sense for them to manage the data centrally.This not only helps them in storing it but also helps in applying policies, workflows, software upgrade and IT policies, patches etc while adding another level of security to the enterprise data when stored centrally.
The approach for this task of migrating the documents is achieved using the respective APIs of the concerned DMS. We built utilities which connects to the server of respective DMS and fetches the data and copies the documents along with their metadata in a an XML file while the documents gets copied using the same APIs to a temporary location (shared folder).
The target DMS is also accessed via its APIs for copying the documents and the metadata from XML while performing check-ins for each document from the shared folder.

Now these operation s are not that easy as it sounds because we had several thousands of documents which needed to be downloaded and uploaded only in small batches, otherwise the operation may stop or get terminated by the host operating system processes automatically allowing this task to never get completed.

But with careful planning and execution using schedulers enabled the task to get completed in smaller chunks and therefore the entire job was completed successfully.
 Just note while writing your custom utility give proper administrator rights and the correct url of the server and document libraries in the respective document management systems.

Thursday, May 29, 2014

Solutions Architecture and Proposals

A Solutions architect is person who is not only a technical architect in a field but is also a person who can provide all kinds of Solutions related to that technology or related technology stack.
Generally, a solution architect provides the complete solution for project proposal. An SA can be a guy who can use multiple technology, tools and apply respective design customization using the same to provide a compelling and cost effective solution for business or enterprises. 

Say for an example a solution could be something like using Microsoft Technology stack to provide a complete range of functionality for an enterprise. It could be like Using Windows server, SQL server, Active Directory, Exchange, SharePoint, ASP.Net, Dynamics CRM, BizTalk, Lync and likewise. 

Being a Solution Architect for the Microsoft Technology stack means understanding all the related technology well, and also knowing how and where to apply these for providing a Solution to any business. The solution and design should not only satisfy the functional requirements of a Site but may also enable a business the necessary Business Continuity and Growth. 

Saturday, September 28, 2013

SharePoint 2013 Hosting Options

SharePoint has become one of obvious choice of technology for enterprises these days, not excluding the option of using it as a platform for all custom applications, including the rich set of APIs it provides for building custom solutions. Almost all the small-mid to big enterprises are using SharePoint for organizational and business needs.
With the launch of SharePoint 2013, many enterprises are still not able to realize about the actual scope of it along with the backward compatibility provided for solutions built using SharePoint 2010 model/APIs. This is because the new app model and services provided in SharePoint 2013 makes many of the development made in the older version of it to become absolute obsolete. For example, SharePoint 2010 Search, SharePoint web services, the custom UI / branding done in SharePoint 2010 including others, also if you want go cloud then SSOM is also obsolete as CSOM becomes the new way.
My this post helps such audiences to understand the scope of SharePoint and gives an idea where to fit it and what to do with the earlier customization done in SharePoint 2010.

You will be surprised to know that the basic idea of Microsoft in it's latest release of SharePoint is to move away the development out from the SharePoint server. The apps for SharePoint is to be actually hosted in the remote cloud server particularly Microsoft Windows Azure and databases in SQL Azure. But it is not to be hosted in Sharepoint server and this is just to improve the performance of SharePoint server in the cloud environment. To access these apps from SharePoint, the CSOM - Client Server Object Model is used. This only makes call to the remote apps using JavaScript apis or the REST services API and the result is viewed in the SharePoint pages.

In SharePoint 2013 we are left with the 3 options or modes of hosting. These are:

1. In Could - Everything comes from the remote cloud server and is also stored there. It is also known as Auto Hosted App model.

2. In House - Here the model is like SharePoint 2010. The code runs from the SharePoint server but in a separate domain. This is known as SharePoint hosted.

3. Hybrid Hosting - We can still have some apps running in SharePoint server and also some apps hosted in cloud or remote server hosted by the organization itself. This is a combination of SharePoint Hosted and Autohosted apps.


So as we now see the solutions in SharePoint 2013 will be in the form of apps which can be hosted in house or on premises and also to the cloud. There are basically 3 different types of Apps provided to SharePOint developers and these are:
a. Auto Hosted
b. SharePoint Hosted
c.  Provider Hosted.

The Provider hosted model has two flavors that means that we can host the app in on premises but in a separate physical server where SharePoint does not rum as well as we can also host it in a 3rd party cloud like Amazon, Rackspace, GoDaddy.
I will discuss the architecture and programming model SharePoint apps in the coming posts.


Sunday, April 28, 2013

Working with SharePoint Content Types

Recently I had some strange experience while working with Sharepoint Content Types. I used Content Types while creating a custom workflow for Sharepoint 2010 using Visual Studio. The Content type was defined with various fileds with display names, internal field name and their respective unique GUIDs. The workflow was good and got deployed successfully in a site collection. Again, I had to create a new workflow which was suppose to use the same list column names. So I thought of using the same Content Type with same Content Type ID, field names, etc. actaully, the entire xml file schema which contains the defenition of that content type was resued in this new new workflow. Now this workflow was deployed in the same web application but on the different site collection. So it was something like this:

WebApplication : http://myWebApplication:1234

Site Collection1 : http://myWebApplication:1234/GCIndia/ - Uses Content Type .. WorkflowContentType1

Site Collection2 : http://myWebApplication:1234/GCAsiaPacific/ - Resues the above content type

I resued the same content type because the workflow was suppose to have same feild values and also sam e names had to be included.

Now when I deployed the second workflow both the Content types should have been deployed in their respective site collections but to my surprise I was unable to activate the feature which was suppose to activate second workflow's reused content type. I was surprised to see to what happened as both these site collections had different content databases. This was because Site Collection1 was created and migrated from Sharepoint 2007 and Site Collection2 was created using Sharepoint 2010 environment post migration.  Ideally both the content types shoould have worked correctly becuase they were residing in differnet content database. I tried to recreate this scenario in my Dev box by taking the backup of relevent production data in to it. Then I was able to see both the deployments working. Now the conclusion is that the Databases have been merged at the production level as Microsoft does not all same content type ids to be used in two Content type defenetion.

Continued...







Saturday, September 22, 2012

Migrating SharePOint 2007 Workflows to Sharepoint 2010

Hi folks, I am back again with yet another post and I will be talking about migration of sharepoint workflows from 2007 to 2010 environment. Now for migrating sharepoint 2007 site and apps to 2010 environment, one of the most popular and logical way used is database detach and attach method. Details mentioned below:
Step 1: Create same sites with same structures in Sharepoint 2010 environment.

Step 2: After taking the backup of the SharePoint 2007 content and other databased exlcluding the Config DB, detach the databases from thir respective sites.

Step 3: Move the Content DB's to SharePoint 2010 environment and replace the Content DB;s of newly created sites with the these DB's from SharePoint 2007 env.

Step 4: Now after attachig these databases to the content db of the new sites and apps in new server you will find all the content and sites running in SharePOint 2010 environment updated!

Here you complete the process of migration but all is not done yet. It is because when you use some third party controls, tools or software or even the FBA authentication in your sites it will require you some extra efforts to enable them back in SharePoint 2010. In this post I will be focussing specially on Workflows.

So once the above steps are done we are left with migrating the code. You may follow the simple steps metioned below. I would like you to read it all once before going to make any actual change. Also note that the steps are not actually long but I have divided them just to simplify things!

Steps:

1. Create a Sequential Workflow using Visual Studio 2010 in SharePoint 2010 dev machine. Please note to use the same name of the list or document library in which the workflow is currenly running on the SharePoint 2007 environment, otherwise the workflow may not work!

2. After you create the workflow in SP 2010 using Visual Studio 2010 you will be left with the basic template and folder sturcture in Visual Studio Solutions view. Please also note that you choose Farm Deployment while creating Workflow and not the Sandbox solution.

3. Now, copy the SP 2007 project developed using VS 2008 to the SharePoint 2010 machine where you are creating the workflow and want to migrate the code to current environment.

4. Right Click on Visual Studio 2010 solution from the Solution explorer to add an existing project. Under this browse to the location where you have copied the Sharepoint 2007 workflow project and finally add it in the VS 2010 solution.

5. Delete the contents of the Worklfow.cs file and other related files from the Workflow folder in the VS 2010 project. Please don't delete the folder. Now drag-and-drop the workflow.cs and other contents of the same workflow folder but from the Visiual Studio 2008 project into folder where you just deleted the contents (VS2010 project).

6. Once you are done with that, create a new folder structure by adding a new folder in the newly created project of (SP2010). Create a folder '14' and then beneath it 'TEMPLATE' and under that 'FEATURES'.

7. Under the features folder Drag-and-Drop the feature folder(s) with their xmls from the SP2007 project to SP2010 project.

8. Now Add all required web references in the SP2010 project which your code might be using or referring.

9. Remove the SP2007 projects and it's contents from the VS2010 solution.

10. Now you may change the namespaces in each file according to the newly created namespace in VS2010 or you may alternatively change the names space of VS 2010 solution with respect to the name spaces you used in SP2007 worklow. I did the later because it was easier and time saving.

Now build the code and you are ready to go!

In case you are creating a new Assembly key you will have a new public key generated for the dll and therefore, please remember to reference it in all the aspx pages.

Saturday, August 25, 2012

How to do Bulk Approvals in Sharepoint custom workflow developed using Visual Studio

As you might be aware that Sharepoint is a great tool which is used by almost all enterprises these days. One big & solid reason as why it has become such a hit is that, it integrates well with the Microsoft's infrastructure which can't be ignored! The other, it helps the enterprises to enable their business process smoothly and enforce the same among it's emaployees to carry out their operations properly. In face we ca say that the businesses run on Sharepoint if it helps to business to operate properly!
One of the most popular use of Sharepoint 2007 / 2010 is enabling business process in an organization using worklows. Sharepoint allows great ways to customize and build enterprise class application and business process to be converted in an easy to use, familiar, well integrated secured infrastructure of Micorsoft.

I have been involved in developing workflows using Sharepoint for over 3 years by now. Recently, my team got a requirement from the business that required workflow approvals to be done in bulk i.e bulk approvals of sharepoint workflows. You might me thinking of it as complex scenario as we also thought it like that. But, to my surprise and intuitive guess it turned out to be a whole lot easier! I will explain below what I did in simple steps to you:

1. I used a Grid View control to display all the tasks assigned to an approver in a new page.
2. Put Check box control to each row in the grid view and placed Approve and Reject buttons at the bottom of the page.
3. Next step was to get all selected tasks in a for loop when the user selected tasks using check boxes from the grid view and clicked Approve or reject button. (pretty simple so far!)
4. On button click I took all the grid view rows in the loop and catched the selected rows ID.
5. From the ID of the task I used AlterTask () method to call On Task Changed activity code/functionality. I set the boolean variable to true in case of Approvals and false in case of Rejection. I used this boolean value in my workflow logic to move or proceed the workflow to the next level in case it is True, and terminate or stop it in case it is Rejected (boolean value False).

To my surprise my code worked wonderfully and all the tasks got approved and rejected very smoothly!
Note the key here is to fire the AlterTask() for each selected row in the grid which we use anyways to fire the ChangeTask Activity using the task approvals or task edit forms.
I tried to Google it a lot before trying out this idea by using keywords like Bulk approvals of sharepoint workflow or batch approvals of sharepoint workflow tasks but I didn't get any clue. Finally, I tried this POC and it worked. I am sharing the same so that you may not have to stumble upon much.

Please note that the above solution presented is developed for SharePoint 2007 using Visual Studio 2008. Please feel free to contact me in case you need the working code also. Happy to Help!!

Saturday, July 10, 2010

Mobile telephony basics - Routing and Processing of data via Mobile phones

Location Based Services or popularly known as LBS is a current buzz in the Mobile telephony segment. Almost all major telecom players are providing LBS services to their mobile phone users. In this post I am going to discuss the LBS architecture  in brief and try to explain the working of Mobile Phone architecture.

The mobile phone handset operates on radio frequencies, that means the input and output data through a mobile phone is only in the form of radio waves when said on the most simplest terms. The data transfer standards are defined for bringing uniformity in data sending, receiving and to perform operation on the data generated by a user though the mobile phone. This standard or set of protocols is called as WAP. Wireless Application protocol. All phones send data using WAP. In internet the protocol is called HTTP - Hyper Text Transfer Protocol.

When we send any data via our phones it goes to the nearest Mobile Phone tower. From that tower it is send to the service stations where the telecom operators servers are kept. These stations have web servers plus application servers. before the WAP data format is fed into Web servers it has to be converted to HTTP format for processing by the application servers. This conversion of WAP data to HTTP format data is done via WAP gateway. Once this is done the user's request send via mobile phone is fed into the application servers and corresponding information is searched and returned which the user has asked. Again, when the information returned by application server is in HTTP format, it gets converted to WAP data format and then finally receives the mobile phone after getting routed through the towers.
Each WAP data sent via mobile phones contains some header info. This header info contains the location of the mobile phone where it is currently located as the mobile phone owner may continuously keeps changing locations. The location information of the mobile phone is registered in the tower where the mobile lies. The packet header is then routed to the corresponding tower after matching the packet header and the mobile phone current address registered in the tower.

This completes the cycle of request sending and receiving via mobile phones.

Tuesday, June 15, 2010

How to install Sharepoint 2007 in Windows Server 2008

Hi Folks! I am putting down the simple steps as how you can install SharePoint 2007 in Windows Server 2008.
There is one trick in this install. This is called slipstream install which means that the install of Sharepoint 2007 will carry the latest updates required in WSS 3.0 and SharePoint 2007 sp1 in one go. i.e during the install itself the installation package looks for the latest patches of the above two in order to complete the successful install.

Here is how you go about it:

1. Copy the installation directory from the Sharepoint 2007 CD/DVD to hard disk of your computer.
2. You will find separate folders for each type of hardware either 64 bit or 32 bit (x86). Copy the respective
    directory in the HDD. example: I have a 32 bit machine so I copied the entire x86 folder in the HDD of
    my PC.
3. Download the service packs of each WSS 3.0 and SharePoint 2007 in your HDD.
4.  After the complete download type the following command in the command prompt.
      name_of_WSS3.0_ServivePack /extract:C:\install
      and
      name_of_SharePoint2007_ServivePack /extract:C:\install
      
    where install is the new folder you create to save the extracted zipped files of the respective service packs.

5. Now, you copy the contents of this "install" folder in the 'Updates' folder under the Sharepoint 2007 server installation files. In my case went to the x86 folder and browsed the Updates folder to copy the entire contents over there.
6. After that I when i clicked on the setup.exe the installation continued and asked for Producut Key!

After this step the installation is simple and as usual.

Hope you enjoy SharePoint 2007 successfully in Windows 2008 server.

Wednesday, May 19, 2010

SharePoint 2007 to 2010 Upgrade strategies

All you SharePoint enthusiasts and professionals a good news that many of you already might be aware is that Microsoft has released SharePoint 2010! Great, isn't it ?!! But how to upgrade yourself to SharePoint 2010 ??

Fine... not to worry... as there are two approaches for the same. This can be decided based on the the hardware capabilities of your server (in which the 2007 version is running). I will straightly point out to processors... ya '64 bit' processors!!
If you have got this already in your SharePoint 2007 box running Central Administrator in it then you should go for "In-Place" upgrade.

The In - Place upgrade is simple, as you don't need to do anything extra other than running your 2010 CD/DVD for install and upgrade. If a compatible hardware is found i.e. '64 bit' processor (along with other RAM and HDD requirement) the Setup automatically switches itself to the In- Place upgrade mode.
The advantage is your farm configurations and settings are restored and you don't have to do anything extra on it. A smooth upgrade. :-)


The other approach is 'Database attach' Upgrade. This upgrade process is for the machines which don't have 64 bit processors already. For these machines you will have move the concerned DB's to another machine with 64 bit processor on it and SharePoint 2010 already installed via it's CD. This is a mandatory step for above upgrade approach. You should also understand that SharePoint 2010 version supports only 64 bit machines.
Once the 'Sharepoint Configuration wizard run' is completed in the new machine, you attach your databases from your existing 2007 farm to this new Sharepoint 2010 machine.
You will have to setup the configurations manually as the config DB attach doesn't works. One thing you should note is that if you miss any of the configurations and any out-of-the-box implementations done in your existing server farm you will loose the same in the new server. So you need to take care of that yourself manually!
The Database attach upgrade process does not captures all these automatically as in case of In Place upgrade process. You will have to manually do it all once again.

My this post is focussed in only letting the users understand the two basic approaches for Sharepoint 2007 to 2010 upgrade and to know when to use each of these approaches. The details on 'step by step' guide for upgrade is already provided in the Microsoft group of sites based on version of SQL server you use.
Please find the link on how to upgrade here --> http://technet.microsoft.com/en-us/library/cc263299.aspx

If you have a large server farm with mixed h/w configurations, then you should mix the above two Upgrade strategies and apply each of them on respective machine as required to make a mixed approach. The Microsoft people call Hybrid strategies.

More details on same below:




Wishing you all smooth and successful upgrades!




Sunday, May 16, 2010

Windows PowerShell 2.0 for SharePoint 2010

With the release of the Microsoft's latest range of 2010 products most from the Microsoft's Office suite like Office, Visio, Project and SharePoint also comes a powerful utility - PowerShell.

Power Shell packs the power of a 'good', if not great shell environment where an administrator can do a variety of tasks which can add more power and control to his tasks.
Power Shell combines the capabilities of cmd.exe and it's new features to make it a great tool for administrators. Also the SharePoint administrator's favorite utility stsadm.exe is replaced in the 2010 version with the same.

PoweShell 2.0 comes with WMI pack and includes the power of .Net framework which gives an admin the power to use those 'classes' to do a specific job. These classes can be accessed by an admin using 'cmdlets'. It combines & includes the 'if' conditioning statements, looping with 'for' and 'While'. It can be used to access any item from Windows registry for example, and perform operations over it, as required. All these gives me the sense of similarity that a Linux or Unix admin enjoys while working in their favorite shell environments.

Some Examples:

1. PS> Get-SPFarm | Select *

2. PS> Get-SPWebApplication


3. PS>Remove-SPSite http://SampleSite


Microsoft not only brings this tool to increase the efficiency of an Administrator but also adds powers to the people who are into this profession!

Sunday, April 11, 2010

SEO comes inbuilt in IIS 7.0

Building a successful site is what any entrepreneur, site owner or a webmaster would like. Search Engine Optimization has grown over one such science which has a direct relation to the financial success of a website. This is now being identified by all the major big players in the www - Google, Yahoo, Microsoft, IBM to name a few.

For the better performance of the websites on the search engines it is one of the best practice nowadays to do SEO. Microsoft who keeps innovating and keeps coming up with newer changes (improved) has now launched IIS 7.0 which comes with inbuilt SEO tools - Search Engine optimization Toolkit. That can help an administrator or a webmaster to do SEO fine tuning of the site.

For more details check out the embedded video in the below link:


Saturday, February 27, 2010

Tracking what the Community talks about you!!!

Organizations which are popular and have a good brand presence for say the products and or services they offer, also have a good presence online. Media companies or be it individuals they will definitely talk about the company for their offerings for the respective consumers. A positive image helps build the brand and negative does exactly the opposite.

It is therefore very important for the organizations to build a positive image and save it from being pulled down by the competitors . A similar example happened with a Electric Car company called REVA, the owners and senior management were too worried to know that some competitor has taken a crash test video and pulled to out of proportion to warn people not to drive this car as it is not safe!! Within no time after a YouTube video was released and comments were published people all across the forums, blogs, community spaces started getting to know about the same and it directly hit the sales figures of the car manufacturer.

'Better late than never' the REVA guys realized that it is best to directly confront their customers and public about the car. They came up published press releases, went back to community sites, forums , blogs chats and updated that the company is serious about this and is trying to work on making things better. Soon, the panic in the general public came to an end and the sales figures of the car company stabilized.

Lucky enough... Because many organization are not able to survive such attacks by the community and they loose the image brand name forever almost!

Had the REVA guys realized and tracked this negative vibe earlier they wouldn't have been in such a situation and would have also battled out the losses due to dropping sales figure and demand for the car in the market.
Imagine yourself, your product, your brand name or the business in this scenario!!

Do we have any such way though which we can track this and take necessary precautions and correct the image before it is ruined by someone else?

Yes of course! you can do that!! it is by using a tool which is like a search engine + analytics system that gives precise statistics of vibes created about your brand in the www. it searches all community spaces in the web for the most relavent search term provided by you that could be associated with the product your organization name. It lists all those places where you are mentioned and an analysis report how people talk about, rate related articles, express views and comments, how do other bloggers think about your product, what is opinion of users about your product in the community sites etc.

This tool is SocialMention.com

Use this to proactively stay steps ahead of the miscreants and save your brand image from getting tarnished by anyone else out there...

Saturday, December 19, 2009

IIS Crash and Hang in SharePoint Websites

My this post truly relates to the people who are suffering with the IIS Crash/Hangs. You know IIS Processes have hanged or crashed when you see lot of Warning messages in the System Logs. The messages descirbes as "The process serving Application Pool "sharepoint_site" failed to respond. The Process Id is "xxxx". " If a series of such errors appear in your System Logs you should use some standard debugging tool to find out what is happening inside.

Basically an Application Pool is a verrtual space where all the requests receved in the server are pooled. The Processor based on it's processing algorithm serves all these request made from the client side computer. Untill then all these processes wait in Application pool. In order to serve any particluar query faster (to enable faster response time) a server uses memory from the buffer or the cache. But this buffer or the cache has a certain memory limit. All this memory allocated in the cache/buffer is in the form of Heap. Heap in particularly is not associated with any index and therefore when too many requests come and if the application is not designed properly the heaps starts overflowing or even fragmenting. This fragmenting in general happens when short term and long term heaps are stored and are not cleared from the application memory.

Now an old school thoery which has very much application in practical. Always free your obects when there use is over. Many developers think that the Sharepoint code comes under the managed code and therefore their is no need to dispose them! This is a mistake that they do because even though the code is from Managed Code the specific objects like the SPWeb and SPSite make reference to the unmanged portion of code which needs to be destroyed using IDisposable Interface.

Once a developer makes sure that all the code is disposed properly he should deploy the same in the server. To check the same he can use a standard tool my Microsoft --> "Dispose Check".

Confirm the same after deploying your modules from the 12 Hive logs.

Thursday, November 12, 2009

Allocation of Database Size for SharePoint Applications

I wanted to share my new finding related to allocating correct available space for SharePoint database.

I was unable to see a better load time of pages when the available database size was less than 30% of the current level.

It was only after I made it 30% auto growth for all the db size in Share Point server I was able to see normal loading of the pages. To make it simpler I give an example here. If your current database size is say 10, 000MB then the availble space should be 10,000MB + 10,000 * 30% of 10,000 which truns out to be 13000MB. Aftre this if you set the autogrwoth property of the database size as 30% then you will experince that the pages are loading faster than before.

Though it was trial and error method through which I learned and took much time to do the same that is the reason I want to share this as it might save a good amount of time for you or just simply avoid this scenarios. The performance impact was immediate and pages where also rendering faster than before.

Monday, October 26, 2009

Building a strong online presence before you start product Promotion & Advertisement

Hi All!!
Before you go out and start marketing your product and services over the world wide web you should make sure that you already have good presence in there. Because when you first start posting or writing about your products or services, a large number of people start searching your name (company's) over the web. To let them know and understand about your brand, your organization, values, vision and products/services offered, you need to create an impression about your organization that helps build your brand.

Do you know where do they look in for you in the web, to know that you are something?!!

These are most probably prominent search engines, web directories, social media space, forums, blogs, wikipedia, criaglists... and the list goes on. Obviously they may land up in any of these above before taking one more step towards you.

But do not forget that, no matter the long this list may be but you need to be present in all these popular medias before you begin the real promotions and marketing for your brand.
After your presence is recognized at all these considerable channels of communication through which people usually connect and rely for trustworthy information you start leaving your competition behind. With this presence you are now ready for a solid head start, and now when your users learn about you through any of your advertisement say an email campaign they realize that this product or brand is well known and exist in most of the respectable digital world channels they know. You will realize that they are going to trust more on your brand rather than any other .

This little preparation which I call web-readiness will add great value to your efforts on web marketing and online promotions. Do remember to keep a track of all your channels through which you communicate with your users. Work out a metric which will help you to understand your customers that directly impacts your marketing efforts. Believe me that when you do an analysis out of all this valuable data you will get some really valuable feedback and insights into building, re-modelling and refining your business and marketing strategy which will propel you to greater heights much above you would have been!

Now your focus should be on building relationship with your customers and once you are able to do that, you experience a loyalty and trust following up for your brand among your customers. Once this is made they will be able to stick to you and wait for your products to hit the market.

This is a simple and solid way of developing a customer following for your brand. Only you need to be very careful in choosing the content and the channel for communication.

Saturday, October 03, 2009

Performance Improvement of Sharepoint Sites

Anyone who is concerned with managing Sharepoint server/sites is well aware that performance management is major concern for Site administrators or managers. This is basically because all the data including the pages in sharepoint server is rendered from the database itself. Because of this each time a request is made more load on the system is incurred as the request is furnished by the database.
There are various suggestions from the Microsoft Sharepoint team. I have customized and used few which worked for me based on the demands of my current implementation and scope of sharepoint 2007.
Rather than going in much details of each workarounds I would like to present them in a simple and straightforward manner so that it becomes easier for all types of audiences to understand.
  1. Reducing the size of the pages - This helps in reducing the load time of the pages especially when they are accessed over the Internet. This will involve working with the Master Pages.
  2. Improving the Farm Architecture - Increasing the number of servers; web front servers, application servers and database servers for proper request response. Load balancing the web front servers in case when the more numbers of concurrent users in the site.
  3. HTTP GZip Compression - Enabling the static (and dynamic as applicable) compression of the page sharepoint site pages using IIS HTTP GZip compression. This works like zipping of your usual office files. It compresses the files before getting released from the server and is then uncompressed at the users end so the response time of the pages becomes faster. You need to analyze the impact of CPU utilization in the concerned servers.
  4. Site Output Caching Strategy - Decide and enable site level output cache which enables the repeated content of the of the pages from being accessed from the server.
  5. Monitoring CPU and Server Logs and User Analytics - Properly managing the server by checking the sharepoint logs, event logs to fix the issues and avoid performance hiccups to the users will ensure proper functioning of the server.

After employing all these measures we experienced a considerable impact on the performance of the portal. The render time, response time and average latency reduced considerably.

I hope when you combine the above with proper backup strategy to backup you site configurations and valuable data timely you will be in a safer position.

Saturday, May 23, 2009

Microsoft warns for SharePoint 2007 SP2 bug

For all those users who are using Microsoft SharePoint Server 2007 should know that there's a bug update by Microsoft. This bug is applicable to the users who are using sharepoint server 2007 product with Service Pack 2 update.

Though Microsoft has confirmed that the bug does not harm any data of your application but only effects the expiration state of the software. Aftre 180 days of installing the SP2 the software expires and renders unusable to the end user.

There is manual fix available to this problem and the company is also working on to close this issue by developing the Hotfix to this problem. Though the next software update is suppose to solve all these issues automatically.

Find more details here --> http://support.microsoft.com/kb/971620

Saturday, April 11, 2009

My Idea of building Language Translator

I am bit sad today... why...?
I saw Gmail with language translation feature. It is like you choose your language based on the country you have chosen during creating your Gmail account(I guess). After you choose your language you what you need to do is to start typing. Begin to type the words of your language in English. Type in English as you would exactly pronounce the word in your language and just press the pace bar you will see that word getting converted into the the actual language word chosen by you.
Great isn't it!!! and simple too!!

Now why I am sad??

I am sad because in one of the organizations where I have been, I gave the idea and a technical implementation detail of building the language translator, Bad that it was rejected. If it would have been successful we would have been one of the first guys to do the same thing. And you know it was for the mobile phone...

Though my idea of translation was quite different from the Google's Gmail team as I thought of doing it a voice based language translation.

Hope I could do something easier and better...

Wednesday, April 08, 2009

Build Spam control functionality to your site using Captchas

Do you own a website? Are you working on a website?? Do you want to make your website spam free? If any of the answers of the above is true you may consider using a captcha service which is open source.

We use captcha when we want to avoid unnecessary requests to the server through the web forms open to the users which can send any data to the server. There are too many scripts, programs which are popularly known as automated bots that can send thousands and millions of unwanted data to the server using those forms.

In order to avoid those forms being utilized by these bots you need to build some validation before the form's data is posted to the server. So the application knows that the this data which is being sent to server is sent by a human and not a bot!!

To do this you can put some images which are being displayed to the users randomly each time the form page is accessed. In these images you need to show some alphanumeric characters and ask the user to type it down in the text placed adjacent to this captcha code. If the data entered by the users is correct based on the captcha then you can be sure that this is a human and not a bot as a program will not be able to make out the numbers displayed in the image.


Try to build this and you could be caught in a heavy duty task.

Now, the Carnegie Mellon University comes with a service "reCaptcha" which enables the the developers to implement this services by simple modification in the code provided in context to your application's technology asp.net, php, java, perl etc.

Each time a user comes to fill up the form he will type the captcha and your code in your web page will connect to the reCaptcha server which will in turn validate the user's authenticity.

Check this out at www.recaptcha.net

Sunday, December 28, 2008

Increasing the DB Size in SQl Server 2005

Hi again, I am going to write a small post on one of the common issues related with databases. I am talking about SQL Server 2005 databases. This is of course not a bug and is only related to tweaking server and application's performance.
By default during the time of database creation a default size of the database is associated. But this db size is not sufficient to hold the data long enough onto it. As you see things working good at the business end, you will experience data growth in your databases. By default, all db's are set with an auto growth property which avoids any data loss or application failure.

But this is not enough!!

In my personal experience, the db size growed enough and continued growing on extra 1MB automatically after reaching maximum default size. It affected my application's performance badly and made my portal slower than anything! During my investigation I checked the Db size and increased it to some good level manually.

This is what I actually did:

1. Opened the SQL management studio 2005
2. Right Clicked the database name - ex. Mx_Content_DB
3. Selected Properties.
4. On the Files menu I increased the initial size of the database
by 1GB and set the auto growth to increase by 10%.

After the database server restart, things stared looking fine and performance level increased considerably.

Please note that when you are using multiple db's in your application, you may have to do the same with other Db's also if
the same issue happens with them.

Tomorrow I will update the same post with the some screenshots which will help you further on your database management activities.