What is best way to convert desktop app to web app?
-
Bindows! Interesting! Thanks, squeek, I will study that.
____________________________________________________________________________________ The Vulcan Science Directorate has determined that time travel is impossible.
-
I don't know much about your application nor will i read all those replies to see if my answer is already said, but my answer would be a simple solution to work in between, you will have to write no code at all nor using any plugins to convert your solution, all you have to do is getting a server "PC with windows server will be enough" and a static IP and a webgate certificate from microsoft then implement the TS service and webgate "Terminal services" then people can run your application from your website as a winform application on remote desktop, I tried this option with many of my applications and it worked like charm
Thanks very much, nazmolla, Sounds interesting! I have customers who have a workstation at work, and may also want to work from home. How do you see this implementation working for them?
____________________________________________________________________________________ The Vulcan Science Directorate has determined that time travel is impossible.
-
You have already received lot of nice replies. I hope mine too adds something. BTW I am a windows forms fan so I would avoid doing this. 1. Your application must be divided in to layers I suppose. So reuse existing code after refactoring. 2. Do not try and achieve similar experience in UI as in windows application. It will be tough to give similar experience. 3. If it is related to some business process, have a look into work flow as well. 4. Do not forget to rewrite what deserves to be rewritten. 5. You can use use WCF but do not think of replacing remoting with that, try and make it SOA compliant for in future, you do not need to worry much.
Thanks very much d@nish!
d@nish wrote:
You can use use WCF but do not think of replacing remoting with that
It sounds like you have had a problem that leads you to this conclusion, am I right? My app is heavily using remoting. I was under the impression that WCF was supposed to do everything remoting does. Also, could you please expand the acronym, SOA, I'm not familiar with that. When you mention "work flow", I assume you mean using visio or similar. Again, thanks for taking the time to provide such a thorough reply.
____________________________________________________________________________________ The Vulcan Science Directorate has determined that time travel is impossible.
-
Yeah, I hear ya! But a few years ago, I was in the market for a car, and I did hesitate to buy the Lada. Could have been a good car, it even shipped with a toolkit so you could fix it yourself. But something about it didn't inspire confidence. Philosophizing here: What we really need is a "car", instead of all these throwaway junk boxes. Capitalism! Competition! It's creating huge scrap heaps! Whereas "cooperation" would produce a nice solid, reliable, simpler, and durable product, like say a stainless-steel car. I think it's similar here. What we need is a reliable product, not a glitzy one. But some of the grace built into a product to make it look cool also can end up making it seem more intuitive to the user. I've always put a lot of thought into the UI. Maybe too much, and I'm sure your comment is meant to help us balance the two concerns. I am listening!!
____________________________________________________________________________________ The Vulcan Science Directorate has determined that time travel is impossible.
BobishKindaGuy wrote:
Philosophizing here: What we really need is a "car", instead of all these throwaway junk boxes. Capitalism! Competition! It's creating huge scrap heaps! Whereas "cooperation" would produce a nice solid, reliable, simpler, and durable product, like say a stainless-steel car.
I'd like to defend the opposite opinion, but that would have to be done in the soapbox :)
BobishKindaGuy wrote:
I've always put a lot of thought into the UI. Maybe too much, and I'm sure your comment is meant to help us balance the two concerns.
Maybe I'm just being religious on the subject, but I've got a good excuse; I'm wearing a developers hat. Adding Window-dressing would be a waste of system-resources, but a good marketeer will insist on it if it helps in promoting the product. Are you familiar with the UX guide[^]?
I are Troll :suss:
-
BobishKindaGuy wrote:
Why a single form?
Well this makes setting up the PageBase class easier and allows for placement of session variables(or however you decide to persist user info).. all this will happen as a approximatively 1-1 mapping from a single form.. (basically this will allow you to write less code in your webapp. The reason for a separate ui solution(s) is common in the XNA community, it allows/forces all the (business) logic to be centrally located, and is just a safeguard to taking the easy road as opposed to conforming to a set of best practices. this will also allow you to do a compare against your existing code base, as long as you follow the basic solution and page layout (can be very handy for debugging unexpected behavior).
I'd blame it on the Brain farts.. But let's be honest, it really is more like a Methane factory between my ears some days then it is anything else...
Thanks again, ely_bob! I have quite a few tabbed-dialogs and wizards. What do you think of the idea of a webpage that aligns those vertically so the user work their way from the top down? There's a notepad replacement app that does that, and it looks really cool. (Of course, that app is a desktop app ha ha ha) Regarding the separate solution for the UI, do you mean separate project or separate solution completely? Either way, I guess the code in the form would look something like (air-coding here):
Public Class WizForm1
Private m_UI_Handler As SomeUIHandlingProject
Private Sub Done_Click (e,sender) Handles btnDone.Click
m_UI_Handler.WizForm1_Handlers.DoneClick
End Sub
End Class____________________________________________________________________________________ The Vulcan Science Directorate has determined that time travel is impossible.
modified on Thursday, July 22, 2010 5:35 PM
-
BobishKindaGuy wrote:
Philosophizing here: What we really need is a "car", instead of all these throwaway junk boxes. Capitalism! Competition! It's creating huge scrap heaps! Whereas "cooperation" would produce a nice solid, reliable, simpler, and durable product, like say a stainless-steel car.
I'd like to defend the opposite opinion, but that would have to be done in the soapbox :)
BobishKindaGuy wrote:
I've always put a lot of thought into the UI. Maybe too much, and I'm sure your comment is meant to help us balance the two concerns.
Maybe I'm just being religious on the subject, but I've got a good excuse; I'm wearing a developers hat. Adding Window-dressing would be a waste of system-resources, but a good marketeer will insist on it if it helps in promoting the product. Are you familiar with the UX guide[^]?
I are Troll :suss:
Eddy Vluggen wrote:
Maybe I'm just being religious on the subject
No, I think your thoughts are very relevant and well-thought-out. Folks like me that have to be both the developer and marketer though, have to be sensitive to both concerns. "Way cool" means different things to different people. I don't mean window dressing, but well-thought-out intuitive placement, coloring, and response of UI elements, that help the user do the job as easily as possible. For example, one of the things I have in most windows is built-in help in a collapsible panel. To me, not wow but ease of use is "way cool". However, I did get the head of one IT dept the other day say "wow" when she saw one of my screens. That made me feel pretty good... :) I'm sure you don't mean that anything that looks good is a waste of system resources. I conclude that you must be referring to color schemes that look cool to the teeny-boppers, being dark grey with orange text and animations and so on that would tend to use processor time for little other than amusement to the developer. Hey, this IS starting to sound like a soapbox rant, isn't it!! I'll shut up now. :)
____________________________________________________________________________________ The Vulcan Science Directorate has determined that time travel is impossible.
-
Eddy Vluggen wrote:
Maybe I'm just being religious on the subject
No, I think your thoughts are very relevant and well-thought-out. Folks like me that have to be both the developer and marketer though, have to be sensitive to both concerns. "Way cool" means different things to different people. I don't mean window dressing, but well-thought-out intuitive placement, coloring, and response of UI elements, that help the user do the job as easily as possible. For example, one of the things I have in most windows is built-in help in a collapsible panel. To me, not wow but ease of use is "way cool". However, I did get the head of one IT dept the other day say "wow" when she saw one of my screens. That made me feel pretty good... :) I'm sure you don't mean that anything that looks good is a waste of system resources. I conclude that you must be referring to color schemes that look cool to the teeny-boppers, being dark grey with orange text and animations and so on that would tend to use processor time for little other than amusement to the developer. Hey, this IS starting to sound like a soapbox rant, isn't it!! I'll shut up now. :)
____________________________________________________________________________________ The Vulcan Science Directorate has determined that time travel is impossible.
BobishKindaGuy wrote:
I don't mean window dressing, but well-thought-out intuitive placement, coloring, and response of UI elements, that help the user do the job as easily as possible.
That's it :thumbsup:
BobishKindaGuy wrote:
For example, one of the things I have in most windows is built-in help in a collapsible panel. To me, not wow but ease of use is "way cool". However, I did get the head of one IT dept the other day say "wow" when she saw one of my screens. That made me feel pretty good...
Hehe, that's a very cool reaction to receive! And yes, an application with a well-designed UI usually stands out. Heavy drinkers should be able to recognize a good wine :)
BobishKindaGuy wrote:
I'm sure you don't mean that anything that looks good is a waste of system resources. I conclude that you must be referring to color schemes that look cool to the teeny-boppers, being dark grey with orange text and animations and so on that would tend to use processor time for little other than amusement to the developer.
Your conclusion is almost correct, the colorscheme had a gradient lightblue instead of dark gray.
I are Troll :suss:
-
BobishKindaGuy wrote:
I don't mean window dressing, but well-thought-out intuitive placement, coloring, and response of UI elements, that help the user do the job as easily as possible.
That's it :thumbsup:
BobishKindaGuy wrote:
For example, one of the things I have in most windows is built-in help in a collapsible panel. To me, not wow but ease of use is "way cool". However, I did get the head of one IT dept the other day say "wow" when she saw one of my screens. That made me feel pretty good...
Hehe, that's a very cool reaction to receive! And yes, an application with a well-designed UI usually stands out. Heavy drinkers should be able to recognize a good wine :)
BobishKindaGuy wrote:
I'm sure you don't mean that anything that looks good is a waste of system resources. I conclude that you must be referring to color schemes that look cool to the teeny-boppers, being dark grey with orange text and animations and so on that would tend to use processor time for little other than amusement to the developer.
Your conclusion is almost correct, the colorscheme had a gradient lightblue instead of dark gray.
I are Troll :suss:
You are way cool :)
____________________________________________________________________________________ The Vulcan Science Directorate has determined that time travel is impossible.
-
Mycroft Holmes wrote:
the latest MS demos seem to lean almost exclusively to EF as the DAL
Sorry, what is EF?
____________________________________________________________________________________ The Vulcan Science Directorate has determined that time travel is impossible.
MS Enterprise Library, my error. The slap happened over 10 years ago and it was performed by another senior dev who pointed out that we did not need remote connection as a connectionstring would suffice nicely.
Never underestimate the power of human stupidity RAH
-
I work alone, and I have developed a huge desktop app, probably a quarter million lines of code, that has evolved for well over 10 years. I keep thinking it would be nice to convert it to a browser UI, but have watched many technologies go by, like asp, ajax, and now there's webmatrix, and sometimes I wonder whether I should take the leap, or whether it may cost me another 10 years to rewrite it for the web. It uses .NET remoting, and is multithreaded, so wcf and parallel programming come to mind as well. Fear promotes a lack of action, but knowledge defeats fear, so I thought I'd submit this general question to the "big team" out there in the code project universe. :)
____________________________________________________________________________________ The Vulcan Science Directorate has determined that time travel is impossible.
My thoughts, if you find them useful. While the technical aspects are important, you also need to consider the business aspects. In general people pay less for things over the web, but you probably have access to more potential customers. So it depends on your market size, how large is your current customer base and does it have the potential to grow larger by going web. If your market is a niche then it may be lttle point. WinForms to Silverlight Experience ==================================== We have an airplane flight mapping WinForms app and have done a basic silverlight version. What we have learnt is that Bing maps can't handle the sheer number of points we would like to draw, so we often go into some kind of compromise, less frame per second etc. This is just an example of the broader point that for graphics intensive apps the desktop is a better performer. The other thing we noticed is that it was much easier to make a series of silverlight app as seperate web pages to do only one or two functions from our WinForm app. When we tried to combine many functions together into one silverlight page then little things started happening like the datagrids started slowing down when scrolling. I think this was due to a few reasons, unoptimised code, inexperience with Xaml, extra code complexity, lack of maturity of silverlight tools and controls. We still code in vs2008 and its xaml parsing is terrible,badly formed xaml can be hard to find. I assume its got better in vs2010, but i have heard bad reports of vs2010 and i await a service pack. If you think it it going to take you 1 year to migrate then silverlight will be mature by then i would suspect. I have seen the silverlight related products mature even in the 12 motnhs we have used it. If you do go the silverlight path I would choose one aspect of your app and move it first to silverlight as a test case. We are happy with the final result as the UI is much easier to use than our WinForms app and has all the deployment and update benefits you get from a web app.
-
Eddy Vluggen wrote:
Maybe I'm just being religious on the subject
No, I think your thoughts are very relevant and well-thought-out. Folks like me that have to be both the developer and marketer though, have to be sensitive to both concerns. "Way cool" means different things to different people. I don't mean window dressing, but well-thought-out intuitive placement, coloring, and response of UI elements, that help the user do the job as easily as possible. For example, one of the things I have in most windows is built-in help in a collapsible panel. To me, not wow but ease of use is "way cool". However, I did get the head of one IT dept the other day say "wow" when she saw one of my screens. That made me feel pretty good... :) I'm sure you don't mean that anything that looks good is a waste of system resources. I conclude that you must be referring to color schemes that look cool to the teeny-boppers, being dark grey with orange text and animations and so on that would tend to use processor time for little other than amusement to the developer. Hey, this IS starting to sound like a soapbox rant, isn't it!! I'll shut up now. :)
____________________________________________________________________________________ The Vulcan Science Directorate has determined that time travel is impossible.
The discussion is now going beyond the original subject( best way to convert desktop app to web app)... So, The bottom line (about original subject) is "We haven't been there yet!" Is that right? :) I think Webmatrix is good to apply. Not sure that it's sufficent to apply.
-
I work alone, and I have developed a huge desktop app, probably a quarter million lines of code, that has evolved for well over 10 years. I keep thinking it would be nice to convert it to a browser UI, but have watched many technologies go by, like asp, ajax, and now there's webmatrix, and sometimes I wonder whether I should take the leap, or whether it may cost me another 10 years to rewrite it for the web. It uses .NET remoting, and is multithreaded, so wcf and parallel programming come to mind as well. Fear promotes a lack of action, but knowledge defeats fear, so I thought I'd submit this general question to the "big team" out there in the code project universe. :)
____________________________________________________________________________________ The Vulcan Science Directorate has determined that time travel is impossible.
I am doing that with an application as we speak. It will take awhile. Web applications architecture is completely different. If your application is millions of lines of code and it took you 10 years to develop it will take you at-least that to convert it to a web application - if you can duplicate all of the functionality to start with. Web development is cool, but very work-intensive. It's not WYSIWYG in the same way a Windows application is. You're not talking conversion here, you're talking complete rewrite. Completely different programming model. -Max
-
I'm a winforms person by preference and have avoided working with the web, thankfully. However we have just made the decision to move to web delivered UI for all new development. To reverse a 10yo, still evolving app, thats going to be tough for a 1 man show. A lot would depend on your customers, do you work in a company or do you sell the app as a commercial product? Who is going to foot the bill? Mind you a total rebuild improves any application. I know any app I built 10 years ago would benifit from it.
Never underestimate the power of human stupidity RAH
It was the same with me. I avoided web development for a good long time. I'm only just now really getting into it with a new application I'm developing. It's cool - but it ain't the same as WinForms development - not by a long shot. You had better be ready to edit HTML even with .Net 3.5 or 4.0 to get your forms working. It ain't WYSIWYG - and you have to think completely different. Instead of event-driven, you're talking page lifecycle. Smokes the brain for awhile until you get it. -Max
-
I am doing that with an application as we speak. It will take awhile. Web applications architecture is completely different. If your application is millions of lines of code and it took you 10 years to develop it will take you at-least that to convert it to a web application - if you can duplicate all of the functionality to start with. Web development is cool, but very work-intensive. It's not WYSIWYG in the same way a Windows application is. You're not talking conversion here, you're talking complete rewrite. Completely different programming model. -Max
If you have a sound database think about using one of the good code generation tools. there are several good ones out there and will deliver professional looking sites with decent security models and n tier architectures. What ever you spend on a good tool will recoup it selve in learning and development times eg std code models the things like ajax several of the tools also have wyswig design features and work with visual studio and no propreitory coding or licensing. I use Ironspeed enterprise editon www.ironspeed.com but there are several others check out things like lightspeed for another option http://www.mindscape.co.nz/ You only have do add your proprietory logic which is usually a small proportion of your code. The major part is learning how to get the best out of the tools and all the options offered within It pays to down loat the demos and play and read the help the full versions are really powerful for the average developer needing to get a job done. Gerard
Gerry
-
Thanks very much, nazmolla, Sounds interesting! I have customers who have a workstation at work, and may also want to work from home. How do you see this implementation working for them?
____________________________________________________________________________________ The Vulcan Science Directorate has determined that time travel is impossible.
Thanks for your interest, for your customers the solution sure will work but you have to take into consideration the cost of the server and the TS webgate certificates, so if they only want to access their own workstations there are a couple more solutions they can do including using the teamviewer, anyway you can try it without paying anything first by downloading a trial version of windows server 2008 R2 and implement the TS service and apply a temp certificate for free and if it worked as you like then buy it you can find detailed info about TS and remoteapp and their step by step implementation here http://technet.microsoft.com/en-us/library/cc753844(WS.10).aspx[^]
-
Thanks again, ely_bob! I have quite a few tabbed-dialogs and wizards. What do you think of the idea of a webpage that aligns those vertically so the user work their way from the top down? There's a notepad replacement app that does that, and it looks really cool. (Of course, that app is a desktop app ha ha ha) Regarding the separate solution for the UI, do you mean separate project or separate solution completely? Either way, I guess the code in the form would look something like (air-coding here):
Public Class WizForm1
Private m_UI_Handler As SomeUIHandlingProject
Private Sub Done_Click (e,sender) Handles btnDone.Click
m_UI_Handler.WizForm1_Handlers.DoneClick
End Sub
End Class____________________________________________________________________________________ The Vulcan Science Directorate has determined that time travel is impossible.
modified on Thursday, July 22, 2010 5:35 PM
well Personally I hate to do more vertical scrolling then absolutely necessary... I'd recommend either a presenter approach (the page reloads with what you want to present) or use a layout similar to what you describe, and use
tags to hide/show just "like" you would be doing in a tabbed document(this makes layout easier and I prefer the
approach because it is a lot more straightforward.) If the wizard is a fundamental part, you may want to treat that as a flash app(however I am not familiar with these approaches), that way you can take control of the entire screen, grey out the background browser, and have a specialized solution just for your wizard. and this would be plug-able into your webapp...so... I meant a one solution with ~3 projectss, a library(or folder of libraries), and 2 UI: winforms & webapp. then if you want to make some kinda mobile app down the road you can just add it to the solution, and add some dependencies and probably reuse a lot more code that way...
I'd blame it on the Brain farts.. But let's be honest, it really is more like a Methane factory between my ears some days then it is anything else...
-
MatrixDud wrote:
A well developed .NET desktop app should be easily ported to ASP.NET
I'd love to get some more comments on this. With SL, WebMatrix, Ajax, and a whole confusing array of other stuff that is all "newer" than ASP.NET, I hesitate to jump into an ASP.NET project unless it is really the best way to go. For example, has MS produced good-looking controls for ASP.NET? If ASP.NET "had it all", why did the world need Silverlight? (The comment about calculation-intensive is not a concern for my app, though. It's more about interactivity between server and client. E.g. The user clicks a button on the UI and this causes the server app to control a piece of equipment interactively.)
____________________________________________________________________________________ The Vulcan Science Directorate has determined that time travel is impossible.
Silverlight is Microsoft's answer to Adobe Flash. You could write applications in it, but ASP.NET is the preferred solution. ASP.NET 3.5 is modern and does have quite a few nice controls. What doesn't exist you can make. You can always buy pre-made custom controls from vendors to save time. If you are familiar with .NET then there will not be much of a learning curve moving to ASP.NET. You should investigate and get familiar with AJAX. AJAX avoids the constant page refreshes and can make a web application feel much more like a desktop app.
-
peterchen wrote:
why is there such a huge gap?
Please elaborate on what you mean by gap, since that is probably a question that needs answering.
____________________________________________________________________________________ The Vulcan Science Directorate has determined that time travel is impossible.
Moving an app from desktop to server, everything changes: We have different frameworks, different libraries, different tools, etc. Even if you say I want to write an app that runs both standalone and on the network, where do you start? Where is the mini browser that you can just point to a folder of php/asp/aspx files, without having to configure a port? (Silverlight makes the first attempts at running locally, niiice. Still, the straightforward experience is not yet there.) .NET has tons of serialization code, database adapters, ORMLINKVOODOO, and whatnot. But where's the library that lets me write a local app, or I enter an URL/network path and BLAM! Everyone in the office sees and manipulates the same data. (SQL compact seems to compact closest to this. For which the IDE integration still needs a magic command line roundtrip to make it work). Why, as a developer, is my first decision for a product whether it should be "web based" or a "rich client"? Why as a buyer, is obe of my first decisions whether I want a "rich client and shuffle around documents", or "something thatruns on our local web server, and I need the nerd squad to install"? I don't say it's impossible, but once you realized there are a lot of applications that you can try out and start with locally, and might to make available to everyone in the department later, it seems unecessarily hard.
Agh! Reality! My Archnemesis![^]
| FoldWithUs! | sighist | µLaunch - program launcher for server core and hyper-v server. -
GAP? I'm not sure what you are referring to when you say 'gap'. I am assuming you mean why did they make such a big JUMP from all server side based stuff to forcing you all of a sudden to a totally separated model? I am not sure if there was any other way it could have been done gradually. If I am not understanding you then let me know.
Ray Cassick wrote:
I am assuming you mean why did they make such a big JUMP from all server side based stuff to forcing you all of a sudden to a totally separated model?
Yes, basically. See also my other reply[^].
Agh! Reality! My Archnemesis![^]
| FoldWithUs! | sighist | µLaunch - program launcher for server core and hyper-v server. -
I work alone, and I have developed a huge desktop app, probably a quarter million lines of code, that has evolved for well over 10 years. I keep thinking it would be nice to convert it to a browser UI, but have watched many technologies go by, like asp, ajax, and now there's webmatrix, and sometimes I wonder whether I should take the leap, or whether it may cost me another 10 years to rewrite it for the web. It uses .NET remoting, and is multithreaded, so wcf and parallel programming come to mind as well. Fear promotes a lack of action, but knowledge defeats fear, so I thought I'd submit this general question to the "big team" out there in the code project universe. :)
____________________________________________________________________________________ The Vulcan Science Directorate has determined that time travel is impossible.