Friday, 24 June 2016

Fast Track SharePoint Add-ins development using Angular2


Integrating technologies is a nightmare for software engineers! Building a SharePoint add-in using only JavaScript/jQuery involves a lot of complexities, especially the effort required in keeping the code clean and maintainable. However, the premise of integrating AngularJS and SharePoint is quite promising and that’s our Everest to peak today!

AngularJS has helped us overcome the issues pertaining to clean code and its maintainability for quite some time now. We also used it to integrate with our SharePoint Add-ins and it worked like a charm, helping us reduce a lot of development efforts. One of the best things that it provided was the ability to write modular code.

I heard about the new version Angular2 which is due to be released and was quite inquisitive about what was new in it and how I could use it to build better SharePoint applications. I started off by creating a sample application. While developing it, I thought of integrating it with a SharePoint hosted Add-in. This is where all my problems began! An app which runs with "npm start" command won't run with SharePoint.While struggling to make this work, I discovered this solution.

Step 1:

The first step is to create a new SharePoint hosted add-in in Visual Studio and then remove jQuery using NuGget package manager.

Remove jQuery using NuGet package manager


Step 2:

Create a new NPM configuration file “package.json” with dependencies as

npm dependencies


And devDependencies as
npm dependencies


Package.json will be used to download and install the required packages to run our Angular2 App. Packages under dependencies are considered crucial for the application to run and packages under devDependencies are considered vital for development which can be excluded while installing on production environment.

Now create a new TypeScript JSON Configuration file “tsconfig.json” and TypeScript Definition file “typings.json”.

tsconfig.json


typings.json


Now you can delete the folders that we won’t be using like Scripts, Images, and Content. Move default.aspx in the root directory and delete Pages folder as well. Create a new module and name it “app”. So our folder structure would look as shown below:

Folder Structure


Now install all node modules using command “npm install”

Step 3:

We now need to create a component in “app” module with name “app.component.ts”.

app.component.ts

Create a new file “app/main.ts”.

main.ts


Step 4:

Now we will configure our app for Webpack. Webpack is a very powerful bundler. Basically  it bundles the JavaScript files together and serves it to the client as a single response. Webpack will search for all the “import” statements in our application and then it creates the bundles along with its dependencies.

To use Webpack we will create a file “Webpack.config.js” and configure it to create bundles app.bundle.js and vendor.bundle.js in "dist/" folder.

webpack.config.js


Add a typescript file in app module with name “vendor.ts”

vendor.ts


Step 5:

Now before running the application, run the following command to generate the required JavaScript files.

webpack -config webpack.config.js -progress –colors

and then include the folder “dist” in your project. To do this, click on Show all files and then include the folder “dist”.

Now your solution will look like this:
Final Folder Structure


Now add references in default.aspx.

Default.aspx


Step 6:

Now we can run the SharePoint Add-in


Wasn't that easy? We can  use Angular2 to develop a SharePoint hosted add-ins with reusable and loosely coupled components. 


Reference

