By now, more than 60% of world is already automated. Out of this automation,  many softwares and utilities are built using Delphi. We have seen Delphi evolving over the time. The latest Delphi IDE support IOT, iOS and Android App development. So many sophisticated application are built using Delphi.

At certain point, We see the need of migration/ Upgrdation due to various reasons:

  1. Due to slowness in the exe compiled in old version of Delphi
  2. 32 bit exe compatibility with 64 bit systems
  3. To give the application rich and new ‘look and feel’.
  4. File-based database, Sybase or Paradox makes it slow.Delphi_Migration

So the solutions offered are:

  1. Upgrade existing legacy application to Higher Version of Delphi

We see various challenges when we have to migrate for older version to new one. If at all, it’s a application compiled in Delphi 2010 or older, than the challenge is that its not Unicode supported. So we can migrate, atleast to XE2 so that we are good to go.

If the requirement is to support for mobile versions, then we need to work with XE8 and above.

Support for older components for newer versions is also a big challenge. In worst case we need to find components close to the existing one or build a new one.

2. Migrate it from Delphi to either .Net, PHP, or Python language.

The biggest challenge is that we never have anything easy in this case. There is no automatic conversion tool to convert from Delphi to some other language. For that we have to build the application from scratch.

Incase we have to migrate Desktop application .Net would be an ideal choice. If convert desktop application to web based then, PHP or Python comes handy.

In all cases we have to build the UI from scratch and here again components handling is major hurdle which need to cross. One good part is that logic can be used as it is, whether to build a 2 tier or 3 tier architecture design.

UMANG has been working on lots of migration and application re-engineering project lately, wherein our case studies and portfolio says it all. We have worked from Marine Research to Healthcare, From Construction domain to Business Process Management.

iOS is the world’s most advanced mobile operating system created and developed by Apple Inc, distributed exclusively for Apple hardware. It is the operating system that presently powers many of the company’s mobile devices including the iPhone, iPad, and iPod touch. It comes with collection of apps and features that let you do the everyday things and not-so-everyday things, in ways that are intuitive, simple and fun.

The iOS user interface is based on the concept of direct manipulation, using multi-touch gestures. Interface control elements consist of sliders, switches and buttons. Interaction with the OS includes gestures such as swipe, tap, pinch, and reverse pinch, all of which have specific definitions within the context of the iOS operating system and its multi-touch interface. Internal accelerometers are used by some applications to respond to shaking the device (one common result is the undo command) or rotating it in three dimensions (one common result is switching between portrait and landscape mode).

iOS shares with OS X frameworks such as Core Foundation Kit, however its UI toolkit is Cocoa Touch rather than OS X’s Cocoa, so that it provides the UI Kit framework rather than the AppKit framework. Therefore, it is not compatible with OS X for applications. Also, while iOS shares the Darwin foundation with OS X, Unix-like shell access is not available for users and restricted for apps, preventing iOS from being fully Unix-compatible.

In iOS, there are four adstraction layers: the Core OS layer, the Core Services layer, the Media layer and the Cocoa Touch layer. The current version of the operating system (iOS 9), dedicates around 1.3 GB of the device’s flash memory for iOS itself. It runs on the iPhone 4S, iPad 2, iPad Pro, all models of the iPad Mini and the 5th -generation iPod Touch.

iOS In Education: For Students and Teachers

Apple Introduces Shared iPad, Other Features for Students and Teachers.

Apple which released iOS 9.3 beta 1, has also published a new website that previews new education-focused features that will be added. Something intresting happens when Apple products are put in the classroom. Unique opportunities can be created for personal learning at every level. Lesson becomes more immersive through the power of touch, motion, and sound. Assignments can be sketched, scored, charted, coded, and performed. The work students need to do becomes the ‘work they love to do’.


The most powerful tools for learning are the ones students love to use.
iPad, Mac and Apple TV possible inside the classroom and beyond. iPad opens up new opportunities for learning. Mac is an engine for creativity and Apple-TV helps capture students attention like never before.

  • Making Apple devices as easy to deploy as they are to use.
    It’s never been easier to put iPad and Mac in the hands of students and teachers. Its been simplified the setup process to enroll everyone in school quickly, configure devices automatically and seamlessly buy and distribute apps and books.
  • Inspiration for Teachers: Ideas to help before, during and after class. Tips, lesson materials, stories, other resources to help and to get the most out of Apple products, to bring fresh ideas to your classroom.

Apple and ConnectED giving products, support and opportunities to schools that need them most. Apple has joined President Obama’s ConnectED initiative and pledged $100 million of teaching and learning solutions to 114 underserved schools across the country.
The power is given for everyone to learn, write and teach code. Believing that learning to code is an essential skill, helping everyone bring ideas to life with it. The dedicated website to iOS in Education promises that the best classroom experience is about to get even better with the release of iOS 9.3.

With the iOS 9.3 beta, new features that will make it even easier for schools to put devices where they’ll have the greatest impact – in the hands of students.The new features highlighted in the iOS in Education website are shared iPad for students, the new Classroom app, the Apple School Manager and managed Apple IDs for school purposes.

The Classroom App
The Classroom app will serve as a digital teaching assistant, allowing teachers to launch, using a Remote Control, any app, page, or website simultaneously in all the iPads in class and guide the students on what they should be looking at.
Through the app’s Screen View feature, teachers will be able to see what their students are looking at on their iPads. While for classrooms that have television sets equipped with the Apple TV, teachers can project the work of any student onto the screen with AirPlay.
The Classroom app will also let the teacher to reset student passwords in case anybody forgets the log-in credentials to their iPad.

Transforming Education with Apple iOS 9.3 -The Digital Classroom


Shared iPad
The Shared iPad feature will be very beneficial for classrooms where a one-to-one student-to-iPad ratio is not possible, claiming that it will allow learning experiences to be personal despite the devices being shared.
Once students log in with their credentials on an iPad, they will gain access to their books, apps and documents. With intelligent caching, students that use the same iPad for a class everyday will be able to pick up where they left off.
Intelligent caching allows teachers to use the Photo ID feature for assigning shared devices easily and quickly. The students will find their device easily, as their pictures would appear on the iPad assigned to them. For younger students, there is also the option of having them access their iPad with a simpler log-in requirement of a four-digit PIN.

Managed Apple Ids
One important note for the Apple School Manager is the creation of Managed Apple IDs. These Apple IDs function like normal ones, allowing users to store files on iCloud, participate in courses in iTunes U, and many more. However, Managed Apple IDs are designed primarily for schools with admins allowed to easily audit accounts, reset passwords, create IDs in bulk and create custom roles for the members of the school.

Apple School Manager
The Apple School Manager, accessible through the PC or Mac, will serve as a central place for administrators to make Apple IDs, create courses, and access everything needed for the deployment of iPads as learning tools in school.

The Apple School Manager includes a setup assistant that will provide instructions on how to create Managed Apple IDs, enroll IT admins, acquire content, manage devices and more.The software also allows for the secure creation of accounts for admins, teachers and students by connecting the school’s student information system.The admins can also handle the MDM enrollment for all the school’s devices.Volume purchases and distribution of apps and books are made easy through the Apple School Manager, with education discounts applied automatically.Courses can also be built and delivered with the software in conjunction with iTunes U.

Apple is making its own health push
Apparently Apple has decided that it’s time to jump in with iOS 8 and HealthKit. At the very least, that decision is likely based off of strong data. Apple sells devices like the Jawbone Up24, Fitbit Flex and Nike Fuelband in its own retail stores.
9to5Mac first broke word that Apple was preparing its own push into fitness tracking. Soon after, the site published “recreated” screenshots revealing “Healthbook,” perhaps an early name for HealthKit.

Apple Releases iOS : For Health Apps And More
Health is an application for iOS 8 and iOS 9 announced by Apple Inc. at their Worldwide Developers Conference (WWDC)


The application is intended to be a personal and central data collection point, for connected third-party electronic accessories and wearable technology, that can directly monitor and analyse an individual’s biochemistry and physiology for medical and general fitness purposes.

