Friday, April 25, 2008

Free Utility to Tune and Optimize the SharePoint ranking algorithm through a GUI!!

A Microsoft partner call BA-Insight has developed a free utility that gives the SharePoint administrator the ability to tune and optimize the SharePoint ranking algorithm through a graphic user interface. Download the free utility here.

Wednesday, March 26, 2008

Create Business Forms using Microsoft Word and Excel (alternative solution to Microsoft InfoPath)

Microsoft has released some really cool pre-formatted document libraries that can act as an alternative option to Microsoft InfoPath business ready forms. Each library is pre-configured to populate the body of document with library fields automatically. Check it out here and download today

Saturday, February 23, 2008

"Failure decompressing data from a cabinet file" Error while creating saving site as a template

This follows from my previous blog post. This error "Failure decompressing data from a cabinet file" can be avoided by using the stsadm command line tool of MOSS 2007 and using the "nofilecompression" attribute.For example to export a site template, you would use something like this:

  • stsadm.exe -o export -url http://intranet/test -includeusersecurity -nofilecompression -filename C:\backup

Once you finish your export use the stsadm import command with the same nofilecompression attribute. For example:

  • stsadm.exe -o import -url http://intranet/test -includeusersecurity -nofilecompression -filename C:\backup

Wednesday, February 20, 2008

How do i resolve this error "The site is too large to save as a template. The size of a template cannot exceed 10485760 bytes." in MOSS 2007

I get asked quite commonly about increasing the maximum size of List Templates (Saving a list as a template is an easy way of transferring data from one place to another in SharePoint). The quick trick here is as follows :

stsadm -o setproperty -propertyname max-template-document-size -propertyvalue 350000000

Note that:
  • The above increases the maximum size of both site and list templates.
  • The propertyvalue parameter is in bytes, so the example above will increase the maximum size to approx 350MB.
  • Default value is 10 MB or 10485760 bytes
  • There is a hard limit of 500MB so the value must be less than 524288000 or you will get an error when saving the list as a template.

Wednesday, January 23, 2008

Have you heard of Microsoft F# yet?

F# is a functional programming language that runs on Microsoft's Common Language Runtime and the .NET Framework. This means that F# has access to .NET Framework APIs and, conversely, that other .NET languages can use F# libraries. This Fast Guide offers a quick introduction to F# programming best practices and attempts to answer key questions about this new .NET implementation. Click here for more information

Microsoft offers Parallel Programming with .NET 3.5

Late last year, just after Visual Studio 2008 was formally released, Microsoft offered preview software that shows where things may be headed in terms of support for parallelism in future versions of .NET and Visual Studio. Microsoft announced the Parallel Extensions Community Technology Preview (CTP) that runs on the .NET Framework 3.5, thus tapping into features in C# 3.0 and Visual Basic 2008. Parallelism APIs in the new .NET extensions support parallel For and ForEach loops. Declarative data parallelism is supported in the form of a data parallel implementation of LINQ-to-Objects that eases implementation of LINQ queries that run on multiple processors. Meanwhile a new concurrency runtime maps and balances code to available concurrent resources on the execution platform. Pretty cool huh!

Thursday, December 27, 2007

GROUPING SETS - New User defined data types in SQL Server 2008

Other cool features that developers and architects will love are sparse columns, GROUPING SETS, large user-defined data-types (that can exceed the 8000-byte limit), and the new FILESTREAM data type

A new member of the T-SQL Family - the MERGE statement

One revolutionary addition is the new MERGE statement. On par with other core T-SQL CRUD features such as INSERT, SELECT, UPDATE, and DELETE, the MERGE statement is an ISO-2003 compliant command that is primarily intended to handle what many database users refer to as "UPSERT" functionality. For example, say you have an application where you either need to log a new entry for something that hasn't been added to your system, or update it if it's already been added previously. Without the MERGE statement you must either run a SELECT statement to see if a row has already been logged and then UPDATE or INSERT if it's not there. Or you can try to UPDATE first, and then INSERT if the UPDATE doesn't affect any rows. With the MERGE statement you can do this all in one fell swoop. Here's a rather extensive example of the syntax, pulled from the SQL Server November CTP:

