Technology Gazette Site

Tech Nerd

Cross-Platform App Development: How Xamarin, React Native, and Ionic are Different From Each Other

Cross-platform app development is among the leading substitutes to native development, which involves the creation of two different applications: one is Objective-C or Swift for iOS and the other in Java for Android. It is easy to see why native app development is deemed expensive as well as time-consuming. It is where cross-platform app development comes in, enabling developers to write the code once and use certain parts of the code across all platforms.

Currently, the list of the most popular tools for cross-platform app development tools available in the market include three names: Xamarin, React Native, and Ionic. Unfortunately, it can be quite challenging to pick one between these options. So, we put together a quick comparison to help you decide which one is better suited for your requirements.

1. Performance
Xamarin offers two ways to develop mobile apps, i.e., Xamarin.Android/Xamarin.iOS and Xamarin.Forms. And, its performance is widely considered to being quite close to native app development.
React Native too manages to deliver a performance well matched to native since it renders code components straight to the native APIs via the JavaScriptCore virtual machine both for Android as well as iOS.
Ionic' performance, however, isn’t close to native-like Xamarin or React Native. It is because it utilizes web technologies to render apps, which takes a toll on the speed. Furthermore, Ionic doesn’t use native components and, instead, attempts to replicate native behavior via web technologies.

2. Graphical User Interface
When it comes to GUI, Xamarin allows developers to create the UI in two distinct ways: via Xamarin.Forms or Xamarin.Android/iOS. Xamarin.Forms accelerate the development process and help save resources but affects the app's local look and feel. On the other hand, Xamarin.Android/iOS takes much time, but delivers a native look and explore in the context of UX.

Since React Native modules link with native UI controllers, this one delivers an excellent user experience which quite close to native. It also uses the ReactJS library with large UI elements that optimize development.
Ionic doesn't use native elements at all, rendering everything in HTML and CSS. It then implements Cordova to provide a native experience.

3. Code Reusability
Xamarin doesn’t need developers to switch between development environments because all Xamarin-based apps get developed in Visual Studio. Long story short, as much as 96 percent of the code gets reused with Xamarin.Forms.
Since React Native uses native components written in Swift, Java, or Objective-C, not supported across other platforms, developers have to put in effort work for changing the code. However, besides these native components, the remaining code, which is about 90 percent, can be re-used.

Apps developed in Ionic are universal, i.e. no matter the OS, they work reasonably well on each. However, some UI components must get adopted by the rules of every platform. It, in turn, means additional effort for the developers.
While the final decision is subjective, the above discussion shows that between the three, Xamarin is undoubtedly the quickest as well as the most comprehensive framework. Xamarin manages to stay neck and neck with the conventional approach for mobile app development, which means the platform’s features get utilized with sans restrictions and the development process too is similar to the one observed with Android Studio and Xcode. So, if you do decide to go with cross-platform app development using Xamarin technology, be sure to find a reliable service provider to ensure your enterprise app fully leverages the framework's myriad benefits and advantages.

Geolocation and Big Data for Business Apps: How They Deliver Better Results

Several types of research have indicated that more than 50 percent of companies today use geolocation to provide services and target their customers in general. Furthermore, the GPS and geolocation market is expected to touch $94 billion in 2022. It is clear as day that there is immense potential in geolocation. No matter what industry a company might be operating in, geolocation proffers myriad benefits -- for starters, it allows companies to visualize their assets in the context of geographical concentration. It also helps businesses to understand how location stands to affect their most crucial metrics.

Considering the many advantages, many have taken it a notch up and added big data to the mix. This combination further enables the delivery of enhanced customer satisfaction through more targeted marketing and personalized customer experiences. Moreover, that's not all -- the combination of geolocation and big data allows companies to acquire a better understanding of their business along with their stand in the market.

To further examine the benefits of big data-driven geolocation apps and how they get used for delivering enhanced customer experience and also achieve better business results, let's discuss some of the use cases.

1. Geofencing: The most popular use of geolocation is in the context of marketing, wherein the company's initiatives target customers who foray into a specific area or location. It is most common among shops' apps, which, upon recognizing that a customer is in the vicinity of one of their stores, sends them discount coupons and special offers among a variety of other promotional material.