You can read more about Webpack with angular2 in angular2's developer guide (https://angular.io/docs/ts/latest/guide/webpack.html) or Webpack's official site (https://webpack.github.io/).





Written by Manish Patil, Angular JS Expert at Eternus Solutions
Read More »

Tuesday, 21 June 2016

Grid formatting in Microsoft Dynamics CRM Online

One of the most common enhancement requests that we receive from our MS Dynamics CRM customers is changing the look and feel of the default UI / UX. A case in consideration is the default UX of the grid. It is completely unreadable, considering it has no alternative row styling or for that matter, even row separators.

Users these days are spoilt for choices and in such a scenario, an unfriendly UI may lead to customer dissatisfaction in an otherwise perfect implementation. What is even more appalling is that there is no straightforward way of implementing this simplistic feature which is de facto for more than a decade now.

However, inspired by  Bohnnie Maity’s blog on conditional formatting for CRM 2013 sp1/2015 grids using actions, I have made changes in the code to make the grid a little captivating.

This is the standard grid available in Dynamics CRM 2015/2016

Standard grid in MS Dynamics CRM – 2015/2016




After modifying the CSS classes in JavaScript, the Grid looks a tad different, more attractive and easier to analyze records in the associated rows.

Grid with gray colored alternative rows


For achieving this output, use the following JavaScript code,



Pro-Tip


You can call this JavaScript function by simply creating a hidden button on every (Global) entity form as a web resource. For your ease, kindly use ribbon workbench tool inside MS Dynamics CRM solution.




Written by Pramod Dhokane, Microsoft Dynamics Expert at Eternus Solutions

Read More »

Friday, 17 June 2016

MS Dynamics – not just CRM but xRM



Microsoft has really put its weight behind the development of the CRM platform and its success is pretty evident with the fact that the platform has evolved exceptionally over time. Now that the Microsoft’s development team has delivered and done one heck of a job at that, it’s time for the marketing team to match that level.



They can simply start by re-branding the product as xRM. Confused? Read on.

The product is still marketed primarily as a CRM tool. Customer Relationship Management (CRM) is an approach for managing a company's interaction with its existing and prospective customers.

When you look at the current features of the platform, CRM is almost a misnomer, since it is capable of so much more!  It is now ready to be used as a fully functional, independent development platform, quite justifiably so.
  • Highly scalable, secure and robust architecture
  • Extremely flexible security model
  • Highly customizable user interface development using web resources
  • Powerful built-in workflow engine for business process automation
  • Ability to expose and consume web services for programmatic manipulation of data and integration with legacy systems
  • Seamless integration with SharePoint, Outlook, MS productivity suite, MS Social Insights, ADX Studios portal
  • Availability of a large number of third-party components
  • Multiple deployment options, including On-Premise, Online, and Partner Hosted

The possibilities that this platform comes up with are endless with its capabilities. However, in order to completely utilize the power of this platform, it would be wise if it is used to do what it already does best- MANAGE RELATIONS.

If you have been to a B-school, you will know and agree that those countless case studies eventually boil down to ONE thing- Managing and nurturing BUSINESS RELATIONS, not  just with your customers, but suppliers, employees, stakeholders, general public. Great businesses are built on leveraging their knowledge of customers, suppliers, stakeholders, and exerting their influence on them. The faster you are able to analyze their sentiment, the faster you will be able to act on it and gain an edge over your competitors.

Unfortunately, there isn’t a complete solution out there which lets you manage relations. Granted, there are name sake modules for those in ERP but they are more transactional in nature and are grossly incapable for the intended purpose.

MS Dynamics CRM can easily be extended into xRM. An xRM should be a generic relationship management solution which should have a 360 degree approach in managing customers, suppliers, public relations, and just about any relationships the company wishes to manage.


Let’s explore a few use cases where standard CRM functionality can be easily extended to xRM.

 

Public Relations Management

Public Relations Management is extremely crucial in today’s era and United Airlines sure can vouch for it. A PR disaster cost them a whopping 180 million dollars (look up ‘united breaks guitars case’). People’s satisfaction level doesn’t reach you directly anymore, they broadcast it on social media.

Social Insights from Microsoft Social Engagement allows businesses to analyze and measure their brand’s perception using social media trends. The tool also provides granularity and allows users to drill down into the data and see what the users have said. By consolidating the details from Dynamics CRM or Dynamics Marketing, you can find out what you’re doing right, and address potential issues before bigger problems arise.

Supply Chain - Forecasting

One problem plaguing the manufacturing sector is not being able to manage its supply chain optimally. Raw materials usually have a usually long lead time while the orders are placed / modified at a moment’s notice. This can translate to either of these scenarios:
  • You over stock raw materials, which is very risky in a volatile price market
  • You lose out on orders because you cannot fulfill them

This problem is only compounded further due to the lack of right talent / knowledge.  Employees responsible for ordering / managing supply chain are barely proficient in advanced forecasting models and tools.

One solution to this problem is to utilize the rich information in CRM of the expected pipeline; which when combined with brilliant analytical capabilities of the platform can be used to build automated forecasting models.

Donor Management (NGO / NPO)

It’s intriguing to see how the requirements for NGOs and NPOs can be mapped to standard CRM OOB (Out of the box) entities.
  • ‘Donor profile management’ maps to ‘Customer Profile Management’.
  • ‘Donation management’ maps to Leads and ‘Opportunities Management’.
  • ‘Campaign / fund raising management’ maps to ‘Campaign Management’.
  • If there is even further additional information that you need to capture then they can be easily built using custom entities and web resources.

 

Recruitment Management

You can provide a portal to publish job openings and accept applications using ADX Studios portal. ADX Studios was recently acquired by Microsoft and has seamless integration and access to all CRM entities.

Each application can then be mapped to the standard sales and opportunities processes of verification, multi stage qualification, multi stage evaluation and quotation (offers).

These were just a few examples of what can be achieved using MS Dynamics CRM platform. Move over CRM, xRM is here!





Written by Prasad Udupi, Microsoft Dynamics Expert at Eternus Solutions
Read More »

Wednesday, 15 June 2016

Office 365 – A new collaboration Platform for Non-profits..!! Are you ready to move to Cloud?

Do you want to free yourself from the hassles of maintaining an in-house Exchange Server? Is your staff spread across several locations? Do you have budget constraints for IT support like installations and upgrades? Then Microsoft Office 365 Nonprofit may be right for you!



Even today, many Non-profit organizations have been buying various software’s to fulfill their requirements. Furthermore this strategy also involves Infrastructure costs, Application Maintenance, Data management and a full-fledged IT staff to help them maintain these products. Heretofore, Microsoft has offered free or low-cost cloud-based office services that non-profit organizations are uniquely qualified for.

It is no longer the case that the best in class technology solutions are only offered to the organizations with huge budgets. Office 365 Nonprofit, makes enterprise-level technology affordable for non-profits in over 130 countries including India.

What is office 365 for Non-profits?

As part of "Technology for Good" program, Microsoft donates its cloud-based Office service (Office 365) to all qualifying non-profit organizations.

Office 365 Non-Profit is the core cloud service that offers significant benefits to non-profits which includes free email, online document editing and storage, video conferencing, instant messaging, and Yammer site, you can bring teams together from around the world.

Empower your business to succeed with Office 365 non-profit

Office 365 allows organizations to spend less time on IT maintenance by providing email maintenance, software upgrades, and security. This will help you run nonprofit more efficiently, securely, and less expensively. Non-profits can focus more on accomplishing their mission.

Compelling reasons why an Office 365 subscription is the choice for non-profits:
  • Global Access
    Access on the go from anywhere, anytime and from any device. With Office Web Apps, you can open, view, and edit office documents right from your browser giving the flexibility to work wherever and whenever you need to.
  • Brand your organization
    Market your business with online website using your own domain name, without needing a designer or paying hosting fees
  • End User Adoption
    End-user adoption is the key factor to all successful cloud services decisions. With office 365 Non-Profit, end users are provided with the latest version of traditional Office suite that your staff is already familiar with.
  • Business class email and calendaring
    With Microsoft Exchange Online, you don’t have to manage an in-house Exchange server or rely upon third party email tool. Office 365 provides users with 50GB of mailbox storage with attachments up to 25MB each.
  • Online conferencing
    Showcase your business and impress your target audience by utilizing online HD video conferencing and screen sharing features. Office 365 offers powerful communication tools like Lync Online, audio and video conferencing online making collaboration easier. You can even invite people or volunteers outside of your organization to join.
  • Secure File Sharing
    With Office 365, you get 1 TB of space for OneDrive for business. Share, store and Collaborate on information with volunteers or co-workers securely with OneDrive for business.
  • Best Productivity and Better collaboration
    Work together and smarter. Share Documents online with real time collaboration and coauthoring. You can edit documents simultaneously with co-workers, improving productivity and saving you precious time.

Non-Profit success with Office 365

  • Raise more and bigger donations
  • Connect staff, volunteers and listeners 24/7
  • Encourage creativity and collaboration
  • Transition seamlessly between devices, and Expand beyond geographic boundaries
  • Double their outside funding
  • Collaborate on important documents and reports
  • Create a more efficient workflow
  • Created work for more volunteers and increased their productivity
  • Increased productivity
  • Effective communication with stakeholders from anywhere

What we offer to Non-profits?

Choosing the right cloud solution increases your organization's efficiency, saves on technology costs, and fosters your best collaboration
    - Microsoft for Office 365 Donation initiative.


Eternus Solutions offers you its vast experience of Office 365 non-profits and helps you to accomplish adoption as well as the implementation to ensure and maximize the value obtained by providing the professional assistance you need. We can help your organization evaluate the costs and benefits of Office 365 to determine if it is the best solution for your business. We think that the cloud based solutions are most cost-effective and sustainable for non-profits.

We will work with you to ensure that you are benefited by the best discounts you’re entitled to.

Our services for Non-Profit include:
  1. Assessment and Planning
  2. Office 365 Implementation & Migration
  3. CRM for non-profits

For more information on Office 365 Non-profits visit Microsoft Office 365 Nonprofit site and sign-up for the free trial to get started.




Written by Aradhana Chindhade, Microsoft Technologies Expert at Eternus Solutions
Read More »

Monday, 6 June 2016

Angular 2.0: A revolutionary angle!


Hello there! We are right nigh to the final release of Angular 2.0, which means it's time to decipher what this excitement means to the developers’ community and understand the business impact of this new framework backed by none other than Google Inc.

Angular 2.0: A brief history


At the ng-Europe conference on 22nd September 2014, the Angular Team announced its next major release, a.k.a Angular 2.0, disclosing that there would be a drastic change in the codebase and semantics. To everyone’s surprise, they also announced that Directives, Controllers, $scope and jqLite will be dropped off, clearly indicating towards breaking all the compatibility with existing codebase.

Understandably, this created a huge uproar amongst the developers, with the absence of migration path from 1.x to 2.0 versions causing a lot of confusion.

With the growing popularity of other frameworks like ReactJS and Ember in late 2014, the Angular Team decided to restructure their core architecture in order to meet the market requirements and build the best ever JavaScript Framework while ignoring the animosity from the community.

On 30th April 2015, when AngularJS was moved from Alpha to developers’ preview, it caused a big hullabaloo in the market to see this new code structure. As promised, many features were drastically changed and the compatibility with previous versions was totally ruled out. This resulted in some amount of disappointment. However, most of them were excited to ride a new wave in the field of front end technology which was about to begin. In December 2015 Angular 2.0 was moved to the Beta phase, pushing it closer to its final release. Once again AngularJS became the talk of the town for front-end developers!

Why we should not ignore this wave?

  • AngularJS is powered by Google Inc.(need I say anything more?) which further increased its community size, making it one of the largest used front-end development framework.
  • Increased community results in increased count of plugins and support which will grow this framework further. Very soon, it is expected to become "The Framework" which cannot be ignored while talking about JavaScript based UI development.
  • Although google has declared in ngConf 2015 that it will continue its support to 1.x version till the community continues to use this, in order to push its new baby in market, Google might take a decision of invoking the support after a stable release of 2.0. This might mean that no new features are released in the existing code base.


What benefits can Angular 2.0 provide to my Application?

  • With restructuring of $watch, overall performance of Angular 2.0 has drastically improved when compared with Angular 1.x. The team which built Angular 1.x is the same team working on Angular 2.0, opening up their weekly status meeting to the community, hence carrying their extremely valuable experience of previous version along with the constructive criticism from community, ensuring this framework becomes far better than the previous version
  • Binding technique in Angular 1.x was based on ng-modal. Instant change in Javascript POJO was one of the main features of Angular 1.x to make this framework very popular amongst the developer community. Let's see how it works.
    • Angular creates patch points for all the asynchronous interactions with the form on page load.
    • On these patch points, Angular runs a dirty checking on scope object to see if any of the associated variable is changed. If so, it triggers the corresponding watchers.
    • These watchers in turn synchronize the UI and modal value through multiple dirty-check and run-watcher cycles.
    • Problem with this approach:
      • It is not clear which watcher will be fired in which sequence. Additionally, it is difficult to predict the number of times these watchers will be called.
      • Digest cycle consumes considerably large number of resources so although this technique just about works, there is a great scope of improvement.
      • It is extremely difficult to control the sequence of model update cycles. Registering a dependent listener is very risky.
    • How Angular 2.x solves this problem.
      • Angular 2.x has adopted a zones mechanism which is equivalent to a local-thread model in any of the multi-threaded languages. This increases the data update to be more transparent and also avoids the need for a conventional digest cycle.
      • This blog gives more clarity on how Angular 2.x change detection system improves the performance over conventional digest cycle approach.
  • Many new integrated features, including flexible routing in Angular 2.0, have reduced the dependency on third party libraries. It has also dropped off the less used modules, understanding the real need of common UI development. These changes will make this library more lightweight and less error-prone. Below is a code snippet to understand how Angular 2.0 has simplified routing to great extent.

  • Development of Angular 2.0 version is focused towards the mobile platforms. The thought behind this focus is that it’s easier to handle the desktop side of things, once the challenges related to mobile (performance, load time, etc.) have been addressed.  The 1.x version was not designed with this approach. Although Ionic framework was helping the usage of angular 1.x on mobile devices, performance wise it was still very slow.
  • Angular 2.0 is based on Typescripts which provides compile time error handling. This feature helps developers understand the errors well in advance, reducing the bug fixing cost and make the development process almost twice as faster. Angular team is also planning to release this framework in multiple variants that supports Dart and plain ECMA6 as well.
  • Annotation support and improved dependency injection (DI) will reduce number of lines of code to improve maintainability.
  • Simplification of language syntax has reduced the learning curve of Angular 2.0 to great extent. However, a considerably good online tutorial can help you easily put this weapon in your quiver. This will help rapidly ramping up the team to get started. Given below is a code snippet of Angular 2.0  which appears to be quite simple for any beginner level developer compared to the code snippet in second window.

    Angular 2.0 code snippet

    Angular 1.X code snippet

  • Lazy loading was one of the biggest challenges in Angular 1.x. Yet some third party libraries like ocLazyLoad and requireJS had enabled this feature in angular 1.x. Ideally a framework itself is supposed to provide this lazy loading feature in order to maintain a better hierarchy of modules and corresponding files. Considering this limitation in 1.x, Angular team has addressed this issue in 2.x and have come up with considerably better lazy loading techniques. This blog gives a better idea about how Angular 2.0 has approached to solve this issue using asynchronous routing techniques.

Is there any bitter bite as well?

No technology is perfect enough to meet all the expectations of community. Angular 2.0 is no exception to it. Let's highlight some of the challenges associated with Angular 2.0
  • Huge number of applications have been built across the globe based on Angular 1.x framework. As the direct migration path is not given by angular team, migration of these existing projects in Angular 2.0 is going to be a real challenge for the community.
  • Although thousands of blogs and tutorials are already online, a real enterprise product experience of this framework is yet to come out.
  • Release date of this framework is still not fixed, resulting in an uncertain wait.


The Last Word…

There are still lot of things to be analyzed as Angular 2.0 framework is coming with a lot of promises for the UI developers community. Till the beta release, it has already fulfilled many of them. It is clear that Angular 2.0 is going to revolutionize UI technology to great extent and begin a new era of UI development.

Happy Coding…!!




Written by Mahesh Kedari, AngularJS Expert at Eternus Solutions
Read More »

Wednesday, 1 June 2016

Why Use Marketing Cloud?



“Companies are no longer competing against each other. They are competing against SPEED” – Marc Benioff


Today, to achieve the speed of a winner it is imperative to have a strong bond between business outcomes and the journey of your customer. Organisations with effective marketing channels are guaranteed to build and maintain successful relationships with their customers. This relationship is what adds on going value to the diverse service offerings, which a vast majority of businesses offer. These relationships enable and drive the sales team to cross-sell and up-sell multiple offerings. In this blog, let’s look at how Salesforce’s Marketing Cloud can add value to your business. The Marketing Cloud is a leader in the 2016 digital marketing hub quadrant, let us see if this could be the game changer, which can give your marketing and sales team the boost it needs.

Why do you need marketing cloud?

Would you like to send your customer the right advert at the right moment? Or, would you like to check what people want to say about your product on social networks? Assume that you want to reach out to all your customers via an email or an SMS, and want to evaluate the impact of such campaigns, all of this is possible with Salesforce Marketing Cloud.


Figure 1: What does marketing cloud offer?
(© Slideshare - Marketing & Service cloud - breakout session. Stockholm Essentials)


Salesforce marketing cloud is a platform for your marketers which enables them to create a 1:1 bond with each individual customer, thereby increasing your organisations brand value. It helps define and create a journey for your marketer with your customers, nurturing them in each stage, across multiple channels using one platform.


Who should use marketing cloud?

Salesforce Marketing Cloud is suitable for B2B, B2C or not-for-profit organisations. It may be big brands, who are looking to evaluate and streamline their customer campaigns; or SME’s who are looking to build and grow their brand value; the marketing cloud is suitable for anyone who wants to create a 1:1 (i.e: personal & effective) relationship with their customers. It enables organisations to have resourceful engagements with customers at every step of a customer success journey through Ads, Web, Email, Mobile, Social, Group Messaging, Apps, Sales, Service, and Communities.


Figure 2: Typical marketing cycle without marketing cloud
   
Figure 3: Typical marketing cycle with marketing cloud

The marketing cloud allows organisations to create user journeys and use multichannel campaigns to reach out and build relationships. This platform will streamline and give you a comprehensive view of all your interactions with your customers across multiple channels. It therefore enables you to measure the effectiveness & ROI of your marketing initiatives. Organisations can benefit from the era of digital marketing by earning customers interest instead of buying it, and thus, smoothly transition from an inbound marketer to an outbound marketer.


Which parameters should one consider when they are on-boarding the marketing cloud?

Based on the maturity level of your organisations marketing endeavors, and marketing approach (i.e. outbound vs inbound marketing), a combination of the following parameters should be considered:
  1. Features: Tools such as Journey Builder, Contact Builder, Predictive Intelligence, etc. which are license based. One should select from these features and licences based on the type, channel and frequency of interactions they would be having with their customers.
  2. Cross Channel Capability:  Email, Mobile and Social networks are the channels SFMC leverages to engage with their customers. Perform analytics on data from existing channels. Identify which channels your customers prefer, to reach out to you. Also, identify which channels your customers prefer, to hear from you. Use this data to help build (and track) customer journeys within and across multiple channels.
  3. Easy Integration: Salesforce has capabilities to connect with multiple CRM’s or an array of third party tool. Marketing cloud can be connected to Sales and Service cloud instances to bring in your customer’s data into the marketing cloud.
H: High, M: Medium, L: Low

What can a successful marketing cloud implementation do for you?

A successful marketing cloud implementation helps you:
  1. Unify Data: Obtain a singular view of all your customer data / interactions you have had with your customers, and use this to make informed and targeted decisions.
  2. Personalise Journeys: Send out timely, unique, and relevant messages based on real-time customer behavior
  3. Engage Cross – Channel: Deliver relevant and meaningful content to your customers across multiple channels such as e-mail, mobile, social networks, ads and the web
  4. Analyse Impact: Analyse the impact of your business on your customers behavior and use that to optimize every interaction you have with them
Figure 4: Typical use case of social marketing with marketing cloud





References:

  1. https://www.salesforce.com/connections/
  2. https://www.marketingcloud.com/ 



Written by Kalpesh Gandhi, Salesforce Champion at Eternus Solutions
Read More »