7 Must-Haves for Effective ASP.NET 4.5 Hosting

ASP.NET 4.5 by Microsoft is the world’s most popular and heavily used open-source .net technology, according to Stack Overflow 2019 developer survey. It is used primarily for developing dynamic websites, as well as applications and services specifically for Windows, Windows Store, Windows Server, Windows Azure, and Windows Phone.

According to 2019 statistics on web hosting, there are approximately 1.94 billion functional websites from all over the world. Many of them are hosted on ASP.NET framework.

Millions of developers use this particular technology for various purposes, including database applications, client-server applications, XML web services, and distributed components, to name a few. Thus, it is critical for developers to host their sites and apps with reliable ASP.NET 4.5web hosting services providers to ensure the delivery of top-notch performance to their end-users.

However, with so many ASP.NET 4.5 types of web hosting packages available in the market today, picking one can be quite a challenging task. That said, the following 7 expert tips will help you find and maximize the right hosting product.

image_1

1. Windows-Oriented Infrastructure

Since ASP.NET is basically a Microsoft creation, it runs better on infrastructure and hosting packages that are built on Windows. It has an intensive need for resources, thus it requires highly capable and very strong servers. That’s why majority of providers don’t offer cheap web hosting packages for ASP.NET 4.5.

While Linux is the more dominant name when it comes to web hosting due to its affordability and flexibility, the majority of developers prefer Windows. The ASP.NET 4.5 framework allows developers to create and modify apps, websites, and services without much difficulty in coding. That said, coding skills are still required. However, developing anything on ASP.NET 4.5 is easier and faster as opposed to doing so on hosting plans that are built on Linux and other platforms.

On top of that, ASP.NET 4.5 is compatible with all popular programming languages aside from their own (ASP Classic, Microsoft Access, and Microsoft Exchange). Although you can create applications and web services on Linux using Ajax, C #, HTML, Java, Javascript, you can’t perform that with Microsoft’s programming languages.

Several hosting solutions providers offer ASP.NET 4.5 hosting on Linux. If you want to go down this path, it’s best that you consult with your hosting services provider before making a purchasing decision.

2. Plesk Control Panel

When it comes to control panels, cPanel comes first in terms of usage and popularity. Many of the best web hosting for small business providers offer Linux-based plans. And most of these plans automatically come with cPanel.

But if you’re a developer who wants to maximize and benefit from all the advantages of an ASP.NET 4.5 hosting package, choose a solution that comes with Plesk.

Plesk boasts of a cleaner and more streamlined graphical user interface (GUI), something developers appreciate and value highly. The positioning of tools and features is very strategic. They are located on the left-hand side of the user-interface and can be expanded when clicked on. These features along with others is why many tech startup companies prefer Plesk over cPanel.

cPanel, although fast, is described by many as cluttered. Its features are not arranged and grouped in a strategic or friendly manner as those of Plesk. That said, the interface of cPanel can be customized per user’s preference and requirements.

Normally, cPanel only runs on Linux-based servers and operating systems. However, backdoor methods enable the deployment of cPanel on Windows servers. Both control panels have their uses. However, if you’re opting for an ASP.NET 4.5 hosting platform, you can never go wrong with Plesk.

image_2

3. Real-Time Activity Monitoring

Monitoring user activities and application performance in real-time enables you to quickly spot performance issues and bottlenecks as they occur.

However, this means investing in and setting up site monitors, which could take a huge slice off of your budget. That said, it is a worthwhile investment as site monitors act as passive players, providing you with the real-time status of your web apps as well as user behavior and experience across various devices.

Whenever potential issues arise, like server downtime, freezing sites, laggy network connections, and more than usual cache misses, monitors capture all information and immediately alerts you and your team. This allows for rapid response and elimination of issues long before they can make a huge impact on your users’ experience.

4. Load Balancer

Some websites, apps, and web services are poorly written that they fail to scale when traffic increases. Most developers resort to adding more web servers or improving their capacities to accommodate large and growing traffic influx. But this method can be costly.

Adding a load balancer is found to be an effective remedy to help redistribute traffic so servers won’t overload. In a normal setting, traffic is sent to a server until it becomes full. When that happens, traffic is redirected to an empty server to ease off the load. Even with an extra server, user traffic that is processed and accommodated in the full server will experience performance issues such as lags and slow loading times.

With a load balancer working in the background, traffic is channeled and sent across multiple servers. It eliminates instances of a server overloading. This results in a consistent app and site performance, even during peak traffic hours. A load balancer is an additional investment. But it is cheaper than adding more servers and works better in helping improve your ASP.NET hosting.

5. Content Caching

Caching your content regularly helps accelerate the delivery of app content to your users. Most developers and website administrators cache their content by using faster devices, making content readily available by demand, and utilizing content delivery networks (CDN). Ideally, combining all three caching methods is the best set up.

