|
A well developed .NET desktop app should be easily ported to ASP.NET. You do however want to analyze the server requirements and the load that it may encounter. If it's a calculation intensive application (ie: Scientific, 3D graphics, etc) then it may be better as a desktop app.
|
|
|
|
|
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.
|
|
|
|
|
Thanks, MatrixDud,
I know there must be some benefit in ASP.NET and AJAX. I have glanced at these in the past, but never got up the gumption to wade in.
But others are suggesing that Silverlight 4 is the way to go, and I see some pretty nice visuals with that.
Regarding pre-made custom controls from vendors - I'm trying to avoid using 3rd party controls, as nice as they are. This is to avoid bugs or version changes in someone else's code causing my customer to get mad at me.
So I'm now thinking about RIA, MVVM, and Silverlight 4. Bill Burrows has some pretty impressive tutorials at myVBProf.com. Have you had a look at those yet?
I didn't want to become a xaml programmer, which VS2008 seemed to try to make us, but I think I could force myself to do a bit of that. VS2010 seems to provide more UI tools to write the xaml for us.
____________________________________________________________________________________
The Vulcan Science Directorate has determined that time travel is impossible.
|
|
|
|
|
MY first question is why?
Does it really need to be a web bassed app? What value do the users gain, or are you just looking for something cool to try
The only reason I bring it up is because it could be a SIGNIFICANT effort.
You might get more value by simply migrating parts of the application engine over to Dotnet instead.
|
|
|
|
|
Thanks, Ray, good question.
1. Many of the orgs that buy my product are (or pretending they are) moving towards standardizing on browser apps only.
2. The system is already client/server, and client and server communicate information with each other in real time using .NET Remoting. If all the processing were done on the server side, I think the remoting could be done away with, which would be a generally good thing since tcp packets flying around are sometimes interfered with by firewalls, etc.
3. Users could use the client from home instead of exclusively on their workstations (without RDC or TeamViewer etc).
Ray Cassick wrote: You might get more value by simply migrating parts of the application engine over to Dotnet instead.
This second point is what other friends have been posting. I think I could work towards this goal by moving more of the functionality to the server component, although when I think of just what functionality could move, I'm left with significant business rules etc that I enforce right in the windows form. I guess even that could migrate...
I would still have a windows form app, though, but one benefit there would be a skinnier app, and of course, it would force me to get closer to the browser concept. Just thinking out loud, my UI is somewhat rich- glow buttons, enhanced datagrid allowing column selection, custom columns, export to excel. If I were starting over, no doubt most of what I have just mentioned would end up on the server side.
I still come back to - use what? Silverlight/VS2010/.NET4/? Does Silverlight do what ajax does, slightly more real time interactivity without a page refresh? Should I start using expression studio to design my UI, or does VS 2010 have everything a windows form guy needs without resorting to using more than one environment? I'd go to school again, but need food so I can program.
Thanks again for your time in considering my situation, I really appreciate it.
Bob
____________________________________________________________________________________
The Vulcan Science Directorate has determined that time travel is impossible.
|
|
|
|
|
We are moving to a web UI ONLY because Silverlight seems to offer a much richer user experience (I hate that expression) than classic ASP. The learning curve from winforms to SL is HUGE, xaml is a completely different paradigm to what we are used to.
As a first step I would look to replacing your remoting interface with a WCF service. This would allow you to plug any UI onto the service.
Shiny UI and extended functionality are going to be difficult for some time while we get a handle on xaml. We are ignoring Expression Blend until we have the functionality under control.
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
Thanks, Mycroft Holmes, for the insightful reply.
Food for thought, taking things in a measured way instead of jumping in.
Speaking of what we tend to hate, as you mentioned about the expression "a richer user experience" - I spent a couple of years, untold hours, trying to get my head around remoting. Then this WCF appears, and do you think I can find an article that tells me in plain english how to move from remoting to WCF? Arrgh.
Also, I don't want to write xaml. I want the mongoose to kill the snakes for me... (Donovan)
Anyway, Bill Burrows, at the MyVBProf site, has some nice tutorials about silverlight, RIA, even MVVM. He demos some redeeming improvements in VS2010 that seem to require a lot less xaml programming. I am using such things to keep my finger in the pie while I figure out what to do with my app.
Thanks again.
____________________________________________________________________________________
The Vulcan Science Directorate has determined that time travel is impossible.
|
|
|
|
|
If you don't like the xaml then forget RIA, seems to want to move everything into the xaml. Also the latest MS demos seem to lean almost exclusively to EF as the DAL, I find that distressing and chucked the entire RIA concept out.
We are just about finished our MVVM code generator so we should be getting a bit more production.
My first .net book was on Dotnet Remoting, trying to learn dot net and remoting from scratch, what a nightmare. Eventually someone slapped me and pointed me to an ordinary winforms app and I never looked back.
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
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
|
|
|
|
|
Mycroft Holmes wrote: someone slapped me and pointed me to an ordinary winforms app
If you get a mo, could you point me to some article or resource that exemplifies this experience? I would love to see that too. Slap me !!
____________________________________________________________________________________
The Vulcan Science Directorate has determined that time travel is impossible.
modified on Thursday, July 22, 2010 1:06 PM
|
|
|
|
|
My question is: why is there such a huge gap?
|
|
|
|
|
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[^].
|
|
|
|
|
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.
|
|
|
|
|
All great points...
I may point you here[^] for a possible solution. The newer versions DO Offer an Out of the browser experience. I think it started slightly in V3 but has been 'fully' implemented in 4 and is going to be a focus going forward.
From here I think the lines between the online and offline experience [platforms is going to start getting blurry.
|
|
|
|
|
Ray Cassick wrote: The newer versions DO Offer an Out of the browser experience.
Interesting.
What started with AJAX and developed into SL, may now end up coming full circle back to a desktop app.
Now we will need tools to write more plumbing code for us, so when we open VS, and create a new desktop app, a blank form comes up that we drag controls to, double-click on them, and start writing code. I know, I know! Overly simplistic perhaps, but you get my point.
For example, something that would help us do asynch and parallel programming without needing a brain 3x the size. Anyone want a used brain? I'm looking to upgrade.
____________________________________________________________________________________
The Vulcan Science Directorate has determined that time travel is impossible.
|
|
|
|
|
Why not just make it a Click Once "Smart Client"? Then you can keep it a windows application, but deploy it from the web like a Java Applet. You'll probably need very little code changes, it's more of a deployment option really and simple to implement.
Unless you have a customer willing to finance the effort, it's probably not worth the massive amount of coding you'll need to do. You can do smart client in a day. The beauty of Smart Client apps is that you have a single install location (on the web server) to keep up to date. When the user clicks the icon, it automatically goes out to check for a new version and downloads it before starting up the app.
It's really best of both worlds...
|
|
|
|
|
Reminds me of something I did several years ago with a VB6 application...seperated it into logical modules, made each module a user control ocx, then hooked them up on a simple web page. The customer wanted a web application, and that's what they got...an spplication that is run in a web browser (IE only though) but behaves as a desktop application. In addition, the web page and controls could be run in offline mode (not so critical these days) and updates were automatically downloaded to the client. This setup worked extremely well for many years.
|
|
|
|
|
Thanks for this suggestion, kmoorevs!
Yeah, probably an easy to implement solution, but since this is a commercial app with lots of shiny UI, I doubt this would end up looking cool enough. I have no choice really - have to consider that aspect!
But sometimes I wish I'd kept the whole thing in VB6 anyway - trying to surf all the changes over the years has probably been the most time-consuming part of my work. And for what? I wanted to "keep up with the times". Or - maybe I bought into the hype. But I must admit that VB6 alone may have led to some dead-ends, so maybe I did do the right thing. Good ol' VB6, gotta love it !!!
____________________________________________________________________________________
The Vulcan Science Directorate has determined that time travel is impossible.
|
|
|
|
|
MachineGun wrote: Why not just make it a Click Once "Smart Client"?
Hmmm!
Do you have an article in mind that might help me analyze this option? Or would it be sufficient to wade through help do you think?
____________________________________________________________________________________
The Vulcan Science Directorate has determined that time travel is impossible.
|
|
|
|
|
This is a good overview of what a Smart Client is:
http://msdn.microsoft.com/en-us/library/ms998468.aspx[^]
This is a starter how-to:
Click Once Deployment Technique[^]
This article is missing one huge step though - Signing your app with a certificate and running the MAGE.EXE command on the deployment server. It'll work in VS, but then when you move it to a real web server, you have to include the certificate file and then run the MAGE commands to "certify" it on that machine.
For instance; Say your application is called "BobsApplication"
You would copy up the deployment files that VS outputs AND the certificate file (.pfx) that you need to generate under the "signing" tab. (in the Project->Properties->Signing tab), and the MAGE.EXE program up to your web server. You can put the cert. file and mage.exe in the same folder as your application. Then run the following MAGE commands at the DOS command line:
mage.exe -Update BobsApplication.application -pu http://YourServerName/BobsApp/BobsApplication.application
mage.exe -sign BobsApplication.application -cf BobsApplication_TemporaryKey.pfx
** Where BobsApplication_TemporaryKey.pfx is the certificate file that you generated under the Project->Properties->Signing tab. I also assumed you created an aliased folder in IIS call BobsApp in the first mage command. MAGE.EXE comes with Visual Studio, you can find it in the SDK folder (C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin)
Then, to Run your application, you would go to the browser and type:
http://YourServerName/BobsApp/BobsApplication.application
I would also search Google for something like:
"Building your first ClickOnce application"
or
"Building your first SmartClient application"
Hope that helps!
|
|
|
|
|
Wow, thanks MachineGun, for going to all that effort - excellent reply!
I recently implemented an auto-update feature in my app, based on this article:
Application Auto Update Revisited[^]
The main app checks, downloads the update, and if that all goes well, launches another app. All the second app does is replace the main app's executable, and then launch the main app.
It seems to be working. I used that because I read some negative stuff about ClickOnce, I forget where. But I wonder whether you have a comment on whether the procedure you have outlined in your message has some advantages in your opinion.
Thanks again for the reply! I will analyze it! I noticed there was some command line stuff to do. I guess the VS installer project could implement that somehow. This is a commercial app, where I would prefer that the installer does everything so the IT folks don't need to do any tweaking. But that is only from a quick perusal of your post. As I say, I will take the time to read the references you included.
Bob
____________________________________________________________________________________
The Vulcan Science Directorate has determined that time travel is impossible.
|
|
|
|
|