It displays a dashboard of all the fitness and health data of the user, including the heart rate, calories burned, blood pressure, blood sugar, cholesterol and other similar functions. Users can also use the Health app to create a Medical ID, an emergency card with important medical details and emergency details. The Medical ID is accessible from within the Health app or from the lock screen. Apple enhanced this software with various improvements that include a facility to discover other compatible applications on Apples app store. For example, for blood pressure this includes Health Mate, Qardio Heart health, Web MD, and Pacer. To discover and access these applications place the main function from Apples health app on the dashboard, tap it, and page up. Although the application is available in iOS 8 and iOS 9, it is currently only available on iPhone and iPod Touch.

HealthKit is the accompanying developer application programming interface (API) included in the iOS SDK (Software Development Kit) for the Mac. It is used by software developers to design applications that have extensibility and that can interact with the Health application on iOS.


The API allows other applications with the user’s permission, to access health data. For example, a blood pressure application would share information with a doctor, or a nutrition application could inform a fitness application how many calories a user consumes each day.

Upon announcement, a number of industry companies quickly announced their support for HealthKit, some of these included EPIC, Mayo Clinic, Medopad, Jawbone UP and RunKeeper.
Apple just unveiled HealthKit, a new app bundled with iOS 8 that’s designed to help users keep better track on their personal health and fitness data. HealthKit appears simply as “Health” on the iPhone home screen, and provides an easy-to-access dashboard where you can monitor important health metrics on a daily basis, while also stepping back to examine fitness trends over a longer period of time. SVP Craig Federighi said this is a marked improvement over the current situation, which has health information strewn across various apps or “silos”.
To centralize everything, HealthKit allows health and fitness apps to share data; Nike is among the first companies signed on to support that feature. “For example, the Nike+ apps using NikeFuel will be able to pull in other key HealthKit metrics such as sleep and nutrition to build a custom user profile and improve athletic performance,” Apple says. Apple will also partner with the Mayo Clinic and other health institutions, allowing healthcare providers to receive and transmit data from checkups. The company says it has deep privacy protections in place to secure those sensitive records.

Health apps have proven tremendously popular with consumers and this represents Apple’s attempt to make a grand entrance at least among iOS users. It’s also been speculated that HealthKit will work in tandem with the fabled iWatch. Until now, Apple has shied away from making its own fitness software. Instead, the company has for years provided a mobile platform — iOS — that allowed companies like Fitbit, Jawbone, Nike, RunKeeper, and MapMyFitness to showcase their apps. It’s also made strides to improve the iPhone as a fitness tool by adding specialized hardware like last year’s M7 coprocessor.


Android is a revolutionary name which is an open-source software assemble of an mobile Operating system developed by Google, based on the Linux kernel and designed primarily for touchscreen mobile devices such as smartphones and tablets. Android user interface is mainly based on direct manipulation, using touch gestures that loosely correspond to real-world actions, such as swiping, tapping and pinching, to manipulate on-screen objects, along with a virtual keyboard for text input.

Android has a large community of developers writing application programs (“apps“) that enlarge the functionality of the devices. There are currently over 150,000 apps available for Android. Android Market is the online app store run by Google, through apps can be downloaded from third-party sites. The Android Operating System can be used as an operating system for cell phones, notebooks and tablets, including the Dell Streak, Samsung Galaxy Tab and TV.


The open and customizable nature of Android allows it to be used on other electronics aside from smartphones and tablets, including laptops and netbooks, smartbooks, smart TVs (Android TV, Google TV) and cameras (E.g. Galaxy Camera). In addition, the Android operating system applications on smart glasses (Google Glass), smartwatches, headphones, car CD and DVD players, portable media players, and Voice over IP phones. Ouya, a video game console running Android, became one of the most successful Kickstarter campaigns and was later followed by other Android-based consoles, such as Nvidia’s Shield Portable, an Android device in a video game contoller. The software is also open-source, can tinker with the code and use it in any gadget they want. The NASA engineers fine-tuned the operating system to require less power, letting their tiny satellites run for days on a handful of batteries. An Android-based agricultural irrigation system wherein a network of tiny, waterproof computers in the field regulates water valves.With Android, you get something that is power-efficient, it’s easy for developers to do the user interface and touch controls, and it’s easy to get data in and out. Also for an Android infotainment system for its cars.

Google acquired Android Inc. in 2005. The search giant took the software a version of Linux, itself an open-source operating system popular with data centers, geeks and streamlined it. That improved power consumption; all things being equal, the fewer things a computer chip has to do to accomplish a task, the less electricity it uses. Google also gave the software a more accessible interface and added touch functions. Critics scoffed at the notion of Android getting much traction in the handset market. Android is becoming the standard operating system for the “Internet of things”.


Top Upcoming Features of Android N

1. Split-Screen or Multi-Window Mode and New Recent Menu
Android has the best multi-tasking experience to offer with the release of Android N, all Android devices are to get this awesome feature. The process to enable split-screen mode is quite simple, you have to go to the ‘Recents’ menu, drag one app tile into one part of your device screen. Just after, the multi-window experience deliveres.
For example, the map to one location while video-calling someone via Hangouts or watching your favourite YouTube videos even when you’re skimming an article. Nevertheless, it needs to be noted that it is up to a developer to enable split-screen mode. For common and advanced users, this is a worth-expecting feature.
A feature to be read along with Picture-in-Picture of Android N, it is available for Android TV as of now, and there’s no mention about the Android Smartphone or tablet PC scenario. Using picture-in-picture, you can launch a small window on top of the main phone interface in use. The Recents Menu is the main feature that allows multitasking in Android OS. This feature has received some cool optimizations in Android N release, thus making multi-tasking an easy thing to accomplish. For instance, if you want to switch between the app you currently use and the app you used last, you can double-tap on the square. Like before, single-tap on the square will take you to the Recents menu, but this double-tap feature is quite useful.

2. Android N Features – Android Doze on Steroids
Android Doze Mode is receiving some extra optimizations in Android N release, making it one of the stunning Android N features. One of the problems of Android M’s Doze Mode is that it won’t work if your device is moving (for instance, if it’s in your pocket). However, in the Android N release, Doze Mode gets a two-tier system.
The first layer of Doze Mode kicks in if the device screen has been switched off for a while; it does not matter if that device is moving or not. So the benefits of Doze Mode even when the device is in your pocket, and is moving a bit. The second tier of Doze is quite powerful. If there is no movement for a longer period, the device is kicked into a deeper state of idleness, thus saving a lot of battery backup.
Doze has been one of the most effective features we’ve found in Android Marshmallow, especially with the possible tweaks. So, it has lots of hope on the two-tier system Doze is going to attain.

3. An All-New Settings Menu
Google has introduced a brand-new settings menu in Android N release and it’s one of the most expected features.
You might not see bigger changes when you open the settings menu, but the changes are subtly useful. For instance, you can find basic information along with the menu shortcut itself. If you want to know the name of the Wi-Fi network you’re connected to, it will be shown along with the Wireless & Networks Tab.
The settings menu also has a hamburger menu in it and can be changed from the left side of screen to get a slide showing major areas of settings. The option to get one of those sections without actually hitting the back-arrow button. Other changes in Settings menu of Android N release are the splitting of Sound and Notifications into two different setting areas and suggestions shown on top of settings menu. Altogether, navigating through the Settings part has become more easier.

