Tuesday 20 March 2018

Team Transform & Practicing off DevOps Consulting Service


DevOps brings together people, processes, and technology, automating software delivery and enable collaboration between development and operations for any language, targeting any platform.
The contraction of “Dev” and “Ops” refers to replacing siloed Development and Operations to create multidisciplinary teams that now work together with shared and efficient practices and tools.
Canarys is a Microsoft Gold DevOps Partner and Microsoft Qualified DevOps Fast-track Partner. As a preferred DevOps and ALM partner, Canarys provides DevOps Consulting Services to drive the successful adoption of Visual Studio products as an integrated DevOps or ALM solution. With more than 12 years of continuing partnership with Microsoft- India, Singapore and USA we help customer leverage their DevOps/TFS/VSTS/Azure/ALM setup by conducting knowledge-rich sessions and webinars.
Our DevOps expertise combined with Microsoft ALM tools will remove silos, improve quality of work, streamline better software development, deliver applications in an automated fashion and reduce operational costs.

Following are the services we provide as part of DevOps Consulting Service

ü  Migrate to Visual Studio Team Services (VSTS) from Team Foundation Server (TFS)

We are happy to say that, Canarys is one of the very few Microsoft VSTS Qualified Partner providing end to end solutions for TFS to VSTS migration. Canarys was one of the first few DevOps partners to get hands dirty on this new tool as part of Private Preview Program and now that the tool is publicly available, we can help companies (like yours) move quickly and reliably from TFS to VSTS. We are proud to be part of a selected group of Microsoft Qualified DevOps FastTrack and TFS to VSTS Migration Partners that can work with this new migration tool to help customers move to VSTS quickly and safely.

ü  Legacy to TFS Migration

If you are already working on TFS and looking to move towards the latest available variants of TFS, this service is especially designed for you. Our TFS upgrade services are designed to minimize service downtime with zero / negligible data loss. Our experts could assess your current tool compatibility and help in migrating to VSTS. May it be Code migration from any of your VC’s like SVN, Git, Github, VSS, or Defect migration from ClearQuest or Bugzilla, or integration with any of your existing tools like AHA, we can help you out.


How we transform your team into practicing DevOps?

  • We cannot just buy DevOps tools and make them work for us with just an installation
  • Our experts would assess your existing setup and requirements, and suggest suitable tools as per your preference which are required to setup your DevOps Continuous Integration and Continuous Delivery CICD pipeline
  • We would help you migrate your code to TFS or VSTS if required. Or, you could continue using your existing Version Control as well
  • Our experts would setup DevOps pipelines for your Web or Mobile Application on any platform and any technology, let it be Windows or Linux/ Unix or MAC using .Net, Java, HTML, Node.js or Xamarin

Author

Shashank

Canarys Automation Pvt Ltd

Friday 16 March 2018

Approach & Modules offered in DevOps Consulting Service


Our DevOps Consulting Service experts audit your organization’s existing environment in terms of the current process methodology, technology stack, automation culture, application architecture, usage of Azure cloud, monitoring and feedback mechanism.  Based on our findings, we will recommend the industry-wide practiced DevOps implementation approach.
Today, DevOps is a game-changer that enables organizations to transform their people, processes and technology with bare minimum interruption. The key to success in a small or large organization is based on on-time delivery, quality, customer satisfaction and low cost of development. DevOps adoption is not that easy since it requires a different mindset, new tools and upgraded skill set. 
Our Devops offering and training assist you to break down the silos between different teams and collaborate to rapidly develop software solutions and services in an efficient, orderly manner. With our professional guidance, the adoption is strategized and the teams are trained for a smooth transition from their current methodologies to DevOps approach.
We help you with Application Release Automation(ARA) using the Microsoft tool stack, which is the process of packaging an application across various environments and finally to production.  With an automated delivery pipeline, you will forego uncertain deployments across environments.
Once the DevOps adoption is complete, our experts work with the teams that participated in the adoption and train them both to help them adapt to the culture flawlessly. The experts will support the teams onsite and offsite for any related assistance.

OUR APPROACH

