Header Menu

6 Best Practices in Migrating AngularJS to React

Converting an AngularJS application to React can be a significant undertaking, as the two frameworks have different architectures and concepts. However, it is possible to migrate your application from AngularJS to React with the right approach. Here are some general steps you can follow to convert your AngularJS application to React: Please note this is a general idea about the process and you may need to make some adjustments depending on the specific of your application. It’s also worth considering whether a complete rewrite of the application is a better option in the long run, or if it is worth only to migrate the parts of the application that need to be updated, this will depend on the specifics of the projects and the resources available.

G. N. Shah November 4, 2020 No Comments

How to Virtualize your VFP Application

The time really has come to virtualize your VFP application. We are not talking about migration or conversion or bringing in a 3rd party tool to replace it. Rather, we suggest virtualizing it and giving your perfectly fine-tuned VFP application additional years of very productive life, within a much more modern setting and UI. This may well be your best option! Read this paper – we will go through all the major issues to keep in mind in considering such a process, and along the way, you may find it is indeed your best option. The benefits are considerable, and the downsides are very limited, as we describe in detail in this paper. It is definitely a low cost and secure option both upfront and on a continuing basis. We also provide a how-to-do guide for virtualizing a VFP application using one of the best cloud services out there – AWS AppStream 2.0.  To start off we describe what we mean by application virtualization, showing different examples of virtual environments. Clearly, the overall virtualization market is booming (even more so since the onset of the C-19 pandemic), and we show some industry statistics that confirm that. The market is growing rapidly because most industry players now recognize the significant benefits of application and desktop virtualization, and as the major players continue to improve their cloud environments, we expect benefits will only grow. There are a number of prominent applications and desktop virtualization services available including: Amazon’s AppStream 2.0 and Workspace; Azure’s RemoteApp and Windows Virtual Desktop; Cybelesoft’s Thinfinity Virtual UI; and FoxinCloud as well as other available services. With specific focus on VFP apps., we show the pros and cons of each of these options. In considering virtualizing a VFP application, there are several major issues you need to consider and address. We discuss these, along with describing a long list of the common issues involved in setting up a virtual VFP application. The final section provides a guide to VFP virtualization for the specific use case of AWS AppStream 2.0. We provide a step-by-step guide to application setup, including the important process steps of QA, application file sharing and database mapping, and printer and backup services. If you have not already done so, now may be the time to virtualize your VFP application! Why Application Virtualization / Environment Today COVID-19 is forcing organizations to move their local desktop application(s) to cloud/virtual servers at an accelerating rate. The imperative often heard is “Virtualization is a Necessity”. It helps businesses with scalability, security and management of their applications and global IT infrastructure, and in addition businesses save significant costs by consolidating their infrastructure needs, both currently and more importantly in the future. What is Virtualization? Before discussing the different categories of virtualization in detail, it is useful to define the term in the general sense. Wikipedia uses the following definition: “In computing, virtualization is a broad term that refers to the abstraction of computer resources. Virtualization hides the physical characteristics of computing resources from users, be they applications, or end users. This includes making a single physical resource (such as a server, an operating system, an application, or storage device) appear to function as multiple virtual resources; it can also include making multiple physical resources (such as storage devices or servers) appear as a single virtual resource…” Types of Virtualization Below we distinguish 6 different types of virtualization and provide short summaries about each. Server virtualizations, also called hypervisors, are classified as one of two types: Virtualization is not only a server domain technology. It is being put to a number of uses on the client side at both the desktop and application levels. Such virtualization can be broken out into four categories: The benefits of desktop virtualization include: Network virtualization is similar to server virtualization, except instead of a single server, in this case we are encompassing an entire network of computing elements. In general, benefits of network virtualization include: Implementation of Storage Virtualization includes several different technology options: Host-Based with Special Device Drivers; Array Controllers; Network Switches; Stand Alone Network Appliances. The general benefits of storage virtualization include: Implementations of service/application virtualization include the following 3 options: Here the benefits are analogous to those shown earlier under desktop and application virtualization, namely: high availability and optimized resource utilization. In summary, it should now be apparent that virtualization is no longer just a server-based concept. The technique can be applied across a broad range of computing options including virtualization of entire machines on both the server and desktop side; applications as well as desktops; storage components; whole networks; and even application infrastructure in its entirety. Moreover, virtualization technology is continuing to evolve and get better in many different and important ways, so the impetus to virtualize will only make more sense as time goes on. 2020 State of Virtualization Technology The market adoption of virtualization continues to increase across a diverse range of markets and industries.  In particular, there is an accelerating adoption rate by those industry segments that have yet to embrace virtualization. The recent entry of Microsoft into the bare-metal hypervisor space with Hyper-V is a sign of the technology’s overall maturity. The current state of company utilization of each of the different types of virtualization is shown in the bar-chart below, along with projections of increased utilization over the next 2 years.[1] Not unexpectedly, the server virtualization adoption rate among corporations is nearly 100%, while for application virtualization, the current adoption rate is 39% and expected to increase markedly (43%) over the next two years to 56%. The adoption rates for all 6 types of virtualizations shown below are averages over both enterprises and small businesses. For application virtualization and desktop virtualization there are significant differences in utilization rates between these two sectors. As shown in the chart, average application virtualization adoption is expected to grow from 39% today to 56%, while average desktop virtualization goes from 32% today to 44%. For enterprises, adoption rates are significantly higher. Enterprise

