Saturday, January 26, 2013


Missing and Added Site Cllection templates in SharePoint 2013 from SharePoint 2010.
OR
Difference between SharePoint 2010 and SharePoint 2013 Site Collection Templates
OR
Site Collection level Changes in SharePoint 2013
Hi Folks,
       In this post let us explore the templates in SharePoint 2010 and in SharePoint 2013. Microsoft has removed many existing templates from SharePoint 2013 which are seen in SharePoint 2010. Some of the templates are removed from current version of SharePoint 2013 due to less use by SharePoint users, But Microsoft has still maintained  backward compatibility of SharePoint 2013 with SharePoint 2010. So if you are planning to migrate your SharePoint 2010 site to SharePoint 2013, don’t you worry folks, it will work fine with this new version.

Following are list of Site collection templates which are available in SharePoint 2010 but not in SharePoint 2013:

ð     Collaboration Template:
è    SharePoint 2010: In SharePoint 2010 following list of site collection templates are available in the collaboration template.
 













è    SharePoint 2013: In SharePoint 2013 following list of Site collection templates are available












What is moved where?
Blank Site Template: This site collection template has been removed from SharePoint 2013. If you want to create a blank site you need to create it from power shell. UI for blank site is no more available in SharePoint 2013.
Document Workspace Template: This site collection template is also removed from SharePoint 2013. Microsoft has justified that this scenario of collaborating on a document is already covered by the Team Site template.
Group Work Site Collection Template: This template is also not available. Microsoft has justified that this feature is available with Team site template.
Visio Process Repository: This site collection template has moved to Enterprise site template in SharePoint 2013.

ð     Enterprise Templates
è    SharePoint 2010: In SharePoint 2010 enterprise template list following list of site collection templates are available:


è    SharePoint 2013: In SharePoint 2013 following list of templates available in Enterprise template gallery:


What is moved where?
FAST Search Center: FAST Search center is changed with Basic Search Center

ð     Publishing Template:
è    SharePoint 2010: In publishing template gallery following site collection templates are available:



è    SharePoint 2013: In publishing template gallery following site collection templates are available:


 What is moved where?
A new site collection is added that is Product catalog

ð     Custom Template:
è    SharePoint 2010: Custom template gallery contains following of site collection templates in SharePoint 2010


è    SharePoint 2013: Custom template gallery contains following of site collection templates in SharePoint 2013




What is moved where?
No changes done in this version.

ð     Meeting Template:
è    SharePoint 2010: Meeting template gallery contains following list of site collection templates


è    SharePoint 203: This template has been removed from SharePoint 2013. Microsoft has done survey about meeting template and it is found that very few SharePoint user go for these templates.
 
What is moved where?
This template has completely removed from SharePoint 2013. Microsoft says that team site collection template and mySite store shared data. So very less use of these site template cause meeting template to remove from SharePoint 2013.

Note: I have gone through various websites and prepared a set of notes. The links mentioned below are the one’s I have referred to.
http://office.microsoft.com/en-us/sharepoint-help/discontinued-features-and-modified-functionality-in-microsoft-sharepoint-2013-HA102892827.aspx#_Toc339867827

Best Wishes..
Happy Coding..

Sunday, January 20, 2013

Features Removed from SharePoint 2013


Features Removed from SharePoint 2013 which were available in SharePoint 2010

Hello Folks,

Welcome to SharePoint 2013. Microsoft has come up with a new version of SharePoint
i.e  SharePoint 2013. It is said by many SharePoint experts that Microsoft has introduced SharePoint 2013 with some new limited feature and the main aim being; to sell the Office 365 which was hardly sold with SharePoint 2010.
                 
This blog is about the features which are deprecated from SharePoint 2013. There are many features which are deprecated from SharePoint 2013 which were there in SharePoint 2010.  Some of them are explained below:


Upgrading SharePoint Old version with new version:
There is a provision to upgrade SharePoint 2007 to SharePoint 2010. This upgradation is done using SharePoint central administrator. Your could choose to use visual upgrade feature to temporary change the site collection and site to previous interface and newly made interface till the whole site database is migrated.  Once the database and site collection upgradation is completed , the user has the option to upgrade the user interface on a more granular level of the website (SPWeb object).