·         Assess the current application lifecycle followed, existing processes, and toolset and identify the gaps.
·         Strategize and establish a roadmap for transition and identify the tools to be used.
·         Design a proof of concept for an identified project followed by the implementation.
·         Integrate your existing tools with our recommended set of Microsoft or open source tools for continuous integration, continuous delivery.
·         Ideate, strategize, implement, automate processes with DevOps according with the requirements of each project.

We offer 2 models for DevOps offerings

DevOps Adoption – Our trained professionals will guide you through the complete process including project management, configuration management, build and release automation, testing automation, feedback and application monitoring with either the Microsoft stack or plug your existing tools with Microsoft stack.
DevOps Staffing – Our engineers can work along with you and your teams full time onsite/offsite and help you in transformation of the DevOps culture or assist you with maintenance and changes to your existing DevOps processes.

Author

Hoysala G

Canarys Automations PVT LTD


Thursday 15 March 2018

Use of Swift Generics In IOS Mobile App Development


Generics in Swift

IOS Mobile App Development  In swift, Generics are the parameterized types. By using generics, we can write clear, flexible and reusable functions. It allows us to avoid duplication of functions, and lets we write our code in a clear and expressive manner. Swift is a strong-typed language and that means that when we define a type for a variable – we always must do that – we can’t change it later. Neither can this variable contain different types, because it can only have one type. With generics we can specify a “generic type” – a type that’s loosely defined and for instance constrained by its relation to other variable types. Generally, in swift by using generics we can avoid a duplicate code by writing a reusable functions or methods in a clear and abstracted manner based on our requirements.
The concept of generics is powerful in swift and the standard libraries like arrays or dictionaries of swift built by using generic code. In swift, when we create an array, it can hold any type of data like integer, string or any other types same way dictionaries are also used to hold any type of data as a key value pair.

The simple non-generic function example which shows how generics will help in swift programming
language.



In above example we defined a two functions intValueSwap, stringValueSwap to swap integers and strings separately because intValueSwap function will work only for Integers value and stringValueSwap function will work only for Strings. So, if we use non-generic code we need to create a separate methods or functions based on the type of data due to that redundant code will increase in application.

Generic Functions

We define a generic function by using angle brackets with a type placeholder after the function name. The convention is for this placeholder to be called T.



In this example we define a function that does nothing except return the parameter that is passed to it. By adding <T> after the function name we’ve indicated that this is a generic function and that used T as a placeholder for the type. In the functions type signature, we have indicated that it takes a parameter called x of type T and returns something of type T.
We can call this function with an integer, Double or a string and it works with either one.

Now we will implement a generic version for the above example which we used to swap integers and strings.

The example of using generics to avoid a redundant code in swift programming language.





Conclusion

That’s it. So far we have covered the basics of generics and generic functions, In the next blog we will cover Generic as a type, Extension, Associated type and generic with where clause so on.


Author

Pankaj Ray

Canarys Automations PVT LTD 

Wednesday 14 March 2018

What’s New On Microsoft Dynamics NAV 2018


API Integration in NAV 2018

As most of us know that Microsoft NAV 2018 has released a great feature about API in 2018, to support this feature we have new page type called as ‘API’. You will find four new properties in API Page I.e. Page type, Entity Name, Entity Set Name, ODataKeyFields.

For API feature, NAV 2018 has a new field with the Name Id & Type GUID. In Most of the tables, the field is added in ID 8000.

API Configuration

There is a new page added in base NAV called as ‘API Setup’ to initialize and update all API’s defined in NAV. When you run ‘API Setup’ Page under Home you will find an action called as Integrate API’s. run this action to initialize the setting.

Next step is to check API’s which are added or updated. Microsoft added a new virtual table in NAV table ID - 2000000193 (API Web Service). To find this virtual table data you can go to page object create a new page bounded with the source table ID 2000000193.

You can view all the available system API’s by running the new custom page from the object designer. To access the specific API from the web browser you need to type the web service URL in the below format

http://<<Server Name>>:<<OData Port>>/<<Service Name>>/api/beta

When you try the access the service in the browser, you may get error message saying the service is unavailable. For that you need to enable the setting from Microsoft Dynamics NAV 2018 administration.