MERGE Production.ProductInventory AS pi
USING (SELECT ProductID, SUM(OrderQty) FROM Sales.SalesOrderDetail sod
JOIN Sales.SalesOrderHeader soh
ON sod.SalesOrderID = soh.SalesOrderID
AND soh.OrderDate = GETDATE()
GROUP BY ProductID) AS src (ProductID, OrderQty)
ON (pi.ProductID = src.ProductID)
WHEN MATCHED AND pi.Quantity - src.OrderQty <> 0
THEN UPDATE SET pi.Quantity = pi.Quantity - src.OrderQty
WHEN MATCHED AND pi.Quantity - src.OrderQty = 0
THEN DELETE;

Documentation from a previous CTP's Books Online provides an overview, but the syntax has changed a bit between CTP releases. However, if you study that statement listed above, you can see that it's just a built-in switch (or case) that specifies what to check for, and then what to do if the data is found or not. What's cool about this statement, though, is that you can perform the entire check-in a single operation - which drastically increases performance during large-scale UPSERT operations or when you're trying to merge two large tables.


Table-Valued Parameters
Ever wanted - or more importantly - needed to pass in a table or array of values to your stored procedures? Well, now you can with Table-Valued Parameters. Imagine the following:
CREATE TYPE myTable AS TABLE (
key varchar(6),
value varchar(20)
)
GO

CREATE PROC dbo.InsertKeyValuesFromWebApp
@tvp myTable READONLY,
@owner int
AS
SET NOCOUNT ON

INSERT INTO [dbo].[SomeTable] (key, value, owner)
SELECT key, value, @owner FROM @tvp

RETURN 0
GO

For simpler applications, this functionality might seem like overkill, but for many complex applications, having this code on hand will be a lifesaver. This is something I’ve wanted for years (and which I’ve had to get around by sending in XML fragments as varchar parameters and then re-hydrating on the server) , and now we’ll have native support for it – I can’t wait. I can also see this becoming a wicked bit of functionality when combined with LINQ down the road.

Tuesday, October 30, 2007

Saturday, October 06, 2007

Microsoft Codename "Astoria" CTP toolkit enables developers to create and consume Data Services for the Web

The goal of Microsoft Codename Astoria is to enable applications to expose data as a data service that can be consumed by web clients within corporate networks and across the internet. The data service is reachable over regular HTTP requests, and standard HTTP verbs such as GET, POST, PUT and DELETE are used to perform operations against the service. The payload format for the data exchanged with the service can be controlled by the client and all options are simple, open formats such as plan XML and JSON. The use of web-friendly technologies make it ideal as a data back-end for AJAX-style applications, Rich Interactive Applications and other applications that need to operate against data that is across the web.

Read More & Download....

Team System Web Access (formerly known as TeamPlain) released

Team System Web Access (formerly known as TeamPlain) is a Web interface to Visual Studio 2008 Team Foundation Server. The following features are available in the new release:
  1. NEW: Display custom controls on work item forms
  2. NEW: view queued builds new, queue new builds
  3. Add new work items or edit existing ones
  4. Work with any type of work item, including custom ones
  5. Add new work item queries or edit existing ones
  6. View, download, upload, check-in and check-out documents on SharePoint team portal
  7. View reports, export as PDF or Excel
  8. Browse source control repositories, download files, view changesets, diffs, histories, and annotated views
  9. View build results, start or stop builds
  10. Search for keywords in work items

DOWLOAD this awesome tool from Microsoft website today

Thursday, October 04, 2007

SharePoint Project Management: Better Handling of Multiple Project Sites (3rd Party Tool for MOSS)

http://store.bamboosolutions.com/kb/article.aspx?id=10739

SharePoint 2007 / MOSS 2007 Backup Pros and Cons, Evaluation Standards & Strategies (3rd Party tool for MOSS)

With SharePoint quickly becoming the preferred platform for team collaboration, protecting it against data loss and damages is a key concern for today’s administrators. Can you distinguish various types of data based on its importance? Can you backup critical, frequently changing sites and documents to separate storage tiers? Though improved, the native SharePoint 2007 backup tools still have major issues with recovery granularity, performance, fidelity, and usability. This webinar discusses MOSS 2007 backup Pros and Cons, and recommends new evaluation standards and practices for SharePoint backup.