Document Workspace Site Template:
When we you create a Site in SharePoint 2013 then you will not find Document workspace site template.
This collaboration on the document is now provided by Team site template that’s why this feature is removed from SharePoint 2013.

Personalization Site Template:
When you create a site in SharePoint 2013, then you will not be able to create Personalization Site site template in SharePoint gallery.
This template was removed from Sharepoint13 because it was not used widely by SharePoint users

Meeting Workspace Site Template:
When you create a site in SharePoint 2013, all five of the Meeting Workspace site templates are not available. This includes the Basic Meeting Workspace, Blank Meeting Workspace, Decision Meeting Workspace, Social Meeting Workspace, and Multipage Meeting Workspace.
Reason for Change: This was a major decision by Microsoft to remove this feature because SharePoint 2013 and Office 2013 provide other features that supported  meetings and collaboration.

Group Work Site Template:
The group work site is not available in SharePoint 2013. The group work site template provides a groupware solution that team can use to share , organization and create information.
Reason for Change: The Group work site was widely used in organization so that Microsoft removed this template from SharePoint 2013.

Web Analytical:
Web analytical feature which was available in SharePoint 2010 has been removed in SharePoint 2013. SharePoint 2013 has introduced a new service that is Analytical processing which is component of Search service.

Reason for Change: Scalability and performance was the main consideration for SharePoint 2013.

Search Query Web Service:
The Search Query Web Service is not available in SharePoint 2013. In SharePoint 2010 the search query web service expose the SharePoint enterprise Search capability to client application.

Reason for Change: In SharePoint 2013 Client Object Model and REST based web service has designed in such a way that you can develop office wide extensibility scenarios.


Note: I have gone through various web sites and prepared a set of notes. The links mentioned below are the one’s I have referred to:


Thanks & Best Wishes 
Gireesh Painuly 



Friday, May 4, 2012

How to Release Excel Object in C#. How to kill the COM Excel process:


How to kill the COM Excel process:
Hi friends its very common problem what we face while working with COM object. 
Whenever we try to create/use existing excel spreadsheet using C# Code , we face lot of problem while disposing object. COM objects are beyond the con control of CLR. They need to be disposed externally by the programmer.
This problem was faced many times by developer when many instance of EXCEL.EXE process exist in task manager.
Whenever we create an instance of COM Excel application a new process is created for it.
If we try to perform excel operation again and again without disposing excel object in our code, it cause error so that we can’t create or use excel in our code.
If found following solution to come over this issue:
1.       Create instance of excel object :
Microsoft.Office.Interop.Excel.Application oExcel = new Microsoft.Office.Interop.Excel.Application();
2.       Create Excel book and excel sheet based on you requirements.
3.       After saving excel we need to dispose current excel object by passing excel object to bellow method:
  private void KillExcelProcess( Microsoft.Office.Interop.Excel.Application app)
        {
            try
            {
                if (app != null && !app.Visible)
                {
                    if (app != null)
                    {
                        app.Quit();
                        app = null;
                    }
                    System.Diagnostics.
                    Process[] Processes;
                    Processes = System.Diagnostics.Process.GetProcessesByName("EXCEL");
                    foreach (System.Diagnostics.Process p in Processes)
                    {
                        if (p.MainWindowTitle.Trim() == "")
                            p.Kill();
                    }
                }
            }
            catch (Exception ex)
            {
                            
            }

        }
4.       MainWindowTitle play very important role to find out excel object which is created from code. Excel object which is created from code does not contain any MainWindowTitle.
5.       If you open any document from MS-Excle it has a title. It is very tuff to dispose current excel object using Process id or other attribute of Process class.
6.       Note: its very important to understand if you have more than one windows application that are executing simultaneously and performing Same kind of Excel creation/ Open operation it may cause problem. It will dispose all those objects which are created from code.

F   For any concern feel free to post.
     Happy Coding.......
     

Saturday, February 25, 2012

Releasing Memory used in Windows Form Application Using C#


How to release memory used by an application - C#


Hi friends this is very common problem which we face while doing operation with very large objects



