TIPS

ByAlexia Pamelov

Cheap Windows Hosting – Which One is SEO Successful WordPress, Joomla and Drupal

CheapWindowsHosting.com | Needless to say that in the continuously evolving world of web technologies to run a competitive business, your site should be in the top 10 list in most of the search engines. To pack a site with compelling, fresh and useful content and to make regular changes and updates users often turn to CMS solutions to get the job. It has been an endless debate in between WordPress, Joomla and Drupal over which one is better than the other in terms of SEO capabilities.
wp-joom-dru
There is over thousand open source CMS available at the market but when major content management principles are of concern, three names like WordPress, Joomla and Drupal come first. When it comes to SEO – one of the unresolved questions is which of the aforementioned three provides the best optimization features? Lets explore from a SEO perspective and figure out which one is an award-winning in terms of optimization capabilities.
  • WordPress is a great website platform to use that tries its best by simplifying the process of optimization for its users. However, the real SEO power of WordPress doesn’t come out the box, but is found among the countless plugins available. There are some fantastic plugins which make advanced SEO super-easy in WordPress. Consider using popular plug-ins such as Yoast or All in One Pack that really let your optimization efforts soar. To reflect it – WordPress allows to create tags for posts, something which Joomla doesn’t allow without the use of an extension. Besides, it is possible to optimize permalink structures and set all the appropriate metadata for pages and posts. The bottom line is that in WordPress it is quite possible get high rankings even if you are totally new to the whole website game.
  • Joomla requires the most initial care and attention in terms of SEO, but, contrastingly, it has great potential to rank very high in case a website and pages are set up properly. The software contains basic SEO-optimization functionality that can be extended by experienced developers’ hands. In Joomla it is possible to turn on SEF URLs, take it a step further by enabling URL rewriting and also choose whether to enable URL suffixes or not. Besides, you can add global meta description and meta keywords, as well as define meta tags and title tags at a page level. However, all the process is not as user-friendly as it potentially could be. In short, if a Joomla website needs more than just a basic optimization, one should be ready to get hands dirty since Joomla proper on-site optimization is not a one-click affair at all, especially for newbies and first-time users.
  • Drupal has the best SEO capability that is readily available. It provides its users with several modules available for any SEO activity and tracking of the web statistics. It can automatically produce customizable meta tags or create title based URL nodes for a website, a characteristic that is lacking with WordPress and Joomla. Additionally, it supports RDF and integrates very easily with Google Analytics and offers more advanced SEO facility settings. However, there’s one roadblock to unleashing its powerful SEO features – Drupal is extremely challenging for those without much website experience.
To conclude with another good news, all content management systems need some extra work or add-on SEO modules to maximize their SEO capabilities. To be specific, designers and average users swear by WordPress, while programmers and geeks drool over Drupal. Joomla meets everybody somewhere in the middle. Which one is best is quite a loaded question because there really isn’t a best – there’s only the best for the situation you’re in. Consequently, take your time to evaluate your experience, requirements and budget and make probably the most important decision in your life. In case, you are ready to take the plunge and migrate to WordPress, Joomla or Drupal.
ByAlexia Pamelov

Cheap Windows Hosting Tutorial – Tips for Writing SEO

CheapWindowsHosting.com | In this post I will show you some tips for writing SEO friendly content. Before we delve into the tips, let us begin with what it means to have SEO friendly content. Simply put, it is producing content that is written with attention given to how search engines might view your content.  Sadly though, there are a lot of marketers as well as bloggers who put too much emphasis on their SEO and tend to forget about putting their readers front and center.  Think of your audience and write something that will be beneficial to them. You are writing for people, not for the search engines.

If you are new to blogging or you have a new website, it is only natural to want to be searchable and improve in page rank.

Here are eight tips for writing effective SEO friendly content.

Tips for Writing SEO

seo-content

1. Write Useful And Engaging Content 

When asked what my formula is for writing good content my answer is always write content that is useful and/or entertaining.  Most search engines rewards sites that share relevant content with their readers.  The more original and fresh the content you share, the better visibility you will gain in search results. The more people who find your content helpful or entertaining, the more share worthy it becomes.  Remember that a well written article trumps quantity at all times. Some site owners think the more articles they churn out, the more ranking they acquire. This couldn’t be more wrong. If you just vomit words out for the sake of having new content, you will be disappointed.

2. Keep It Short And To The Point

You need to be considerate your reader’s time. Keep it short and make your point right away. Some articles longer articles can be boring. In my experience, if a person can read your article and benefit from it in under 5 to 10 minutes, you’ll get more people engaging with your content.  I also like using lists. Try to break up your copy for easy reading.

3. Choose Your Keywords And Use Them Wisely 

Even before you start writing an article, you should have already chosen which keywords to use. Include them in your title, in your meta-tags and within the body of your post. Be careful not to over use them. Most readers are wise enough to see what you are doing and will get turned off and never go back to your site again.  Don’t be lazy. Tag your content. This will help search engines categorize your content more accurately and that will help your search positioning. Don’t know which keywords or tags to use, try WordTracker or Google Trends.

4. Have A Point Of View

What will set your work apart from others is your point of view. Everyone can write an article on the same topics as yours but adding your own story and experience will make your content unique. Offering your own spin or twist will make your content much more interesting to your readers. If they can better relate to you, the more shareable and engaging your article will be.

5. Make Links Part Of Your Copy

When you add links to your article, it is important to make it part of your copy instead of just saying “check it here”.  Adding back links from credible websites that you used as a source is important as it builds trust and credibility with your readers about the information you are sharing.

6. Optimize Your Images For Better Search Engine Ranking 

Use relevant images not just all text. Not only does it makes your article more interesting, but you’re able to optimize your images with relevant keywords to name your image files or graphics. Make sure to name the image properly and to optimize the size of the image as load time can have an impact on your SEO. Make the image as small as possible without sacrificing quality. You can try the Image Optimizer tool for this task.

7. Proof Read Your Material Before You Publish 

This is a must for all writers. Proof read your work. Make sure you check your spelling. Imagine if you are relying on keywords to help you be more searchable and you misspell those keywords, then all your hard work becomes futile. Besides, you also don’t want to annoy your readers with misspelled words and bad grammar.

8. Make Your Content Easily Shareable