In fact, 51.3% of all websites in the world do not use a content management system (CMS), according to 2019 Web Hosting Stats and Facts. That means more than half of the world’s websites are using crude caching methods, if they do at all.

Cached content allows for websites and apps to quickly deliver fully loaded pages to your users, instead of generating new pages from the server. This reduces the load off your server, thereby improving site and app performance significantly.

For instance, your app gets around 100 content requests per second. The app will get the content from your cache around  90% of the time. About 10% will be generated from your original server, thereby cutting down your server load.

Optimize Your Security and Know Your Bandwidth Requirement

While Transport Layer Security (TLS) and Secure Sockets Layer (SSL) protocols protect your sites, apps, and everything in it, they do affect the site and app performance. They are not optimized for speed.

There are several ways on how to optimize security protocols, such as Open SSL. It is best that you further explore your options and determine what’s the best security protocol optimizations for your sites and apps.

If your hosting budget allows you, choose for an ASP.NET 4.5 hosting plan that offers flexible bandwidth. Bandwidth is directly related to the loading speed and performance of your app, website, or service. Low bandwidth means your website won’t be able to handle large traffic, which then adversely affects the site’s loading speed and overall performance.

As mentioned earlier, ASP.NET 4.5 hosting is resource-intensive. Running your ASP.NET 4.5 site already requires a lot of resources. Imagine how much resources your website needs to fully operate while catering to a large influx of traffic.

You don’t have to settle for a package that has unlimited bandwidth. The best course for you is to determine the amount of bandwidth your site or app requires to attain optimal speed and performance. From there, it becomes a matter of finding the provider that can give you a solution that addresses your bandwidth requirement.

SharePoint 2010 Hosting Tutorial – Set Up An Approval Workflow In SharePoint 2010

Approval workflow is one of several workflow templates in SharePoint 2010. By default, Content Approval is enabled on publishing portals. This can be confusing because when Content Approval is enabled, a document doesn’t become visible to others until it’s published.

To determine whether Publishing workflow is enabled on your library, open the document library and click the Properties icon for any document. If Workflows is an option, you’re all set.

To set an approval workflow, first access the Library Settings page using the Ribbon in your library.

In the Permissions and Management settings options, click the Workflow Settings link.

The Add a Workflow page is displayed. Click the Approval – SharePoint 2010 template option in the Select a Workflow Template list.

Enter a name in the Type a Unique Name for This Workflow text box.

Choose a name that describes the step in your business process this workflow fulfills. Most business processes can have several approval steps, so calling it The Approval Workflow isn’t meaningful.

For example, if your approval workflow is actually a review workflow, call it the Author Review Workflow. If you need to add a second approval workflow, you could call it the Regulatory Editorial Review Workflow.

Use the Select a Task List drop-down list to choose a task list.

Go with the default — Workflow Tasks — unless you have a special reason for wanting to track this workflow in a list by itself.

Use the Select a History List drop-down list to choose a history list.

Again, accept the default, which is Workflow History.

Select a Start option by selecting the appropriate check box.

Decide how you want the workflow to be triggered. If you want the workflow to start manually, select the check box Allow This Workflow to Be Manually Started by an Authenticated User with Edit Item Permissions.

Note: You can have only one workflow that’s triggered by publishing in a library.

Click the Next button.

The Page Approval page appears.

Specify the appropriate options.

Click the Save button.

If you just need approvals, the Approval workflow may be overkill. Consider turning off workflow and just keeping approvals, with or without versioning. Items that require approval will quietly sit there waiting for someone to take notice.

If you have an alert enabled on a library/list, and approval is also turned on for that library/list, you may not receive a notification until a new or changed item is approved and published.

Cheap and Recommended SharePoint 2010 Hosting

ASPHostPortal.com is Perfect, suitable hosting plan for a starter in SharePoint. ASPHostPortal the leading provider of Windows hosting and affordable SharePoint Hosting. ASPHostPortal proudly working to help grow the backbone of the Internet, the millions of individuals, families, micro-businesses, small business, and fledgling online businesses. ASPHostPortal has ability to support the latest Microsoft and ASP.NET technology, such as: WebMatrix, WebDeploy, Visual Studio 2015, .NET 5/ASP.NET 4.5.2, ASP.NET MVC 6.0/5.2, Silverlight 6 and Visual Studio Lightswitch, ASPHostPortal guarantees the highest quality product, top security, and unshakeable reliability, carefully chose high-quality servers, networking, and infrastructure equipment to ensure the utmost reliability.

SharePoint 2013 Hosting Tutorial – SharePoint Blog Permissions