Automate Code Generation with Innovatix’s Digital Sandbox

Innovatix has a dedicated practice when it comes to the migration of legacy technologies to new .NET based platforms. Over the past decade, Innovatix have modernized numerous mission critical legacy applications to the latest technology stack. This includes technologies such as: Visual FoxPro (VFP) Classic ASP Visual Basic 6 (VB6), and Database Migrations   To facilitate these modernization projects, Innovatix has created a suite of utilities designed to speed the migration as well as ensure higher accuracy and complete testing.   We follow a 5 stage migration methodology as applicable in our Digital Sandbox: Stage 1 – Code Matrix: Code Analysis Using Innovatix’s Code Matrix analyzer tool we analyze your Legacy Application and produce a comprehensive matrix that serves as a starting point for the development team. This data helps us chart out the complexity of the application, the duration for conversion and associated cost. Clients are now capable of making an intelligent decision as to which migration strategy fits their business. Stage 2 – SpecGenerator: Generating Code Specifications Creating specifications documentation with Innovatix’s SpecGenerator tool which is a system analysis document generator. By verifying the specification documents developers can understand the design attributes and business rules, along with validations and DBF information available in the legacy application. Stage 3 – DataMorph: Migrating Legacy Data Structures This process involves database conversion. Innovatix’s DataMorph tool migrates the legacy database structure and imports data to an equivalent target database. It enables field mapping between the legacy data types and equivalent target data types. You can also export legacy DBF data into a new target database or overwrite the contents of an existing database on the target database server.  Stage 4 – CodeMorph: Generating .NET Code Here we convert the legacy application using Innovatix’s Code Morph tool. This tool reads the legacy codes and creates new .NET codes using a multi-tier application framework (mostly using Dazzle our custom-built .Net Foundation Framework). It shows the number of reports, forms, menus, and program files. With this tool, developers can easily convert large applications to the .NET framework with better accuracy. Stage 5 – Selenium: Accurate and Complete Testing We perform automated Selenium Testing for web-based applications by comparing the actual results with the expected results. Our test strategy involves performing legacy code analysis and preparing detailed test cases using which we perform detailed testing of screens. By performing automation testing we ensure that the new application performs as expected. Digital Sandbox – How it works With Digital Sandbox authorized developers take a section of complex code and let the migration engine produce clean code as an output. Then opening this in Visual Studio the developer is guided through the steps to manually fix specific elements. When performing a migration, we use our Code Morph utility to migrate the vast majority of codes. The Digital Sandbox is used for problematic sections of the code that require manual intervention. This enables the developer to focus on areas that need attention quickly, resolve them in the sandbox, and then apply them within the larger codes. Visit Innovatix‘s website to learn more about this suite of utilities we utilize during our migrations.

Joe Rafanelli January 19, 2017 No Comments

Legacy Assessment Is Imperative For Smooth Application Modernization

Today, it is a major concern among business organizations that own legacy systems to make decisions about the destiny of their software application. These systems are critical to the functioning of a business, even though the cost of running legacy system is often not justifiable. An overall assessment of the system is required to determine if such systems are worth keeping. Under these circumstances a pre-modernization assessment becomes imperative for a seamless and successful application modernization. Various parameters need to be carefully examined from its technical, business and organizational perspectives to make a judicious choice.  Some of the approaches employed for assessing a legacy system include: Discard the system completely when business is no longer dependent on the system. Continue maintaining the existing system as long as it works fine and not many changes are required. Transform the system to improve maintainability as it is inevitable to avoid changes that affect the system quality. Replacing the existing system with a new one when the old system becomes obsolete and the new system can be built cost effectively. Suspend the system and use it as a part of a new larger system. Taking decision on which approach is most suitable demands for a thorough assessment of the proposed Legacy system. System should be subjected to both technical and economic aspect in order to justify each decision. Technical aspect would include identifying the software features relevant from a maintainer point of view. Economic aspect would include characteristics relevant from a business or management point of view. An in-depth analysis of this extent is a prerequisite to avert the risk of producing an inaccurate assessment. ASSESS YOUR APPLICATION NOW A broad assessment of the legacy system would reveal the following two categories: Business value assessment – includes assessing the system’s functionality and performance, quality of services provided, supported business processes, dependability, and system outputs. System quality assessment – considers all the components of the system both environment and application software. Environment assessment – supports both hardware and software platforms in terms of performance, maintenance costs, interoperability, failure rate, supplier stability, etc.  Application software assessment – supports quantitative data like the volume of data, system change requests, different user interfaces, etc. It also addresses factors in application software like the programming language, configuration management, and test data. During the assessment one needs to find out what works and what doesn’t, based on which strategies are determined to upgrade the systems. Advanced proprietary tools would help improve application visibility by bringing about awareness of application functions and reducing risk during the modernization process. Application efficiency can be increased by retaining the applicable codes and functions and eliminating the unwanted ones, which reduces the overall enhancement and maintenance costs. Process improvements can be brought about only by following adequate guidelines laid down as a result of analyzing the application. When you partner with Innovatix Technology Partners, we conduct a thorough assessment of your legacy system. We follow a combination of modernization and transformation techniques referred to as hybrid approach to modernize the legacy applications. We know that success is only possible when we have an in-depth understanding of your business, before we begin work. ASSESS YOUR APPLICATION NOW