These setting can be found under the NAV administration tool -> OData  Services section and the setting called “Enable API Services”  and “Enable OData Services”


Next step :-is to configure following parameter in service, Open nav 2018 administration and in general fast tab you will find services default company and in O Data Services will have to configure some parameters for more information please refer the below steps and screen shots. 

1.       Services default company (General): CRONUS Canada, Inc. (Company name that will be used to get/post data from API’s.
2.       Enable API Services: Check mark this option and it is used to Enable API Service to get results from URL used above.
3.       Enable OData Services: Check mark this option and it is used to Enable OData as API Depends on OData Services.
4.       OData Base URL: http://localhost:8038/DynamicsNAV110/api/beta/, The public URL for accessing OData Services.
5.        PORT: 8038, will be used in the URL above.

Tuesday 13 March 2018

Transform the life-cycle With Devops Consulting Service


Overview

Welcome to the age of DevOps Consulting Service , the buzz word out in the market since 2008. Lot of people think about transforming the Software Development process to bring a change in the existing work culture. Through our DevOps Consulting Services, we help companies transform their teams to DevOps adoption with ease and less time.
The definition of the DevOps goes like this “DevOps is the union of people, process and products to enable continuous delivery of value to our end users- by Donovan Brown, Microsoft”
DevOps has different dimensions of its own. Break down the barriers between stakeholders, development teams, testing and operations to continuously provide your customers with maximum value, deliver high-quality software in faster cycles.
Manage increasing complexity with advanced tools and services hosted either on-premises or in the cloud, that streamline and supercharge your ecosystem.
Achieve sustained business agility with an integrated solution that enables shorter cycles. Keep your team up-to date and engaged to ensure successful execution from concept to delivery.
By Streamlining the processes between development and operations, applications can be deployed faster and more frequently, taking your business agility to the last mile.

Connect the parts

Collaborate more effectively to maintain a coherent destination for discussing issues, sharing status, tracking decisions and nurturing conversations that lead to enhanced productivity.
Stay on top of current and future project needs with seamless:
-          Portfolio Management
-          Backlog Management
-          Capacity Planning
-          Tasks boards
Keep large teams of various stakeholders in sync with lightweight requirements and feedback. The DevOps takes your team collaboration infrastructure to the cloud with Team Foundation Service, enabling effective team cooperation, adapted to your preferences and technologies of choice for on-premises or the cloud.

Create the ecosystem

Effortlessly collaborate across roles to ensure your teams stays in sync-no matter how large or dispersed. Maintaining quality requires more than just testing. You have also got to ensure that all stakeholders are on the same page at every stage. Monitor and real-time status of test execution and code quality metrics to stay on top of the test plan and improve cycle times, while providing visibility to stakeholders. Review portfolio of projects holistically to make sure project managers have a complete understanding of the team’s deliverable's.

Transform the life cycle

Enabling Continuous Integration (CI) can close the development loop by providing insightful information captured in production. This information is provided in context for the developer task enhancing the productivity and communication flow dramatically reducing the time to resolution of production errors.
Continuous Deployment (CD) makes repeatable and reliable, so that new capabilities can predictably be sent to production. Modern applications require a modern lifecycle. Organizations must now continuously deliver fresh value to customers, measure the results, and quickly iterate to provide innovation.

Author

Srivatsa

Canarys Automations Pvt Ltd

Monday 12 March 2018

Initializing Core Data In Swift 4 For Mobile App Development


Core Data in Swift 4 


Why Core Data?

There are multiple ways to store data in your iOS app but one of the best way is to use core data . also allows you to store your data within app bundle and your data to be retained on app launches.

What’s Core Data?

According to Apple ,Mobile App Development for Core Data is a framework that you use to manage the model layer objects in your application. It provides generalized and automated solutions to common tasks associated with object life cycle and object graph management, including persistence.
Long story short ,Core Data is a framework for managing an object graph.

Important things to remember

       Core Data is not a relational Database
       Core Data uses SQLite as its default persistent store
       Core Data purely model layer framework
       Core Data manages Object Graph



Initializing Core Data Stack

We will see one sample project to understand the core data stack before that we should remember some of the primary objects of core data stack mentioned below

       Managed object context (NSManagedObjectContext)
       Persistent store coordinator (NSPersistentStoreCoordinator),
       Managed object model (NSManagedObjectModel)
       Persistent container (NSPersistentContainer)

Lets see what’s this all about

Managed object context
Managed Object Context is the one you’ll work with for most of the time. normally, whenever you need to fetch and save objects in persistent store, the managed object context is the first component you’ll talk to.
Managed Object context play a vital role in fetching the objects from persistent store, modifying those objects as we like and save those changes back to persistent store.
All managed objects must be registered with managed object context so that managed objects context keep track of any changes made to those objects.By tracking changes, the context is able to provide undo and redo support.

Persistent store coordinator

Like I mentioned above SQLite is the default persistent store in core data. The NSPersistentStoreCoordinator sits in the middle of the Core Data stack. with the help of core data we can setup multiple persistent store with different entities. The Persistent Store Coordinator is responsible to manage different persistent object stores and save the objects to the stores.

Managed object model defines the schema of the data, the store coordinator is fully aware of objects from the data in the persistent store and passed those objects from persistent store to requesting managed object context.


Managed Object Model

Managed Object Model is acts like database schema and its represented by a collection of entities. In Xcode, the Managed Object Model is defined in a file with the extension .xcdatamodeld.


Persistent container

Starting in iOS 10 and macOS 10.12 Apple added a new class NSPersistentContainer to core data. This class handles the creation of coredata stack and offers access to the NSManagedObjectContext as well as a number of convenience methods.


Conclusion
That’s all about the core data basics theory part, In the next tutorial we can see how to create and store the data in persistent store with detailed swift code.

  Author

 Adarsha Upadhya 

Canarys Automations Pvt Ltd







Microsoft Dynamics NAV 2018 User Task


Introduction

User Tasks is a one of the new feature added in Microsoft Dynamics NAV 2018.
In this you can create the tasks for yourself and assign tasks to others or be assigned a task by someone else in your Company and you can set an expiration date, create a recursive task.

User Task Functionality:

  • Reminds the work to be done
  • You can assign tasks to yourself or others
  • Set start date / due dates if needed.
  • You can Link the:
    • List pages
    • Reports
  • We can make recurrence for monthly, weekly, quarterly, or annual tasks
  • Set priority (High, Medium, Low)
  • You can view and manage the assigned tasks from Role Center
Image - WindowsClient

 












Image - WebClient


Pre-requisites

·         NAV 2018 (web client / windows client)

Steps to create a new User Task

1.      Process

When you clicked on the tile under the My User Tasks, it opens up a list page,
You can also go to user tasks from DepartmentsàAdministrationàApplication SetupàUsers




Click on ‘New’ button for adding a task.

When you click on the new button it opens up a card page to enter the details about the task.
Enter a Subject, Task Description, Due Date, Start Date, and Priority. enter a ‘User Assigned to’ and optionally use the ‘Link Task to:’ of Page or Report and Set the Report or Page the task should be linked to.


We can also create a recurring task by clicking on ‘Recurrence’ action.
Enter the ‘Recurring Start Date’, a formula for the repeating the task and the number of occurrences and click ‘OK’.
In this example, we want this task to be performed monthly for this year, starting on 1/31/2019.


When you gave the occurrences as 12 it will create a new 12 tasks from the recurring start date.
After Click ok, the tasks now show on the ‘Pending User Tasks page’ sorted by Due Date.
We can also edit and modify the task, such as changing the user the task is assigned to, the % Complete, the Priority or the Due Date.

1.    Post Process:

We can make the task as complete manually by selecting ‘Mark either from the Pending User Task List or from Card view.


After clicking on the Mark Completed the %Complete value will be changed to 100.
Task will be hided from the list view when the task completed.
 When we return to our Role Center, we can see only remaining tasks.
In our example we return to our Role Center, we can see 11 tasks remain.


Author

Sainath Perumalla

Canarys Automations Pvt Ltd