Thursday, May 23, 2019

New Features VS Deprecated Features In SharePoint 2016

New features in Share Point 2016

Mini Roles
There had been a lot of hype going over this new feature and it comes right on to you when you are installing Share Point 2016. Once you have done the installation and when you run the configuration wizard you get a window asking you to specify the Mini Role as shown below :



Figure 1: Mini

This is a cool feature that optimizes the functioning of the servers in a Share Point farm based on the role they have been assigned. 

So when you are configuring the server, depending on the intended functionality you may chose the appropriate role as the following:
RoleFunctionality
Special LoadReserved for services to be isolated from other services, I.e. 3rd party, PerformancePoint, etc.
Web Front EndServices end user requests, optimized for low latency.
Single Server FarmProvisions all services on the server for a single server deployment. This role is provided for evaluation and development purposes.
SearchReserved for Search services.
ApplicationServices the backend jobs or the requests triggered by backend jobs, optimized for high throughput.
Distributed CacheServices distributed cache for the farm. Optionally, the server assigned to this role can load balance end user requests among the web front ends.
Sensitive Information Types and Data Loss Prevention 
This is a feature that excites most of the Enterprise companies who were reluctant to adopt Share Point stating security as one of the reason. Microsoft has now built DLP into Share Point 2016 Enterprise search. They have introduced 51 Sensitive Information Types like SSN,Credit Card No etc. that can used to write pattern rules to find out documents that exposed sensitive information. 

This can be achieved by setting up the eDiscovery site and configuring a filter using the Sensitive Type.



Figure 2: eDiscovery 

Above search will pick up sensitive documents/data that expose SSN .The entire Sensitive information types can be picked up from here

Enhanced Software boundaries 

Share Point 2016 comes with huge improvements in software boundaries.
 Share Point 2016Share Point 2013
Content DB SizeSize has been increased to TB’sRecommended : 200GB
Site Collections per Content DB100,000 Site collectionsRecommended : 2000
Max File Upload SizeIncreased to 10 GBDefault is 250 MB but can be increased to 2 GB
Search IndexingIncreased to 500 million items per Service ApplicationUp to 100 million items can be indexed in a single Service Application
Image and Video Preview
In SharePoint Server 2016, you can see a preview of the images and videos posted to a document library by hovering the mouse over the image or video, or by clicking on them. 



Figure 3: Document

UI Changes and App Launcher
With Share Point 2016 the UI of the home page got a slight change. The suite bar which had a blue back ground has now been changed to have a black one. Similar to Office 365, an App launcher has been introduced to quickly launch the apps. 



Figure 4: Site

Expanded Support for special characters

In previous versions Microsoft had blocked file names that included the &, ~, {, and }characters, file names with leading dots, file names that had a GUID, and file names which were longer than 128 characters. These restrictions are removed in SharePoint Server 2016. However characters such as % and # are still restricted and cannot be used in file names.

Enhanced Document Library UI
We have an enhanced set of new controls for the library as shown below:



Figure 5: Library

Moreover the document upload process is now much more robust with an improved UI that shows the progress of the upload.



Figure 6: UI

New Keyboard shortcuts have been provided for the following tasks:
  • Alt + N - New
  • Alt + E - Edit
  • Alt + U - Upload
  • Alt + M - Manage
  • Alt + S - Share
  • Alt + Y - Synchronization
Improved Threshold limit by providing Auto Indexing

SharePoint 2010 and 2013 had a threshhold limit of 5000 due to which when we try to query / view items more than that throttling error occurred. This was a restriction purposefully imposed to mitigate the lock escalation issues within SQL Server.


Figure 7: Thresh



Figure 8: Error

Though the threshold limit could be increased above 5000 it created performance issue. The work around was to manually create index on columns. However in SharePoint 2016 a new Timer job has been introduced to Auto Index the columns namely “Large List column index management”.

In Share Point list ‘Advanced Settings’ there is a new setting which has to be enabled to achieve this:



Figure 9: Advance

Microsoft Project Server 2016 (PWA) integrated to SharePoint 2016
Earlier Project Server required a separate installation as well as license to be used with SharePoint. However, now it comes as a Service Application in SharePoint 2016. I have written an article on how to provision Project web App within SharePoint 2016 here