4. Quick Reply, Bundled Notifications and Power Notification Control
Apart from the looks of Android N notification shades, there are some other cool features too. You might be familiar with the quick-reply feature seen in some Google apps that is, the option to reply to a message without having to open the specific application. Starting with Android N release, this feature can be implemented in all Android devices if the developer wants to. This quick reply feature is going to be a time-saver for many.
In addition, Android N introduces Bundled Notifications! For instance, if you have twenty notifications from the same app, they will be shown together. However, given that you need specific care, you can separate these notifications. It is also going to be a worthwhile feature to be seen in Android N release, given the practical uses.
In Android Developer, there’s a new feature called Power Notification Control, which can be found in the System UI Tuner section of Settings. If enabled, this feature allows you to set different level priorities to each app. It ranging from Level 0 to Level 5. If Level 5 importance is given to notifications of one app, all the notifications will be shown on the top and the app will be given full-screen interruption. On the contrary, if you give Level 0 importance, no notifications will be shown from the particular application. This way, you can control which all notifications are given the priorities. It also has an Auto-Priority mode. To change the priority of each notification, you can press and hold on the notification. In the upcoming sub-menu, you can select the desired priority level.
In short, with these three features, Android N Release will totally revamp the way you deal with your notifications. It can also be said that Android notifications have become quite a lot smarter.

5. A Better Quick Settings Panel & Notification Shade
The notification shade and the Quick Settings panel of Android N have received some cool changes, When you pull the notification bar once, you will be seen the notifications along with a shorter set of quick settings button. You can see buttons for Wifi, Bluetooth, Battery, Flashlight etc. These icons can be changed according to your requirements.
In the right side, you can see an arrow, pressing which will bring the complete Quick Settings panel. In addition to it, you have better customization of Quick Settings. Without opening a menu page, you can re-organize or remove the tiles in Quick Settings page. Well, these features are quite convenient from the productivity point of view.

6. Data Saver and Call Blocking
These two features are definitely intended for the practical Android user. While the Data Saver helps you to save the bandwidth while browsing web, Call Blocking will help you to get rid of unwanted callers. The Data Saver works just as the Battery Saver Mode. When you are about to reach the predetermined FUP limit of cellular data, Data Saver will be turned on, thus saving your bandwidth. Talking of the Call Blocking feature, it is effective in the whole device. If one number has been blocked from calling you, there are little chances that it will have access to other apps such as Hangouts.

7. Better Support for Physical Keyboard
Better support for Physical keyboards. That is, when you have connected a Bluetooth-based keyboard, you can have easy access to keyboard shortcuts. You have to press Alt+/ to get the list of keyboard shortcuts. These shortcuts are very useful when you are using your Smartphone for big needs, such as writing.

8. An All-New Google Keyboard
Quite recently, Google had released a fully-revamped version of the official Google Keyboard. This new keyboard has been set as the default keyboard in Android N Release. It consists of a handful of features, the lack of which had created a bad impression among many users. First of all, the Google Keyboard has a one-handed mode, which gives you a better typing experience, especially with a bigger phone screen. Secondly, it’s having a set of options for customization. You can enable key-boarders, adjust the height of keyboard depending on the length of your finger and have a specialized keyboard for typing numbers. It also has a collection of 14 colour themes in it. Can pick one, depending on your taste and feel. It’s all about the keyboard, and you’re going to have a superb keyboard experience with the Android N stock keyboard.

9. The Miscellaneous Features
We have actually mentioned the most significant and obvious Android N features. Apart from these, there are some other features — seemingly simple, but worthwhile.

  • Emergency information on lock screen. Without really unlocking the device, you can access this information. The possibly useful information includes your name, blood group, address etc.
  • Android Beta Program has become quite simple and anyone can sign up for the program. Developer previews latest to the device, Over the Air.
    Clear All button in Recents Menu (We’ve been seeing this feature in custom Android ROMS)
  • Quick replies from the Lock Screen itself, given you set the privacy-oriented stuff in right way.
  • Google has replaced the wallpaper collection with another cool set.
    Starting from Developer, Android Pay is supported and available in the country and can be used for the payments.
  • In addition, along with Android N Developer, Android Public Beta has also been launched on the new version comparatively safer.


“What’s a Universal Windows Platform (UWP) app?”

If you are new to the Windows platform or coming from the worlds of .NET, Windows Forms or Silverlight, you might be wondering with ‘what UWP app actually is’. As a famous book once said, “Don’t panic!” Everything will soon become clear.
A Universal Windows Platform (UWP) app is a Windows experience that is built upon the Universal Windows Platform (UWP), which was first introduced in Windows 8 as the Windows Runtime. At the core of UWP apps is the idea that users want their experiences to be mobile across ALL their devices, and they want to use whatever device is most convenient or productive for the task at hand.

Windows 10 makes it easier to develop apps for the UWP with just one API set, one app package, and one store to reach all Windows 10 devices – PC, tablet, phone, Xbox, HoloLens, Surface Hub and more. It’s easier to support a number of screen sizes, and also a variety of interaction models, whether it be touch, mouse and keyboard, a game controller, or a pen. The bottom line: You can spend your time working with familiar programming languages and APIs, all in single project, and have the very same code run on the huge range of Windows hardware that exists today.

So, what exactly is a UWP app?
What makes a UWP app special?
Here are some of the characteristics that make UWP apps on Windows 10 different. You target device families, not an OS. A device family identifies the APIs, system characteristics, and behaviors that you can expect across devices within the device family. It also determines the set of devices on which your app can be installed from the store. Apps are packaged and distributed using the .AppX packaging format. All UWP apps are distributed as an AppX package. This provides a trustworthy installation mechanism and ensures that your apps can be deployed and updated seamlessly.

There’s one store for all devices.
After you register as an app developer, you can submit your app to the store and make it available on all device families, or only those you choose. You submit and manage all your apps for Windows devices in one place.
There’s a common API surface across device families.
The Universal Windows Platform (UWP) core APIs are the same for all Windows device families. If your app uses only the core APIs, it will run on any Windows 10 device.
Extension SDKs make your app light up on specialized devices.
Extension SDKs add specialized APIs for each device family. If your app is intended for a particular device family, you can make it light up by using these APIs. You can still have one app package that runs on all devices by checking what device family your app is running on before calling an extension API.

Adaptive Controls and input
UI elements use effective pixels (see Responsive design 101 for UWP apps), so they automatically adapt themselves based on the number of screen pixels available on the device. And they work well with multiple types of input such as keyboard, mouse, touch, pen, and Xbox One controllers. If you need to further tailor your UI to a specific screen size or device, new layout panels and tooling help you adapt your UI to the devices your app may run on.


Use a language you already know
You can create UWP apps using the programming languages you’re most familiar with, like C# or Visual Basic with XAML, JavaScript with HTML, or C++ with DirectX and/or Extensible Application Markup Language (XAML). You can even write components in one language and use them in an app that’s written in another language. UWP apps use the Windows Runtime, a native API built into the operating system. This API is implemented in C++ and supported in C#, Visual Basic, C++, and JavaScript in a way that feels natural for each language.
Microsoft Visual Studio 2015 provides a UWP app template for each language that lets you create a single project for all devices. When your work is finished, you can produce an app package and submit it to the Windows Store from within Visual Studio to get your app out to customers on any Windows 10 device.

UWP apps come to life on Windows
On Windows, your app can deliver relevant, real-time info to your users and keep them coming back for more. In the modern app economy, your app has to be engaging to stay at the front of your users’ lives. Windows provides you with lots of resources to help keep your users returning to your app:
Live tiles and the lock screen show contextually relevant and timely info at a glance.
Push notifications bring real-time, breaking alerts to your user’s attention when they’re needed. The Action Center is a place where you can organize and display notifications and content that users need to take action on. Background execution and triggers bring your app to life just when the user needs it. Your app can use voice and Bluetooth LE devices to help users interact with the world around them. Finally, you can use roaming data and the Windows Credential Locker to enable a consistent roaming experience across all of the Windows screens where users run your app. Roaming data gives you an easy way to store a user’s preferences and settings in the cloud, without having to build your own sync infrastructure. And you can store user credentials in the Credential Locker, where security and reliability are the top priority.