2. Better understand the customer: The data collected using geolocation, as well as data based on other factors such as browsing history and purchases, can be used for big data analysis to glean actionable insight. It, in turn, can be used to either improve or overhaul offers to better meet customers' demands and needs.

3. Transportation: Geolocation is of great consequence in the transportation and logistics industry since it allows businesses to make use of the data produced and gathered. Geolocation apps can help companies in this domain accumulate information about the fastest routes, roadworks, and traffic jams as well as calculate the delivery time. Furthermore, they also enable the development of more pragmatic schedules and production timelines. Moreover, that's not all; such apps can also keep customers engaged by allowing them to monitor how their order is progressing across the chain and by when the product will arrive at their doorstep.

4. Social media: Seeing as to how social media is all the rage right now, it isn't surprising to see that geolocation has made its presence felt in this domain too. Geolocation based apps enable companies to enhance engagement levels significantly. Case in point, Pokémon Go. Another use of geolocation and social media is to allow users to form a trail of digital markers as they visit different establishments and also rate their experiences, which can enable other customers to make more informed decisions.

While this discussion serves to provide a quick overview of the benefits offered by the development of location-based app, businesses must also account for other related factors, such as security and compliance. Companies must ensure that their process of collection and use of such data is safe and even by any applicable regulations. Eventually helping users feel assured about the safety of using their offerings and make better decisions.

Why Are Mobile Apps Essential For The Sports Industry?

The mobile app market is expanding at an unprecedented rate, compelling every business to join the mobility bandwagon. Every industry from retail to finance and healthcare to education are embracing mobile apps and leveraging help of a professional mobile application development company to build an app of their own.

Mobile apps are now an essential aspect that drives the business by accelerating and streamlining its marketing, branding, customer acquisition, and retention efforts. Just like other industries, the sports industry is also plunging into the mobile app development space. The modern-age people are incredibly reliant on mobile devices and apps for almost all activities. There are various ways a sports-based company can benefit itself by engaging with the modern day user through mobile application development. Here we have outlined five of the significant advantages mobile apps can provide for the sports industry.
1. Connects users with their favorite teams and players:
With a mobile app, the ardent fans supporting their favorite team and players can showcase their love to motivate the players and boost their team spirit when they are playing on the field. Users can even interact with the players when they are not at a big event.

2. Access to customized content:
People following multiple sports and events often like to keep updated with what is happening on or off the ground. A sports mobile app is an apt medium that provides the users with reliable information about the scores, number of goals, status, and highlights of a specific game in real time. This information can be pushed through card formats and delivered to end user’s device via push notifications.

They not only get to know the scores and the status of the team winning the match but also get information and detailed statistics related to that game well before the game begins. For example, the ESPNcricinfo app provides users with score alerts and an analytical comparison between the competing teams.

3. Acts as a robust marketing tool:
Driving more customers and increasing sales and revenue are two of the most critical motives in building a mobile app. A sports organization can also make an app that acts as a marketing representative to boost your business profitability. It can also help you in promoting the teams and selling the merchandise to users and fans through the mobile app.

However, there are various factors you need to consider before developing and launching your sports mobile apps such as
  • favorite sports in your region or country
  • favorite sports apps available in the app stores
  • identifying specific end-user requirements
  • types of sports-based applications (dedicated or aggregator)
  • critical features of your app
  • choice of language
  • real-time score and news updates
  • glitch-free app access, quick swiping, and more.

A sports mobile app is a need of the hour as people are highly excited for various sports events. Providing them with a handy mobile app will allow them to stay connected with the latest news while helping you earn more revenue for your business. Have you built or used a sports-based mobile app for yourself? Tell us about it using the comment box below.

How To Ensure The Success Of Your eStore Development?

Ecommerce is a trillion dollar market that has grown by 20 percent in the last few years. It comprises approximately 12 to 24 million eCommerce stores out of which only 650,000 online stores make a revenue of over 1,000 USD annually. These figures clearly show that developing an eCommerce store is the easy part, making a successful one is a tough task. There are multiple ways of improving the state of your eCommerce business. In this article, we have outlined five key factors that can help you build a powerful eCommerce store.