AvePoint specializes in award winning, enterprise-strength backup solutions for MOSS 2007, WSS 3.0 and Project Server 2007. Today, with 700+ production customers (many of them Fortune 500 companies) and well over 2000 trial customers across 6 continents, AvePoint has become the dominant market leader in SharePoint staging, backup, and disaster recovery solutions.

Wednesday, October 03, 2007

eMail Management and Outlook Integration through nSynergy (3rd party tool for MOSS)

I came across a product from nSynergy that specializes in email and document management using SharePoint 2003/2007. They have developed Drag&DropIt™ to integrate SharePoint and Outlook and finally solve the problem of managing emails within SharePoint. Drag&DropIt™ allows you to easily save emails and email fields into SharePoint document libraries both online and offline. View this demonstration to find out more about dragging and dropping emails into SharePoint and accessing your SharePoint document libraries without ever leaving Outlook


Why is eMail Management so critical?

eMail management has become a high priority for all businesses, both large and small, with most written correspondence being delivered in email form. Businesses can use tools like SharePoint to manage most of their important business documents, but the inability to easily place emails into SharePoint and share those files within a document library is a problem that many SharePoint users have encountered.

You can now use Outlook to drag and drop emails directly into SharePoint document library folders. You can also view, open, create and access documents and emails directly within Outlook. With emails, documents and other files being accessible through Outlook, everyone in your workplace can use Outlook and SharePoint together to create a powerful yet simple document management tool.

The ability to automatically move emails from Outlook into SharePoint and create document library folders from Outlook is a process that will energize your SharePoint 2007 workflows.

nSynergy product that leverages the familiarity of the Outlook interface and the powerful searching features of SharePoint is needed. Metadata from emails such as Date Received, Date Sent, From and other fields are transferred automatically into a document library’s columns by simply dragging and dropping emails into Outlook folders. This makes it easier to filter and search for these emails and utilize the power of the SharePoint document library views.

Monday, October 01, 2007

How to index PDFs in MOSS 2007 document libraries

SharePoint document libraries are phenomenal tools for collaborative environments where files are shared. And SharePoint's ability to search files in document libraries makes finding files easy. Well, unless the document is a non-Microsoft file type, such as the ever-present PDF file.


The sad fact of the matter is that Windows SharePoint Services (WSS) 3.0 and Microsoft Office SharePoint Server (MOSS) 2007 can't index PDFs by default. That's not news to many veteran SharePoint professionals. Nor is the fact that you can add an icon for PDFs, reindex existing documents, and so forth. However, many administrators are new to SharePoint, and will hit their heads hard against this problem. I was disappointed to see that, despite extensive searching on Google, I could find no single, authoritative, and (most importantly) complete guide for how to do so.

The "bottom line" is that you must install an iFilter for PDFs on your SharePoint servers--specifically, any server that performs search, which would be all WSS servers and your MOSS search server. iFilters are plug-ins that enable indexing of file types. Although iFilter is a Microsoft specification, it is generally through vendors or third parties that you'll get iFilters--not through Microsoft itself.

After you add the iFilter, you must configure SharePoint to index the file type (.PDF). But then, you still have two problems. The biggest is that SharePoint will index only files that are added or existing files whose properties change. So SharePoint will not index existing PDFs when you add the PDF iFilter. You must rebuild your index. The second challenge, purely a cosmetic one, is that you enable SharePoint to display an appropriate icon for PDFs.

This installment will focus on 32-bit WSS servers. Both of these documents contain the word "iFilter" in them, but a search produces only the Word document. Now, let's fix the problem!

1. You will need two downloads: The Adobe PDF iFilter version 6.0, available from Adobe click here
An icon for PDFs, also available from Adobe. Check their licensing page then download the gif


2. Install the iFilter. Note: Many guides on the Internet suggest shutting down Microsoft IIS or the Shared Service Provider (SSP) or the WSS application(s). I found this was not necessary, and Microsoft's own KB article 927675 did not specify it was necessary.