Monetize your app your way
On Windows, you can choose how you’ll monetize your app—across phones, tablets, PCs, and other devices. We give you a number of ways to make money with your app and the services it delivers. All you need to do is choose the one that works best for you:
A paid download is the simplest option. Just name your price.
Trials give you a great way to let users try your app before buying it, providing easier discoverability and conversion than the more traditional “freemium” options.
In-app purchase offers you the most flexibility for monetizing your app.
For a more detailed look at the UWP, read the Guide to Universal Windows Platform apps.
Guide to Universal Windows Platform (UWP) apps (For Windows 8.x articles, see the archive)
In this guide, you’ll learn about:
What a device family is, and how to decide which one to target. New UI controls and panels that allow you to adapt your UI to different device form factors.How to understand and control the API surface that is available to your app.
Windows 8 introduced the Windows Runtime (WinRT), which was an evolution of the Windows app model. It was intended to be a common application architecture.
When Windows Phone 8.1 became available, the Windows Runtime was aligned between Windows Phone 8.1 and Windows. This enabled developers to create Universal Windows 8 apps that target both Windows and Windows Phone using a shared codebase.
Windows 10 introduces the Universal Windows Platform (UWP), which further evolves the Windows Runtime model and brings it into the Windows 10 unified core. As part of the core, the UWP now provides a common app platform available on every device that runs Windows 10. With this evolution, apps that target the UWP can call not only the WinRT APIs that are common to all devices, but also APIs (including Win32 and .NET APIs) that are specific to the device family the app is running on. The UWP provides a guaranteed core API layer across devices. This means you can create a single app package that can be installed onto a wide range of devices. And, with that single app package, the Windows Store provides a unified distribution channel to reach all the device types your app can run on.
Because your UWP app runs on a wide variety of devices with different form factors and input modalities, you want it to be tailored to each device and be able to unlock the unique capabilities of each device. Devices add their own unique APIs to the guaranteed API layer. You can write code to access those unique APIs conditionally so that your app lights up features specific to one type of device while presenting a different experience on other devices. Adaptive UI controls and new layout panels help you to tailor your UI across a broad range of screen resolutions.

Device families

Windows 8.1 and Windows Phone 8.1 apps target an operating system (OS): either Windows, or Windows Phone. With Windows 10 you no longer target an operating system but you instead target your app to one or more device families. A device family identifies the APIs, system characteristics, and behaviors that you can expect across devices within the device family. It also determines the set of devices on which your app can be installed from the Store. Here is the device family hierarchy.


A device family is a set of APIs collected together and given a name and a version number. A device family is the foundation of an OS. PCs run the desktop OS, which is based on the desktop device family. Phones and tablets, etc., run the mobile OS, which is based on the mobile device family and so on.
The universal device family is special. It is not, directly, the foundation of any OS. Instead, the set of APIs in the universal device family is inherited by child device families. The universal device family APIs are thus guaranteed to be present in every OS and on every device.
Each child device family adds its own APIs to the ones it inherits. The resulting union of APIs in a child device family is guaranteed to be present in the OS based on that device family, and on every device running that OS. One benefit of device families is that your app can run on any, or even all, of a variety of devices from phones, tablets, desktop computers, Surface Hubs, Xbox consoles and HoloLens. Your app can also use adaptive code to dynamically detect and use features of a device that are outside of the universal device family. The decision about which device family (or families) your app will target is yours to make. And that decision impacts your app in these important ways. It determines:
The set of APIs that your app can assume to be present when it runs (and can therefore call freely).The set of API calls that are safe only inside conditional statements.
The set of devices on which your app can be installed from the Store (and consequently the form factors that you need to consider).

There are two main consequences of making a device family choice: the API surface that can be called unconditionally by the app, and the number of devices the app can reach. These two factors involve tradeoffs and are inversely related. For example, a UWP app is an app that specifically targets the universal device family, and consequently is available to all devices. An app that targets the universal device family can assume the presence of only the APIs in the universal device family (because that’s what it targets). Other APIs must be called conditionally. Also, such an app must have a highly adaptive UI and comprehensive input capabilities because it can run on a wide variety of devices. A Windows mobile app is an app that specifically targets the mobile device family, and is available to devices whose OS is based on the mobile device family (which includes phones, tablets, and similar devices). A mobile device family app can assume the presence of all APIs in the mobile device family, and its UI has to be moderately adaptive. An app that targets the IoT device family can be installed only on IoT devices and can assume the presence of all APIs in the IoT device family. That app can be very specialized in its UI and input capabilities because you know that it will run only on a specific type of device.

UI and universal input
A UWP app can run on many different kinds of devices that have different forms of input, screen resolutions, DPI density, and other unique characteristics. Windows 10 provides new universal controls, layout panels, and tooling to help you adapt your UI to the devices your app may run on. For example, you can tailor the UI to take advantage of the difference in screen resolution when your app is running on a desktop computer versus on a mobile device. Some aspects of your app’s UI will automatically adapt across devices. Controls such as buttons and sliders automatically adapt across device families and input modes. Your app’s user-experience design, however, may need to adapt depending on the device the app is running on. For example, a photos app should adapt the UI when running on a small, hand-held device to ensure that usage is ideal for single-hand use. When the photos app is running on a desktop computer, the UI should adapt to take advantage of the additional screen space.
Windows helps you target your UI to multiple devices with the following features:
Universal controls and layout panels help you to optimize your UI for the screen resolution of the device. Common input handling alToolinglows you to receive input through touch, a pen, a mouse, or a keyboard, or a controller such as a Microsoft Xbox controller
Tooling helps you to design UI that can adapt to different screen resolutions
Adaptive scaling adjusts to resolution and DPI differences across devices.

Universal controls and layout panels
Windows 10 includes new controls such as the calendar and split view. The pivot control, which was previously available only for Windows Phone, is also now available for the universal device family.
Controls have been updated to work well on larger screens, adapt themselves based on the number of screen pixels available on the device, and work well with multiple types of input such as keyboard, mouse, touch, pen and controllers such as the Xbox controller.
You may find that you need to adapt your overall UI layout based on the screen resolution of the device your app will be running on. For example, a communication app running on the desktop may include a picture-in-picture of the caller and controls well suited to mouse input:


However, when the app runs on a phone, because there is less screen real-estate to work with, your app may eliminate the picture-in-picture view and make the call button larger to facilitate one-handed operation:


To help you adapt your overall UI layout based on the amount of available screen space, Windows 10 introduces adaptive panels and design states.

Design adaptive UI with adaptive panels
Layout panels give sizes and positions to their children, depending on available space. For example, StackPanel orders its children sequentially (horizontally or vertically). Grid is like a CSS grid that places its children into cells.
The new RelativePanel implements a style of layout that is defined by the relationships between its child elements. It’s intended for use in creating app layouts that can adapt to changes in screen resolution. The RelativePanel eases the process of rearranging elements by defining relationships between elements, which allows you to build more dynamic UI without using nested layouts.
In the following example, blueButton will appear to the right of textBox1 regardless of changes in orientation or layout, and orangeButton will appear immediately below, and aligned with, blueButton—even as the width oftextBox1 changes as text is typed into it. It would previously have required rows and columns in a Grid to achieve this effect, but now it can be done using far less markup.

<RelativePanel> <TextBox x:Name=”textBox1″ Text=”textbox” Margin=”5″/> <Button x:Name=”blueButton” Margin=”5″ Background=”LightBlue” Content=”ButtonRight” RelativePanel.RightOf=”textBox1″/> <Button x:Name=”orangeButton” Margin=”5″ Background=”Orange” Content=”ButtonBelow” RelativePanel.RightOf=”textBox1″ RelativePanel.Below=”blueButton”/></RelativePanel>

Use visual state triggers to build UI that can adapt to available screen space
Your UI may need to adapt to changes in window size. Adaptive visual states allows you to change the visual state in response to changes in the size of the window.
StateTriggers define a threshold at which a visual state is activated, which then sets layout properties as appropriate for the window size that triggered the state change.

In the following example, when the window size is 720 pixels or more in width, the visual state named wideView is triggered, which then arranges the Best-rated games panel to appear to the right of, and aligned with the top of, the Top free games panel.

