What is WebMAP?
WebMAP automates the migration of .NET Windows Forms applications from desktop to a modern web architecture, using industry standards like ASP.NET Core, Angular, HTML5, CSS, and more. WebMAP is different from other tools because it creates high quality native HTML5/Angular code, without any use of binaries, runtimes, or browser plugins. As opposed to a manual rewrite, WebMAP gives customers a jumpstart on a new platform by providing a new fully functional app that can be tuned and extended to take advantage of new features.
What's new with WebMAP?
With version 5.0, WebMAP brings big improvements in code readability, app performance, and automation. You can learn more starting here.
What does WebMAP do?
WebMAP migrates Winforms/.NET source code (either C# or VB.NET) from a client-server architecture to a new code base that is architected to be a modern web application. After migration the source code must be compiled, debugged, and deployed on a web server. Because WebMAP uses automation to transform code, fewer defects are created compared to a manual rewrite. You get a new code base, completely readable and maintainable, using state-of-the art languages, frameworks, and patterns without introducing defects in your business logic. WebMAP can shave up to 80 percent of the time and cost needed to "webify" a Windows desktop application.
Why would I want to use this?
There are many advantages to moving captive desktop apps to a web architecture. Users can run the app on any browser (so virtually any hardware platform). Deployment is simpler, quicker, and cheaper. You can host from public, private, or hybrid cloud. You can implement DevOps, continuous improvement and continuous delivery (CI/CD), and application health monitoring. Rewriting desktop apps into web apps is risky, time consuming, and expensive. WebMAP changes the calculus to make it possible.
Does WebMAP migrate everything?
No. WebMAP builds a rich architecture for your application using modern patterns and technologies like ASP.NET Core on the server side, Angular with Progress Kendo for Angular on the client side, with JSON, CSS, AJAX, and more. Some desktop operating system capabilities may not be supportable on a web application (printing, local storage, hardware access, etc). Some manual changes are inevitable when moving from desktop to web; our engineering team will be happy to consult with you on the extent of your needed changes and how to best effect them.
How do I know if my code will migrate well?
The assessment tool will tell you how ready your code is to migrate without the need to upload any code. Download the assessment wizard to analyze your desktop source code to find out how ready it is to migrate to cloud native.
How does WebMAP work?
What are the system requirements?
WebMAP relies on contemporary tools like Visual Studio (Community or Enterprise Edition) and Visual Studio Code, as well as many nuget packages. Full instructions are provided with your license.
What architecture does WebMAP support?
The architecture of the resulting app uses ASP.NET Core or Apache Tomcat as a server, with an Angular front end (HTML plus CSS). We currently use Progress Kendo for Angular for client UI controls. Communication between client and server is JSON and WebAPI.
Yes, currently WebMAP uses Angular with Progress Kendo for Angular; note this is a licensed product and if you use it beyond the trial or evaluation stage you will need to purchase a license.
When you start a migration you have to choose which framework you would like to target.
What about third party controls?
Many Microsoft and some third party controls are supported. When your run our assessment tool, we can tell you what can and cannot be mapped. Customizations are available to map patterns and controls that are unique to your code.
Do you support generics, partial classes, structs, etc.?
WebMAP fully supports C# 6.
Is the resulting interface responsive?
WebMAP does not create a responsive app. Responsive interfaces are usually not a good fit for most desktop apps once they are migrated to the web. However, since the client is pure Angular with HTML and CSS, it's possile to build responsivenss into the client code.
How similar is the resulting application?
The resulting application is “functionally equivalent” to the original application. That means that it will look and act the same as the originating application. Since layout is controlled by cascading style sheets (CSS) you can immediately make modifications to how the app looks on different form factors.
Can I convert VB.NET?
WebMAP can handle converting C#/Winforms, VB.NET/Winforms, and PowerBuilder.
I want to host the resulting web app on a Linux server. Is this possible?
Yes, we use ASP.NET Core so it can be hosted on Apache Tomcat or IIS.
Why do I get errors in the generated code?
Desktop infrastructure and web/cloud infrastructure have some fundamental differences and functional gaps. However, we automate as much as possible while providing high quality, maintainable code.
I want to change the login mechanism to use [ASP.Net Auth/OAuth/FB Auth/Google Auth]. Can this be done during the migration?
Yes, by using our migration services since the change from your existing authentication/authorization mechanism will have to be custom.
Will the new site be as fast as the app?
A Web application has a different user paradigm than a desktop app--among other differences, it has to share memory and processor resources with every other session; on a desktop normally the execution thread is supporting only one session. Additionally, the client and back end logic must communicate over a network of indeterminate performance; this can introduce latency in response. Our architecture is designed to make the Web app work as efficiently as possible but tuning may be required to get the best performance.
How do you handle access to my [scanner/printer/x-ray machine] once the app is on a web architecture?
We have several options here. We can have an OCX/applet or a client app that allows the web app to interact with devices or we can provide a web based solution or in some cases these devices can be connected to a shared server. There are workarounds that vary from app to app.
How do you handle Office APIs or Office Interaction in my application?
We are still analyzing the best options for automating the migration. Meanwhile we provide upon request guidance and examples for manually changing your code and we can quote for a migration customization for your particular needs. If your application just uses the Office APIs to read and/or write Office documents, then you can replace the Office APIs by libraries like:
If you need app interaction that might require moving code to the client and using an extension like an OCX, Browser Extension or applet in order to provide communication between browser, Office, and server, we can provide examples of these techniques upon request.
If you start from .NET, do you also upgrade the .NET framework?
Yes, by default WebMap generates a solution based on ASP.NET Core, targeting the .NET Framework 4.5
How can I get support?
Please fill-out our talk to an engineer form if you have any technical questions. We'll set up a technical call and clear any doubts you might have.
What does WebMAP cost?
The trial and assessment are free; an actual migration cost depends on the size of your app. You can find more information HERE.
How do you estimate the remaining effort after the migration?
We use the assessment tool to measure the different PME (properties, methods and events) used by the application and collect some other statistics. We then use that to compare with our tables of currently supported PMEs and features, and we estimate the amount of work to add the missing elements or solve other important challenges detected during assessment. That provides a ballpark number.
How do you handle QA when you do the migration?
The goal of the project is a functionally equivalent version of your current application but moved to the new platform and architecture. The standard methodology assumes our clients deliver us a set of test cases along with the source code of the application that we will migrate. Tests which run on the current app will pass on the new app; however, in the cases where the specific test doesn’t map exactly to HTML (for example, the test assumes the app is connected to a local hardware device), new replacement tests must be devised. Our QA department will run whatever test suites you give us.
Can we do our own QA?
Certainly. We have to do some basic validation after building the app that it runs, but you can have your own QA department handle most of the work and log bugs in our database. Also, we have different engagement models where we can do just basic testing on the application or where we can execute the full set of test cases. Your QA team involvement will depend on the engagement model we define for the project.
We want you to do the migration, but corporate security policies prevent the code from leaving our facility. Can you handle this?
Yes, we work with this situation frequently. We can put engineers on site at your facility, and also we can use a VPN to access your code on your source control system.
How do I sell this to the “users”? The migration does not give them any benefit.
It definitely gives them benefits. End users get easier installation as well as the major benefit of mobility. They will be able to access the system from their preferred browser and even from their tablet or phone.
We want to change the application for the new platform. Does it still make sense to migrate?
Yes. As migration experts we are already used to that reality and the Migration Blueprint will establish how, when, and how often we will integrate application changes and any other steps.
I don’t have time to learn all this stuff.
We will happily keep your new app current for you. Please contact us at firstname.lastname@example.org for more information.
Can you host my new web app?
Yes, we can provide web hosting, IaaS, etc. with major cloud vendors so you don’t have to worry about hardware, uptime, deployment, or support.
Please schedule a call with one of our engineers if you have any technical questions.
We promise to answer immediately.