Okay, you have followed all the tips above. You wrote a killer article and have published it. The next important step is to make it shaerable. Make sure you have all the leading social share buttons on your website.  All the popular social networking sites offer plugins readily available for anyone to install and most are free. Search ranking tends to increase when content is shared frequently. Don’t under-estimate the power of social media.

There you go, the eight tips that I use as a checklist before publishing any article.  Did I miss any? Please share your tips by leaving a comment. We would love to hear from you.

ByAlexia Pamelov

Cheap Windows ASP.NET Hosting – ASP.NET Content Management Systems

CheapWindowsHosting.com | Cheap and reliable ASP.NET hosting. A Content Management System makes it easy to manage your website content and design your own website. CMS allows you to manage every aspect of your website such as content, functionality and navigation, design, SEO and more. CMS enables you to easily create and update content without programming skills. The appearance of all content in CMS website is controlled by a set of templates that will make managing your website easier than you can imagine.

Cheap ASP.NET based Content Management Systems(CMS)

kenticoKentico CMS for ASP.NET – Kentico CMS is powerful ASP.NET based Content Management platform to build web sites and web applications. Kentico CMS utilizes ASP.NET and Microsoft SQL Server. It is full-featured CMS with e-commerce, intranet, social networking, online marketing tools, Ajax support, Mobile websites support, Sharepoint support, Supports Visual Studio .NET and ASP.NET, Ready-to-use website templates (Corporate Site, E-commerce Site) and more.

Kentico CMS hosting requires: Windows Server 2008,.NET Framework 3.5 SP1 or 4.0 or higher, IIS 7.0, 7.5, 8.0 , Microsoft SQL Server 2005, 2008, 2008 R2, 2012. If you want to edit source, you need Visual Studio/Visual Web Developer 2008/2010/2012.

DNN4DotNetNuke (DNN) 

DNN is the leading open source web content management platform. The Community Edition is open source. The functionality can be extensible through a large number of third-party modules.

MojoPortal CMS 

slide_mobilemojoPortal is an open source, cross-platform, content management system for ASP.NET which is written in the C# programming language. MojoPortal content management system requires ASP.NET 3.5 or ASP.NET 4.0/4.5, IIS 6 or higher, any of the following 5 Databases( MSSQL/SQLExpress/SQL-CE/SQL-Azure, MySql, PostgreSQl, Firebird Sql, and SQLite). Features includes Blogs, Forums, Calendar, Google/Bing Maps, Contact Form, Newsletter, Polls, Surveys, ecommerce & more. MojoPortal is an extensible and mobile friendly.

OrchardOrchard 

Orchard is a free, open source, community-focused Content Management System built on the ASP.NET MVC platform. Orchard content management system requires: Windows Server 2003 or Windows 2008 Server, ASP.NET 4 or above, IIS Express 8, 7.5 or IIS 7.x, Up to 12 GB ofhard drive space for a full Orchard installation, Full Trust mode for applications to perform better.

Umbraco 

cmsUmbraco is an open source content management system built on Microsoft’s .NET technology stack. It is simple, flexible and friendly. Umbraco content management system requires: IIS6+ (IIS 7 Preferred),SQL CE or SQL Server 2008 , ASP.NET 4, Medium-Trust/Full-Trust and ability to set file permissions to include create/read/write (or better) for the user that “owns” the Application Pool for your site.

sitefinity-logoSitefinity CMS

Sitefinity is a web content management and collaboration platform designed to help organizations pursue their online goals. Sitefinity content management system requires: Windows Server 2003/ 2008/2008 R2/2012, 32-bit or 64-bit operating system, IIS 6+, .NET Framework 4.0 and 4.5, ASP.NET MVC 4.

ASP.NET CMS Hosting features

  • You need a windows hosting package that meet full requirements of CMS software
  • Latest versions of NET Framework 4.0 / 4.5 / 5 or above
  • Supported database platforms (SQL Server 2008 or above)
  • Automated installation of CMS of your choice
  • Experienced customer support staff

Best and Recommended ASP.NET CMS Hosting:

ByAlexia Pamelov

How To Improve Your E-commerce Website’s SEO

CheapWindowsHosting.com | Search engine optimization (SEO) is a complicated process, especially for e-commerce sites. But getting the basics in place, if you don’t already have them, will provide a big boost right off the bat. And on-page SEO is often much easier and has faster results than off-page tasks such as link building. If you’re just launching or you’ve not yet applied any SEO best practices to your store, the following list will help you get started.

how-to-improve-seo-for-your-eCommerce-site2

1. Google Webmaster Tools

Get a Google Webmaster Tools account, add and verify your site. This free set of tools from Google provides a ton of information about your website, and we’ll use some of this in the next steps. To get started, go to https://www.google.com/webmasters/tools/ and click the Add Your Site button. Follow the steps to add your site and then verify it.

2. Page Titles

Make sure each page has a useful, unique title. The title tag is not only one of ways a site ranks for a given term, but it is also displayed in Google’s search results (aka SERPs, for “search engine results pages”) and helps a searcher determine whether they want to click through to your website. The title tag should contain the keywords that you want the site to rank for, but it should be written for a human. Don’t just stuff it full of keywords; use the main keyword/phrase in a readable way that entices people to click through.

You also want to make sure the page titles are unique, so that no two pages on your site have the same title. Google Webmaster Tools has an easy way to do this: Just log into your GWT account and go to Search Appearance > HTML Improvements. You should see “Duplicate Title Tags” on the right side of the page. If you have duplicate title tags, this will be a link that you can click to see a report of pages that have the same title tag. Additionally, in GWT you can see any title tags that Google reports as either too short or too long.

3. Meta Descriptions

Write great meta descriptions. Just like the title tag, the description tag often (but not always) appears in the SERPs, and searchers use it as an indicator for whether to click through to your site from Google. The meta description should be 156 characters or less, but long enough to fully describe the page. Again, include the keyword phrase if possible, but make it sound natural. The HTML Improvements section in GWT (as mentioned above) will also show you pages with duplicate, too-short, and too-long meta tags.

4. Product Descriptions

Write unique product descriptions. It’s oh-so-easy to use the descriptions provided by your vendors; the problem is, that’s what every other retailer who sells the same item is doing. If, instead, you write unique product descriptions, using your keywords, and making sure the length is a minimum of 300 words, you’ll get an instant boost in value for your product pages. The descriptions should be scan-able, because when reading online, people tend to steer clear of long, dense paragraphs. Use bullet points to identify key features and benefits, headings to separate sections, and bold or italics to highlight short key phrases.