When the window is less than 720 pixels, the narrowView visual state is triggered because the wideView trigger is no longer satisfied and so no longer in effect. The narrowView visual state positions the Best-rated games panel below, and aligned with the left of, the Top paid games panel:


Here is the XAML for the visual state triggers described above. The definition of the panels, alluded to by “…” below, has been removed for brevity.
<Grid Background=”{ThemeResource ApplicationPageBackgroundThemeBrush}”>
<VisualState x:Name=”wideView”>
<AdaptiveTrigger MinWindowWidth=”720″ />
<Setter Target=”best.(RelativePanel.RightOf)” Value=”free”/>
<Setter Target=”best.(RelativePanel.AlignTopWidth)” Value=”free”/>
<VisualState x:Name=”narrowView”>
<Setter Target=”best.(RelativePanel.Below)” Value=”paid”/>
<Setter Target=”best.(RelativePanel.AlignLeftWithPanel)” Value=”true”/>
<AdaptiveTrigger MinWindowWidth=”0″ />


By default, you’ll probably want to target the broadest possible device family. When you’re ready to see how your app looks and lays out on a particular device, use the device preview toolbar in Visual Studio to preview your UI on a small or medium mobile device, on a PC, or on a large TV screen. That way you can tailor and test your adaptive visual states:

You don’t have to make a decision up front about every device type that you’ll support. You can add an additional device size to your project later.

Adaptive scaling
Windows 10 introduces an evolution of the existing scaling model. In addition to scaling vector content, there is a unified set of scale factors that provides a consistent size for UI elements across a variety of screen sizes and display resolutions. The scale factors are also compatible with the scale factors of other operating systems such as iOS and Android. This makes it easier to share assets between these platforms.
The Store picks the assets to download based in part of the DPI of the device. Only the assets that best match the device are downloaded.

Common input handling
You can build a Universal Windows app using universal controls that handle various inputs such as mouse, keyboard, touch, pen, and controller (such as the Xbox controller). Traditionally, inking has been associated only with pen input, but with Windows 10, you can ink with touch on some devices, and with any pointer input. Inking is supported on many devices (including mobile devices) and can easily be incorporated with a just few lines of code.
The following APIs provide access to input:
CoreIndependentInputSource is a new API that allows you to consume raw input on the main thread or a background thread.
PointerPoint unifies raw touch, mouse, and pen data into a single, consistent set of interfaces and events that can be consumed on the main thread or background thread by using CoreInput.
PointerDevice is a device API that supports querying device capabilities so that you can determine what input modalities are available on the device.
The new InkCanvas XAML control and InkPresenter Windows Runtime APIs allow you to access ink stroke data.

Writing Code
Your programming language options for your Windows 10 project in Visual Studio include Visual C++, C#, Visual Basic, and JavaScript. For Visual C++, C#, and Visual Basic, you can use XAML for a full-fidelity, native UI experience. For Visual C++ you can choose to draw with DirectX either instead of or as well as using XAML. For JavaScript, your presentation layer will be HTML, and HTML is of course a cross-platform web standard. Much of your code and UI will be universal and it will run the same way everywhere. But for code tailored to particular device families, and for UI tailored to particular form factors, you’ll have the option to use adaptive code and adaptive UI. Let’s look at these different cases.

Calling an API that’s implemented by your target device family
Whenever you want to call an API, you’ll need to know whether the API is implemented by the device family that your app is targeting. If in doubt, you can look it up in the API reference documentation. If you open the relevant topic and look at the Requirements section, you’ll see what the implementing device family is. Let’s say that your app is targeting version 10.0.x.0 of the universal device family and you want to call members of the Windows.UI.Core.SystemNavigationManager class. In this example, the device family is “Universal”. It’s a good idea to further confirm that the class members that you want to call are also within your target, and in this case they are. So in this example, you now know that the APIs are guaranteed to be present on every device that your app can be installed on, and you can call the APIs in your code just like you normally would.
Windows.UI.Core.SystemNavigationManager.GetForCurrentView().BackRequested += TestView_BackRequested;
As another example, imagine that your app is targeting version 10.0.x.0 of the Xbox device family, and the reference topic for an API that you want to call says that the API was introduced in version 10.0.x.0 of the Xbox device family. In that case, again, the API is guaranteed to be present on every device that your app can be installed on. So you would be able to call that API in your code in the normal way.

Note that Visual Studio’s IntelliSense will not recognize APIs unless they are implemented by your app’s target device family or any extension SDKs that you have referenced. Consequently, if you haven’t referenced any extension SDKs, you can be sure that any APIs that appear in IntelliSense must therefore be in your target device family and you can call them freely.
Calling an API that’s NOT implemented by your target device family. There will be cases when you want to call an API, but your target device family is not listed in the documentation. In that case you can opt to write adaptive code in order to call that API. Writing adaptive code with the ApiInformation class
There are two steps to write adaptive code. The first step is to make the APIs that you want to access available to your project. To do that, add a reference to the extension SDK that represents the device family that owns the APIs that you want to conditionally call. See Extension SDKs.
The second step is to use the Windows.Foundation.Metadata.ApiInformation class in a condition in your code to test for the presence of the API you want to call. This condition is evaluated wherever your app runs, but it evaluates to true only on devices where the API is present and therefore available to call.
If you want to call just a small number of APIs, you could use the ApiInformation.IsTypePresent method like this.

// Note: Cache the value instead of querying it more than once.
bool isHardwareButtonsAPIPresent = Windows.Foundation.Metadata.ApiInformation.IsTypePresent
if (isHardwareButtonsAPIPresent)
Windows.Phone.UI.Input.HardwareButtons.CameraPressed += HardwareButtons_CameraPressed;
In this case we can be confident that the presence of the HardwareButtons class implies the presence of the CameraPressed event, because the class and the member have the same requirements info. But in time, new members will be added to already-introduced classes, and those members will have later “introduced in” version numbers. In such cases, instead of using IsTypePresent, you can test for the presence of individual members by using IsEventPresent, IsMethodPresent, IsPropertyPresent, and similar methods. Here’s an example.
bool isHardwareButtons_CameraPressedAPIPresent = Windows.Foundation.Metadata.ApiInformation.IsEventPresent (“Windows.Phone.UI.Input.HardwareButtons”, “CameraPressed”);
The set of APIs within a device family is further broken down into subdivisions known as API contracts. You can use the ApiInformation.IsApiContractPresent method to test for the presence of an API contract. This is useful if you want to test for the presence of a large number of APIs that all exist in the same version of an API contract.
bool isWindows_Devices_Scanners_ScannerDeviceContract_1_0Present = Windows.Foundation.Metadata.ApiInformation.IsApiContractPresent (“Windows.Devices.Scanners.ScannerDeviceContract”, 1, 0);
Win32 APIs in the UWP
A UWP app or Windows Runtime Component written in C++/CX has access to the Win32 APIs that are part of the UWP. These Win32 APIs are implemented by all Windows 10 device families. Link your app with Windowsapp.lib. Windowsapp.lib is an “umbrella” lib that provides the exports for the UWP APIs. Linking to Windowsapp.lib will add to your app dependencies on dlls that are present on all Windows 10 device families. For the full list of Win32 APIs available to UWP apps, see API Sets for UWP apps and Dlls for UWP apps.

User experience
A Universal Windows app allows you to take advantage of the unique capabilities of the device on which it is running. Your app can make use of all of the power of a desktop device, the natural interaction of direct manipulation on a tablet (including touch and pen input), the portability and convenience of mobile devices, the collaborative power of Surface Hub, and other devices that support UWP apps.
Good design is the process of deciding how users will interact with your app, as well as how it will look and function. User experience plays a huge part in determining how happy people will be with your app, so don’t skimp on this step. Design basics introduce you to designing a Universal Windows app. See the Introduction to Universal Windows Platform (UWP) apps for designers for information on designing UWP apps that delight your users. Before you start coding, see the device primer to help you think through the interaction experience of using your app on all the different form factors you want to target.