With mobile and tablets redefining the shopping process and path to purchase, online retailers are constantly looking for better ways to cater to various consumer segments. One of the many ways retailers rely on is to hire Magento developer, as Magento is the most preferred platform for eCommerce store development. It is a comprehensive solution that provides all the features, functionalities and tools an online business would require to thrive and sustain. From aesthetically beautiful templates to advanced SEO features and developer-friendly modules, Magento is a go-to platform every retailer should consider to build a successful web store. Let’s check out five ways to ensure the success of your eCommerce store.

Clean Aesthetics: This might sound pretty obvious but it is essential to have clean aesthetics for your online store. A web design is more about visual presentation than the information conveyed through it. You may be offering the best product possible in your niche, but if your home/landing page is cluttered or confusing, your online presence will eventually go down the drain. For creating a successful eStore, you must ensure an attractive user interface with a user experience as interactive and as simple as possible. Magento provides thousands of ready-to-use business-specific templates that have clean designs, intuitive layouts and complies with the latest web design trends. The templates are customizable to suit your business needs. Your store design should look fresh and compelling for a new user.

High-Quality Images: A successful eCommerce website is characterized by high-quality, full-width images having minimal text. The images on your website speaks about your website quality and business level. You can consider purchasing stock images or hire a professional photographer to capture high-quality pictures of your inventory. You can make your images configurable by offering zoom and color selection options. This will make your online store inventory easy to navigate resulting into a higher ROI.

Payment & Pricing: An eCommerce store without a payment gateway is just an online catalog. Although PayPal is a universally accepted payment method, integrating multiple payment methods such as debit, credit cards, and eWallets can ensure a reduced rate of cart abandonment. Multiple payment options provide customers the freedom to choose the payment gateway they prefer. Apart from that, pricing is another crucial factor that plays an important role in your online store success. Ensure you display your product prices, taxes, shipping charges and discounts clearly so that your customers know the final amount on the checkout page. Hidden costs on the checkout page often result in canceled transactions.

There are a couple of other things you need to take care of: an easy navigation, online customer support, security of your customer information, social media integration, responsiveness of your website, SEO, and reviews and ratings. Proper implementation of these things will not only make your web store move impressive but also help you stay on top of your competition. What are the other things an online entrepreneur should consider when building a successful online store? Share your ideas and thoughts with us in the comments below.

War of the Tools: Most Popular Developer Tools for Java

Software development is much like a refined art or craft. You need the right tools to create your masterpiece. As any dedicated Java programmer worth his beans will tell you: It’s all about picking the ‘appropriate’ tools.

Appropriate being the operative word here. Because a quick search will reveal that there are several tools that make the top 10 list for Java development. But these are popular choices and not necessarily the ones that are right for you. So how do you decide? One way of deciding this is to identify your concerns for every phase of the development cycle and narrow down on the tools that make your life easier. These tools can certainly help in writing richer, error-free code, providing the much-needed support for coding and development.

To begin with, you will need a Java Development Kit (JDK) supported by the following:

1. Eclipse:

Open-source integrated development environment (IDE). Eclipse is famous for its large developer community and vast choice of plugins. While it helps with code completion, refactoring and syntax checking, one of the great advantages of Eclipse is that it allows developers to combine language support. For instance, it also provides a C/C++ and PHP IDE.

2. Gradle

Again an open source build tool, Gradle automates the building, testing, publishing, deployment, and more of software as well as generating static websites or documentation. It combines all that is good in ANT ™ and Maven. It is also the standard build tool for Android.

3. IntelliJ Idea:

Marketed as the most Intelligent Java IDE, IntelliJ certainly boosts innovation and productivity. It has features like ‘Smart Code Completion’ and ‘On-the-fly Code Analysis’; and also offers advanced support for web and mobile development. The .NET development framework allows you to execute safe and reliable shopping carts.
In fact, it beat Eclipse in a developer survey by a margin of 5% showing the rising popularity.

4. YourKit:

YourKit Java Profiler is a profiling tool that allows to generate CPU and Memory profiles of running applications with no noticeable overhead. YourKit provides on-demand profiling during both development and production, free embedding into production, and seamless IDE and application server integration.
5. JUnit:

Unit testing framework for Java. Helps with writing and running tests. What sets apart JUnit from the rest is that it provides repeatable, white box testing.
6. FindBugs:

FindBugs is a static code analysis tool that analyses the bytecode and detects a wide range of problems. It also classifies the gravity of the bug from scary, scariest to ‘of concern’. Available as a standalone GUI or a plugin. 100% availability is a pre-requisite – as your business has to be open for customers 24 hours a day and this can be achieved using appropriate topology.
The current version of FindBugs is 3.0.1. FindBugs requires JRE (or JDK) 1.7.0 or later to run but it can analyze programs compiled for any version of Java, from 1.0 to 1.8.

Get the FindBugs tool here:

7. Mockito
A mock library that helps in the creation, verification, and stubbing of mocks. Mockito is used so that a dummy functionality can be added to a mock interface that can be used in unit testing.

View this tutorial to find out how to use this:

8. Selenium:

Selenium automates the browsers and it is very useful to developers who use this along with testing frameworks for large scale application testing.

9. VisualVM:

JVM monitor. This all-in-one troubleshooting tool comes with the JDK. Download the latest version here:

10. Jenkins:
This is a self-contained Java-based program ready to run out-of-the-box. Provides continuous integration services for software development. It is customizable with more than 600 plugins.

11. Clover:
Code coverage tool that runs in your IDE or continuous integration system and includes test optimization to make tests run faster and fail sooner.
What are your favorite tools? Any other that you would like to mention? Please share in the comments.

5 Best Mobile Apps To Simplify Logistics & Supply Chain Operations

Delivering goods in real-time and meeting consumer demands is crucial to logistics and supply chain management (SCM) business. To stay ahead of the competition, many logistics and SCM professionals utilize mobile devices and applications that track inventory and shipments, execute procurement transactions and reordering processes, and collaborate in real-time with external and internal supplier partners. In addition, there are applications that even inform you when your customers post negative ratings and comments about your brand on social media.

Tapping into these mobile tools can help you streamline your supply chain functionality, profitability, and productivity. In this article, we have highlighted some of the top logistics and supply chain management applications that can help you easily break down the logistics, SCM, and warehouse management barriers.

5 Logistics & Supply Chain Management Mobile Applications:

1. Logistics – A free Android mobile app designed to track vehicles, drivers, shipments, and clients. It is one of the best all-in-one mobile applications in the logistics and SCM space. If you are juggling with the logistics and warehousing operations, then Logistics app is the right solution to consider. It provides some serious operational capabilities that can help you extend visibility into your entire supply chain right from your mobile phone.

2. TomTom WEBFLEET – In the absence of your workforce, it is difficult to gain control over day-to-day operations. For this reason, TomTom created an application called WEBFLEET that tracks daily operations for your logistics business. It is an online mobile app that allows you to manage your fleets 24 hours a day. It is accessible via a web browser where managers can manage the entire field operations in real-time on their laptops or smartphones.

3. Vehicle Inspection – Logistics customers often demand visibility and flexibility in car delivery. And the Vehicle Inspection app provides just that. It helps you to streamline inspection process and deliver on-time services to customers. It is an automated app built using Xamarin, a cross-platform development methodology. It simplifies pre-delivery car inspection process, facilitates seamless collaboration between shipping agents, customers, and truckers, provides automated and paper-free inspection process, and delivers customized inspection services to customers.

4. EazyStock – A cloud-based inventory optimization software for simplifying forecasting and inventory planning. EazyStock helps to reduce the excess and obsolete stock levels (i.e. bad inventory) from your warehouses to lower down costs while extending the availability of your profitable products. It offers easy API integration with any ERP (Enterprise Resource Planning) system. This helps inventory managers to automate the procurement and replenishment processes which historically were a guesswork resulting in reduced profit margins. EazyStock also includes attractive KPI dashboards that display how you stack up every month and call out areas where the costs can be reduced.

5. CoPilot Truck – This map and direction routing tool can be a game-changer for any professional truck driving business. It is an easy to use mobile app, providing essential turn-by-turn navigation. But it’s not your average Google Maps app. CoPilot Truck offers some extra algorithms to help truck drivers follow more efficient routes based on dynamic information such as routing parameters, truck height, weight recommendations, and load type for transporting hazardous material.