5. HTML Headings

Use HTML heading tags such as <h1>, <h2>, etc. in meaningful ways, including keywords in them whenever possible. Any given page should have exactly one H1 tag, but can have multiple H2, and H3 tags. You can use CSS to style these to fit with your site’s design and aesthetics.

6. Product Images

Images are an often-overlooked area for SEO. The alt text for the image should contain your keyword phrase, but the actual image filename should include keywords as well. If you want to rank well in Google Image search, which can be a great source of traffic, it helps to have unique images not used by other sites. For this purpose, consider taking your own product photos. Finally, optimize the images for as small a file size as possible without visibly reducing the quality. I like to use Photoshop’s “Save for web and devices” option for this. For more information on optimizing images, read this post by Dave Davies over on Search Engine Watch.

7. Only One Homepage

Typically, the URL for your homepage is going to be the domain itself, such as http://www.domain.com. However, depending on your content and e-commerce platforms, you may also be able to reach the homepage through other URLs, such as :

  • http://www.domain.com/index.php or
  • http://www.domain.com/mm5/merchant.mvc?Screen=SFNT.

If possible, use just the domain name, but whatever you use, make sure it’s consistent. Don’t use one URL to link your logo and another URL to link the word “home” in your navigation bar! You can also learn about canonical URLs to tell Google that all versions of the homepage are really the same.

8. Improve navigation

Just like humans, Googlebot (and other search engine spiders) need to easily be able to reach your pages. They also consider how far (in numbers of clicks or links) a page is from your homepage in determining its relative importance. So navigation is quite important for these purposes. Optimize navigation areas such as your menu (and submenus, if applicable), your list of categories, and breadcrumbs, to make sure you’re not introducing roadblocks to getting your content crawled. And while search engines have gotten better about following JavaScript links, it’s still good practice to have plain HTML menus.

9. Link Between Pages

It can be useful to link between products, especially when there is some relation between them – such as similar items or a main item and its accessories. Most e-commerce software offers internal linking features such as related products. But, when it makes sense, you may also want to link contextually from one product to another, typically within the description. For example, if you’re selling a 120-piece art kit but you also offer a 175-piece kit, you may wish to add that information to each product’s descriptions, and link between the two product’s pages. The context of the link – in other words, the text that surrounds it – can give your site a boost.

10. Improve Page Load Times

It’s been long known that one of Google’s ranking factors is how long it takes a page to load. So improving your load times not only makes for a better user experience, it helps your SEO efforts too. The time a page takes to load can be divided into back-end items such as how long it takes to load information from the database; and front-end items like how long it takes to transmit the images on the page to the visitor’s browser. The back-end processing greatly affects something called TTFB, or time to first byte – the amount of time it takes before the first byte is received by the browser. Lowering your TTFB is one of the most important aspects of page load as it relates to SEO. We use WebpageTest.org to get data on load times, including TTFB.

11. Add Site Maps

There are two types of site maps to cover in this section. The first is for the human visitor, and is an overall view of your website and links to all pages or at least to key sections, depending on the size of your site. The second is an XML sitemap that is used to send a list of URLs and their relative importance to Google and other search engines to help them better crawl your website. There are a number of tools, free and paid, that help you build either kind of sitemap.

12. Encourage Customer Reviews

Customer reviews help convert other buyers because they are considered an unbiased opinion about the product you’re selling. But they have significant SEO value, too. First of all, the content of each review is likely unique and will only appear on your site. Pages with higher word count rank better than shorter pages, generally, so the increased number of words is helpful. And, if you get reviews often enough, Google will see that your page content changes regularly, a factor that increases the likelihood of the page being crawled more often.

13. Encourage link sharing

It has been long thought that social signals, like Twitter tweets and Facebook likes, are a ranking factor when it comes to Google. Matt Cutt’s recently stated otherwise. But getting customers to share products has a less direct SEO benefit, too. The more ways someone has to find your site and your products, the more likely they are to spread the word – and that includes writing about you and linking to your site. Natural, unsolicited links to your website are still one of the most important factors Google uses to rank a website. (Note, “natural” and “unsolicited”; those are important words!)

Make it easy for customers to share your pages on their favorite social networks, by adding a services like AddThis, or by implementing share/like/tweet buttons right individually on your website.

There are many other ways to improve your chance of ranking well on Google. SEO is a science and an art, and a field of study all to itself. But these basics will help you get started. You may not have the time or capability to address them all at once, but pick a couple and get started, and see how it improves your website’s placement on Google.

ByAlexia Pamelov

Cheap Windows ASP.NET Tutorial – How To Running Asp.Net Core with IIS on Nano Server

CheapWindowsHosting.com | Best and cheap ASP.NET Core  hosting. In this post we will show you how to running ASP.NET Core with IIS on Nano server.

Installing IIS

First you need to install IIS on Nano.

Installing Reverse Forwarders

Currently, both HttpPlatformHandler and Asp.Net Core Kestrel host requires Reverse Forwarders package to be installed on the Nano machine. Reverse Fowarders can be installed offline (machine turned off) or online (machine running).

Offline, Reverse Forwarders can be installed by passing –ReverseForwarders parameters when calling New-NanoServerImage cmdlet.

e.g. New-NanoServerImage -MediaPath f:\ -BasePath .\Base -TargetPath .\Nano1.vhd -GuestDrivers -Packages Microsoft-NanoServer-IIS-Package -ReverseForwarders

Online, Reverse Forwarders can be installed by calling dism on the relevant package:

  • dism /online /add-package /packagepath:c:\packages\Microsoft-OneCore-ReverseForwarders-Package.cab
  • dism /online /add-package /packagepath:c:\packages\en-us\Microsoft-OneCore-ReverseForwarders-Package.cab
  • <reboot>
  • The 1st command installs the Reverse Forwarders feature package.
  • The 2nd command installs the associated language pack for the package.

In this case, C:\packages is a local directory that I created where I copied the Packages folder from the Nano Server media installation location.

After installing Reverse Forwarders package (whether offline or online), verify that IIS and Reverse Forwarders are correctly installed by running ‘dism /online /get-packages’.

You should see the Feature and Language packs for Microsoft-NanoServer-IIS-Package and Microsoft-OneCore-ReverseForwarders-Package.

Installing HttpPlatformHandler

At this time, the install for HttpPlatformHandler on Nano is manual.