In addition to interaction on different devices, plan your app to embrace the benefits of working across multiple devices. For example:
Use cloud services to sync across devices. Learn how to connect to web services in support of your app experience.
Consider how you can support users moving from one device to another, picking up where they left off. Include notifications and in-app purchases in your planning. These features should work across devices.
Design your workflow using Navigation design basics for UWP apps to accommodate mobile, small-screen, and large-screen devices. Lay out your user interface to respond to different screen sizes and resolutions.
Consider whether there are features of your app that don’t make sense on a small mobile screen. There may also be areas that don’t make sense on a stationary desktop machine and require a mobile device to light up. For example, most scenarios around location imply a mobile device.
Consider how you’ll accommodate multiple input modalities. See the Guidelines for interactions to learn how users can interact with your app by using Cortana, Speech, Touch interactions, the Touch keyboard and more.
See the Guidelines for text and text input for more tradition interaction experiences.

Submit a Universal Windows app through your Dashboard
The new unified Windows Dev Center dashboard lets you manage and submit all of your apps for Windows devices in one place. New features simplify processes while giving you more control. You’ll also find detailed analytic reportscombined payout details, ways to promote your app and engage with your customers, and much more.
See Using the unified Windows Dev Center dashboard to learn how to submit your apps for publication in the Windows Store.

To Get Samples in UWP application development

Tools for developing Universal applications: Get set up
It’s easier than you think to get going. Follow these instructions and start creating Universal Windows Platform (UWP) apps for Windows 10.

Are you a Mac user? Or maybe you don’t want to install anything on your PC just yet? Try the web-based virtual machines set up for Build2016’s coding challenges

1. Get Windows 10
To develop UWP apps, you need the latest version of Windows.
Get Windows 10 online
Are you an MSDN subscriber? You can get ISO downloads here:
Get Windows 10 from MSDN Subscriber Downloads

2. Download or update Visual Studio
Microsoft Visual Studio 2015 helps you design, code, test, and debug your apps.
If you don’t already have Visual Studio 2015, click this link to install the free Microsoft Visual Studio Community 2015. This download includes device and phone simulators for testing your apps:
Download Windows 10 developer tools
When you install Visual Studio, use the custom option and make sure all Universal Windows App Development Tools options are selected, as shown here.

3. Enable your device for development
It’s important to test your UWP apps on a real PCs and phones. Before you can deploy apps to your PC or Windows Phone, you have to enable it for development.
For detailed instructions, see Enable your device for development.

4. Register as an app developer
You can start developing apps now, but before you can submit them to the store, you need a developer account.
To get a developer account, go to the Sign up page.

What’s next?
After you’ve installed the tools and gotten a developer license or a developer account, use our tutorials to create your first app:
Create your first app tutorials
Want more tools and downloads?
For the complete list of tools and downloads, see Downloads.


For a complete list of video Tutorials on how to develop Windows Universal applications.

For Sample Applications You can Visit


What is Magento?


Magento is most widely used open source eCommerce software and platform written in PHP atop the Zend framework. It’s also an object-oriented PHP Framework that can be used to develop modern, dynamic web applications that tap into Magento’s powerful eCommerce features.The software was originally developed by Varien Inc which is now known as Magento Inc.

Why Choose Magento as eCommerce Development Platform?
What do Ford, Warby Parker, Olympus, Samsung and Nike have in common?

All their websites are built on the Magento platform. These big companies were definitely not looking for the cheapest or simplest solutions for their ecommerce systems. When a platform is favoured by such big names, it is a guarantee for a secure commercial system, which is capable of selling your products effectively online.

“Everyone uses it”


Yes, we know that this argument may lead to false conclusions. It well may be that something is agreed on by the majority while it is not necessarily the best option. But now we are talking about ecommerce and business results.
It is a fact that at the moment Magento has a market share of 32% among the 30 most popular ecommerce platforms, so there is hardly any significant competitor in that respect.

More reasons why this platform is the ideal choice.

  •  Magento is secure:
    Safety is not an option, it is a must in an environment where hackers try to crack databases every minute.
    Luckily, Magento is always tested by a vast number of developers. The whole system is constantly watched by experts (e.g. ethical hackers) searching for defects and eliminating vulnerability by uploading patches.
  • Professional technological support and huge knowledge base:
    The flexibility and openness of the system is basically the result of this philosophy. A couple of years ago Magento was acquired by eBay. Just recently it got independent of eBay, but it has extremely strong and loyal developer community, which had evolved well before its acquisition by eBay,is still passionately working on its development.
  • The Leatherman of ecommerce:
    The system has a remarkably rich administrative area, which gives you the possibility to modify everything according to your needs – such as product features and categories or content targeted at different customer groups.
  • Impressive, responsive design:
    There are many solutions on the market that have “forgotten” to adapt to the most recent market needs.
    Since 2014, more and more people use the internet on their tablets and smartphones, and an increasing proportion of purchases are done on mobile devices. An online store can compete in such an environment successfully if it has a responsive layout, which means that it offers an interface to its shoppers, which is easy to handle on all platforms from tablets and smartphones to PCs and netbooks.
  • Supports SEO:
    It probably has the most advanced SEO toolkit among ecommerce platforms.

Why not to use magento?

  • High hiring charges
    Magento developers are rare and difficult to find. You really need to put an effort to unearth good team of Magento developers and designers. Particularly, it is difficult to find a good set of skills for web design field professionals i.e. designers, server side programmers and client side programmers. Plus, it has got a mixture of many tools and technologies that makes it complicated for a person to understand its working.
    Magento certified developer program has certainly helped in narrowing down skills search when it comes to hiring Magento developers however this would normally cost high.
  • Time consuming customized development.
    It is a complex system and not one that is easy to work with. Built on Zend framework and using MVC approach, customizing is not that easy as with other shopping carts.
    Any of your requests to do customization will take a good developer more time to bring changes.
  • Slowness
    Magento is relatively slow than other ecommerce solutions.
    One possible reason can be that Magento is not effectively written on Zend framework which makes it slow while running. On PHP, it does not work on standard 8mb but requires at least 20mb to work properly. An effective, well dedicated server might be one of the solutions.
    While Magento does offer some advantages and fulfill promises, for e.g. friendly SEO links and great third party integration, but on the other hand, it lacks fundamental things like complicacy which can turn life into a nightmare. Comparing from other ecommerce shopping cart solutions though, Magento is one of the best shopping cart solutions, but with new matured versions and firm productivity in the long run, it can be near perfect platform in future.

Magento Is Open Source. Open Source = Free!
True, Magento has 3 versions in total:
Magento Community Edition (free), Magento Enterprise Edition (paid)
Magento Go (paid & hosted on Magento’s servers)
Magento 2

Reference links:

Official website:




Resources and extentions marketplace:

Community and forum:


Delphi is a structured communication technique or method, originally developed as a systematic, interactive forecasting method which relies on a panel of experts. Delphi is a programming language and software development kit (SDK) for desktop, mobile, web and console applications. Delphi’s compilers use their own Object Pascal dialect of Pascal and generate native code for several platforms: Windows (x86 and x64), OS X (32-bit only), iOS (32 and 64-bit) and Android.

Delphi application is reliable and creative exploration of ideas or the production of suitable information for decision making.The Delphi Technique is a method used to estimate the likelihood and outcome of future events. A group of experts exchange views, and each independently gives estimates and assumptions to a facilitator who reviews the data and issues a summary report.
For more than 20 years, Delphi Technology has been a leading provider of technology solutions to the insurance and risk management industries. By leveraging its extensive industry knowledge and experience. Delphi Technology delivers a comprehensive range of innovative technology solutions for professional liability insurers, property and casualty carriers, third party administrators (TPAs), self insureds, and risk retention groups (RRGs).


Generating QR-Code Using Delphi