Which one of these apps would you use for your logistics business? Are there any other apps worth giving a consideration? Please let us know in the comments below.

8 Outsourcing Checklist Before You Outsource .Net Development

Outsourcing has many benefits like cost savings, team management and faster time to market. But what are the motives of outsourcing .NET development? Today, many companies have an in house .NET service team, but they still outsource for better profits and fulfill their requirements with the rise in competition. This article provides you a brief idea about how to choose an outsourcing software development team to help you with .NET framework.

Outsourcing is the right development model for companies that have a limited budget and require high-end web development solutions at cost-effective prices. This is where you can hire dot net programmers from a .NET development service provider.

But before you hire .NET developer for any development project, what are the points you need to evaluate? You can consider the following:

1. The programmers must be trained, qualified and experienced in developing quality solutions using .NET framework to accomplish a solution in less time and within budget

2. They are certified from Microsoft for .Net development

3. They need to showcase their experience by presenting some past projects they’ve executed with some references

4. What is the risk mitigation strategy? How will they help in updating the solution?

5. They should also create good documentation and be training friendly to help your in-house teams

6. They help you in achieving cost-effectiveness throughout the project without compromising with the quality

7. They are good in communication through various channels like e-mails, chat, video conference and are able to deliver accurate status of the development work done

8. They must be flexible and scalable when the demand rises

Considering the above points will help you find your suitable outsourcing partner. Have you outsourced work before and faced any difficulty? What was the business model used during outsourcing? What technologies did you outsourced the work for? Did you achieve cost advantage compared to in-house development? Feel free to leave them in the comments.

Claim Based Security In ASP.NET Core In Just 8 Easy Steps

With Microsoft taking the OSI route, ASP.NET Web platform and ASP.NET project have undergone some significant changes. Also ASP.NET MVC Views and Controllers had minor transformation with the new platform skeleton. Let us go through the brief outline of the recent updates and how to implement claim based security in ASP.NET Core.

What is a Claim?

It is an attribute of identity that defines permissions. Permission means the step taken to perform the action and claim reside in the Microsoft.AspNetCore.Identity library. For successful dot net application development, we must look at the basic concepts for building a claim-based security and learn how to implement by creating an application on ASP.NET Core.

First we will create a “Hello World" ASP.NET Core web application using .NET core framework. To learn more about how to use Visual Studio and create ASP.NET Core applications, visit here:

In the above screenshot, the default template of Visual Studio .NET Web Project contains all the namespaces and assemblies required for our test project. Once the project is setup, we now need to focus on implementing a simple functionality -> Add a new Claim during the user registration/creational process and then apply the authorization restriction to the user with the Claim specified.

We need to use the below code in Startup.cs class which will help implement the security at application bootstrap, including security:

public class Startup
// Setting up the hosting environment
// and configuration
public Startup(IHostingEnvironment env)
var builder = new ConfigurationBuilder()
.AddJsonFile("appsettings.json", optional: true,
reloadOnChange: true)
optional: true);
if (env.IsDevelopment())
// For more details on using the user secret store see
Configuration = builder.Build();
public IConfigurationRoot Configuration { get; }
// This method gets called by the runtime. Use this method
// to add services to the container.
public void ConfigureServices(IServiceCollection services) {
// Add framework services.
services.AddDbContext(options =>
// Add Identity stuff to the application services
// Add application services.
// This method gets called by the runtime. Use this method to
// configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app,
IHostingEnvironment env, ILoggerFactory loggerFactory)
if (env.IsDevelopment())
// Enable the application to use a cookie to store information
// for the signed-in user and to use a cookie to temporarily
// store information about a user logging in with a
// third-party login provider
// Add external authentication middleware below. To configure
// them, please see
app.UseMvc(routes =>
name: "default",
template: "{controller=Home}/

Next we will look at Models\ApplicationUser.cs class which contains an ApplicationUser class that derives from Microsoft.AspNetCore.Identity.EntityFrameworkCore.IdentityUser:

Add profile data for application users by
// adding properties to the ApplicationUser class
public class ApplicationUser : IdentityUser

The above public class will be empty, where we need to add our claims. We will do it by applying code changes to demonstrate Claim-based security in real life using eight easy steps:

Step 1 - Enable Entity Framework Migrations – You need to enable “Entity Framework Migrations" if there are any iterative changes to Claims planned, as ASP.NET Identity uses Code First, auto-migration would be useful to perform database schema updates.

Step 2 - Add Relevant Properties - Now add all relevant properties to the ApplicationUser class (in file Models\ApplicationUser.cs) to store the Claims. We will take "BirthDate" and add this property to ApplicationUser. Do not forget to add the using System clause before class definition.

Step 3 - Add EF Migration – For updating database with the new added field. In the Package Manager Console, perform the following steps:
  • Add-Migration "Age" to create an upgrade script for our modification.
  • Update-Database to run a database schema update.

Now, we will implement the filling out of the Birthday value by adding a Birthday parameter to the User Registration form in the Models\AccountViewModels\RegisterViewModel.cs RegisterViewModel class using the below code:

public class RegisterViewModel
[Display(Name = "Email")]
public string Email { get; set; }
[StringLength(100, ErrorMessage = "The {0} must be
at least {2} and at max {1} characters long.",
MinimumLength = 6)]
[Display(Name = "Password")]
public string Password { get; set; }
[Display(Name = "Confirm password")]
[Compare("Password", ErrorMessage = "The password
and confirmation password do not match.")]
public string ConfirmPassword { get; set; }
[Display(Name = "Date of Birth")]
public DateTime BirthDate { get; set; }

Step 4 - Update the Views\Account\Register.cshtml File – Use the below code and update

class="col-md-2 control-label">
class="form-control" />

We also need to create a new account and test the new added field

Step 5 - Update the Controllers\AccountController.cs Register Method – We need to update the class method to pass the Birthday field in the above screenshot

// POST: /Account/Register
public async Task Register(RegisterViewModel model,
string returnUrl = null)
ViewData["ReturnUrl"] = returnUrl;
if (ModelState.IsValid)
var user = new ApplicationUser { UserName = model.Email,
Email = model.Email, BirthDate = model.BirthDate };
var result = await _userManager.CreateAsync(user,
if (result.Succeeded)
// For more information on how to enable account confirmation
// and password reset, please visit
// Send an email with this link
// var code = await
// _userManager.GenerateEmailConfirmationTokenAsync(user);
// var callbackUrl = Url.Action("ConfirmEmail",
// "Account", new { userId = user.Id, code = code },
// protocol: HttpContext.Request.Scheme);
// await _emailSender.SendEmailAsync(model.Email,
// "Confirm your account",
// $"Please confirm your account by clicking this link:
// link");
await _signInManager.SignInAsync(user, isPersistent: false);
_logger.LogInformation(3, "User created a new account
with password.");
return RedirectToLocal(returnUrl);
// If we got this far, something failed, redisplay form
return View(model);

Step 6 – Add the Claims - We need to create a mechanism for adding the Claims in ASP.NET Core with Microsoft.AspNetCore.Identity.SignInManager, by default. It includes only username and user identifier claims. SignInManager uses IUserClaimsPrincipalFactory to generate ClaimsPrincipal from TUser (in our case, from ApplicationUser).

We need to create our own implementation of IUserClaimsPrincipalFactory to add custom claims. We do not require the boilerplate code to be generated. We will simply derive it from the default UserClaimsPrincipalFactory which is already implementing IUserClaimsPrincipalFactory.

public class CustomClaimsPrincipalFactory :
public CustomClaimsPrincipalFactory(
UserManager userManager,
RoleManager roleManager,
IOptions optionsAccessor) :
base(userManager, roleManager, optionsAccessor)
public async override Task
CreateAsync(ApplicationUser user)
var principal = await base.CreateAsync(user);
// Add your claims here
AddClaims(new[] {
new Claim(ClaimTypes.DateOfBirth,
return principal;

Step 7 - Register CustomClaimsPrincipalFactory​

// This method gets called by the runtime. Use this method
// to add services to the container.
public void ConfigureServices(IServiceCollection services)
// Add framework services.
services.AddDbContext(options =>
// Add Identity stuff to the application services.
// Add Custom Claims processor
// Add application services.

Step 8 – Verify the Claim Security – Once the Claim setup is done with the above code, we now need to verify it. It is a common practice to write custom Authorize filters to verify the availability and particular value of the Claim pair, and then put that filter on the controllers' actions. The Claim “BirthDay" requires more checks, so we will implement verification of the Claim just for demonstration purposes in the Controllers\HomeController.cs About method using the below code:

public IActionResult About()
ViewData["Message"] = "Your application description page.";
var user = HttpContext.User;
if (!user.HasClaim(c => c.Type ==
ViewBag.Message = "Cannot detect the Age -
Claim is absent.";
return View();
int minAge = 16;
var dateOfBirth = Convert.ToDateTime(user.FindFirst(c =>
c.Type == System.Security.Claims.ClaimTypes.DateOfBirth).Value);
if (calculateAge(dateOfBirth) >= minAge)
ViewBag.Message = "Your can view this page.";
ViewBag.Message = "Your cannot view this page -
your age is bellow permitted one.";
return View();
private int calculateAge(DateTime dateOfBirth)
int calculatedAge = DateTime.Today.Year - dateOfBirth.Year;
if (dateOfBirth > DateTime.Today.AddYears(-calculatedAge))
return calculatedAge;

Any Claim can be extracted easily from the HttpContext.User at any point of the project. Now try to verify the code by registering one account with DOB (07/14/2016) and we will see the below result:

In the debug mode we will see the code like this:


This was one way to set up Claim-based security in ASP.NET Core with the help of ASP.NET Core Identity. Previously, it was very easy to add the Claims directly in the ApplicationUser implementation via overriding the GenerateUserIdentityAsync() method. But in ASP.NET Core, we need to implement IUserClaimsPrincipalFactory that is internally used by SignInManager. We also got more structured classes and interfaces implementation in ASP.NET Core, as logically SignInManager should indeed control sign-in processes (including claims) and ApplicationUser should be just an IdentityUser.

Let us know if you faced any difficulty in the comments section.

7 Libraries To Use For Android Development

Android application development has gained immense traction in recent times. Android developers are able to develop applications faster using many popular, out of the box Android development tools and frameworks like Android Studio with Gradle and Eclipse among many others. Apart from that, there are a number of open source libraries that developers use on a daily basis. In this article, we have highlighted seven of the best Android libraries that developers must use for custom Android mobile app development.
7 Best Libraries For Android Development:
1. Dagger: Dagger is a widely used dependency injection library for Android development. It is a lightweight dependency injection without any extra bells or whistles. It is both simple and a fast dependency injector for Android as well as Java. Dagger comes with two pieces: a Dagger library with 100kb in size, and a Dagger compiler.

The Dagger library comprises all the essential logic and some annotations. It even uses the standard javax.inject annotations, which makes your code portable between various different injection frameworks like Spring or Guice. As Dagger is the simplest and most lightweight DI frameworks, it does not include all the fancy features offered by other larger frameworks. But it is relatively faster and does its job. It is worth using when you only want to use a plan dependency injection for your project.

Google and Square lead the development of Dagger and it is licensed under Apache License 2.0. You can access Dagger here.

2. LeakCanary:
LeakCanary is an open-source memory leak detection library for both Android and Java development. It enables you to easily detect leaking objects by simply adding a couple of lines of Java code to your existing source code. LeakCanary is free and easy to use. Like Dagger, LeakCanary's development is led by Square. Also, it is licensed under Apache License 2.0. You can look for LeakCanary here.

3. ZXing:
In the world of machine-readable data, use of Barcodes and QR codes has already become a standard. ZXing has been around for quite some time and was originally written in Java. ZXing can read and create barcodes on several platforms. It has also been ported to various different languages. Since this library has been around for a while, it already has a large user base. For instance, the QR code app you're using in your smartphone is probably using the ZXing library. It works well and performs as expected.

ZXing's development is led by Sean Oven, Daniel Switkin, and the ZXing team. Alike Dagger and LeakCanary, ZXing is also licensed under Apache License 2.0. You can find ZXing here.

4. Retrofit:
Retrofit is another Android library developed by Square. It seems Square is pretty good with writing Android libraries. Retrofit is a library that can transform your REST API into Java interface. It is popular and a type-safe REST client for Android as well as Java development. It enables you to write clean code by leveraging Java for communication with almost any RESTful API.

Again, Retrofit is a lightweight Android library and relatively easier to use. It is licensed under Apache License 2.0 and can be accessed from here.

5. Libphonenumber:
Android developers have limited options when it comes to formatting and parsing phone numbers. But thanks to the team at Google they have come out with a library called Libphonenumber. It is the best and most extensive library for parsing, validating, and formatting contact numbers. Libphonenumber consists of a simple and easy to use API. It has been ported to many different languages off the JVM such as PHP and C#. Even Libphonenumber is licensed under Apache License 2.0. You can download the library here.

6. is a library created by the team at Streametry Ltd. It can be used for building any Github project and publishing it to public Maven repo. Using this library you can save a lot of your time and hassle while building dependencies. is one the easiest methods to publish any Github project as a Maven dependency. It uses customized terms of usage license. To get more information on, navigate here.

7. Tape:
One more library developed by Square, Tape is basically a collection of classes that enable queue handling. It is a great library to handle data streams and download data in unstable environments. Instead of manually coding the queue handling task, Tape itself takes care of it. If anything goes wrong, Tape automatically tries to run the command or perform the operation again. It also caches all the intermediate results automatically, which is another great feature in Tape. It has been placed under Apache Licence 2.0. You can find Tape here.
Do you use any other library for your Android project? Please share with us using the comments below.

5 Tips To Convert Your Business Into A Sales Powerhouse With CRM

A CRM (Customer Relationship Management) software is an invaluable tool for simplifying business management. Implementing the right CRM solution for your organization can increase sales efficiency – you can quickly close more deals, automate sales processes, and enhance forecast accuracy. It provides best strategies for business success by tracking each and every interaction with your customer and automating activities. This includes tracking every customer’s journey from interest in your product or service to purchasing it. This article presents five ways a CRM can help you increase your sales.

5 Tips To Increase Sales Using a CRM:
  1. Seamlessly capture valuable customer data – Following up on a lead is important, but what if the data you captured is incomplete, incorrect, or unavailable? To avoid collecting such data, implement a CRM for your sales staff that will capture customer information seamlessly through an automated system. This will help you maintain data integrity alongside storing all the information on one system so calls and emails can be made without having to switch to other communication tools and channels. With a CRM system, you can have a comprehensive view of each customer’s information and their interaction with your business.

  1. Convert qualified leads into sales – Sales teams often waste their time and efforts chasing a lead that doesn’t convert to a sale. That’s where a CRM system allows you to chase qualified leads by providing sales teams instant access to information about potential customers who have shown interest and with whom there’s a chance to convert their interest into sales. A CRM software also allows managers and CEOs to set KPI which the sales teams can track easily and check whether they are meeting their targets just by clicking a button.

  1. Establish sales workflows – In order to increase sales productivity, it is essential to eliminate manual sales processes and data entry. A CRM can help you establish and automate your sales workflows to boost your productivity and drive quick results. You can nurture the potential of existing customers using the automation features. The automation features can include setting up email campaigns, sending follow-up emails to the customer which will help you quickly shift them through the sales funnel. You can further use reminders, notifications, and third-party integrations to streamline your sales workflows.

  1. Obtain insights and track trends - A CRM solution such as Microsoft Dynamics CRM provides customizable dashboards that enable you to discover hidden insights in your business data. Microsoft dynamics consulting services or expert can help you customize your dashboard according to your needs including checking the number of sales, tracking the success of marketing campaigns and viewing tactics required for planning additional strategies. You can also track which product is driving more sales, and determine sales trends quickly.

  1. Rapid sales follow-up – Tracking your customer’s purchase journey precisely is a key to the success of a sale. Using CRM system can help you track your customer’s interaction with your website, mobile app, marketing channels so that you can nurture that lead and close the deal at the right time.

Though handshake has always been a traditional way of closing a deal, but with the growing needs of your business, a CRM solution can help you scale outreach, increase productivity and drive more sales. Have you implemented a CRM for your sales teams? How do you use it to close more deals? Let us know in the comments below.