Thursday, March 27, 2014

SharePoint ULS Log Viewer for SharePoint 2013

If you have used the SharePoint ULS Log Viewer for previous versions of SharePoint, you may be disappointed to know that the CodePlex site for the ULS Log Viewer project has not been updated in a very long time and only continues to support SharePoint 2010: http://ulsviewer.codeplex.com/

Fortunately, there is a mirror project which has been updated to support SharePoint 2013: http://sharepointlogviewer.codeplex.com/

Even though the release date and version number on the Downloads tab is confusion, you will notice that it was last updated May 7, 2013 in order to support SharePoint 2013.
  http://sharepointlogviewer.codeplex.com/releases/view/45124


Pros and cons of AspDotNetStoreFront

I have been using AspDotNetStoreFront for quite some time and I thought it would be worthwhile for consumers that are currently researching AspDotNetStoreFront (ASPDNSF) as their potential e-commerce platform to be able to review some advantages and disadvantages to using the platform.

Pros:

  1. AspDotNetStoreFront is one of the few commercial (non open-source) ASP.NET E-Commerce Engines that provides an on-premise solution.
  2. AspDotNetStoreFront provides numerous features still missing in many ASP.NET open-source platforms such as support for Recurring Billing with multiple payment providers (Authorize.Net and PayPal), Recurring Billing checkout with multiple recurring items in a single order and a wide variety of payment providers such as Amazon Checkout.  For example, a competitor such as Volusion does not have
  3. AspDotNetStoreFront is reasonably affordable compared to other ASP.NET platforms especially for the Express edition and they include 1 year of support as part of the purchase price.