In Delphi Barcodes :: A QR code is a specific barcode, when phones with camera allowed mobile phone users to quickly scan the image and get more info on a product, business, event, offer, URL address. QR (quick response) codes can be used to encode URL, text or other data. Most smartphones like iPhones and Android phones now have apps that let you to read QR codes. When your mobile reads (scans) a QR Code, the QR code will then send you off to a website or online voucher or an online business card.The QR code system became popular outside the automotive industry due to its fast readability and greater storage capacity compared to standard UPC barcodes. Applications include product tracking, item identification, time tracking, document management and general marketing.


Using Delphi there are several ways you can generate QR codes – to encode any text (URL, phone number, simple message). QR Codes store up to 4,296 alphanumeric characters of arbitrary text.

A QR code (Quick Response Code) is a specific 2D barcode, the 2D Barcode VCL components is a set of components designed for generating and printing barcode symbols in your Delphi or C++ Builder applications. Using the components set like any other VCL components. Encrypted QR codes, which are not very common and have a few implementations.
One-dimensional barcodes that were designed to be mechanically scanned by a narrow beam of light, a QR code is detected by a 2-dimensional digital image sensor and then digitally analyzed by a programmed processor. The processor locates the three distinctive squares at the corners of the QR code image, using a smaller square (or multiple squares) near the fourth corner to normalize the image for size, orientation, and angle of viewing. The small dots throughout the QR code are then converted to binary numbers and validated with an error-correcting algorithm. The amount of data that can be stored in the QR code symbol depends on the datatype (mode, or input character set), version (1, …, 40, indicating the overall dimensions of the symbol) and error correction level. The maximum storage capacities occur for 40-L symbols.

QR Codes can easily be displayed inside ReportBuilder reports using a variety of third party libraries currently available. Below is a list of components along with the features they offer.

  • Quricol: Open source QR Code generator that uses QRencode library. Requires a DLL file in order to function which must be deployed with your application.
  • PSoft Barcode Studio: Commercial Delphi barcode generating library capable of creating QR Codes. Directly supports ReportBuilder.
  • Han-soft 2D Barcodes: Commercial Delphi barcode generating library capable of creating QR Codes. Directly supports ReportBuilder.
  • J4L Barcodes for Delphi: Commercial Delphi barcode generating library capable of creating QR Codes.

Usage of QR codes
Code payments- QR codes can be used to store bank account information or credit card information, they can be specifically designed to work with particular payment provider applications and in the field of cryptographic currencies, payment addresses, cryptographic keys and transaction information are often shared between digital wallets in this way. Website login- QR codes can be used to log in into websites: a QR code is shown on the login page on a computer screen and when a registered user scans it with a verified smartphone, they will automatically be logged in. Authentication is performed by the smartphone which contacts the server.

Generating QR Codes Using Delphi – DelphiZXingQRCode – Open Source

DelphiZXingQRCode is a Delphi port of the QR Code functionality in ZXing, an open source barcode image processing library. DelphiZXingQRCode is a single-unit implementation you simply add to your (new or) existing project, set a few properties and paint the image. DelphiZXingQRCode (for the moment) supports auto, numeric, alphanumeric, ISO-8859-1, UTF-8 without Bom and UTF-8 with Bom encoding.
If you need to include the generation of QR barcode images in your Delphi application, you might want to take a look at open source “DelphiZXingQRCode” – a Delphi port of the QR Code functionality in ZXing, an open source barcode image processing library.

Just a few lines of code, TDelphiZXingQRCode related and your QR is ready: Sample Delphi code:

If you only need the image generated out of your application, you might want to try this fantastic free online QR Code Generator from the ZXing Project.
J4L Components includes the QR-code implementation featuring: auto, byte, alpha, numeric and kanji encoding. The Google Chart Tools (Chart API) also let you generate QR-code images using an HTTP POST or GET methods –Generating Qr Codes with Delphi and Google Chart API

The format information records two things: the error correction level and the mask pattern used for the symbol. Masking is used to break up patterns in the data area that might confuse a scanner, such as large blank areas or misleading features that look like the locator marks. The mask patterns are defined on a grid that is repeated as necessary to cover the whole symbol. Modules corresponding to the dark areas of the mask are inverted. The format information is protected from errors with a BCH code, and two complete copies are included in each QR symbol.

FireMonkey / Mobile (Android, iOS) QR Code Generation Using Delphi XE 5 / DelphiZXingQRCode

The DelphiZXingQRCode unit, ported from ZXing allows to easily add QR Code generation to your Delphi VCL applications.
While the DelphiZXingQRCode was designed to support VCL applications (and be used in newer as well as in older Delphi versions), it can also easily be “upgraded” for Fire Monkey applications – for desktop or mobile (Android, iOS).

DelphiZXingQRCode -> FireMonkey Support
To FireMonkey-enable the DelphiZXingQRCode unit a few changes to the source code were required. The unit uses “contnrs” (System.Contnrs.pas) unit which implements TObjectList (used by the unit) and other container like classes. Under FireMonkey for mobile, more specifically under ARC, the classes contained in System.Contnrs.pas cannot be used because they are not ARC compliant.
Equivalent classes are to be found in
System.Generics.Collections.pas (ARC compliant) where generics versions of TObjectList is defined. Therefore, the first change is to replace “uses contnrs, …” with “uses System.Generics.Collections, …”
This also requires to make changes like: from “Blocks: TObjectList;” to “Blocks: TObjectList<TBlockPair>;” – that is to use strongly typed generics list classes.
Further, there are lots of “ansistring” and “widestring” types used for parameters in various functions inside the unit. If you want to go mobile, those are not supported and you should use “string”. More info here:
Migrating Delphi Code to Mobile from Desktop. Therefore, the second change to the unit would be to replace “widestring” with “string” and “ansistring” with “array of byte” (or something else as explained in the article).

Single Pixel Drawing (and Other Canvas Drawing) FireMonkey Style
In the VCL, the TCanvas class allows accessing single pixels through the “Canvas.Pixels()” property. In FireMonkey this is not supported and you have to use the SetPixel property of a TBitmapData instance.
Once the qr code is generated, to convert it to a bitmap image, in FireMonkey:

VCL’s Canvas.StretchDraw to FMX’s Canvas.DrawBitmap
There’s no StrecthDraw in FMX’s Canvas class. There’s DrawBitmap. StretchDraw by default does no antialiasing. Using TImage, the code to get/display the generated QR Code is as follows:
By default, in FMX, when using DrawBitmap to resize it, antialiasing is used by default. There are two properties you need to set to ensure a bigger copy of your (small) qr code is drawn pixel-copy-perfect. FMX version of DelphiZXIngQRCode.pas: FMX-DelphiZXIngQRCode

Reference links:

The Microsoft .NET Framework is a software framework for developing and executing applications on Windows client and server operating systems. It includes a large class library known as Framework Class Library (FCL) and provides language interoperability (each language can use code written in other languages) across several programming languages. The .NET platform includes servers; building-block services, such as Web-based data storage and device software. It also includes Passport, Microsoft’s fill-in-the-form-only-once identity verification service.

.NET Framework started out as a proprietary framework, although the company worked to standardize the software stack almost immediately, even before its first release. Despite the standardization efforts, particularly developers those in the free and open-source software communities expressed their uneasiness with the selected terms and the prospects of any free and open-source implementation, especially with regard to software patents. Since then, Microsoft has changed .NET development to more closely follow the contemporary model of a community-developed software project, including issuing an update to its patent promise to address the concerns.

.NET Framework led to a family of .NET platforms targeting mobile computing, embedded devices, alternative operating systems and browser plugins. A reduced version of the framework, .NET Compact Framework, is available on Windows CE platforms, including Windows Mobile devices such as smartphones. .NET Micro Framework is targeted at severely resource-constrained embedded device. Silverlight was available as a web browser plugin. Mono is available for many operating systems and is customized into popular smartphone operating systems (Android and iOS) and game engines. .NET Core targets cross-platform and cloud-based workloads in addition to the Universal Windows Platform (UWP).

The .NET platform was designed to provide ability to make the entire range of computing devices work together and to have user information automatically updated and synchronized on all of them.
1. Increased interactive capability for Web sites, enabled by greater use of XML (Extensible Markup Language) rather than HTML