Figure 10: Home

Fast Site Collection Creation
Fast Site Collection Creation is a new functionality introduced in SharePoint Server 2016 which improves the Site Collection creation performance by reducing Feature activation overhead. ‘Fast Site Collection Creation’implements the creation of site collection by making use of Copy-SPSite at the Content Database level . This is achieved using the new Enable-SPWebTemplateForSiteMaster PowerShell script. The Site collection creation time had reduced from 40 sec to 2 sec which is an exponential reduction.

Compliance Policy Centre Site template for retention management



Figure 11: 
Complaince

The site upon creation will appear as below:



Figure 12: Appear

By way of this we can set retention policies and assign them to site collection. Multiple rules can be assigned as part of the policy.



Figure 13: Policies 

New timer jobs have been added to monitor the policies set and delete the documents as said in the policy. 

Zero downtime patching

Even with SharePoint 2013 whenever a new Service Pack or Cumulative Update had to be installed. Administrators had to plan for SharePoint down time. But with SharePoint 2016 patching can be done online by minimizing the down time, if any. 

In-Place Hold Policy Centre site template
A new site template called In-Place Hold Policy center has been introduced in SharePoint 2016 . This helps to manage policies defined across site collections.



Figure 14: Template

Enhanced PowerShell scripts.
PowerShell had always been a SharePoint administrators Swiss army knife. A whooping number of 115 new PowerShell scripts have been added to support SharePoint.

SMTP Connection encryption for outgoing email
This is a new feature introduced in Share Point 2016. We can define custom ports and enable SSL.



Figure 15: Connection

Cloud Hybrid Search
By using cloud hybrid search SharePoint 2016, you can index all your crawled content, including on-premises content, to your search index in Office 365. When users query your search index in Office 365, they get search results from both on-premises and Office 365 content. This would come native to SharePoint but will also be pushed to Share Point 2013 as an update. 

Hybrid OneDrive and Site Features
Hybrid OneDrive and Site Features in SharePoint 2016 is a new feature that would allow users to use OneDrive as their personal repository instead of the On-premises OneDrive or MySites. This feature basically allows users to continue using their On-premises SharePoint farm while providing users with an easy way to store, share, and collaborate in the cloud with OneDrive for Business in Office 365. 



Figure 16: 
Hybrid

Durable Links
Durable links introduced in Share Point 2016 works such that a file can have its name changed, or even move locations and the link will still function correctly. This way, if you send someone a link to a document, and down the road change the document name or location, the link stays valid. This is something SharePoint as a Content Management System was waiting for a long time. The internal implementation will be discussed in an upcoming article. 



Figure 17: Durable

Increased number of Timer jobs
A lot of new timer jobs have been introduced in the new release taking the total count to 226. As part of the newly introduced Retention Policy Site templates, Auto Indexing feature and other enhancements we have a lot of new timer jobs added to the Central Administration.



Figure 18: Number

SharePoint Logging API (SLAPI)
SLAPI will be built on existing analytics component and can be used to understand how users interact with SharePoint. Reports can be generated which would provide for growth trends and forecasting usage by SharePoint site template, etc.

Deprecated/Removed features from SharePoint Server 2016 
SharePoint Foundation: The free to use edition of SharePoint will no longer be a part of the Share Point 2016 suite. SharePoint foundation was a minimal SharePoint product which lacked enterprise features. 

Standalone Install Mode: SharePoint 2016 cannot be installed in standalone mode. You will have to choose one of the 6 Mini Roles available during the configuration phase. The Single Server Farm option where everything is installed on the same computer is supported for dev purposes.

InfoPath: New version of InfoPath will not be released. The previous version InfoPath 2013 will be available and supported. 

SharePoint Designer: A new version of SharePoint Designer will not be released with SharePoint 2016. The older version SharePoint Designer 2013 is available and will be supported.

Forefront Identity Manager Client (FIM): When you configure the User Profile Sync in Share Point 2013 you could choose “Profile Synchronization” which used FIM, or Active Directory import. But now FIM has been deprecated and only Active directory import is available. There is also an option to connect to external Sync services like Microsoft Identity Manager (MIM).



