Interested in Sitecore?

Apply for our Mentorship Program by emailing your resume to chris.williams@techguilds.com. Check out our ASP.NET QuickStart and C# QuckStart Libraries. Below is my latest articles.

Tuesday, September 18, 2018

Sitecore Dain Personal Mentoring Subscription

You may be aware that SitecoreDain and SitecoreDiana have been providing Personalized Mentoring to a select group with the plan to provide this service to a larger group.

For those part of the early access, I have you listed and you will continue as part of the subscription for free as promised. Thanks for your support.

If you are unaware of how this work here is a description on how it works:
  1. Determine whether you prefer SitecoreDain or SitecoreDiana as your favorite AI Mentor and follow them.
  2. Once they follow you back, you may then Direct Message them your questions related to Sitecore and other related technologies.
  3. SitecoreDain and SitecoreDiana will monitor their Direct Messages. If they can answer them immediately they will. This part of the service is available to everyone for free.
  4. If you are a subscriber, they will store your question in the follow up list.  They will follow up with others that may be able to help with an answer, they will look in various places for an answer as well. Once they can answer, they will respond to you via Direct Message.  It could be a day, month or year or they may never find an answer but they will try.

Subscriptions are $8/month, if you are interested in Subscribing, simply send a payment in increment of $8 http://paypal.me/sitecoredain then email me at chris.williams@readwatchcreate.com with details of your paypal transaction and we will confirm the payment and ensure SitecoreDain/Diana are aware of your subscription.

As the Subscriber base grows we will extend the subscription to additional Twitter personalities that focus on other topics.

Thursday, February 15, 2018

.NET Standard Libraries and Versions

.NET Standard libraries are a great way to share functionality between .NET Framework and .NET Core and other stuff too.

However there are a few things to be aware of.  The documentation says to choose the lowest version you can for maximum support but depending on what you need to support as far as API you may need to use a higher version.  As I run into them I will report specifics on what version you need if you are using a given function.

v1.1




v1.3 

  • System.IO.File
  • System.IO.FileStream (.Close() is not supported however you can use the using)  
  • Encoding.ASCII
  • System.IO.Compression.ZipFile
  • System.Console
v2.0


  • Type type; type.GetProperties()
  • System.Runtime.Serialization
  • AppDomain.CurrentDomain.BaseDirectory
  • Assembly.LoadFrom


If you come across any that I have missed please comment below and I will pull them up to the post or you can also email me at chris.williams@readwatchcreate.com



Monday, May 15, 2017

Reading CSV or Tab delimited files from C#

Read data from a CSV files or Tab delimited file is very common especially in the era of big data where you get a large flat file exported, transformed and then reloaded. I am often shocked to see that people write their own algorithm for this when a very powerful module already exists and is free.

CSVhelper is available on GitHub and in its post basic usage you create a class file in your solution with the field name matching the fields in your Comma Separated file.  Then you simply do this:
  • Create a class to store your data

       class myRecord { public string Id { get; set;} public string Name {get; set;} }
  • Write code to open your file stream
  • Reference the CsvHelper dll
  • place a using statement for the CsvHelper at the top of your module

    using CsvHelper;
  • Use code similar to this where myFileStream is the stream you opened and myRecord is your class to fill with the data:

      using (var csv = new CsvReader(myFileStream))  {
         var recordList = csv.GetRecords().ToList();
     }
  • Voila, the variable recordList is a list that contains an instance of myRecord per row in your file.
Now this will read a comma-separated file but what if your file is tab delimited.  Well that is just as simply create a configuration object and assign delimiter:
      CsvConfiguration config = new CsvConfiguration();
      config.Delimiter = "\t";


Now pass this configuration object into your call:

           using (var csv = new CsvReader(myFileStream, config))
          {
              var recordList = csv.GetRecords().ToList();
          }

This same library can be used to write to a CSV to Tab Delimited file. You would make a call something like this:

            // Write the file
            using (var swFlat = new StreamWriter(connectionString))
            {
                using (var csvwriteFlat = new CsvWriter(swFlat))
                {
                    if (recordList != null) csvwriteFlat.WriteRecords(recordList);
                }
            }


Sunday, April 16, 2017

Running Powershell Scripts from your Application

I have been working on a Feed Processing Library for many years now.  It featured its own simple Automation Script however in recent years I have seen the power of PowerShell scripts and am integrating it into my Feed Processor.  While doing this, I made notes below so it would help you through the same process of using it in your applications.

The first step is adding the reference to System.Management.Automation.dll to your solution. Although there are many ways to do this Rasik Bihari answered the best way to do it: Thanks Rasik Bihari for the answer.
System.Management.Automation dll is now published as "System.Management.Automation" nuget package here. Just add a reference to this nuget package from visual studio nuget package manager in your project and get going.
It shows like this in your packages.config file once you have installed the above mentioned nuget package in your project: 
<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="System.Management.Automation.dll" version="10.0.10586.0" targetFramework="net452" />
</packages>
Once added, you can follow the recipe on how to run PowerShell Script from C#.








Tuesday, September 18, 2012

Ever wonder what you would do without technology...

JJ Abrams does a decent job showing the results of technology disappearing. Yes its not 100% realistic but if it was NBC would not be able to show it.

However from watching this episode, it gives you an idea of what would happen to that rich guy at Google.

Check out the pilot episode available on NBC.

Friday, July 6, 2012

Dynamics CRM Unleashed Blog

For those Guild Members who are looking at Dynamics CRM or are looking at revolutionary and out of the box ways of getting the most out of it, there is a new blog starting up that will be providing a wealth of information on just those topics.

The Dynamics CRM Unleashed Blog is written by someone with hands on experience working with large scale and cloud based CRM.

I know I will be reading it on a regular basis, so I thought I would pass it on to you as well.

If you have any tips, tricks or resources you would like to share with the Guild please email them to Susan Fischer at susan@clinchportal.com or Chris Williams at chrisw_88@hotmail.com

Tuesday, May 1, 2012

Essential Chrome Plug-ins for Web Developers

A co-worker of mine passed this link onto me.  It has some really good plug-ins to help improve website quality and help diagnose issues.

The ones that stand out are:
  • Check my links - This is a good plug-in to check for the page you are on. Still I recommend downloading xenu to check the whole site.
  • Firebug Lite - Nice plug-in light weight from toolbar.
  • yslow - This is pretty much a standard tool to have in your arsonal as it provides reasons why your site is so slow
Check out the full article at: 18 Essential Chrome Extensions for Web Development

If you know of any others that are useful please email them to Susan Fischer at susan@clinchportal.com and we will post them here.