2. A premium online subscription service, that will feature customized access and delivery of products and services to the user from a central starting point for the management of various applications, such as e-mail. For example software, such as Office .NET

3. Centralized data storage, which will increase efficiency and ease of access to information, as well as synchronization of information among users and devices.

4. The ability to integrate various communications media, such as e-mail, faxes, and telephones. The ability to create reusable modules, which should increase productivity and reduce the number of programming errors.

Create Dynamic Websites using ASP.NET MVC Development

ASP.NET has extensively used framework for creating dynamic websites and web pages with CSS, JavaScript, server scripting and HTML. MVC development company extracting all the stops and delivers the best of ASP.Net MVC development services to the client across the world.

ASP.NET MVC (Model View Controller) is a three-tier architectural framework or design for web application development utilizing ASP.NET technology. In MVC platform, models are the components responsible for information retrieval and storage in the database, though view displays the information and controllers are used for responding and managing to user inputs.

ASP.NET has extensively used framework for creating dynamic websites and web pages with CSS, JavaScript, server scripting and HTML. MVC development company extracting all the stops and delivers the best of ASP.Net MVC development services to the client across the world. Very rare platforms carry the same amount of craze and popularity as ASP.NET from the development community. There is no doubt that .NET platform has suffered a lot of criticism from the technology experts all over the world, but still businesses are approaching to hire ASP.NET developer to fulfill their business-driven applications.

.NET is the current trend and the generation next to web development platform. Many businesses have derived the advantages of using this as a base for web application development and developers see great potential in .Net and Microsoft has surely made to a “go to” framework for creating highly secure applications for all types of business needs.

.NET vs Java

The Microsoft .NET Framework is a software framework for developing and executing applications on Windows client and server operating system. It provides features and functionality that are designed specifically for creating and running applications on the Windows platform, but also supports connectivity with non-Windows systems.

The Microsoft .NET Platform consists of five main components:
The Windows operating system, Windows Enterprise Servers, .NET Framework, .NET Building Block Services, and Visual Studio.NET toolset. The three major components of the .NET Framework are the Common Language Runtime (CLR), Framework Class Library and ASP.NET.

“Java” refers to a set of programs and standards originally created by Sun Microsystems, and now owned by Oracle Corporation. When people refer to “Java” they are generally speaking of one of the following:
The Java platform, which includes the Java Development Kit (JDK) which includes the java compiler and other utilities, and Java Runtime Environment (JRE), which includes the Java Virtual Machine (JVM).
The Java Class Libraries, a large body of reusable code containing most of the Application Programming Interfaces (APIs) and functions that would be provided by the operating system.
The Java programming language, with which developers can write applications.
A particular “edition” of the Java platform, Java Card, Java Micro Edition (ME), Java Standard Edition (SE), or Java Enterprise Edition (EE)

Java Runtime
The Java compiler, part of the Java Development Kit (JDK) translates the code written by the developer into platform independent Java “bytecode”. The Java Virtual Machine (JVM) translates Java bytecode into instructions comprehensible to the underlying operating system (playing much the same role as the CLR in .Net). If the Java class libraries and a JVM are present on a computer, the machine is said to carry a Java Runtime Environment (JRE). Modern JRE’s include more than just the JVM, such a Just-In-Time compilers and byte code verifiers.

Similarities Between .NET and Java:
Microsoft .NET and Java both aim to simplify the development of applications by providing a set of standardized, modular components and services. By having standard components and services at their disposal, developers can concentrate on business needs (“business logic”) rather than programming more fundamental services. Using visual tools that simplify application development is a type of programming that is often called Rapid Application Development (RAD).

1. Multi-tiered, similar computing technologies: Java and .NET each were created to enable programmers to build “tiered” web applications. A three-tiered application consists of a client tier, server tier, and database tier. .NET and Java both provide services to facilitate transactions in which business processes can be triggered and data recorded in databases.

2. Enterprise Level Development: Both offer different tools and ways to achieve the same goal of enterprise application development. C# (primary language of .NET) and Java both derive from C and C++. Both platforms are object-oriented, type safe, and have automatic garbage collection.
Both .NET and Java provide enhanced ability to develop and integrate web services, thus making the applications more extensible and interoperable. In addition, Java/JEE and .NET each have a set of components, services, and features that provide a standard way of performing tasks such as accessing databases, scripting Web pages, handling messages, and connecting to remote resources. A comparison of the key .NET and Java/JEE features and services are summarized in the table below:
Differences between .NET and Java
While they are similar in some ways, there are many differences in the internal workings of these frameworks and certain aspects of the languages that come with them. Let’s look at the core differences that enable us to make our pick. These are just differences and not necessarily advantages or a disadvantages for one platform over the other:

Windows vs. Multi-Platform: Though there are open source implementations of Microsoft’s .NET Framework, like mono to create cross platform applications, Microsoft .NET is primarily targeted for the windows operating system. Java, on the other hand, is based on the idea that the same software should run on many different kinds of computers, consumer gadgets, and other devices on a network. The big promise of Java is that it allows applications to run on different types of computers without having to be rewritten. Java applications run on “virtual machines” that were written for each platform.

Proprietary vs. Open source:
The .NET Framework is a concrete and free product that is developed by Microsoft and integrated into the Windows operating system. It does not rely on third-party vendors to provide an implementation, although it is highly extensible and many third-party additions are available.
Although Java is provided by a number of vendors, most users will only ever encounter the Oracle JDK and JRE (The OpenJDK is an open source version found on some Linux distributions and other open source operating systems, and IBM and HP both supply their own implementations for their big iron Unix systems). One of Java’s strengths is that a wide variety of tools, products, and applications are available from numerous vendors. Competition among Java EE vendors drives innovation, while strict compatibility standards help maintain quality. Commercial, proprietary products co-exist with their Open Source counter parts. Because of the open nature, third party tools like JRebel have been developed that can help cut development time significantly. Microsoft users, on the other hand, must rely on Microsoft for all .NET innovation.
Also, for .NET, a standard development IDE (integrated development environment) is available with Microsoft Visual Studio. This tool comprises all the things a developer needs to develop, debug, build and deploy any kind of application targeted for the .NET framework.

For Java, there are four main IDEs, Eclipse, IntelliJ Idea, Oracle NetBeans, and Oracle Jdeveloper. Instead of being tied to a single environment, on a single platform (Windows), you are free to choose the product that best suits your needs, at many different price points, and can choose to use Mac OS X, Linux, or pretty much any other platform for which a JDK exists to do your development work. However, there is no one standard tool that is available.

How to choose between .Net and Java
Both platforms provide technologies that enable a skilled developer to build quality enterprise applications. However, a technology is rarely picked based on performance alone. The following are some points that IT managers should consider when weighing the choice of .NET vs. Java:

1. Assess the complexity of the applications you will be building: Microsoft tools have an edge over Java for building applications that require rich graphical user interfaces and that deliver content to web browsers. The perception is that Java servers are better for complex applications supporting higher volumes of users.

2. Take stock of your existing developer skills and infrastructure: Take into account the existing technology landscape of your firm and the technical abilities of your workforce, because training developers and replacing existing infrastructure could be costly.

3. Weigh the importance of application portability to your product: company
Java with its multi-platform portability gives you leverage to either negotiate with an existing vendor or pick the vendor of your choice.

4. Investigate outside vendor support: As mentioned above, Java’s strength lies in libraries developed by various third-party vendors. Similarly there are a bunch of controls and libraries available for .NET as well.

5. Consider the cost of the solution: Consider the total cost of building, deploying, and maintaining the application. Factor in productivity based on choice of tools, turnaround time, and hosting costs such as users per server, cost of application servers, etc.

In conclusion, the platform to pick depends on your situation and the needs of your application. You wouldn’t go wrong picking either of those. However, the pick should not be based on which has better architecture but should be based on the strengths and weaknesses of the technologies and which system has better solution for the task at hand.

Reference links:

Tag Cloud

%d bloggers like this: