What is WebMAP?
WebMAP automates the migration of C#/.NET applications from desktop to 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 refined 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 C#/Winforms/.NET source code 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 and deployed on a web server. Because WebMAP uses automation based on machine-learning algorithms, 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 UI on the client side, aspect oriented programming (aka weaving), JSON, CSS, AJAX, and so forth. It will attempt to map your .NET class properties, methods, and events (PMEs) to comparable PMEs in HTML, but some PMEs may not have been mapped yet while others may not be supportable on a web application. 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. You can run an assessment on your C#/Winforms app by registering on studio.mobilize.net and clicking "Mobilize my App".
Why do you use weaving?
Weaving or code injection is a part of Aspect Oriented Programming. This is a well-known coding technique to reduce clutter in source code. Many engineering concerns that surround an application on the web can be removed from the source code and injected at compile time. To do this we use the Microsoft Roslyn open compiler platform. The source code the developer works with strongly resembles Winforms/C# code; at compile time new C# files are created that include the necessary complex code to handle state, object lifetime, and typical desktop application concerns like modality.
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 UI for client UI controls. Communication between client and server is JSON and WebAPI.
Yes, currently WebMAP uses Angular 5 with Progress Kendo UI. Note Progress Kendo UI 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.
How does the assessment tool work?
The assessment tool will download from your browser and run on your code base to create meta data (XML) about the frequency and distribution of PMEs in your application. That metadata is then uploaded to our portal for analysis; following the analysis you can review the output in your solutions page. The assessment tool does not upload any code, only data collected about your code.
Is there a size limit on my application?
Not at this time. You can assess and upload an application of any size.
What exactly do I upload?
You must have a Windows application that uses only C# source code and uses Winforms for UI (not WPF). Your app must have been successfully compiled in Visual Studio 2012 or later. All references need to be present in the code tree. You must have the actual application created by Visual Studio (debug version) in the \bin directory. We support uploading a zip file containing all your code and the actual application; you can drag and drop it inside the portal or you can request secure FTP credentials and upload that way.
Connecting to SFTP
You must set your FTP client to use TLS Explicit Encryption. If you use Filezilla, your configuration screen should look like this:
If you use WinSCP your screen will look like this:
You will see a notice warning you that the certificate being used for the encryption is unknown to you (that is, you haven't encountered it before). You must agree to accept the certificate in order to connect to the secure FTP server.
If you are unable to connect or have any questions, please contact our engineering team at email@example.com.
Can I convert VB.NET?
It is not currently supported in WebMAP but our services team can convert VB.NET projects to C# and from there to HTML5.
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.
Can you generate REST services for my application’s functionality?
This is something we’re looking into automating. In the meantime, creating services layers is a natural follow-on project that is simplified with the improved architecture.
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 visit our support forum if you have any technical questions. Chances are good that we may already answer your technical questions. If not, we promise to answer immediately.
What does WebMAP Cost?
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 visit our support forum at forums.mobilize.net if you have any technical questions.
Chances are good that we may already answer your technical questions.
If not, we promise to answer immediately.