Create a new permission level {#create-permission-level}

First we need to create a new permission level. This will allow us to give people specific rights on specific lists, instead of giving users global rights on a list. In order to do this, click on “Site Actions > Site Permissions.”
Note: you must be in the site collection root to create permission levels

In the ribbon click “Permission Levels”

Next click “Add a Permission Level”

I’ve included a screenshot of the settings I use for this “contributor level permissions” permission level. This lets my users leave comments, but not have rights to approve other comments…anything of that nature.

For reference, here’s the list of items I enable:

  • Add Items
  • Edit Items
  • Delete Items
  • View Items
  • Open Items
  • View Versions
  • Create Alerts
  • View Application Pages
  • View Pages
  • Use Remote Interfaces
  • Use Client Integration Features
  • Open

Stop Inheriting Permissions {#stop-inheriting-permissions}

Ok, you have created the correct permission level, now it’s time to apply it to users on your lists. The first thing we’ll do is manage our list. I’m going to use the comments list for this example, but you can also use “Posts”, “Photos”, or any other list.


Next, click “List Permissions” in the ribbon for the selected list.

What we need to do for our comments list is actually break the permissions so the contributor level permissions only applies to this list. So click “Stop Inheriting Permissions” in the ribbon.

Apply correct permissions {#apply-correct-permissions}

Once permissions are broken, click “Grant Permissions.”

Finally, select your users and grant them the “contributor level permissions” permission level that we created earlier.

Done!

What you have now is a list that has broken permissions in order to grant a certain level of permissions to a certain group of users. This works great for a SharePoint blog, because you often are working in an intranet environment with a lot of users. Using this method you can allow/disallow people from commenting on a person-by-person basis if you so prefer.

One thing to remember here is that breaking list permissions is never a great solution to anything. Unless you have a very good method of managing which lists have broken permissions, it can quickly get out of control. So use this method with care. Most likely if you have a small blog site and you are the site collection administrator, you’ll be fine with this way of doing things.

Cheap and Recommended SharePoint 2013 Hosting

ASPHostPortal.com is Perfect, suitable hosting plan for a starter in SharePoint. ASPHostPortal the leading provider of Windows hosting and affordable SharePoint Hosting. ASPHostPortal proudly working to help grow the backbone of the Internet, the millions of individuals, families, micro-businesses, small business, and fledgling online businesses. ASPHostPortal has ability to support the latest Microsoft and ASP.NET technology, such as: WebMatrix, WebDeploy, Visual Studio 2015, .NET 5/ASP.NET 4.5.2, ASP.NET MVC 6.0/5.2, Silverlight 6 and Visual Studio Lightswitch, ASPHostPortal guarantees the highest quality product, top security, and unshakeable reliability, carefully chose high-quality servers, networking, and infrastructure equipment to ensure the utmost reliability.

SharePoint 2013 Hosting Tutorial – How to Setup A Task List in SharePoint 2013?

A SharePoint project task list displays a collection of tasks that are part of a project. A task is a discrete work item that a single person can be assigned. A project is typically a series of activities that has a beginning, middle, and end, and which produces a product or service, such as producing a product demonstration for a trade show, creating a product proposal for stakeholders, or even putting together a corporate morale event.

After you create a SharePoint project task list, you can add tasks, assign resources to tasks, update the progress on tasks, and view the task information on bars that are displayed along a timeline.

In SharePoint 2013, task lists have been dramatically improved. Each task list now has a default view that contains a graphical timeline at the top of the list.  When a new task is created, you have the option of displaying that task on the timeline.  When you click the ellipsis next to a task, a pop up menu gives you the option of adding or removing that item from the timeline.

Click the Settings gear icon. Select Add an App.

sp1 Click the Tasks app. You can find the Tasks app in the list of templates.

sp2 Enter a name for the Tasks app in the Name text box and then click Create. …

sp3 The new My Tasks app appears in the Recent section of the current navigation. …

sp4 Click the app to open it.

sp5

Cheap and Recommended SharePoint 2013 Hosting

ASPHostPortal.com is Perfect, suitable hosting plan for a starter in SharePoint. ASPHostPortal the leading provider of Windows hosting and affordable SharePoint Hosting. ASPHostPortal proudly working to help grow the backbone of the Internet, the millions of individuals, families, micro-businesses, small business, and fledgling online businesses. ASPHostPortal has ability to support the latest Microsoft and ASP.NET technology, such as: WebMatrix, WebDeploy, Visual Studio 2015, .NET 5/ASP.NET 4.5.2, ASP.NET MVC 6.0/5.2, Silverlight 6 and Visual Studio Lightswitch, ASPHostPortal guarantees the highest quality product, top security, and unshakeable reliability, carefully chose high-quality servers, networking, and infrastructure equipment to ensure the utmost reliability.

SharePoint 2013 Hosting Tutorial – How to Add Excerpts to SharePoint?

Blogging and the Internet seem to go hand-in-hand, so it’s only fitting that Microsoft should include a ready-made blogging app as part of SharePoint. It includes most of the things you would expect of a blogging app, but there are some areas where it falls short. How a SharePoint blog displays lists of articles is one of them. It seems to take an all-or-nothing approach of either displaying only the title, date, and byline, as with the categories and archives views, or displaying the entire article text, as with the blog home page. Out of the box, there’s no middle ground.

Today, I want to show you one solution for displaying excerpts (instead of the entire article) in a SharePoint blog. Before I dive in, I want to preface this with a couple of disclaimers. Firstly, I assume that you are comfortable enough with SharePoint 2013 to know how to edit pages and add columns to SharePoint lists. Also, as with programming in general, there are lots of ways to solve this problem. When evaluating this solution for your own use, you should consider your project’s needs, your comfort level with the method described, and your personal preferences.

Step 1: Add an Excerpt column

Before your blog can have excerpts, it needs somewhere to put them. While you could just truncate the contents of the Body column, storing the excerpt separately means that you can give your content authors more control over what’s displayed with minimal effort. Here’s how to set that up:

  1. Navigate to your blog subsite, then go into Site Settings.
  2. Within Site Administration, select the Site libraries and lists, then choose Customize Posts.
  3. Create a column named “Excerpt” with the type Multiple lines of text. You can leave the other options at their defaults or modify them as you see fit, however this article assumes that the Excerpt column allows enhanced rich text.

Now, when you create a new blog post, you should notice an additional Excerpt field at the bottom of the form. That’s great, but it also means yet another box your content authors have to fill in. Who wants to type in the same information twice? And what happens if they forget?

Step 2: Populate the Excerpt field automatically

Let’s save your authors some time by copying the first paragraph of the Body field over to the Excerpt field automatically. Even better, let’s make it so that changes in the Body field get copied over to the Excerpt field as well, unless the author has modified the Excerpt field separately, as we don’t want to undo their changes. Here’s how:

<script>
// Automatically copy the first paragraph from the Body field to the Excerpt field anytime the Body field loses focus, unless the user has edited the Excerpt field.
function PopulateExcerptField() {
    $(document).ready(function() {
        var dirt = '<span id="ms-rterangecursor-start" rtenodeid="1"></span><span id="ms-rterangecursor-end"></span><br>';
        var OldExcerpt = $("div[role='textbox'][id^='Excerpt_']").html().split(dirt).join('');

        $("div[role='textbox'][id^='Body_']").on('blur',function() {
        var excerpt = $("div[role='textbox'][id^='Excerpt_']");

            if(excerpt.html() == OldExcerpt) {
                var firstParagraph = $(this).children('p').first().html().split(dirt).join('');
                excerpt.html('<p>' + firstParagraph + '</p>');
                OldExcerpt = excerpt.html();
            }
        });
    });
}

// Load jQuery if it doesn't already exist
(function() {

    if(typeof jQuery === 'undefined') {
        var headTag = document.getElementsByTagName("head")[0];
        var jqTag = document.createElement('script');
        jqTag.type = 'text/javascript';
        jqTag.src = '//cdnjs.cloudflare.com/ajax/libs/jquery/1.11.1/jquery.min.js';
        jqTag.onload = PopulateExcerptField;
        headTag.appendChild(jqTag);
    } else {
        PopulateExcerptField();
    }
})();

</script>
  1. Save the above gist as “PopulateExcerptField.html” and upload it to the Site Assetslibrary within SharePoint.
  2. Navigate to your blog and go to the Create a Post page.
  3. Edit the page and add a new “Content Editor” web part, which is found under the Media and Content folder.
  4. Hover over the upper-right corner of the Content Editor web part until you see a small triangle or arrow, click on it, and choose Edit Web Part.
  5. Enter the following into the Content Link field: “/SiteAssets/PopulateExcerptField.html”
  6. Click Apply, then in the SharePoint ribbon under the Page tab click Stop Editing.
  7. (Optional) Repeat for the Edit a Post page.

Note that this code relies on JQuery, so I’m loading it from a CDN if it doesn’t already exist. There are better ways to include javascript libraries in SharePoint, but that’s beyond the scope of this article.

Step 3: Display the excerpts on your blog

So, our posts now have excerpts, and we’ve made our content authors’ lives easier by adding some automation to the post creation process. But we still need a way to display them to our visitors. This is where things get complicated. Fret not. I’ll take you through it step by step.

Excerpts = {
    FirstPostID: -1,
    LastPostID: -1,

    // Instead of the contents of the Body field, returns a temporary placeholder that we can easily find and replace.
    // Also finds and stores the lowest and highest post IDs for later use.
    ReplaceBody: function(ctx) {
        var id = parseInt(ctx.CurrentItem.ID);

        if(id < Excerpt.FirstPostID || Excerpt.FirstPostID === -1) {

            Excerpt.FirstPostID = id;
        }

        if(id > Excerpt.LastPostID) {

            Excerpt.LastPostID = id;
        }

        var ret = "<p id='excerpt_placeholder_" + id + "'>Loading...</p><p><a href='" + _spPageContextInfo.webServerRelativeUrl + "/Lists/Posts/Post.aspx?ID=" + id + "'>Read More</a></p>";

        return ret;
    },

    // Fetches the excerpts and replaces the placeholder elements with them.
    ReplaceExcerptPlaceholder: function() {
        $(document).ready(function() {
            $.ajax({
                url: _spPageContextInfo.webServerRelativeUrl + "/_api/web/lists/getByTitle('Posts')/items?$select=ID,Excerpt&$filter=ID le " + Excerpts.FirstPostID + " and ID ge " + Excerpts.LastPostID,
                type: "GET",
                headers: {
                    "accept": "application/json;odata=verbose",
                },
                success: function (data) {
                    var res = {};
                    for (var i = 0; i < data.d.results.length; i++) {
                        res = data.d.results[i];
                        $('#excerpt_placeholder_' + res.ID).replaceWith(res.Excerpt);
                    }
                },
                error: function (err) {
                    console.log(JSON.stringify(err));
                }
            });
        });
    }
};

// Override the Body View
(function () {
    var override = {};
    override.Templates = {};
    override.Templates.Fields = {
        'Body': {
            'View': Excerpts.ReplaceBody
        }
    };
    SPClientTemplates.TemplateManager.RegisterTemplateOverrides(override);
})();

// Load jQuery if it doesn't already exist
(function() {
    if(typeof jQuery === 'undefined') {
        var headTag = document.getElementsByTagName("head")[0];
        var jqTag = document.createElement('script');
        jqTag.type = 'text/javascript';
        jqTag.src = '//cdnjs.cloudflare.com/ajax/libs/jquery/1.11.1/jquery.min.js';
        jqTag.onload = Excerpts.ReplaceExcerptPlaceholder;
        headTag.appendChild(jqTag);
    } else {
        Excerpts.ReplaceExcerptPlaceholder();
    }
})();

I should tell you what this code does before I explain how to use it, so let’s start at the bottom and work our way up. As before, the code relies on JQuery, and I want you to be able to drop this into SharePoint as-is, so lines 121-144 load JQuery dynamically if you don’t already have it.

In order to display the excerpts, we need somewhere to put them, so in lines 100-119 we register our own function to override the Body field’s view for each post. I’ve named the function “ReplaceBody”, and it’s defined on lines 31-53. ReplaceBody is given a Render Context object, and is expected to return an html string. The Render Context object, ctx, contains a bunch of things, but we really only care about ctx.CurrentItem, which, as the name implies, is the SharePoint item to be rendered. It contains all of the fields exposed by the current list view, but we only need the item’s ID. There are a couple of if statements that are used to store the lowest and highest post IDs for later. The function then generates an html string that contains a “<p>” element to serve as a placeholder for the excerpt and a Read More link that points to the view post page.

Finally, we have the ReplaceExcerptPlaceholder function, which is defined on lines 55-96. This function uses JQuery to asynchronously fetch the excerpts from the Postslist via SharePoint’s REST API. We use the $select query to specify that we only want the ID and Excerpts fields, and the $filter query to specify that we only care about the posts whose IDs are between the lowest and highest IDs we saved previously. This helps to ensure that the returned response is as small as possible for the sake of efficiency. If we get a successful response, we iterate over it and replace each placeholder element with the actual excerpt. If something goes wrong, we log the error to the javascript console and move on.

In order to use this code, we first have to get it into SharePoint. Here’s how:

  1. Save the above gist as “DisplayBlogExcerpts.js”.
  2. Navigate to your site collection’s Master Page Gallery, e.g. “{your sitedomain}/_catalogs/masterpage/Forms/AllItems.aspx”.
  3. In the Files tab choose Upload Document.
  4. Select DisplayBlogExcerpts.js and click OK.
  5. Set the Content Type to Javascript Display Template.
  6. Enter DisplayBlogExcerpts as the name, and optionally add a title and description.
  7. Set Target Control Type to View.
  8. Set Standalone to Standalone.
  9. Set Target Scope to “/”.
  10. Set Target List Template ID to “301″.
  11. In the SharePoint ribbon under the Edit tab click Save.

Now, we need to attach it to the appropriate web parts. Navigate to your blog subsite’s home page, one of its category pages, and one of its archive pages, and follow the steps below for each page:

  1. Edit the page.
  2. Hover over the upper-right corner of the Posts web part until you see the small triangle or arrow, click it, then choose Edit Web Part.
  3. On the web part editor, click Miscellaneous to expand it.
  4. In the JS Link field, enter “~sitecollection/_catalogs/masterpage/DisplayBlogExcerpts.js” and click Apply.
  5. For the archive and category pages, under List Views, change Selected View to “<Summary view>” and click Apply, then change Selected View to “<Current view>” and click Apply again.
  6. In the SharePoint ribbon under the Page tab click Stop Editing.

If everything worked, you should now have excerpts on all of your blog’s list pages.

Cheap and Recommended SharePoint 2013 Hosting

ASPHostPortal.com is Perfect, suitable hosting plan for a starter in SharePoint. ASPHostPortal the leading provider of Windows hosting and affordable SharePoint Hosting. ASPHostPortal proudly working to help grow the backbone of the Internet, the millions of individuals, families, micro-businesses, small business, and fledgling online businesses. ASPHostPortal has ability to support the latest Microsoft and ASP.NET technology, such as: WebMatrix, WebDeploy, Visual Studio 2015, .NET 5/ASP.NET 4.5.2, ASP.NET MVC 6.0/5.2, Silverlight 6 and Visual Studio Lightswitch, ASPHostPortal guarantees the highest quality product, top security, and unshakeable reliability, carefully chose high-quality servers, networking, and infrastructure equipment to ensure the utmost reliability.

SharePoint 2013 Hosting Tutorial – Easy to Backup and Archive Documents Using SharePoint Designer

Hence, now I can unveil my task. The objective is to create a weekly copy of the document named Document and move the copy to the folder Archive thereafter.

back1

Environment

For me there’s nothing better than a SharePoint Designer to create workflows for all minor customizations that need to be automated.

Workflow is rather a misleading term, as it normally only arises a visualization of some systematic process from user to user or level to level. However, I consider it normally as a sequence of steps that can be automated and hence for this specific task, I just had to settle at one version of the SPD for creating the workflow all the reasons that unfold in the course of the document.

What I’m talking about in this article is my experience on the SharePoint Online only. This can definitely be implied on SP 2013, but, I’m certain, definitely not on lower versions for all the same reasons.

Challenges

When I started this task, I took this up as a challenge to be self-sufficient, or rather make the best use of the limitations that I have.

While I could get started with creating a copy of the document using a workflow, to begin with, my first challenge was to trigger the process at a specified wee hour, since all that I knew was either workflows could get started when items are created or modified, and in the last case triggered manually…I could be dependent on some console app or some available scheduler apps for SP Online, but then I had to deal with the infrastructure challenges of setup and enabling the corresponding features. Or lastly, I could stay awake to initiate the workflow. Not that bad for a one-time trigger, but it would have then lacked the generalization.

Anyways, just as I thought the only hindrance was getting the workflow started, I stumbled against another – the archival process had to be periodic! This churned my grey cells to think of something beyond a manual process and set up an automated delay process in the process that I still ‘would be’ conceptualizing. But it did open an avenue to work with Date-Time and Pause, and here’s when I opted out of my most preferred SPD 2010 to explore a new terrain – SPD 2013 for the best I knew that processes could be setup in a loop in the latter.

This was however not the end of my woes. When a simple workflow is triggered, it acts upon just one specific item. Now I face my next challenge – how to identify the copy that was created and move it to the specified folder. It’s easy when we think of it – get the last index of the document library. That’s exactly what’s needed, but unfortunately, for anyone who’s had a little experience with SPD would know, there exists no such function that can directly return the last index of the list and document library in this approach.

By now I’ve enumerated my major challenges so far, and the remaining that I faced weren’t show stoppers, but yes, I would definitely discuss them in the course of this solution.

Belling the cat

I’ll tackle all my challenges listed so far in the same sequence.

How to set up the scheduler

It wasn’t that tough a job. I could start my workflow whenever I wanted, however, the slight workaround that I did was to add a Pause until the required schedule. Thereafter, the workflow would just be in motion.

By now, I’ve a fair idea of how my entire process will be framed, hence, this is the first reason why I preferred the SPD 2013 over 2010 – the former allows creating stages, and so, after I’ve set the scheduler in the starting stage, I can isolate this step from the subsequent.

back2

The Pause function lets you choose from either the Current date or the Specific date. So now I can do everything that I want in Stage 2.

To keep the curiosity active, I’ll unfold the details of the steps as we knock out each challenge.

How to set up the infinite loop

Now that I know that my workflow will transition to Stage 2 after the scheduled time, I can safely setup the loop. This suffices stronger to use the SPD 2013 now. However, setting up the loop requires evaluation of some metadata, for which, from the given set of columns, using the Title seems to be a good bet as this lies unused so far, not impacted by time also if I don’t wish to create any additional columns in my document library (however creating a dedicated column of a type as simple as a Single line of text suffices). The only other thing that I need to do is setup the value before the workflow starts and make sure the value is maintained to keep the loop running, and thereby I get my first step to setup the loop.

back3

P.S.: I’ve made use of string type variable Title1 for the only reason that no error incorporates in manual change that may impact evaluation.

I’ve exploited the column Title at various other places in the process to indicate the state of the workflow, however, before ending one loop, I’ll make sure the Title column is set back to the value that keeps the loop running infinitely (unless I need to perform only a finite set of iterations).

How to create a copy of the document

This can be easily done with the Copy document action and since the requirement is to create the copy in the same document library, select the corresponding destination.

back4

How to move the copy to the archival folder

Now that the item of interest is copied, the copy needs to be moved to the Archive folder. Thinking of a normal case, modifying Path and Name is not a task, but only when we perform this on the item that triggered the workflow and not any other item of the library. For this reason it is required that the copy can be distinguished uniquely and its Path and name can then be modified.

To do so, set the Title of the original item before the copy, so that the copied document contains a known value for the metadata and then modify the Title of the original item after copy so that the copied item can be uniquely identified in the document library.

back5

Having performed as in the screen shot above, we can now see that the Title of the original item was set to Stage2 before copy, so that the copied item has the same value in the Title field, and soon after copy, the Title of the original item is set to Copied.

Having done this, using some workarounds, we can fetch the ID of the copied item as demonstrated in the following screen shot.

back6

The captured ID will now do wonders, as this lets us uniquely pick the copied item for relocation.

back5=7

The one thing that needs to be highlighted here is the use of ID in setting up the Path and Name.

If I were to present the revelation of this workflow before the end, the backed up documents would be named something as in the following screen shot.

back8

The frequency of the repetition of the cycle is translated as time difference observed in Modified column. But the backups definitely don’t have an appealing Name.

With my experience of iterations, I figured out that the workflow returns an error to create (or move documents in a location) if there already exists an item with the same name.

This makes us wonder why not append the document name with a timestamp – good question, but my experience says if the process is repeated multiple times over the day, the timestamp remains constant throughout the day. Hence, a minimum gap of 24 hours is desirable to fetch a unique date-timestamp.

However, using the ID for uniqueness seems to be a safe generalized bet. Hence, using the ID seems to be one of the logical propositions irrespective of the frequency of repetition, considering that there’s no available function to concatenate strings.

However, we are not that short of ingenious ideas also. I’ve tweaked my item name to create a workflow variable FileName and concatenate the Name of the current item with the ID using a string builder.

back9

If the workflow has a minimum frequency of 24 hours, similar concept can be used with the date-timestamp. However, the thing to be noted is to replace the special chars ‘/’ and ‘:’ while using it.

s111

Having setup the value for FileName either ways, this variable can now be used to edit the Path and Name for the copied item as described in section

back10

How to setup the periodic loop

Now that a single copy and relocation process is setup, the entire process can be setup at the desired interval by setting up a Pause before the next loop gets executed and the areas highlighted in the following screen shot ensure well that the workflow is in place for the next loop to get executed after the pause.

back11

How does the output look

Keeping the curious minds satiated, the following screen shot gives an insight of how the backup archival process progresses.

back12

In the given example, since the workflow interval was 5 minutes, I preferred to use ID to append to the original file name. However, as mentioned afore, if the cycle had a minimum interval of 24 hours, I would get backed up documents christened as in the following screen shot.

back13

Cheap and Recommended SharePoint 2013 Hosting

ASPHostPortal.com is Perfect, suitable hosting plan for a starter in SharePoint. ASPHostPortal the leading provider of Windows hosting and affordable SharePoint Hosting. ASPHostPortal proudly working to help grow the backbone of the Internet, the millions of individuals, families, micro-businesses, small business, and fledgling online businesses. ASPHostPortal has ability to support the latest Microsoft and ASP.NET technology, such as: WebMatrix, WebDeploy, Visual Studio 2015, .NET 5/ASP.NET 4.5.2, ASP.NET MVC 6.0/5.2, Silverlight 6 and Visual Studio Lightswitch, ASPHostPortal guarantees the highest quality product, top security, and unshakeable reliability, carefully chose high-quality servers, networking, and infrastructure equipment to ensure the utmost reliability.

SharePoint 2013 Hosting Tutorial – SharePoint 2013 Alternate Access Mappings

Overview

When trying to access your SharePoint environment with Web Access enabled via an external URL (see Web Access), you may get redirected to a blank page or simply not be able to connect to your VM.

ahp banner sharepoint-01

1. Unable to Connect / Web Access Error

1._Unable_to_Connect.png

This happens because:

  • The internal IPs of your network will remain static and even when suspended retain the same IP.
  • However when coming from an external machine, those IPs are released and recycled once the VM goes into suspend mode.

This issue can be fairly common and requires your application to be running on ports 80, 443, 3695, 8000-8010, 8080

2. Viewing the VM via the external IP

To be able to view sites using the external public IP there is a need to configure Alternate Access Mappings which enable multiple internal URLs to be mapped to a single public URL.

To configure Alternate Access Mappings in SharePoint, go to Central Administration > Application Management > Configure alternate access mappings.

2._Configure_alternate_access_mappings.png

Click on “Edit Public URLs” and then choose the appropriate Alternate Access Mapping Collection.

2.1_Edit_Public_URLs.png

In the ‘Internet’ field type CloudShare’s WebAccess Static DNS for

2.2_Save.png

You can also add a Vanity URL to your required collection so you can provide a more ‘clean’ URL to your audience.

Cheap and Recommended SharePoint 2013 Hosting

ASPHostPortal.com is Perfect, suitable hosting plan for a starter in SharePoint. ASPHostPortal the leading provider of Windows hosting and affordable SharePoint Hosting. ASPHostPortal proudly working to help grow the backbone of the Internet, the millions of individuals, families, micro-businesses, small business, and fledgling online businesses. ASPHostPortal has ability to support the latest Microsoft and ASP.NET technology, such as: WebMatrix, WebDeploy, Visual Studio 2015, .NET 5/ASP.NET 4.5.2, ASP.NET MVC 6.0/5.2, Silverlight 6 and Visual Studio Lightswitch, ASPHostPortal guarantees the highest quality product, top security, and unshakeable reliability, carefully chose high-quality servers, networking, and infrastructure equipment to ensure the utmost reliability.

ASPHostPortal.com Announces WooCommerce Hosting Solution

pressrelease

Established in 2008, ASPHostPortal.com is one of the leading ASP.NET hosting provider offering quality service with premium support. We maintains and operates its own network. Our servers are built using the latest technology and housed in 4 continent (US, Europe, Asia, and Australia). Our company is passionate about hosting and strive to deliver an excellent level of service to each customer. Today, we support WooCommerce hosting for all new or exist customers.

WooCommerce is a free eCommerce plugin that allows you to sell anything, beautifully. Built to integrate seamlessly with WordPress, WooCommerce is the world’s favorite eCommerce solution that gives both store owners and developers complete control.

With endless flexibility and access to hundreds of free and premium WordPress extensions, WooCommerce now powers 30% of all online stores — more than any other platform.

ASPHostPortal.com is set up with an aim to serve customers in an excellent manner by providing them quality service. We offer WooCommerce hosting with affordable price, a lot of features, 99.99% uptime guarantee, 24/7 support, and 30 days money back guarantee. Therefore, our focus is always aimed at making sure customers are constantly able to achieve optimal performance and usability with all of the services that we offer. To learn more about our WooCommerce Hosting, please visit http://asphostportal.com/WooCommerce-Hosting

About ASPHostPortal.com:
ASPHostPortal.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.

ASPHostPortal.com Announces Umbraco 7.5.7 Hosting Solution

pressrelease

ASPHostPortal.com is one of the best Windows ASP.NET hosting around and is the most popular among businesses for a secure and reliable experience. Established in 2008, ASPHostPortal.com Hosting can be considered a veteran in the web hosting industry. Backed by a team of experts with diverse technical backgrounds, ASPHostPortal.com Hosting focuses on the latest technology to provide the best reliability for a smooth experience. Today, we offer Umbraco 7.5.7 hosting to all customers.

Umbraco is easy to learn and use, making it perfect for web designers, developers and content creators alike. People can be up and running in just a few minutes with their simple installer. Either apply one of the included starter kits or seamlessly integrate any designs.

Umbraco Support is the surest way to ensure people has the tools they need to boost their productivity and the sites are well cared for. With umbraco.tv accounts, licensing, and expert support you’re sure to create great Umbraco sites with more confidence and in less time.

ASPHostPortal.com is set up with an aim to serve customers in an excellent manner by providing them quality service. We offer Umbraco 7.5.7 hosting with affordable price, a lot of features, 99.99% uptime guarantee, 24/7 support, and 30 days money back guarantee. Therefore, our focus is always aimed at making sure customers are constantly able to achieve optimal performance and usability with all of the services that we offer. To learn more about our Umbraco 7.5.7 Hosting, please visit http://asphostportal.com/Umbraco-7-5-7-Hosting

About ASPHostPortal.com:
ASPHostPortal.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.

ASPHostPortal.com Announces IIS 10 Hosting Solution

pressreleaseiis

ASPHostPortal is the leading Windows ASP.NET hosting providers that offer reliable IIS hosting. It has secured its place because of great support and reliability. We are a right choice for anyone who are looking for an IIS hosting for small businesses, blogs, online portfolio, personal websites or professional websites. Now, we offer reliable IIS 10 hosting with good price and money back guarantee.

Internet Information Services (IIS) for Windows® Server is a flexible, secure and manageable Web server for hosting anything on the Web. From media streaming to web applications, IIS’s scalable and open architecture is ready to handle the most demanding tasks.

With IIS, people can deploy and manage Web sites and applications across large farms of Web servers from a central place. People can also Maximize web server security through reduced server footprint and automatic application isolation.

ASPHostPortal.com is set up with an aim to serve customers in an excellent manner by providing them quality service. We offer IIS 10 hosting with affordable price, a lot of features, 99.99% uptime guarantee, 24/7 support, and 30 days money back guarantee. Therefore, our focus is always aimed at making sure customers are constantly able to achieve optimal performance and usability with all of the services that we offer. To learn more about our IIS 10 Hosting, please visit http://asphostportal.com/IIS-10-Hosting

About ASPHostPortal.com:
ASPHostPortal.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.