PetaPoco – lightweight .NET ORM

This one looks like a great .NET lightweight ORM:

PetaPocoA tiny ORM-ish thing for your POCOsPetaPocoMainDocumentationLicensePetaPoco is a tiny, fast, single-file micro-ORM for .NET and Mono.Like Massive it’s a single file that you easily add to any projectUnlike Massive it works with strongly typed POCO’sLike Massive, it now also supports dynamic Expandos too – read moreLike ActiveRecord, it supports a close relationship between object and database tableLike SubSonic, it supports generation of poco classes with T4 templatesLike Dapper, it’s fast because it uses dynamic method generation (MSIL) to assign column values to properties

Source: PetaPoco – Topten Software

Remove git mapping in Visual Studio 2015 – Stack Overflow

You simply need to remove three files from the project Path. navigate to Your Project Folder then permanently delete (“SHIFT + DEL”)

the files to permanently delete are: (‘File’ .gitignore ,’File’ .gitattributes , and ‘folder’.git)

(may be hidden so ensure you have your folders and search options > View > show hidden files, folder, and drives(Radio Button) Selected)…reopen VS and their is no more relationship to the Git Source Control. if you wanted to take it as far as removing it from the registry as mentioned above you could but shouldn’t be necessary aside from the “house keeping” of your machine. hope this helps.

Source: Remove git mapping in Visual Studio 2015 – Stack Overflow

Set available buttons for TinyMCE Editor in EPiServer 8+

From this guide:
http://world.episerver.com/documentation/Items/Developers-Guide/Episerver-CMS/9/Content/Properties/Property-settings/

A toolbar looking like this (quite many buttons available):
Image 20160517 145713 001

Uses this TinyMCESettings C# code:

using EPiServer.Core.PropertySettings;
using EPiServer.Editor.TinyMCE;
using EPiServer.ServiceLocation;

namespace MySolution.Core.ContentEditing
{
    [ServiceConfiguration(ServiceType = typeof(PropertySettings))]
    public class DefaultTinyMCESettings : PropertySettings<TinyMCESettings>
    {
        public DefaultTinyMCESettings()
        {
            IsDefault = true;
            DisplayName = "Default settings";
            Description = "Default configuration as defined by the developers.";
        }

        public override TinyMCESettings GetPropertySettings()
        {
            var settings = new TinyMCESettings();

            settings.ToolbarRows.Add(new ToolbarRow(new string[]
            {
                TinyMCEButtons.EPiServerLink, TinyMCEButtons.Unlink, TinyMCEButtons.Image, TinyMCEButtons.EPiServerImageEditor, TinyMCEButtons.EPiServerPersonalizedContent, TinyMCEButtons.Separator,
                TinyMCEButtons.PasteText, TinyMCEButtons.PasteWord, TinyMCEButtons.RemoveFormat, TinyMCEButtons.Separator,
                TinyMCEButtons.TableButtons.Table, TinyMCEButtons.Separator,
                TinyMCEButtons.TableButtons.RowProperties, TinyMCEButtons.TableButtons.CellProperties, TinyMCEButtons.Separator,
                TinyMCEButtons.TableButtons.InsertRowBefore, TinyMCEButtons.TableButtons.InsertRowAfter, TinyMCEButtons.TableButtons.DeleteRow, TinyMCEButtons.Separator,
                TinyMCEButtons.TableButtons.InsertColumnBefore, TinyMCEButtons.TableButtons.InsertColumnsAfter, TinyMCEButtons.TableButtons.DeleteColumns, TinyMCEButtons.Separator,
                TinyMCEButtons.TableButtons.SplitCells, TinyMCEButtons.TableButtons.MergeCells
            }));
            settings.ToolbarRows.Add(new ToolbarRow(new string[]
            {
                TinyMCEButtons.Bold, TinyMCEButtons.Italic, TinyMCEButtons.EPiServerQuote, TinyMCEButtons.Separator,
                TinyMCEButtons.JustifyLeft, TinyMCEButtons.JustifyCenter, TinyMCEButtons.Separator,
                TinyMCEButtons.SuperScript, TinyMCEButtons.SubScript, TinyMCEButtons.BulletedList, TinyMCEButtons.NumericList, TinyMCEButtons.CharacterMap, TinyMCEButtons.Outdent, TinyMCEButtons.Indent, TinyMCEButtons.Separator,
                TinyMCEButtons.StyleSelect, TinyMCEButtons.Separator,
                TinyMCEButtons.Undo, TinyMCEButtons.Redo, TinyMCEButtons.Separator,
                TinyMCEButtons.Search, TinyMCEButtons.Replace, TinyMCEButtons.Separator,
                TinyMCEButtons.Code, TinyMCEButtons.Separator,
                TinyMCEButtons.Fullscreen
            }));

            // Add the default non-visual plugins that replaces built in functionality with EPiServer specifics.
            settings.NonVisualPlugins.Add("advimage");
            settings.NonVisualPlugins.Add("epifilebrowser");

            //if (PrincipalInfo.CurrentPrincipal.IsInRole("administrators"))
            //{
            //    //Chance to personalize. Let's allow administrators to access the html editor.
            //    settings.ToolbarRows[1].Buttons.Add("code");
            //}

            settings.Height = 200;
            settings.Width = 600;
            return settings;
        }

        public override System.Guid ID
        {
            get { return new System.Guid("a6fe936f-190d-45e2-b83c-ccc0501a7312"); }
        }
    }
}

 

How to solve 500 – Internal Server Error in ASP.NET: Troubleshooting Failed Requests Using Tracing in IIS 7 : The Official Microsoft IIS Site

If nothing of value comes up in your errorlogs or in the event viewer. Just follow this guide to enable Tracing in IIS7+

Source: Troubleshooting Failed Requests Using Tracing in IIS 7 : The Official Microsoft IIS Site

Troubleshooting EPiServer 7+ search indexing-service

Search index is located at:
directoryPath=”[appDataPath]\Index”
Index folder can be deleted, an then triggered by this tool (click start indexing).
Url: http://[mysite]/EPiServer/CMS/Admin/IndexContent.aspx
The index folder should now be created if all configuration is correct.

Troubleshooting: Troubleshooting EPiServer search indexing-service | Hans Kindberg

Setup and configuration for search: Svein Aandahl’s Blog: How to install EPiServer Search for EPiServer CMS 7

Deleting Data in SQL Server with TRUNCATE vs DELETE commands

TRUNCATE TABLE is a statement that quickly deletes all records in a table by deallocating the data pages used by the table. This reduces the resource overhead of logging the deletions, as well as the number of locks acquired; however, it bypasses the transaction log, and the only record of the truncation in the transaction logs is the page deallocation. Records removed by the TRUNCATE TABLE statement cannot be restored. You cannot specify a WHERE clause in a TRUNCATE TABLE statement, it is all or nothing. The advantage to using TRUNCATE TABLE is that in addition to removing all rows from the table it resets the IDENTITY back to the SEED, and the deallocated pages are returned to the system for use in other areas.

In addition, TRUNCATE TABLE statements cannot be used for tables involved in replication or log shipping, since both depend on the transaction log to keep remote databases consistent.

TRUNCATE TABLE cannot used when a foreign key references the table to be truncated, since TRUNCATE statements do not fire triggers. This could result in inconsistent data because ON DELETE/UPDATE triggers would not fire. If all table rows need to be deleted and there is a foreign key referencing the table, you must drop the foreign key and then recreate it.

Source: Deleting Data in SQL Server with TRUNCATE vs DELETE commands