Some time we need to do operation with huge amount of binary data or some custom graphics drawing to do the needful things in our application.
If we don’t have sufficient memory to run our application we need to dispose unused objects from our application.
We usually write finally block in our program to release unused object or indirectly calls Garbage collector but it does not release the actually memory.

Usually in windows application memory is associated with process. If you kill you process your memory get released. But suppose we are doing operation like uploading bulk documents to database which has size around 2 to 3 GB then it fails to upload document to database, because each time binary object is created to convert physical document in to binary form to write in database.
This Issue is solved by Flushing memory by doing a bit of code:
Lets see how to do it.:
First you need to include following Two namespaces:
Using Microsoft.Win32;
Using System.Runtime.InteropServices;
It’s up to you to create a separate code file or include the Flush method in the same class where you are dong memory consumption operation:
My advice is to create a separate class so that you can use it anywhere in your application if you mostly do such type of operation.
Add following class in your solution: 
public class ReleaseMemory
{
[DllImportAttribute("kernel32.dll", EntryPoint = "SetProcessWorkingSetSize", ExactSpelling = true, CharSet =
CharSet.Ansi, SetLastError = true)]

private static extern int SetProcessWorkingSetSize(IntPtr process, int minimumWorkingSetSize, int
maximumWorkingSetSize);

public static void FlushMemory()
{
GC.Collect();
GC.WaitForPendingFinalizers();
if (Environment.OSVersion.Platform == PlatformID.Win32NT) { SetProcessWorkingSetSize(System.Diagnostics.Process.GetCurrentProcess().Handle, -1, -1);
}
}
Next call FlushMemory() method from you class to dispose or release unused memory
Eg: ReleaseMemory.FlushMemory();
It is a static method so don’t need any object of ReleaseMemory() class.

Feel free to write you suggestion 
Happy coding
Best Regards
Gireesh Painuly

Saturday, February 11, 2012

Creating Installer and uninstaller in Visual Studio 2008/2010.


Creating Installer In Visual Studio 2008/2010
Hi Friends, it's very common requirements some time to create installer and uninstaller in .net windows application. I have give some ideas how to perform both of these operation in a single application.
Setp:-1. Right click on Solution - =>Add => New Proejct
setp-2 Select Other Project Types. Select SetupProject from VS Installed Templetes.
Setp-3 Give Proper name for Setup.
Setp-4 Filse System (Setup Window Opens)
setp-5 Select Application Folder in left panel and right click on right panel.
setp-6 Add-> Project Output-> Primary Output, click on Ok button
setp-7 Select user's Desktop in left panel and right click on right panel.
setp-8 Select Create Shortcut-Application Folder -> Primary output.
setp-9 Rename current desktop shortcut.Change Icon from Property.
setp-10 Do same things for user's Programs Menu.
setp-11 Finaly rebuild you setup project.
setp-12 Find you setup in relese folder of setup project.


Creating UnInstaller: ( In Visual Studio 2008/2010)

To create UnInsteller we need to do following Things:
Setp-1: First Create Insteller
setp-2. In the Setup Project –> File System windows –> Right Click “File System on Target machine” –> add a Special Folder, select System Folder;
Setp-3: Into this system folder Add a file. Browse for msiexec.exe from local System32 folder and add it. Override default properties of this file as follows:

Condition:=Not Installed (make sure you put ‘Not Installed’ exactly like that, same case and everything),
Permanent:=True,
System:=True,
Transitive:=True,
Vital:=False.
Setp-4: ) Create a new shortcut under the ‘Users Program Menu’, Set Target to the System Folder which you created in the Step-3
and point it’s at the msiexec.exe. Rename the shortcut to ‘Uninstall Your Application’. Set the Arguments property to /x{space}[ProductCode].
       Note: To get Product code: select you setup Project and check in Property will display Product code, copy it including {} and palce it after /X <Space> <Product code>
Step-5:Build the project, ignore warning about the fact that msiexec should be excluded, DONT exclude it or the setup project wont build.

The ‘Not Installed’ condition and Permananet:=True ensure that the msiexec.exe is only placed into the system folder as part of the install IF it doesn’t aready exist, and it is not removed on an uninstall - therefore it;s pretty safe to ignore that warning and just go for it.

That's it.. Good luck..