3. Add a registry entry for the .pdf extension in the key HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\12.0\Search\Applications\\Gather\Search\Extensions\ExtensionList. (Open the registry editor. Navigate to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\12.0\Search\Applications\\Gather\Search\Extensions\ExtensionList\. Identify the highest "number" value in the key. On a default installation of WSS, the highest entry is 37. Note they are not sorted in numeric order because registry value names are strings. Create a registry value for the next number, e.g. 38, by choosing Edit à New à String Value then naming the value the next highest number (e.g. 38). Double-click the value you just created and, in the Value Data box, type: pdf. Note there is no dot preceding the extension.


4. There are two registry keys with specific values that must exist. Verify that these exist and, if not, create them: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\12.0\Search\Setup\ContentIndexCommon\Filters\Extension\.pdf - Value Name: Default; Type: REG_MULTI_SZ; Data: {4C904448-74A9-11D0-AF6E-00C04FD8DC02})
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\12.0\Search\Setup\Filters\.pdf (Value Name: Default; Type: REG_SZ; Data: (value not set) - Value Name: Extension; Type: REG_SZ; Data: pdf
- Value Name: FileTypeBucket; Type: REG_DWORD; Data: 0x00000001 (1)
- Value Name: MimeTypes; Type: REG_SZ; Data: application/pdf


5. Restart the Windows SharePoint Services Search service. Open a command prompt. Type net stop spsearch, then net start spsearch. Perform a search, and existing PDFs will not be returned. But newly added PDFs will (once indexed by SharePoint) appear in search results. If you modify any property of an existing PDF, it will be indexed. But who wants to modify all existing PDFs in a document library? This is where I found a lot of misinformation online. Even Microsoft's KB 927675 didn't suggest the right solution! It's easy! STSADM, SharePoint's ubercommand, to the rescue!


6. Rebuild the WSS search index.- Open a command prompt.- Navigate to Program Files\Common Files\Microsoft Shared\web server extensions\12\BIN and type the following commands
stsadm.exe -o spsearch -action fullcrawlstop
stsadm.exe -o spsearch -action fullcrawlstart
The existing PDFs will, after being indexed, appear in search results. But they will still not have correct icons. So, while your site is being indexed, keep going with these steps to configure the icon.


7. Open the folder Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\Template\Images.


8. Copy the gif you downloaded in Step 1 into the folder.


9. Open the folder Program Files\Common Files\Microsoft Shared\Web server extensions\12\Template\Xml.


10. Right-click the file docicon.xml and choose Open With and select Notepad.


11. In the element, you'll see a number of elements. You will add one for pdf. It does not have to be in alphabetical order. The element you need to add is:


12. Save that file and close Notepad.Now, the moment of truth. A search now provides the results.

Microsoft is finally using Microsoft Team Foundation Server internally

Microsoft is finally using Microsoft Team Foundation Server 2008 Beta 2 internally. Click here to get some great statistics

Rich Internet application job trends and salaries

This is a good reference for all you interactive developers to know what you are worth in the marketplace

How to generate RSA public and private keys as well as export to XML

The following method shows how RSA keys can be saved to disk as an XML file. The XML files can then be used to make an RSA secure channel -- the public key is used for encryption and the private one for decryption.

///
/// Generates 2 XML files (public and private key)
///

/// RSA private key file path
/// RSA private key file path
/// secure size must be above 512
public static void GenerateRsa(string privateKeyPath, string publicKeyPath, int size)
{
//stream to save the keys
FileStream fs = null;
StreamWriter sw = null;
//create RSA provider
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(size);
try
{
//save private key
fs = new FileStream(privateKeyPath, FileMode.Create, FileAccess.Write);
sw = new StreamWriter(fs);
sw.Write(rsa.ToXmlString(true));
sw.Flush();
}
finally
{
if (sw != null) sw.Close();
if (fs != null) fs.Close();
}
try
{
//save public key
fs = new FileStream(publicKeyPath, FileMode.Create, FileAccess.Write);
sw = new StreamWriter(fs);
sw.Write(rsa.ToXmlString(false));
sw.Flush();
}
finally
{
if (sw != null) sw.Close();
if (fs != null) fs.Close();
}
rsa.Clear();
}

Friday, August 24, 2007

Awesome article on Unit Testing

Visual Studio Team Foundation Server Web Access Power Tool

Team System Web Access (formerly known as TeamPlain) is a Web interface to Visual Studio 2005 Team Foundation Server. Download this awesome power tool now