G. N. Shah March 22, 2016 No Comments

ASP.NET MVC6 – A Complete Rewrite Of The Framework.

Microsoft has come up with ASP.NET MVC6 altering its popular .NET web framework. Keeping the fundamental concepts of Model View Controller intact, the new release is a complete ground-up rewrite of the framework bringing exciting changes coveted for developers. Most of the underlying layers of the framework have been reengineered in MVC 6.The key aspects attained with this rewrite are improved modularity, cross platform adoption and web standardization.  MVC 6 allows developers to create middleware that interacts directly with the request pipeline. MVC 6 is based on the Open Web Interface for .NET (OWIN) that provides pipeline infrastructure. Cross platform compatibility of MVC 6 allows hosting them on Linux or OSX platforms. Microsoft also supports new tools and workflows in Visual Studio and MVC 6. Let’s go through what’s new in MVC 6. VISIT OUR WEBSITE The MVC 6 project brings vital changes to: Project template In MVC 6 project template, right from the root folder and below, the project structure has been revised to align with ever changing nature of the web. The basic elements were improved with MVC 6. GruntJS is a task runner that enables you to build front-end resources such as JavaScript and CSS files. NPM and Bower together with NuGet allows developers plethora of options for bringing modular components to an application. JSON format for configuration is standardized however, the core MVC remains untouched.  Routing In MVC 6, Routing continues to improve upon advances made in MVC 5 and comes with multiple options for mapping URIs. Routes are defined in the Configure method of startup.cs. Based on application needs convention-based and attribute-based routes can be enabled. Routes defined during configuration are convention based routes whereas attribute-based routes makes use of attributes to define routes to provide finer control over the URIs in web application. Configuration MVC 6 doesn’t have a Web.Config file and the new configuration comprises of variety of options, including JSON based files and environment variables. MVC 6 follows a more modular development approach and the new configuration options are provided with Startup routine in startup.cs. With modern web practices, JSON format looks ubiquitous and the new configuration style provides greater flexibility. Dependency Injection Dependency Injection (DI) was there in previous versions of MVC, however with MVC 6 it has become easier to implement. However, the new DI container lacks robust configurations and also it’s easy to replace with feature-rich third-party tools. TagHelpers TagHelpers, although syntactically similar to HTML uses elements, and attributes are then processed by Razor on server. TagHelpers provides better developer experience with virtually seamless creation of client and server side HTML.  Angular JS AngularJS is one of the most popular client-side frameworks for building Single Page Applications (SPAs). Visual Studio 2015 includes templates for creating  AngularJS modules, controllers, directives, and factories. You can combine and minify all of your AngularJS files automatically whenever you perform a build. You can interact with an MVC 6 controller from an AngularJS $resource using REST. Cloud Optimized Framework MVC 6 supports a cloud-optimized framework and is just suitable framework for development of cloud based applications. The core advantage of using cloud optimized framework is that one will not have to upgrade the .NET version on their system for the sake of a single website. The runtime will automatically pick up the correct version of library when these MVC 6 applications will be deployed to the cloud. xUnit.net In previous versions of ASP.NET MVC, the default testing framework was the Visual Studio Unit Testing Framework (sometimes called mstest). This framework uses the [TestClass] and [TestMethod] attributes to describe a unit test. ASP.NET 5 uses xUnit.net as its unit test framework. This framework uses the [Fact] attribute instead of the [TestMethod] attribute (and no [TestClass] attribute]) Microsoft with ASP.NET MVC 6 leveraged familiar concepts by following theoretical roots of MVC and built a framework for future web development. With improvements in key areas, MVC 6 helps developers create top notch solutions to future business. For more insights on ASP.NET MVC 6 and related technologies, VISIT OUR WEBSITE