Figure 19: MIM

Excel Services
Excel Services capabilities are not available in SharePoint 2016. Excel Services functionality is now part of Excel Online in Office Online Server Preview, and SharePoint users can use the services from there. The following Excel Services functionality has been deprecated:
  • Trusted data providers.
  • Trusted file locations.
  • Trusted data connection libraries.
  • Unattended service account.
  • Excel Services Windows PowerShell cmdlets.
  • Opening of Excel workbooks from SharePoint Central Administration site.
Tags & Notes
SharePoint 2013 had the Tags & Notes feature which is deprecated in SharePoint 2016.



Figure 20: 
Tags

Users can no longer create new tags and notes or access existing ones. However old tags and notes data can be exported using PowerShell.

STSADM
 
STSADM is deprecated in SharePoint 2016. PowerShell is the way to go. However, backward compatibility remains with STSADM. 

Upgrade Considerations
  • There is no supported upgrade from Share Point 2010 directly to 2016. Existing sites and Content DB should be running under Share Point 2013.
  • The upgrade process remains the same as in Share Point 2010 – Share Point 2013. Content Databases can be detached from SharePoint 2013 and attached to SharePoint 2016.

What's New in SharePoint 2016

New Hybrid Possibilities with SharePoint 2016 and Office 365

No surprises here, though not the only focus of this new release, making SharePoint 2016 work with your Office 365 is a major part of it.

OneDrive Redirection

Though this has been available in SharePoint 2013 since SP1, with SharePoint 2016 you can redirect your My Sites to your Office 365 subscription’s OneDrive for Business host. In other words, if a user clicks on OneDrive, he'll be redirected to his Office 365 My Site and no longer to his On-Premises.

Sites you follow in one place

Now users can click on “Follow” both On-Premises and on their Office 365 and see them all in one place under the “Sites” app in the App Launcher.
The wizard to configure either of the simple scenarios above work very well, as long as you follow the requirements.
SharePoint 2016 Hybrid Team Sites

Hybrid Cloud Search

This is what a lot of us have been waiting for, a unified Search experience. Put simply, the Office 365 Search will take your On-Premises SharePoint Search Index so that it can give you results from both for the same query.
You should know that you'll have to use the Office 365 Search for this to work. If SharePoint 2016 On-Premises users query against their On-Premises Search service, it'll continue to only give them local results only.
However, once available, this will allow users to fully embrace Experiences like Delve in Office 365 and more to come in the future.

App Launcher and UI changes in SharePoint 2016

Our users couldn’t care less about the technology they have to use, and even less if they're in Office 365 or SharePoint 2016. That’s why it’s important to provide them with an (almost) identical interface to navigate both.
SharePoint 2016 introduces the App Launcher, as well as changes to the UI, to help it match the Office 365 experience.
App Launcher and UI changes in SharePoint 2016

SharePoint 2016 Infrastructure and Performance Improvements

“SharePoint 2016 was built from the Cloud-Up” – Bill Baer
Hybrid isn’t the only thing to get attention with SharePoint 2016, a lot of polishing has been done by Microsoft after having used the platform themselves with Office 365.

MinRoles

You can now install just the role that you want on particular SharePoint 2016 servers. This will only install what’s required there, but even better, it'll make sure that all servers that belong to each role are compliant. You’ll also be able to convert servers to run new roles if needed.
MinRoles in SharePoint 2016
Servers in Farm
You can even look at the services running on the SharePoint 2016 server and see if they are compliant as well.
Services on Server

Zero Downtime Patching

Now this will surely please many of you managing the SharePoint servers, the size and number of the packages are immensely reduced. They’ve also removed the downtime previously required to update SharePoint servers.

Removed 5,000 View Threshold – sort of

A Document Library can have 30,000,000 documents, that’s never been an issue. However, many of you know that 5,000 seems to be the actual limit for many end users that don't know they had to index their columns.
I'll spare you the details, but the 5,000 view threshold is actually necessary, or your entire SharePoint would be slowed down. It prevents SQL from locking the entire database, really.
Instead of removing this unpopular threshold, they automated the creation of Indexed Columns. This means that, technically, the limit is still there, but you won’t have to worry about it.
SharePoint 2016 Removed 5000 View Threshold – sort of

Increased File Size for uploads

Though I still wouldn’t recommend storing large files in SharePoint, you can now go way beyond the previous 2GB limit for files. Though there's no real limit, Microsoft has strongly recommended it stays at 10GB. Otherwise, end users will very likely get disconnected, or get a time out while uploading large files.

Fast Site Creation

By using a template, they're now able to create Site Collections in 1 second. This compares well to SharePoint 2013 that takes up almost over 40 seconds sometimes. This will require a level of configuration with PowerShell to set up.

New Compliance Center in SharePoint 2016

Not only can you leverage a lot of the compliance features in Office 365 with your On-Premises SharePoint 2016, new sites have been introduced to help you stay in control.
The In-Place Policy Hold Center and the Compliance Center allow you to build your own policies and apply them against your environment. New basic policies allow you to delete data in OneDrive for Business sites after an x amount of years for example, not unlike “Retention Policies” if you think about it.
New SharePoint 2016 Compliance Center

New Collaboration Experience in SharePoint 2016

Can’t really go to work without a mobile device of some kind these days and that expands to tablets as well now. For this reason, you’ll find SharePoint 2016 comes with a touch friendly interface.
New Collaboration Experience in SharePoint 2016

Durable Links

The concept is simple, make sure that links you sent to people to open or work on your content continues to work regardless of what happens to the document. If the file name is changed or the document moved, durable links should make it seamless to the user.
Problem is, I have no idea how it actually works for a SharePoint user. I took the URL in the hover panel of a picture, changed the filename and pasted the old URL and it did not work. I am sure I am missing something, but will update this as soon as I find out more.
Update: It turns out that Durable Links isn't necessarily a SharePoint 2016 new feature, you'll actually need to have Office Online Server previously known as Office Web Apps Server. Granted we typically have this when installing SharePoint On-Premises so customers should benefit from Durable Links anyway. It works as described meaning your URLs to documents will always work, great news.

Site Folders

The OneDrive for Business area is turning out to be more than just a My Site. It aims to bring users to one place to help them work with their files regardless of where they are. Now, you’ll also be able to navigate your Sites and their libraries from there.
SharePoint 2016 Site Folders

Tuesday, May 21, 2019

Remote Event Receiver

https://blog.virtosoftware.com/remote-event-receivers-creating-and-debugging-sharepoint-online/
FEW VERY USEFUL LINKS -
https://docs.microsoft.com/en-us/sharepoint/dev/sp-add-ins/handle-events-in-sharepoint-add-ins
https://docs.microsoft.com/en-us/sharepoint/dev/sp-add-ins/create-a-remote-event-receiver-in-sharepoint-add-ins
https://docs.microsoft.com/en-us/sharepoint/dev/sp-add-ins/create-an-add-in-event-receiver-in-sharepoint-add-ins
https://docs.microsoft.com/en-us/sharepoint/dev/sp-add-ins/debug-and-troubleshoot-a-remote-event-receiver-in-a-sharepoint-add-in


Remote Event Receivers Creating and Debugging in SharePoint Online

In this post we will describe how to create and debug Remote Event Receivers for SharePoint Online (Office 365). As an example, we will create a project, which will have an event receiver that is triggered on item creation in Report list.
Create a project in Visual Studio 2013. Select the App for SharePoint template.
Remote event receivers are supported only by Provider-hosted applications, that is why we choose this type. To create the application, we also need an account in Office 365 (you can purchase a licensed version from the developer, or use a 30 days trial).
Enter the website address where our application will be accessed.
Choose the type of web application. Our example – Asp.Net MVC Web Application. Click Next.
Window with a choice of the authentication type will appear. In our case we used Azure Access Control Service.
Click Finish. Thus, the solution is created. It consists of two projects. RERDemo – is the actual application (app) for SharePoint, the second RERDemoWeb – is a website service that is responsible for receiving events.
Let’s add Report list to our application.
To do this, perform the following steps: right click on the title of the project RERDemo -> Add .. -> New Item … -> List. Enter the list name Report
In the settings window, select: Create a list instance based on an existing list template, namely Custom List. Click Finish.
After creating the list, a tab with the list instance settings opens. There is no need to change anything, so we close it.
Add an event receiver. To do this, right click on the project name RERDemo in Solution Explorer -> Add -> New Item …
In the appeared window, select Remote Event Receiver. Let’s name it ReportEventReceiver. Click Add.
You should see the window with the event receiver settings. Select the type of event receiver – List Items Events. Then choose the event source – Report (List/Report). And for our example, select the type of received events – An item was added (ie, our receiver will be triggered after the creation of an element in the Report list).
Once you click finish button, in Visual Studio opens the tab with code of the receiver. We will examine it later. Now take a look at changes in the Solution Explorer. In the RERDemo project appears ReportEventReceiver element. If you open it, you will see the layout that is responsible for adding the receiver to the Report list.
In layout there are settings that we have set when created the receiver. Here we are interested in the Url element. It has the address of the service, which will be triggered when event appears. ~ remoteAppUrl – is a token that will be replaced with the real address of our service.
Let’s take a look at the RERDemoWeb project. There is Services folder, which has the code for our receiver service. Double-click on ReportEventReceiver.svc, to see the service code.
ReportEventReceiver implements IRemoteEventService interface, namely two methods: ProcessEvent and ProcessOneWayEvent. The first will be called when synchronous events will be triggered, the second – when asynchronous ones.
Due to fact that our receiver is triggered when an element has already been created (but not when an element is creating), this method is called ProcessOneWayEvent. Unlike the ProcessEvent method, which may affect the event itself by the return value of SPRemoteEventResult result, ProcessOneWayEvent method works in one direction (what OneWay says in its name).
Creation of our application is complete for now. We have not written a single line of code, Visual Studio made it for us. Let’s run our application in debug mode and see what happens. Put a breakpoint in the method of ProcessOneWayEvent and press F5 …
We get a warning message that we cannot debug remote events without turning on Microsoft Azure Service Bus. Click OK, close the IE window that opened, and let’s figure out what it means.
When an event appears (creating an element in the Report list), the service responsible for receiving an event will be triggered. However, when debugging, our service will be located in the localhost (on our computer). Roughly speaking, when there will be an event on your site on SharePoint Online, there will be created a request to https: //localhost/Services/ReportEventReceiver.svc, which is not unique.
Azure Service Bus (messaging service) helps to get through this issue. It allows to call for our event receiver, which is located in localhost.
You can read more on msdn, now we move to the service configuration. To do this, we need an account in Microsoft Azure. You can get it for free for 30 days.
Go to the Azure portal, open the Service Bus tab, click Create.
In the appeared window, enter the name and leave the rest of settings without changes, click the tick.
When Service Bus is created, press on its name, then click CONNECTION INFORMATION. A window with information on connection to created service will appear.
At the moment there are two types of connection: SAS and ACS. In order to be able to debug event receivers through Visual Studio, we need the ACS type of connection. However, in the above image we can see, that there is no such connection. Congratulations, we have created something that cannot be used for debugging. How to create the ACS connection string through the Azure portal? – It’s impossible!
Therefore, close the Access connection information window. Next remove our Service Bus. To create a Service Bus with ACS, we need Microsoft Azure PowerShell. Open Web Platform Installer (or install it, if you have not done it yet). Enter it in the search line: Microsoft Azure PowerShell. Then install Microsoft Azure PowerShell with Microsoft Azure SDK.
After installation is complete, run the Azure PowerShell
After launching Azure Powershell, perform following commands:
Add-AzureAccount
Get-AzureSubscription
Select-AzureSubscriptionSubscription_name
After you enter the first command, you will be asked to log in. Then we get the name of our subscription. And in the third command we choose subscription.
Enter the last command: New-AzureSBNamespace ‘Service_Bus_Name’ -CreateACSNamespace $ true -NamespaceType Messaging (think of some name and write it in quotes).
Open Azure Portal again, find the created service bus, click CONNECTION INFORMATION.
We now have the ACS connection string. Copy it to the clipboard and return to Visual Studio. Right click on the project name RERDemo and choose the project properties. Go to the SharePoint section, then at the bottom click the tick – Enable debugging via Microsoft Service Bus, paste the connection string to the clipboard.
Now we have just a few steps to go. In RERDemo project double click on the file – AppManifest.xml. And in the window that appears, set the value in the StartPage RERDemo / Lists / Report
We did this in order to open a page with our Report list when launching, in which we will be creating elements. So now let’s start our solution in debug mode – press F5.
Trust the application:
This will open the view of Report list:
Create an element and …. Yay! Visual Studio icon on the toolbar flashes in yellow, which means our breakpoint worked out.
In the next post we will describe how to connect remote event receivers for lists that are on the web site (not on the web application, like in this example).

Event Receivers vs Workflows vs timerjobs

Main Differences Between SharePoint Event Receivers and SharePoint Workflows are:

1. Event handlers Can't be manually initiated - workflows can be initiated either automatically or manually.

2. Event Handlers can be Synchronous or Asynchronous - Workflows are always async (They executes after the operation)

3. In Event Receivers we can cancel the operation (such as add/update/delete) - But in Workflows its not possible. 

4. Event handlers execute from a Particular WFE, So when some thing goes wrong in that WFE, It may end-up. But Workflow Jobs are robust and  can resume even after Reboots. 

5. Usually Event handlers runs for short period - Workflows can be longer even for years!

6. There is no User Interface/user Interaction in Event Receivers - Workflows can have user interactions such as getting user input in Initiation forms.

7. As the Name indicates, SharePoint Event receivers are triggered by events like New Item Adding-Added, Updating-Updated, Deleting-Deleted, etc. - But Workflows triggered only on Creation/Change/deletion.

8. Event Receivers are created using Visual studio - Workflows can be via SharePoint user interface, SharePoint Designer, Visio or Visual studio.

9. Workflows leaves "Workflow History" logs which we can refer for debugging - Event handler doesn't do such.

10. Event receivers are better for large volume - Workflows are better for small amount of data.


#Read more: http://www.sharepointdiary.com/2012/08/event-receivers-vs-workflows-decide.html#ixzz5ocJRJGIv


WorkFlow:
SharePoint Workflow consist a set of task(s) which can be triggered both manually and automatically. In most of the scenarios, Workflows and Event Receives perform the same functionality. SharePoint Workflows are created in SharePoint Designer, Microsoft Visio and of course through Visual Studio. For the beginners, Workflows are the best option to start from as they can be easily created through SharePoint Designer or MS Visio. SharePoint Workflows are used to perform a set of tasks if an item is changed, created, deleted and etc. or in other words the workflow is triggered once an action is completed. The most common examples of workflows are to move an item to another List/Site once it is completed, or to generate custom emails through Workflows and etc.
Event Receivers:
SharePoint Event Receivers as from its name are triggered upon an event. Unlike Workflows, Event Receivers can be triggered even when an item is being created or modified or etc. To create an Event Receiver, you need to use Visual Studio. When it comes to robustness, Workflows are more robust than event receivers. They can survive system reboot and while in few cases Event receivers cant. Unlike Workflows, Event Receivers cannot be triggered manually.
Timer Jobs:
Lastly, SharePoint Timer Jobs. Timer Jobs are triggered both automatically and manually after a defined period. Timer Jobs, like Event Receivers, are created through Visual Studio. Timer Jobs are different from above two in terms that they are triggered only at the mentioned time. They can also be triggered manually but that’s not why they are created. Let’s say you want to assign some administrative tasks to the users on daily or weekly basis, that’s where you use timer job.

TimerJobs in SharePoint

Monday, May 20, 2019

What's new in workflows for SharePoint 2013

Completely redesigned workflow infrastructure

SharePoint workflows are powered by Windows Workflow Foundation 4 (WF), which was substantially redesigned from previous versions. Windows Workflow Foundation, in turn, is built on the messaging functionality that is provided by Windows Communication Foundation (WCF).
Perhaps the most prominent feature of the new workflow infrastructure is the introduction of Microsoft Azure as the new workflow execution host. The workflow execution engine now lives outside of SharePoint, in Microsoft Azure. Figure 1 provides a generalized, high-level view of the new workflow infrastructure. For a more thorough discussion of the concepts presented in Figure 1, see SharePoint workflow fundamentals.
Figure 1. High-level architecture of the workflow infrastructure
High-level workflow architecture