Nano is 64 bit only (no WOW), so you’ll need to install the latest x64 version of HttpPlatformHandler (http://www.iis.net/downloads/microsoft/httpplatformhandler) on a regular (not Nano) machine.

Once you have x64 bit version of HttpPlatformHandler installed on your regular (not Nano) machine, there are 2 files which we’ll need to copy to the Nano machine:

  • %windir%\System32\inetsrv\httpPlatformHandler.dll
  • %windir%\System32\inetsrv\config\schema\httpplatform_schema.xml

On the Nano machine you’ll need to copy those 2 files to the respective locations (dll->inetsrv, schema file->inetsrv\config\schema)

  • copy .\httpPlatformHandler.dll c:\Windows\System32\inetsrv
  • copy .\httpplatform_schema.xml c:\Windows\System32\inetsrv\config\schema

Enabling HttpPlatformHandler (PowerShell)

You can execute the steps below in a remote PowerShell session to the Nano machine.

Note that the below steps works on a clean system, but is not meant to be idempotent. If you run this multiple times it will add multiple entries and you will run into problems!
If you end up in a bad state, you can find backups of the applicationHost.config file at %systemdrive%\inetpub\history.

Import-Module IISAdministration 
$sm = Get-IISServerManager
# Add AppSettings section (for Asp.Net Core)
$sm.GetApplicationHostConfiguration().RootSectionGroup.Sections.Add("appSettings")
# Unlock handlers section
$appHostconfig = $sm.GetApplicationHostConfiguration()
$section = $appHostconfig.GetSection("system.webServer/handlers")
$section.OverrideMode="Allow"
# Add httpPlatform section to system.webServer
$sectionHttpPlatform = $appHostConfig.RootSectionGroup.SectionGroups["system.webServer"].Sections.Add("httpPlatform")
$sectionHttpPlatform.OverrideModeDefault = "Allow"
# Add to globalModules
$globalModules = Get-IISConfigSection "system.webServer/globalModules" | Get-IISConfigCollection
New-IISConfigCollectionElement $globalModules -ConfigAttribute @{"name"="httpPlatformHandler";"image"="%SystemRoot%\system32\inetsrv\httpPlatformHandler.dll"}
# Add to modules
$modules = Get-IISConfigSection "system.webServer/modules" | Get-IISConfigCollection
New-IISConfigCollectionElement $modules -ConfigAttribute @{"name"="httpPlatformHandler"} 
$sm.CommitChanges()

Enabling HttpPlatformHandler (manually editing applicationHost.config)

You can skip this section if you already did the PowerShell steps above.

I recommend following the PowerShell steps, although if you absolutely must edit the IIS applicationHost.config file to enable HttpPlatformHandler then these are the steps.

Open up c:\windows\system32\inetsrv\applicationHost.config

(if you are using Powershell ISE v5 you can do this using ‘psedit c:\windows\system32\inetsrv\applicationHost.config’)

Under <configSections> add

<configSections>
   <section name="appSettings" />

 In system.webServer section, unlock handlers from Deny to Allow

<section name="handlers" overrideModeDefault="Allow" />

 In system.webServer section, add new httpPlatform section

<section name="httpPlatform" overrideModeDefault="Allow" />
       </sectionGroup>

 Add the following to globalModules

<add name="httpPlatformHandler" image="%SystemRoot%\system32\inetsrv\httpPlatformHandler.dll" />

      </globalModules>

 Add the following to Modules

<add name="httpPlatformHandler" />

     </modules>

Installing Asp.Net Core application

First, make sure that your Asp.Net Core application is built targeting coreclr and x64.

This is very important as any other combination will not work on Nano.

After building for coreclr/x64 you will need to copy the whole application to the Nano machine – in this example I’m using c:\HelloAspNetCore.

Next I will setup a new Site pointing to c:\HelloAspNetCore\wwwroot using port 8000 (for simplicity we will go with Default App Pool)

There are no problems running the Asp.Net Core site on default port 80, though in a testing environment I like to separate the Asp.Net Core app from the default website, so that it’s easier to troubleshoot when something goes wrong (e.g. so you can verify that the default IIS site still works fine).

Using IIS PowerShell:

Import-module IISAdministration
New-IISSite -Name "AspNetCoreSite" -PhysicalPath c:\HelloAspNetcore\wwwroot -BindingInformation "*:8000:"

Creating the site manually (omit if you already created using PowerShell above) by editing c:\windows\system32\inetsrv\applicationHost.config:

<sites>
           <site name="Default Web Site" id="1">
               <application path="/">
                   <virtualDirectory path="/" physicalPath="%SystemDrive%\inetpub\wwwroot" />
                </application>
               <bindings>
                   <binding protocol="http" bindingInformation="*:80:" />
               </bindings>
           </site>
           <site name="AspNetCoreSite" id="2">
               <application path="/">
                  <virtualDirectory path="/" physicalPath="C:\HelloAspNetCore\wwwroot" />
               </application>
               <bindings>
                   <binding protocol="http" bindingInformation="*:8000:" />
               </bindings>
           </site>
… rest of xml…
       </sites>

 The next step is to open up port 8000 in the firewall.

New-NetFirewallRule -Name "AspNetCore" -DisplayName "HTTP on TCP/8000" -Protocol tcp -LocalPort 8000 -Action Allow -Enabled True

Troubleshooting

  • First make sure that IIS itself is correctly installed. http://<ipaddress> should get you the default page (Blue IIS page) otherwise something very basic is not set up correctly.
  • Secondly, make sure that your Application can run standalone. E.g. c:\HelloAspNetCore\approot\web.cmd
  • Thirdly, check to make sure that you are seeing logs created by HttpPlatformHandler – e.g. c:\HelloAspNetCore\logs

3 Comments

I have followed the steps, but it doesn't work 🙁
It gets a PERMISSION DENIED; I found it in the app /logs directory (included below).
Does it need an additional ICACL somewhere? I don't know under what security context it runs...
I think I saw somewhere it could need permission for the port it runs on. If so, how do we grant permissions on that port?

Microsoft.AspNet.Server.Kestrel.Networking.UvException: Error -4092 EACCES permission denied
at Microsoft.AspNet.Server.Kestrel.Networking.Libuv.Check(Int32 statusCode)
at Microsoft.AspNet.Server.Kestrel.Networking.UvTcpHandle.Bind(ServerAddress address)
at Microsoft.AspNet.Server.Kestrel.Http.TcpListener.CreateListenSocket()
at Microsoft.AspNet.Server.Kestrel.Http.Listener.<>c__DisplayClass5_0.<StartAsync>b__0(Object _)

ByAlexia Pamelov

Cheap Windows Hosting Tutorial – How to URL Rewrite your PrestaShop to Work with ASPHostPortal Hosting?

CheapWindowsHosting.com | Best and cheap PrestaShop hosting. It’s been a long and frustrating time for all those that have had a terrible time making an attempt to figure out and get help with the errors occurring when enabling Friendly URL’s in Prestashop. i actually had an equivalent problem for quite a while before finding solutions. The problem at hand is usually the .htaccess file settings preventing Prestashop from exercise various permissions once handling the files it needs on a web host.

Another common problem is obtaining an error 500 message. This could be caused by a global setting configured by your host in which sometimes they’re unwilling to change due to their security protocols used. Assuming your hosting provider uses a Linux based system(nearly always the case for standard hosting needs), you should be able to test the below modification to your .htaccess file in your website’s main directory.

Add to your “.HTACCESS” file, the following lines of code:

# URL rewriting module activation
RewriteEngine on
RewriteCond %{REQUEST_METHOD} !^(TRACE|TRACK|GET|POST|HEAD)$
RewriteRule .* - [F]
RewriteBase /
Options +FollowSymLinks

# URL rewriting rules
RewriteRule ^([a-zA-Z0-9-]*)/([0-9]+)\-([a-zA-Z0-9-]*)\.html(.*)$ product.php?id_product=$2$4 [L,E]
RewriteRule ^([0-9]+)\-([a-zA-Z0-9-]*)\.html(.*)$ product.php?id_product=$1$3 [L,E]
RewriteRule ^([0-9]+)\-([a-zA-Z0-9-]*)(.*)$ category.php?id_category=$1 [QSA,L,E]
RewriteRule ^content/([0-9]+)\-([a-zA-Z0-9-]*)(.*)$ cms.php?id_cms=$1 [QSA,L,E]
RewriteRule ^([0-9]+)__([a-zA-Z0-9-]*)(.*)$ supplier.php?id_supplier=$1$3 [QSA,L,E]
RewriteRule ^([0-9]+)_([a-zA-Z0-9-]*)(.*)$ manufacturer.php?id_manufacturer=$1$3 [QSA,L,E]

# Catch 404 errors
ErrorDocument 404 /404.php 

 

If you are experiencing a 500 error with Prestashop, you may have issues with your web hosting php.ini settings. Some web hosting allow you to make modifications to this file and some don’t. ASPHostPortal.com prides itself in providing Full Trust web hosting with a rare combination of unmatched reliability, quality and affordability.

ASPHostPortal.com’s edge is derived through unparalleled company management and a culture of employee driven initiatives. With their fully support on Microsoft Windows and PrestaShop in their Windows Server, ASPHostPortal.com is the best choice to host your Prestashop 1.6.1.1 hosting. They are so confident in their hosting services they will not only provide you with a 30 days money back guarantee, but also they give you a 99.9% uptime guarantee. Their Prestashop 1.6.1.1 hosting plan is starting from $5.00 /mo. 

Normally you would never need to override any php.ini settings. Your exact issue may vary and you should contact your host for troubleshooting. Make sure you clear your browser’s cookies if you don’t notice any change. Also go to the sitemap module and update it just to be safe.

The Results should take place as soon as your website says that your settings have been saved. Check your product pages and everything should be alright. With one exception. Some people can’t get the proper URL to show up under “Recently Viewed” viewed items. I’m pretty sure you can just add another line in the

ReWriteRule

List and use the name of the recentlyviewed php file and match it like the others and it should work. I haven’t verified adding this rule yet, but you can always revert your settings if an issue is caused. I hope this worked for everyone. If you are new to Prestashop or webhosting in general and need an installation or assistance, I can help you for a non mandatory donation. For free! 
ByAlexia Pamelov

Cheap Windows ASP.NET Tutorial – Tips Run external .NET Program from RAM Memory

CheapWindowsHosting.com | Run external app directly from RAM. You can load the specific file into a Byte [] Array with a StreamReader () or even download it from WEB via a direct link provided.

The point of this technique is to maintain anonymity to a fragile file, thus leaving no chance to a reverse engineer to crack the details.

Also note, to keep the variables such as the one referencing the MethodInfo() on a Class basis. You then should Dispose() or set to Nothing these variables at the FormClosing() Event to prevent memory leak.

programmer vs artist

Tips Run external .NET Program from RAM Memory

Dim method As System.Reflection.MethodInfo
Sub Run
        Dim bb() As Byte = IO.File.ReadAllBytes("file.exe")

        Try
            Dim a As System.Reflection.Assembly = System.Reflection.Assembly.Load(bb)

           'or a = Reflection.Assembly.Load(New WebClient().DownloadData("https://...."))
            method = a.EntryPoint
            If (Not method Is Nothing) Then

                Dim o As Object = a.CreateInstance(method.Name)
                method.Invoke(o, Nothing)

            'if your app receives parameters
            'method.Invoke(o, New Object() {New String(){"Hello}})
            Else
                Throw New NullReferenceException("method is null.")
            End If

        Catch ex As Exception
            MsgBox(ex.Message & vbCrLf & "File length: = " & bb.Length.ToString)
        End Try
End Sub

If your app is WinForms and not ConsoleApplication, then follow the steps below:

Your external application needs to start from a Main() Sub to be compatible with this. Otherwise, change the solution property of your external app:

  • Disable ApplicationFramework
  • Add new module to your project (Module1)
  • Select ‘STARTUP OBJECT’ Module1
  • Add this code to Module1
Public Sub Main()
     Application.Run(New Form1)
     'Form1 is your first WinForm that your app displays
End Sub

 or if your app receives parameters:

Public Sub Main(ByVal args As String())
     Application.Run(New Form1)
     'Form1 is your first WinForm that your app displays
End Sub

 I hope this post helpful for you 🙂

ByAlexia Pamelov

Cheap WordPress Hosting Tutorial – 15 Easy Ways To Speed Up your WordPress

WordPress is a great platform. One weakness that it suffers from, however, is it can be quite slow.

CheapWindowsHosting.com | In this quick post, I’ll cover all of the best ways that I’ve found to consistently speed up WordPress.

Why Site Speed Is Important

When a person lands on your site for the first time, you only have a few seconds to capture their attention to convince them to hang around.

Get ready to lose sleep at night: according to a report by the Microsoft Bing search team, a 2-second longer delay in page responsiveness reduced user satisfaction by 3.8%, increased lost revenue per user by 4.3%, and a reduced clicks by 4.3%.

If your site takes too long to load, most people are gone, lost before you even had a chance.

Not only that, but Google now includes site speed in it’s ranking algorithm. That means that your site’s speed effects SEO, so if your site is slow, you’re now losing visitors from impatience and reduced rankings in search engines. Yikes.

Let’s fix that.

designer-developer

How To Speed Up WordPress

As a side note, these are not ordered by importance or any criteria, I’ve just gathered everything I’ve learned about speeding up page loads on WordPress and compiled them here.

I guarantee that using even a few will help speed up your site.

1. Choose a good host

When starting out, a shared host might seem like a bargain (“Unlimited page views!”). It comes at another cost: incredibly slow site speed and frequent down time during high traffic periods.

If you plan on publishing popular stuff, you’re killing yourself by running your WordPress site on shared hosting.

The stress of your site going down after getting a big feature is enough to create a few early gray hairs: don’t be a victim, invest in proper hosting.

The only WordPress host I continually recommend is…

ASPHostPortal.com

ASPHostPortal is a rising star in ASP.NET hosting field. Since its establishment, the company has gained more and more attention from users and authorities in hosting industry because of its cost-effectiveness, high-performance and excellent technical support.

The company has four cheap and reliable WordPress hosting plans. Host One, Host Two, Host Three and Host Four, in total The original prices of the plans are $1.00/mo , $5.00/mo, $9.00/mo and $14.00/mo severally. It is clear that ASPHostPortal does provide competitive pricing.

2. Start with a solid framework/theme

You might be surprised to here this, but the Twenty Fifteen “framework” (aka the default WP theme) is lightweight and quite speedy.

That’s because they keep the “guts” simple; compare that to bloated frameworks which have tons of features that you will never use, slowing your site to a crawl.

From my experience, the fastest loading premium framework is definitely the Thesis Theme Framework. It surpasses the basic WordPress themes by being far easier to customize.

It’s an incredibly solid framework that won’t slow you down with excess plugins or custom edits. Make the changes right from the theme and avoid bloat, hoorah!

3. Use an effective caching plugin

WordPress plugins are obviously quite useful, but some of the best fall under the caching category, as they drastically improve page loads time, and best of all, all of them on WP.org are free and easy to use.

By far my favorite, bar none, is W3 Total Cache, I wouldn’t recommend or use any other caching plugin, it has all of the features you need and is extremely easy to install and use.

Simply install and activate, and what your page load faster as elements are cached.

4. Use a content delivery network (CDN)

All of your favorite big blogs are making use of this, and if you are into online marketing using WordPress (as I’m sure many of my readers are) you won’t be surprised to here that some of your favorite blogs like Copyblogger are making use of CDN’s.

Essentially, a CDN, or content delivery network, takes all your static files you’ve got on your site (CSS, Javascript and images etc) and lets visitors download them as fast as possible by serving the files on servers as close to them as possible.

I personally use the Max CDN Content Delivery Network on my WordPress sites, as I’ve found that they have the most reasonable prices and their dashboard is very simple to use (and comes with video tutorials for setting it up, takes only a few minutes).

There is a plugin called Free-CDN that promises to do the same, although I haven’t tested it.

5. Optimize images (automatically)

Yahoo! has an image optimizer called Smush.it that will drastically reduce the file size of an image, while not reducing quality.

However, if you are like me, doing this to every image would be beyond a pain, and incredibly time consuming.

Fortunately, there is an amazing, free plugin called WP-SmushIt which will do this process to all of your images automatically, as you are uploading them. No reason not to install this one.

6. Optimize your homepage to load quickly

This isn’t one thing but really a few easy things that you can do to ensure that your homepage loads quickly, which probably is the most important part of your site because people will be landing there the most often.

Things that you can do include:

  • Show excerpts instead of full posts
  • Reduce the number of posts on the page (I like showing between 5-7)
  • Remove unnecessary sharing widgets from the home page (include them only in posts)
  • Remove inactive plugins and widgets that you don’t need
  • Keep in minimal! Readers are here for content, not 8,000 widgets on the homepage
Overall, a clean and focused homepage design will help your page not only look good, but load quicker as well.

7. Optimize your WordPress database

I’m certainly getting a lot of use out of the word “optimize” in this post!

This can be done the very tedious, extremly boring manual fashion, or…

You can simply use the WP-Optimize plugin, which I run on all of my sites.

This plugin lets you do just one simple task: optimize the your database (spam, post revisions, drafts, tables, etc.) to reduce their overhead.

I would also recommend the WP-DB Manager plugin, which can schedule dates for database optimization.

8. Disable hotlinking and leeching of your content

Hotlinking is a form of bandwidth “theft.” It occurs when other sites direct link to the images on your site from their articles making your server load increasingly high.

This can add up as more and more people “scrape” your posts or your site (and especially images) become more popular, as must do if you create custom images for your site on a regular basis.

Place this code in your root .htaccess file:

disable hotlinking of images with forbidden or custom image option
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?sparringmind.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?google.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?feeds2.feedburner.com/sparringmind [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ – [NC,F,L]

You’ll notice I included my feed (from FeedBurner), you’ll need to replace it with your feed’s name, otherwise your images won’t appear correctly there.

9. Add an expires header to static resources

An Expires header is a way to specify a time far enough in the future so that the clients (browsers) don’t have to re-fetch any static content (such as css file, javascript, images etc).

This way can cut your load time significantly for your regular users.

You need to copy and paste the following code in your root .htaccess file:

ExpiresActive On
ExpiresByType image/gif A2592000
ExpiresByType image/png A2592000
ExpiresByType image/jpg A2592000
ExpiresByType image/jpeg A259200

The above numbers are set for a month (in seconds), you can change them as you wish.

10. Adjust Gravatar images

You’ll notice on this site that the default Gravatar image is set to… well, nothing.

This is not an aesthetic choice, I did it because it improves page loads by simply having nothing where there would normally be a goofy looking Gravatar logo or some other nonsense.

Some blogs go as far to disable them throughout the site, and for everyone.

You can do either, just know that it will at least benefit your site speed if you set the default image (found in “Discussion”, under the settings tab in the WordPress dashboard) to a blank space rather than a default image.

11. Add LazyLoad to your images

LazyLoad is the process of having only only the images above the fold load (i.e. only the images visible in the visitor’s browser window), then, when reader scrolls down, the other images begin to load, just before they come into view.

This will not only speed you page loads, it can also save bandwidth by loading less data for users who don’t scroll all the way down on your pages.

To do this automatically, install the jQuery Image Lazy Load plugin.

12. Control the amount of post revisions stored

I saved this post to draft about 8 times.

WordPress, left to its own devices, would store every single one of these drafts, indefinitely.

Now, when this post is done and published, why would I need all of those drafts stored?

That’s why I use the Revision Control plugin to make sure I keep post revisions to a minimum, set it to 2 or 3 so you have something to fall back on in case you make a mistake, but not too high that you clutter your backend with unnecessary amounts of drafted posts.

13. Turn off pingbacks and trackbacks

By default, WordPress interacts with other blogs that are equipped with pingbacks and trackbacks.

Every time another blog mentions you, it notifies your site, which in turn updates data on the post. Turning this off will not destroy the backlinks to your site, just the setting that generates a lot of work for your site.

For more detail, read this explanation of WordPress Pingbacks, Trackbacks and Linkbacks.

14. Replace PHP with static HTML, when necessary

This one is a little bit advanced, but can drastically cut down your load time if you are desperate to include page load speeds, so I included it.

I’d be doing this great post injustice if I didn’t link to it for this topic, as it taught me how to easily do this myself, in a few minutes.

So go there and check it out, it wrote it out in plainer terms than I ever could!

15. Use CloudFlare

This is similar to the section above on using CDN’s, but I’ve become so fond of CloudFlare since I discussed it in my best web analytics post that I’ve decided to include it separately here.

To put it bluntly, CloudFlare, along with the W3 Total Cache plugin discussed above, are a really potent combination (they integrate with each other) that will greatly improve not only the speed, but the security of your site.

Both are free!

Thanks for reading 🙂 I hope this article helpful for you

ByAlexia Pamelov

ASPHostPortal.com Announces SQL Server 2016 Hosting Solution

ASPHostPortal.com Announces SQL Server 2016 Hosting Solution

ASPHostPortal.com provides affordable and high performance SQL 2016 hosting to customers around the world. They have ASP.NET Hosting, Plesk Hosting, Reseller Hosting, Cloud Hosting, Dedicated Hosting plans for small to large to fit peoples’ requirements. Our company is passionate about hosting and strive to deliver an excellent level of service to each customer. Today, Somedays ago ASPHostPortal launch SQL 2016 hosting with cheap price and great support.

sql

Microsoft SQL Server 2016 turns your mission-critical applications into intelligent applications with in-memory performance and advance analytics built in. SQL Server 2016 comes with a suite of new features over its predecessor, including a new Stretch Database function that allows users to store some of their data in a database on-premises and send infrequently used data to Microsoft’s Azure cloud. An application connected to a database using that feature can still see all the data from different sources, though.

Many of the new features in SQL Server 2016 like Always Encrypted and Stretch Database are already available in Microsoft’s Azure SQL Database managed service, but the virtual machine will be useful for companies that prefer to manage their own database infrastructure or that plan to roll out SQL Server 2016 on premises and want to test it in the cloud.

ASPHostPortal.com has served people since 2008 and we know how to deliver Powerful, Fast and Reliable SQL 2016 Hosting with the Superior Customer Support. Our superior servers are housed in the US, UK, France, Germany, Netherlands, Italy, Canada, Brazil, India, Australia, Hongkong and Singapore with up to 100MB/s connection and Cisco Hardware Firewalls. Fully managed and monitored around the clock, Our servers run on Windows Operating system with lots of memory (RAM) and up multiple Quad-Core Xeon CPU’s, utilizing the power of the Cloud Services. Our SQL 2016 Hosting plans come with up to 99.99% uptime and 30-Day Full Money Back Guarantee. To learn more about Our SQL 2016 Hosting, please visit http://asphostportal.com/SQL-2016-Hosting

[su_note note_color=”#000000″ text_color=”#ffffff”]

About ASPHostPortal.com:

asphostportal-icon-e1421832425840-120x120-e1424663413602ASPHostPortal.com is The Best, Cheap and Recommended ASP.NET & Linux Hosting. ASPHostPortal.com has ability to support the latest Microsoft, ASP.NET, and Linux technology, such as: such as: WebMatrix, Web Deploy, Visual Studio, Latest ASP.NET Version, Latest ASP.NET MVC Version, Silverlight and Visual Studio Light Switch, Latest MySql version, Latest PHPMyAdmin, Support PHP, etc. Their service includes shared hosting, reseller hosting, and Sharepoint hosting, with speciality in ASP.NET, SQL Server, and Linux solutions. Protection, trustworthiness, and performance are at the core of hosting operations to make certain every website and software hosted is so secured and performs at the best possible level.

[/su_note]

Simpan

Simpan

ByAlexia Pamelov

Cheap Windows Drupal Tutorial – How To Migrate update for Drupal 8.1.2

CheapWindowsHosting.com | Best and cheap Drupal 8.1.2 hosting.  We’ll discuss the biggest core API change, then how moving to 8.1.2 affects various use cases.

Migrations are now plugins

You may recall that the migration support in core is experimental – that is, it is still open to backwards-compatibility-breaking changes. There is a big one in 8.1.2 – migrations themselves are now plugins rather than configuration entities. This reduces technical debt, in the form of migration-specific infrastructure that’s now being handled by standard core features. Specifically, the plugins themselves serve the function that migration templates did in 8.0.x – they provide default configuration for migrations which require additional configuration (in particular, a database connection) to become runnable. In addition, the migration system’s home-grown builder system (used to generate, say, bundle-specific migrations from one generic node template) is now replaced by standard plugin derivatives.

The lack of configuration entities, however, presents challenges for general-purpose migration tools. One is that there is now no direct core support for persisting configuration changes for the plugins – any configuration (such as a database connection) injected into a migration plugin is only applied at runtime, and without a standard method of persisting that configuration a general-purpose tool (such as the drush commands in migrate_tools) has no way of knowing what to inject or how. Likewise, we have the goal of developing tools for creating migrations from scratch through a UI, and the core migration approach of plugin configuration provided by YAML files within a module isn’t dynamic enough for this – again, we need a dynamic way to persist the configuration.

Migrate_easily_from_a_non_Drupal_platform_to_Drupal_8
Another issue is discovery – a tool like drush migrate-status wants to show you all “relevant” migrations (migrations which have been fully configured and are runnable), but with core full of migration plugins which aren’t relevant in most cases (and there’s virtually no case where they would all be relevant) simply discovering all the plugins and instantiating them doesn’t work. The irrelevant plugins throw a variety of exceptions, some during the initial discovery (making them difficult to handle) – perhaps worse, some give no indication at discovery or instantiation time so cannot be filtered out without hardcoded knowledge.

At this point the cleanest answer I could come up with to the discovery problem was a registration process – an explicit way to mark a migration as eligible to be managed by the tools. And one means of “registering” a migration is to create a configuration entity for it, which (compared to a pure registration implementation like migration in Drupal 7 had) has the advantage of addressing the configuration persistence issues as well. So, that’s what I’ve done.

The migrate_plus module now defines a Migration configuration entity akin to that which was in core in 8.0.x – but cleaner. You’ll find that unlike 8.0.x Migration entities, which contained a huge amount of functionality, the migrate_plus 8.1.x Migration entity class consists of pretty much nothing but annotation and schema – a much cleaner use of the configuration entity system. The migration functionality is contained within the core Migration plugin class. So, how does the entity relate to the plugin? Let’s look first at how the core migration plugins are defined.

  • The migrate module in core implements MigrationPluginManager (provided as the plugin.manager.migration service). This plugin manager uses the YamlDirectoryDiscovery class to provide the plugin configuration – basically, it tells the discovery class to look in each enabled modules’ migrations directory (preferred) or migration_templates directory (for backwards compatibility) to find YAML files defining migration plugins. Thus, if you ask that service for all plugins it manages, you get a list corresponding to each enabled module’s migrations/*.yml and migration_templates/*.yml files.
  • In migrate_plus, I’ve introduced an alternative MigrationConfigEntityPluginManager (provided as the plugin.manager.config_entity_migration service). This plugin manager uses a custom ConfigEntityDiscovery class, which will find all configuration entities of the specified entity type (this class is, by the way, fully general) and create migration plugins using that configuration. These configuration entities may originate at a module’s installation time (from the config/install directory), or be generated by a UI or drush tool.

So, it sounds like we’ve got two different kinds of migration plugins now, right? No, not really – what we have is two distinct means of providing migration plugins with their configuration. For comparison’s sake:

MigrationPluginManager

  • Configuration comes from YAML files in a module’s migrations or migration_templates directory.
  • May be incomplete (requiring runtime injection of required configuration such as a database connection).
  • Cannot be managed by migrate_tools – needs a specialized runner (e.g., migrate_drupal_ui for the core upgrade process) to inject required configuration.
  • Appropriate for module-defined migrations which require further configuration to be run, or which are completely hard-coded (no need to edit the configuration with UI tools, for example).

MigrationConfigEntityPluginManager

  1. Configuration comes from configuration entities in the site’s active configuration (which may originate from a module’s config/install, or be generated dynamically).
  2. Is assumed to be complete – the plugin should be able to be instantiated and run without any runtime injection.
  3. Can be managed by migrate_tools.
  4. Appropriate for migrations generated by tools, or module-provided migrations which you want to have editable.

Straight Drupal upgrades

If you’re looking to simply upgrade your Drupal 6 or Drupal 7 site to Drupal 8 as-is, the big news here is that the upgrade UI (formerly part of the migrate_upgrade contrib module) is now in core as the migrate_drupal_ui module. It works the same as it did previously – provide your database credentials and source of your public files and go. It should be noted that the previous support for rolling back or performing incremental migrations after an initial upgrade has been removed – the premise is that rather than doing a rollback, you should expect to reinstall Drupal 8 and rerun the upgrade from scratch. The contrib migrate_upgrade module still provides the migrate-upgrade drush command (as well as migrate-upgrade-rollback).

Custom Drupal migrations

While the plan is to eventually provide UI tools to make it easy to customize Drupal-to-Drupal migration paths (omit a content type here, map an old field to a differently-named new one there, etc.), in the meantime people have to use drush migrate-upgrade –configure-only to tweak their upgrade paths. More details on this workflow will follow – for the moment, the main thing to be aware of is that (after a period of absence) –configure-only is back and can be used to generated configuration entities which you can then edit to your specific needs.

Implementing Upgrade Paths for Contrib Modules

Because the new migration plugin manager reads the migration_templates directory for backward compatibility (and because the source/process/destination plugins have not changed), in most cases contrib modules implementing upgrade paths should not need to make any changes. The main issue would be in the rare case where you were using builder plugins, which are now gone and should be replaced by derivers instead. See the change record for more details.

General Custom Migrations

If you are implementing other migration scenarios, you’ll need to make the following changes to your migration modules for 8.1.2:

  • If in 8.0.x you were implementing migrations by providing .yml files in config/install, you’ll need to rename those files from migrate.migration.* to migrate_plus.migration.* (because it is now the contrib migrate_plus module rather than the core migrate module which implements migration configuration entities).
  • If you were previously using migration groups, please note that they are now first-class properties of the migration entity. So, you can replace
third_party_settings:
   migrate_plus:
     migration_group: beer

    with

migration_group: beer

Previously you could omit migration_dependencies in migrations with no dependencies, but the core plugin is now a stickler for seeing an empty array. So, in this case you’ll need to add

migration_dependencies: {}

Going forward

There’s still a fair amount of work being done to fill in the gaps in the core migration support (particularly for upgrades from D6/D7). Hopefully we can remove the experimental label from the migration system for Drupal 8.1.2.

In the contrib space, migrate_upgrade 8.x-2.0.beta1 (or 8.x-2.x-dev) is the release to use with Drupal 8.1.2 I will be releasing beta versions of migrate_plus and migrate_tools shortly. Once those are out, the main foci of my community time will be:

  • Core issues (I haven’t been much involved on that side lately as I’ve been bringing the contrib side up-to-date with 8.1.x).
  • Finally getting started on the D8 version of migrate_d2d, so we have proper tools for general Drupal-to-Drupal migrations.
  • Consolidated XML/JSON (and other file-based) source plugins. I got these basically working a few months ago, but there’s still a fair amount of fleshing out to do.