Cons:

  1. ASPDNSF does not provide a pluggable or modular platform, thus requiring access to source code to make modifications to enhance the platform (source code is available for an additional cost).
  2. Many features in ASPDNSF are provided through 3rd party solution providers which generally require Professional Edition or above as well as substantial costs in acquiring their solutions such as Real Time Shipping with Cut Off times (such as that provided by a 3rd party solution provider called SimRun (http://www.simrun.com/AspDotNetStoreFront/SEEAspdnsfPricing.aspx).  It also seems that ASPDNSF heavily relies on its 3rd party solution providers to include many of the features that the base platform is lacking, therefore, do not expect to see currently lacking features introduced into the platform in a later release version. 
  3. The ASPDNSF platform is still using ASP.NET Web Forms and .NET 3.5.  At the current time, there is no published roadmap for support for ASP.NET 4.0 or 4.5.
  4. The ASPDNSF platform still does not have published support for SQL Server 2012 (and the soon-to-be released SQL Server 2014).
  5. The ASPDNSF platform still uses deprecated data types such as ntext (which have been deprecated since SQL Server 2005) as part of their database schema and has no published roadmap to update the schema to support the new nvarchar(MAX) datatype.
  6. The ASPDNSF platform does not regularly maintain and update their documentation for newer platforms.  For example, the installation documentation still refers to Windows 7/Windows Server 2008 R2 (http://manual.aspdotnetstorefront.com/p-1229-installation-guide-windows-7.aspx) and makes no mention of newer platforms such as Windows 8 or Windows Server 2012/Windows Server 2012 R2.
  7. ASPDNSF has very little customizability and extensibility out-of-the-box.  For example, some E-Commerce platforms support adding additional customer attributes to be able to capture additional customer information, however, ASPDNSF does not offer this feature nor is there any roadmap for making the platform more customizable and extensible.
  8. ASPDNSF has very limited CMS (Content Management System) capabilities.  The ability to generate content is extremely limited and does not provide many of the features provided by more robust content management systems such as Telerik Sitefinity or Kentico CMS/EMS.
  9. ASPDNSF ships with a default set of templates that are very basic and not very appealing visually.  If you want some more appealing templates, you can either purchase them through a 3rd party solution provider or customize the existing templates yourself.
  10. The administrative user interface is especially complex (if not overly complex) compared to various other E-Commerce engines such as VevoCart or nopCommerce.  You have to dig around the administrative interface and read through the documentation to figure out how to do anything but the most simple of tasks.
  11. There are a very limited number of reports that are provided out-of-the-box with ASPDNSF.  If you want to create custom reports, it requires you to have a detailed knowledge of the underlying ASPDNSF database schema and a working knowledge of SQL.  You can then create custom reports by following this documentation: http://manual.aspdotnetstorefront.com/p-427-custom-report.aspx.  There is no "Report Builder" capability or feature within the system to allow you to easily build your own custom reports out of the system.
  12. The installation package is extremely primitive and basically only serves the function of extracting the installation file to a specified directory (a glorified version of WinZip or WinRaR).  Whereas most other installation packages from software vendors provide all of the necessary setup operations for you such as creating necessary file system permissions, creating the necessary databases etc. ASPDNSF installation package does none of that.  
Therefore, if you are currently evaluating your feature needs for an ASP.NET-based E-Commerce system, I would definitely carefully consider whether or not your feature requirements will be met by AspDotNetStoreFront.  If not, you should prepare for purchasing source code and making your own set of customizations and enhancements or working with a 3rd party solution provider and end up paying considerably more than the base purchase price.

Overall,  if you simply need an ASP.NET-based E-Commerce engine and have a minimal budget, ASPDNSF is an acceptable choice, however, you are probably better off choosing a more well-maintained commercial solution such as Kentico EMS or Telerik Sitefinity CMS with the E-Commerce add-on which have regular updates to the platform and provide better overall and well-rounded capabilities and features.


Saturday, March 22, 2014

SQL Server 2012 Express Unattended Installation

I was just trying to automate my SQL Server 2012 Express installation by using a ConfigurationFile.ini file that I had generated from a previous installation of SQL Server.

However, when I attempted to execute the installation by passing the ConfigurationFile.ini as a parameter to the setup, the installation failed to start!

When I did a bit of further reading on the issue, I discovered that you cannot use the ConfigurationFile.ini for automating installations of SQL Server Express and instead, you must completely automate the installation using the Command Prompt as described in this article: http://msdn.microsoft.com/en-us/library/ms144259.aspx

That was rather unfortunate since it would take quite a bit of trial and error to determine the proper parameters to pass to the installation without the presence of a ConfigurationFile.ini file.

Well, fortunately, I discovered a neat little UNDOCUMENTED trick to determine the appropriate parameters to pass to the SQL Server 2012 Express installation.


  1. Perform a SQL Server 2012 Express installation with all of the desired parameters by using the Wizard GUI interface
  2. At the end of the installation, you will see a summary screen of the completed installation.  At the bottom of the screen, you will see a hyperlink to a summary text file.
  3. Click on the hyperlink to view the Summary text file.  Towards the bottom of the text file, you will see a section titled "User Input Settings" which indicates all of the various parameters that was used by the installation.
  4. You can then note down all of the parameters that you will need by cross checking the reference MSDN article and then create the appropriate command line for the SQL Server 2012 Express Installation! 


Friday, March 21, 2014

Using AutoSPInstaller for SharePoint Installations

 

If you want to automate your installations of SharePoint 2010 or SharePoint 2013, then you definitely want to take a look at AutoSPInstaller.  http://autospinstaller.codeplex.com/

AutoSPInstaller provides an XML Input File which you can use to set parameters for the installation and then proceeds to execute a set of PowerShell scripts to carry out the entire installation of either SharePoint 2010 or SharePoint 2013.

Normally, you would have to manually edit all the settings in the XML file using some type of text editor or an XML Editor, but fortunately, a 3rd party company has released a GUI interface for AutoSPInstaller (appropriately named AutoSPInstaller GUI) which provides an easy-to-use GUI interface for entering all of the various settings required in the AutoSPInstaller input XML file.  http://autospinstallergui.codeplex.com/

However, one of the major limitations or deficiencies in the input file and the GUI interface is to be able to specify a SINGLE DOMAIN for all of the domain user accounts that are needed to be set up for a SharePoint Farm.  Instead, one has to manually specify all of the various individual domain names for all of the user accounts that are used to setup the SharePoint Farm.

Well, fortunately, this can easily be rectified through use of a PowerShell script to perform a search and replace throughout the AutoSPInstaller input XML file.

Below is the contents of a sample script to replace the text “DOMAIN” throughout the entire XML file.

$filePath = "C:\AutoSPInstaller\AutoSPInstallerInput.xml"
$originalString = "DOMAIN"
$replacementString = "SPFARM"
 
(Get-Content $filePath) | Foreach-Object {$_ -replace $originalString, $replacementString} | 
Set-Content $filePath

Easy way to create custom Search Providers in Internet Explorer


You might be familiar with the tedious manual process of installing new Internet Explorer Search Providers by using the IE Add-ons Gallery: http://www.iegallery.com/en-us/AddOns

However, what if you want to add a search provider which is not listed in the IE Add-ons Gallery such as an alternative search engine such as Dogpile (http://www.dogpile.com/)

Well, fortunately, a developer has created a nifty little website which allows you to do just that and even Install the custom Search Provider to Internet Explorer!

You can create a custom Search Provider by visiting this website: http://www.enhanceie.com/ie/searchbuilder.asp

You simply have to visit the search engine of your choice and search for the word “TEST”.  You then simply paste the search results page Url into the appropriate Textbox, provide a name for the custom Search Provider and you will be ready to install your very own custom Search Provider for Internet Explorer!

NOTE: While the site states that it is primarily made for targeting Internet Explorer 7, I have tested this with Internet Explorer 11 on Windows 8.1 and it works just fine!!

Thursday, March 20, 2014

Excellent alternative to Windows File Copy

You might have read about Microsoft RichCopy in an earlier blog post of mine: http://samirvaidya.blogspot.com/2012/08/microsofts-free-alternative-to-windows.html

Microsoft RichCopy is the Microsoft-based alternative to Windows Explorer copy operations, however, RichCopy has not been updated in several years and while useful, it has its own set of problems in terms of overall usability.

The biggest limitation of Microsoft RichCopy is that it is not integrated with Windows Explorer.  Therefore, you can only copy an ENTIRE directory at a time or just copy 1 file at a time.  Therefore, if you just want to copy over a few files from a directory, you are stuck copying them over individually using Microsoft RichCopy or settling for Windows Explorer to copy.

While Windows 8's Windows Explorer copy operations are significantly improved over predecessors of Windows (including Windows 7), it is still fraught with problems.

Fortunately, there is an excellent 3rd party alternative to Windows Explorer copy and they even offer a free personal edition for home use!

The software I am referring to is TeraCopy by Code Sector.  You can download TeraCopy from here: http://codesector.com/teracopy

TeraCopy directly integrates with Windows Explorer as well as has a separate copy dialog for managing copy operations thereby giving you the best of Windows Explorer-type copy operations as well as Microsoft RichCopy.

TeraCopy has been very reliable and very fast for copy operations.  I frequently copy over data backups from my local Windows 8.1 desktop computer to my NAS device and I nearly always use TeraCopy for these operations.  Copy operations that would typically take several minutes using Windows Explorer copy, typically take 1/2 that time or less using TeraCopy.  The biggest annoyance that TeraCopy removes from standard Windows copy operations is the lengthy time to "analyze" the copy operation before the Windows Explorer copy operation actually proceeds.

Of course, if you need to purchase a copy of TeraCopy Pro either for its additional features or for commercial use, the licensing cost is extremely affordable at only $19.95 per license.  If you decide to purchase TeraCopy, you can buy it directly from the Code Sector website (purchase button at the bottom of the page): http://codesector.com/teracopy

Monday, March 17, 2014

Get Microsoft OneNote for Free!

If you have Microsoft OneNote in the past, you may think of the software that is typically bundled with every release of Microsoft Office.

However, Microsoft recently announced that it will be providing OneNote for FREE to all users!!

The details of Microsoft OneNote being released to the general public can be found here: http://blogs.office.com/2014/03/17/onenote-now-on-mac-free-everywhere-and-service-powered/

You can download the free version of Microsoft OneNote here: http://www.onenote.com/


Saturday, March 15, 2014

Creating a Custom Report in AspDotNetStoreFront

If you have started working with AspDotNetStoreFront, you may have noticed that the out-of-the-box product does not ship with very many default reports.

Therefore, if you have a need to write a Custom Report that can be easily exported to MS Excel, you can follow this article to create a Custom Report: http://manual.aspdotnetstorefront.com/p-427-custom-report.aspx

One thing to note, however, is when you are writing your own custom reports, many of the fields in the AspDotNetStoreFront database still use the ntext data type (as of the current release v. 9.4.0.0), thereby SEVERELY limiting the types of queries that you can write against the database.  Unfortunately, there is no current estimated timeframe as to when the product will be updated to support the newer varchar(MAX) and nvarchar(MAX) data types.

 

Deleting Test Orders from the AspDotNetStoreFront Database

If you need to clean up your AspDotNetStoreFront database by removing and deleting any test orders from the database, then you will need to follow the instructions described in these articles:

http://manual.aspdotnetstorefront.com/p-1286-clearing-oldtest-orders-from-the-database.aspx

http://manual.aspdotnetstorefront.com/p-411-clearing-test-orders-from-the-database.aspx

However, neither of these articles FULLY address cleaning out and deleting out all of the order data from the database.

You will need to also run these statements to delete ALL of the order data:

DELETE FROM OrderShipment
DELETE FROM OrderNumbers
DELETE FROM ShoppingCart


Wednesday, March 12, 2014

Getting Started with AspDotNetStoreFront

If you are setting up AspDotNetStoreFront as your ASP.NET E-Commerce engine, you may have some initial trouble getting started with setting up your site and then knowing where to begin setting up your site.

Therefore, here are the steps that I followed to get an AspDotNetStoreFront site up and running:


  1. Install AspDotNetStoreFront by folowing this article: http://manual.aspdotnetstorefront.com/p-479-installation-guide-windows-vista-windows-server-2008.aspx  For some reason, they do not have an updated installation guide for Windows Server 2008 R2 or Windows Server 2012/2012 R2, but the main difference is applying the "IIS_IUSRS" account instead of "Network Service"
  2. Once you have been set up, you should immediately log into the Admin Console by following the instructions here: http://manual.aspdotnetstorefront.com/p-474-the-admin-home-page.aspx
  3. Now that you have logged into the Admin Console, you will need to perform some customizations.
  4. Under the Configuration menu select --> Site Configuration Wizard.  This will allow you to enter all of the relevant basic data about your AspDotNetStoreFront (ASPDNSF) site including Payment types and Payment Gateways.  If you need to specify a Payment Gateway such as Authorize.Net, you can click on the "Configure" link next to the appropriate Payment Gateway and then enter the required information.  Only after doing this will you be able to select the Authorize.Net radio button.
  5. Beneath the Configuration menu, select Email and enter the necessary details for your Smtp Server.
  6. Beneath the Configuration menu, select Shipping-->Shipping Methods to configure 1 or more Shipping Methods for your products.
  7. Now to customize the content of your site, click on Content-->Manage Topics. Some of the common topics you will want to customize are the following:  
    • HomeTopIntro
    • Template.Header
    • Template.Footer
    • Template.Logo
    • EmptyCartText
    • Copyright
    • Template.TopNavigation
    • Template.VerticalNavigation
    • PageNotFound
  8. You may have to customize some additional "built-in" strings that are used in ASPDNSF, so you can do this by select Content-->String Resource Mgr.  For example, I needed to change the text for the following String Resource: product.CallToAction.IsRecurring
  9. For additional customizations, you may need to go into Configuration-->Advanced-->AppConfig parameters and alter some values to support functionality that you might need (such as for Recurring Orders)
  10. Now that you have set all of this up, you can now begin setting up Products.  However, you will need to set up at least 1 Manufacturer before you can create your first product.  Therefore, from the Products menu, select Manage Manufacturers.  Create at least 1 Manufacturer.
  11. Now from the Products menu, select Manage Products.  You can then begin adding products.  If you need to add a Recurring product, you need to first save the product and then select "Show Variants" and enter the Recurring Interval on the "Recurring" tab.  You can read more about Recurring products here: http://manual.aspdotnetstorefront.com/p-459-recurring-orders.aspx.  Unfortunately, the documentation and screenshots are a bit outdated, so this is how the Recurring screen should actually look like in the most recent release of ASPDNSF (v. 9.4 as of this writing):


That should be it!  You should now be up and running with your basic AspDotNetStoreFront web site!

Friday, March 7, 2014

Common expenses for hosting your own website

When someone typically asks me that they want to build their own website, one of the first questions that comes up is "How much will it cost?"

Well, if you want to build a very basic, static HTML-based website, you can actually get this done for practically free in many cases.  You can usually get free hosting from your ISP (Internet Service Provider) and you just create your HTML pages and you are done!

However, if you are running your own business, this will probably not meet your needs.

Therefore, here is a brief list of common expenses that will be associated with getting your own website up and running:


  1. Your own custom domain name
  2. Hosting provider
  3. E-mail hosting provider
  4. SSL Certificate
  5. Payment Gateway
  6. Credit Card Processor/Transaction Fees

  • Your own custom domain name - this can usually be purchased for as little as $0.50 for the 1st year.  However, don't be fooled into thinking that this will be all it will cost year after year.  Most companies will give you a very cheap price as an entry point and then charge you anywhere between $12 - $20 per year for ongoing maintenance of that domain name.  In some cases, if you also purchase hosting, you can get an ongoing domain name for free for as long as you maintain the costs of your hosting provider.
  • Hosting provider - you can get different costs for hosting providers varying from free (for Windows Azure website hosting) to even up to $70 - $150 per month (or more)!  You will often get cheaper hosting for the Linux platform (for as little as $2.95 per month) than you will get hosting for the Windows platform (usually starting at $4.95 per month).  Ultimately, the hosting plan you choose will depend on the web technologies that you are using, whether or not will require a database back end, the memory and processor allocations for you hosting site and the backup and availability requirements.
  • E-mail hosting provider - if you want e-mail hosting for your domain name (someuser@mydomainname.com), then you will probably have to pay for an e-mail hosting provider which ranges from $2 - $5/user per month.  In some cases, you may get some free e-mail hosting through your hosting provider, but unless your needs are very basic, the e-mail hosting provided for free by hosting providers provides very few e-mail features and very little e-mail hosting space.  The days of GMail for Business offering free e-mail hosting are now long gone and you now have to pay for any GMail e-mail hosting at your own custom domain name.  
  • SSL Certificate - if you are planning on doing any type of secure online activity where you are capturing user information such as address information, financial information etc. you will need to probably purchase an SSL certificate.  The costs of SSL certificates vary widely across the board, but generally an SSL certificate can cost as little $29 per year.  In many cases, hosting providers will provide deeply discounted SSL certificates to their hosting subscribers.  However, buyer beware!!  Some hosting providers still have hidden fees built into adding an SSL certificate to their hosting plan such as requiring an upgrade to your hosting plan or purchasing an add-on.  For example, while a hosting provider such as WinHost offers the ability to add on an SSL certificate for free to your hosting plan (that you have purchased), a hosting provider such as SmarterASP.Net requires that you purchase their add-on for a static IP address (an additional $24/year) in order to support adding an SSL certificate to your hosting website.
  • Payment Gateway - if you need to accept any payments online through your website, you will need to subscribe to a Payment Gateway.  Once again, there are numerous payment gateways that you can choose.  Prices vary depending on the payment gateway that you choose and the feature set that you require.  Authorize.Net is one of the cheaper payment gateways that has some initial setup fees and then a monthly charge of around $18/month and a fixed per transaction fee ranging from $0.15 - $0.30.  Other providers such as PayPal cost a little bit more (for their paid plans) at around $20 - $30/month.  
  • Credit Card Processor/Transaction Fees - If you are using a Payment Gateway, depending on the Payment Gateway that you choose, you may have to pay additional fees to a Credit Card Processor such as credit card transaction fees.  For example, Authorize.Net requires a back-end Credit Card processor whereas Payment Gateways such as PayPal manage all of the credit card processing for you but have overall higher fees and per transaction costs.  Credit Card Processors will typically charge you a per transaction percentage such as 2.5% plus a fixed amount per transaction such as $0.17.  Therefore, your final cost per transaction might be something like this: 2.5% + $0.17.  These types of per transaction fees needs to be calculated into your overall cost of how you price the products or services on your website.
So, these are all of the common considerations for expenses that you have to examine and analyze before setting up your very own website.

Good luck!

Adding SharePoint PowerShell scripting support to the Windows PowerShell ISE

If you have been using the new versions of Windows PowerShell (v. 3.0 or v. 4.0), you will know that Microsoft has made significant numerous enhancements to PowerShell for overall usability.

One of the very major improvements to Windows PowerShell has been the enhancements made to the Windows PowerShell ISE.

Below is a screenshot for the latest version of the Windows PowerShell ISE (available by default on Windows 8.1 and Windows Server 2012 R2):


So, if you want to begin using this new IDE for writing all of your PowerShell scripts rather than using the SharePoint Management Shell, what do you have to do?

Well, the answer is quite simple.

Just as you do for managing SharePoint cmdlets in a standard PowerShell window, you can add the PowerShell SnapIn for SharePoint using the following syntax:

Add-PSSnapIn Microsoft.SharePoint.PowerShell

Once you have done this, you will be able to manage your SharePoint scripts and cmdlets directly within the brand new Windows PowerShell ISE!

Tuesday, March 4, 2014

Active Directory Permissions for Profile Synchronization in SharePoint 2013

If you want to set up User Profile Synchronization in SharePoint 2013, you will need to grant special Active Directory permissions to the user account that is configure for User Profile Synchronization.  The specific permission that is required for this is the "Replicate Directory Changes" permission.

You can read more about the individual steps required to grant this permission in this article: http://technet.microsoft.com/en-us/library/hh296982.aspx

Below are screenshots of the process as described in the above article:









Authorize.Net Error Message: (13) The merchant login ID or password is invalid or the account is inactive.

I was working with integrating Authorize.Net into my E-Commerce Application when I received the following error message from Authorize.Net:

(13) The merchant login ID or password is invalid or the account is inactive.

I only received this error message when using my Merchant Account, but when I used my Developer Sandbox account, my transactions processed successfully!

I could not understand why this error was occurring since it seemed that the Merchant Account was successfully set up.

Therefore, I decided to download the sample code and try posting some sample transactions myself with the Merchant Account Login ID and Transaction Key.

I followed the directions in the sample code and strangely enough, the transactions succeeded!

Therefore, there was definitely something else wrong with the system and I was determined to find out the root cause.

After looking through the sample code and the configuration of my E-Commerce Site, I came across this tidbit of information:

<!--
By default, this sample code is designed to post to our test server for
developer accounts: https://test.authorize.net/gateway/transact.dll
for real accounts (even in test mode), please make sure that you are
posting to: https://secure.authorize.net/gateway/transact.dll
-->

Based on my E-Commerce configuration, it seemed as though it was submitting my Merchant ID to the wrong Url!!

Therefore, I decided to try this for myself in my sample code.  Instead, of submitting to https://secure.authorize.net/gateway/transact.dll, I submitted to https://test.authorize.net/gateway/transact.dll.  And, as you can probably guess, I received the EXACT same error message!

Therefore, when you are setting up and configuring your accounts for the Authorize.Net Payment Gateway, you must follow these rules:

  1. For the Developer Sandbox account, you must ALWAYS use https://test.authorize.net/gateway/transact.dll
  2. For a Merchant account, you must ALWAYS use (even in TEST MODE) https://secure.authorize.net/gateway/transact.dll.  
Hopefully this should clear up some confusion for developers who experience this error when submitting transactions to the Authorize.Net Payment Gateway.

Monday, March 3, 2014

Provide feedback to Microsoft on the SharePoint platform

Until just recently, end users and developers could only provide feedback to Microsoft via the former http://visualstudio.uservoice.com website.

However, many of these SharePoint posts were often neglected or noticed very infrequently especially in comparison to the Visual Studio feedback items.

Well, fortunately, in recent months, Microsoft has created a completely separate UserVoice site for SharePoint feedback!

You can provide your feedback on the SharePoint platform here: http://officespdev.uservoice.com/

Looping through all List Items in a SharePoint List using a SharePoint Designer 2013 Workflow

If you need to loop through all List Items in a SharePoint List in a SharePoint Designer 2013 Workflow, you can accomplish this by following the guidance in this article: http://www.proactivespeaks.com/2013/08/08/looping-on-list-items-in-sharepoint-designer-workflow-2013/

However, I made a few crucial changes to the logic provided in the above article:


  1. Rather than populating the items into a Dictionary in order to get a specific column from the JSON Result Set, I simply queried for it directly like so: d/results([%index%])/Title
  2. When using the conditional counter with an integer variable such as index, the initial value is 0.  However, unless some additional logic is in place, the value will never be incremented!!  Therefore, some additional logic is necessary to make sure that the final value is incremented in order for the loop to completely execute such as:
    then Calculate Variable:index plus 1 (Output to Variable: calc) 
    then Set Variable:index to Variable: calc

This is the final view of the Looping Workflow that I had in place:


This article also discusses how to perform Looping of List Items in a SharePoint Designer Workflow: http://weblogs.asp.net/ricardoperes/looping-through-list-items-in-sharepoint-2013

Configuring VMWare Guest VMs to host SharePoint 2013

With the new SharePoint architecture available with SharePoint 2013, while hosting a SharePoint Farm on more than 1 VM is highly recommended, it is not always possible for developers.

Therefore, if you are limited to working with a single VM for hosting the SharePoint application server (presumably you still have a separate domain controller), you should configure your VM minimally with the following hardware configuration:


  1. 2 Processors with 1 Core (preferably 2 Cores)
  2. 8 GB Memory
  3. 80 GB Hard Disk

I actually configured my original SharePoint Guest VM with 1 Processor and 2 Cores thinking that this would make no difference from the above configuration.

However, as I quickly discovered, this slight configuration change makes a tremendous difference!

Even though my CPU was almost perpetually pegged at 100% usage, when I was configured for use of just 1 Processor I would often wait several minutes just to save a workflow I created in SharePoint Designer. Even running a very basic workflow would often take several minutes.



Once I made this CRITICAL hardware configuration change, I was suddenly able to save my workflows in SharePoint Designer in just a matter of seconds and my more complex workflows would run in a minute or less rather than several minutes in its previous configuration!!

Excellent alternative to Altova XMLSpy

If you have used the trial version of Altova XMLSpy but find it too expensive to purchase for your XML-editing needs, fortunately, there is a competing product which provides many of the same features and functionality as Altova XMLSpy but at a significantly lower price point!

This product is called Stylus Studio and is offered by a company called Progress Software Corporation.

You can compare the features of the various editions of Stylus Studio here:  http://www.stylusstudio.com/buy/compare.html

There is even a Home edition of the IDE for personal use which is very affordable at just $99!  http://www.stylusstudio.com/buy/

Resetting the SharePoint Farm Passphrase

If you ever have to add additional SharePoint servers to your SharePoint Farm or if you need to upgrade your SharePoint Farm with a Cumulative Update or a Service Pack, then you will need to know your SharePoint Farm Passphrase.

The SharePoint Farm Passphrase is originally configured when you first set up and install SharePoint for the very first time.

But what if you have forgotten your SharePoint Farm Passphrase since then?

Well, fortunately, you can easily reset your SharePoint Farm Passphrase through a very simple set of of PowerShell commands as is described in this article:  http://sharepointadam.com/2010/01/21/reset-the-farm-passphrase-in-sharepoint-2010/

How to manually configure Outlook for use with Yahoo! Mail

If you use an e-mail client such as Outlook for reading and viewing your Yahoo! Mail, you may have noticed that the wizard in Outlook does not always configure the proper settings to allow you to connect, therefore, you may have to manually configure your mail account in Outlook anyway.

Therefore, here are screenshots of how to configure your Yahoo! account manually for use with Outlook:


After you configure the basic settings for your e-mail account, you will need to click on the "More Settings" button to configure additional settings for use in connecting to Yahoo! Mail:



If instead of using POP for mail, you prefer to use IMAP, you can follow the settings below:


Just as with setting up your POP Mail account, you will also have to click on "More Settings" in order to configure the additional settings for Yahoo! mail to work with your Outlook e-mail client:




That should be it!  You should now be able to successfully connect to Yahoo! Mail and send and receive e-mail messages.

Working with JSON Data from SharePoint RESTful Web Services

As you may already know, SharePoint 2013 offers RESTful Web Services that can be called through a browser to view the resultant data.

By default, the RESTful Web Service will return the resultant data as XML.  However, for practical development purposes, the easiest way to work with it is when the data is instead returned as JSON.

But how do you get the web browser to display JSON data that you can view?

Well, fortunately, there is a Google Chrome extension that allows you to change the Request Headers sent to a SharePoint RESTful Web Service called ModHeader.

This can be added from the Google Chrome Store here: https://chrome.google.com/webstore/search/mod%20header?hl=en-US




Once the extension has been downloaded and installed, you can click on the ModHeader icon in the toolbar and add the following headers:

Accept  application/json;odata=verbose

Content-Type  application/json;odata=verbose


Now you can browse to the SharePoint RESTful Web Service, using a Url such as the following: http://myserver/sites/mysitecollection/_api/lists/getbytitle('MyList')/items

Once you browse to that site, you should now be able to view the resultant JSON data.

However, in order to properly parse and view the JSON data, you will want to use an online tool such as the following: http://json.parser.online.fr/

This will allow you to easily view the structure of the JSON data so that you can write appropriate queries in any SharePoint applications you are developing.

Sunday, March 2, 2014

SharePoint 2013 SP1 is released!

SharePoint Server 2013 with SP1 has just been released on MSDN Downloads!!

The most exciting thing about the SP1 release is that it finally brings support for Windows Server 2012 R2!!  Woo hoo!

You can download it from here: http://msdn.microsoft.com/subscriptions

If you just want to download SP1 (and not the entire integrated media), you can download the standalone service pack from here: http://www.microsoft.com/en-us/download/details.aspx?id=42008

Saturday, March 1, 2014

Working with the "Assigned To" field in a SharePoint Designer 2013 Workflow

Normally whenever I perform a lookup of a field, I always use the Current Item's ID field in order to locate the particular record.

Therefore, when I was working with the "Assigned To" field and assigning the value to a workflow variable, I thought that naturally I could continue to use the ID field for locating and assigning the value of the record.

However, as I soon learned, this does not work!

When I ran my workflow, I received the following exception:


After doing a bit of research on the use of the "Assigned To" field, I discovered that instead, I needed to use the GUID for locating the record rather than simply relying on the traditional ID field.

Therefore, I changed my lookup query to look like the following:


After changing to the GUID field, I was able to successfully assign values stored in the "Assigned To" field to my workflow variables!