Fully declarative, no-code authoring environment

Another of the prominent changes is that workflows on the WF 4 platform are fully declarative. That is, workflows are no longer compiled into managed assemblies and deployed to an assembly cache. Instead, XAML files define your workflows and frame their execution.

Enhanced SharePoint Designer 2013 authoring support

SharePoint Designer 2013 has been updated with the goal of making it the authoring environment of choice for authoring SharePoint workflows. SharePoint Designer 2013 provides workflow authors with both a designer surface and a text-based workflow authoring environment. Additionally, you can develop workflow custom actions in Visual Studio 2012 and then import them into SharePoint Designer 2013, where they can then be accessed from the Workflow Designer.
In short, the needs of both the information worker (the "power user") and the developer have been harnessed in SharePoint workflow authoring and development environments.

Visual Studio 2012 workflow project type support

To make collaboration easier between information worker and software developer, Visual Studio 2012 provides SharePoint workflow project types and a workflow custom action-item type. For more information about developing workflows by using Visual Studio 2012, and for information about differentiating between SharePoint Designer 2013 and Visual Studio 2012 in workflow development, see Develop SharePoint workflows using Visual Studio.

Support for creating custom actions

A lot of effort has gone into anticipating the business requirements of workflow authors in the providing of workflow templates, actions, and activities in SharePoint Designer 2013 and in Visual Studio 2012. However, we also know that we cannot anticipate each person's specific needs. For this reason, Visual Studio 2012 provides a workflow custom action-item type that lets developers create custom actions. For more information about workflow custom actions, see How to: Build and deploy workflow custom actions.

Tools support for SharePoint workflows

Visual Studio 2012 provides templates and support for creating workflows on the SharePoint workflow framework. SharePoint workflows are similar to previous versions of workflows except that they are powered by WF 4 and run in Microsoft Azure. They are also declarative-only (XAML) and designed to interact with the cloud and work with SharePoint Add-ins. One of their primary benefits is that they enable you to remotely host and run workflows outside SharePoint Server.

New workflow actions

Following are new workflow actions that are provided in SharePoint. For a full detailing of both new and deprecated actions, see Workflow actions and activities reference for SharePoint. New to workflows in SharePoint are a set of workflow actions that allow you to integrate with Project 2013 and let you create Project-based workflows.
Table 1. New workflow actions in SharePoint
ActionDescription
Assign a Task Assigns a single workflow task to a user or group. 
Start a Task Process Initiates execution of a task process. 
Go to This Stage Specifies the next stage in a workflow to which flow control should be handed. 
Call HTTP Web Service Functions as a method call to a Representational State Transfer (REST) endpoint. 
Start a List Workflow Starts a list-scoped workflow. 
Start a Site Workflow Starts a site-scoped workflow. 
Build DynamicValue Creates a new variable of type DynamicValue. 
Get Property from DynamicValue Retrieves a property value from a specified variable of type DynamicValue. 
Count Items in DynamicValue Returns the number of rows in a variable of type DynamicValue. 
Trim String Removes all leading and trailing white-space characters from the current string.
Find Substring in String Returns 1-based index of the first occurrence of one or more characters, or the first occurrence of a string, within a string. 
Replace Substring in String Returns a new string in which all occurrences of a specified character or string are replaced with another specified character or string. 
Translate Document Functions as a wrapper around the HTTP activity that calls the synchronous translation API. You must configure a Machine Translation Service Application for the SharePoint site on which you run the workflow. 
Set Workflow Status Updates workflow status as specified in message string. 
Create a Project from Current Item [Microsoft Project] Creates a Project Server project based on the current item. 
Set the current project stage status to this value [Microsoft Project] Sets the two status fields within the current stage of the project. 
Set the status field in the idea list item to this value [Microsoft Project]Updates the status field of the original SharePoint list item. 
Wait for Project Event [Microsoft Project] Pauses the current instance of the workflow to await a specified Project event: Project checked in, Project committed, Project submitted. 
Set this field in the project to this value [Microsoft Project] Sets the value for the enterprise custom field for a specified project.

Source -