.NET Forum / Windows Forms / WinForm General / June 2007
Adobe Flex vs. .NET WinForms
|
|
Thread rating:  |
Jules Winfield - 12 Jun 2007 21:48 GMT Guys,
I've been designing applications for the financial services industry using MSFT technologies for many years (Win32 API, MFC, and now .NET WinForms). All applications are Internet-based, with a "thick client" which makes calls to my grid of servers via a socket or remoting connection.
Customers are pleased with my work but it seems that over the past twelve months or so, those same customers have expressed a strong demand to access my application via a browser. They don't like having to install the .NET runtime and they don't like having to install my MSI file. Banks and large brokerage firms in particular are wary about installing MSI files [for obvious and legitimate reasons]. They want browser-based access. I can rely upon Windows as the customers' OS, but not necessarily an Internet Explorer browser. Firefox use is common.
I've never been a huge fan a developing browser-based applications, primarily due to my hatred of JScript. I don't mind using JScript in small doses to connect major elements on a web page but the idea of using it as my main client-side programming language is not appealing at all. Unfortunately, given that AJAX seems to be at the forefront of web development technology these days, and given that the 'J' in 'AJAX' stands for JScript, I feel as though I'm running out of options.
...but after doing some research, I ran across a technology by Adobe called Flex. I ran some of the demo apps and was completely blown away! They have a very modern look and they are as responsive as desktop apps. Have any of you made the transition from WinForms to Flex? What are the pros and cons? I get the impression that the Flex user interfaces are created using a language called ActionScript. What are your thoughts on this language?
Recall that all of my server side logic is C# (.NET) based and can be accessed via HTTP remoting, sockets, etc. What mechanism does a Flex application use to retrieve information from the server?
In the C#/WinForms world, I can purchase components like grids, charts, and fancy navigational tools from third party component vendors. Is the same thing true in the Flex world?
Any information is appreciated.
Thanks,
Jules Winfield
Robbe Morris - MVP C# - 13 Jun 2007 02:16 GMT I'd look at WPF in the browser in next generation .NET in 3.0 before making a huge leap.
If I'm not mistaken, doesn't Flex require the Flash plugin to run ActionScript? So, you are running ActiveX or Java in the browser anyway.
There is nothing you can't "really" do with AJAX that you could do with Flex. Running a windows app is great for when you need to run disconnected "at some time" or when you need access to the file system. Do they need to work offline say on an airplane or some place where network activity is unavailable or prohibited.
It won't be long and MS will be mandating upgrades to include the .NET Framework as part of windows updates. Vista has .net 2.0 shipped with it I believe.
So, your users could typically just download a zipped up file and run the exe.
 Signature Robbe Morris EggHeadCafe.com http://www.eggheadcafe.com/articles/adonet_source_code_generator.asp
> Guys, > [quoted text clipped - 41 lines] > > Jules Winfield Anish - 13 Jun 2007 09:37 GMT I am not much aware of .netWinForms but I feel developing a web based application using Flex is one of the best options available now. Flex has its own pro's n cons. let me put my thoughts below your comments.....Flex is based on a xml type language called MXML and it also uses ActionScript as and when re
> Guys, > > I've been designing applications for the financial services industry using > MSFT technologies for many years (Win32 API, MFC, and now .NET WinForms). > All applications are Internet-based, with a "thick client" which makes calls > to my grid of servers via a socket or remoting connection. Flex can communicate with remote servers using HTTPService and its pretty easy to do that.
> Customers are pleased with my work but it seems that over the past twelve > months or so, those same customers have expressed a strong demand to access [quoted text clipped - 4 lines] > upon Windows as the customers' OS, but not necessarily an Internet Explorer > browser. Firefox use is common. Flex applicatiosn need Flash Player 9 and above to be installed on the client machines for it to run. If Flash Player 9 is installed, it can seemlessly run in any browsers on any OS that supports Flash Player 9 .Commonly supported OS and browsers are:- Windows, Mac OS X, Linux. Then IE, Firefox, Opera, Safari etc...
> I've never been a huge fan a developing browser-based applications, > primarily due to my hatred of JScript. I don't mind using JScript in small [quoted text clipped - 3 lines] > development technology these days, and given that the 'J' in 'AJAX' stands > for JScript, I feel as though I'm running out of options. You may not encounter JScirpt but you will have to use MXML and ActionScript to get most of your job done. You can also use CSS to glorify your app. MXML is kind of XML based language.
> ...but after doing some research, I ran across a technology by Adobe called > Flex. I ran some of the demo apps and was completely blown away! They have a > very modern look and they are as responsive as desktop apps. Have any of you > made the transition from WinForms to Flex? What are the pros and cons? I get > the impression that the Flex user interfaces are created using a language > called ActionScript. What are your thoughts on this language? Viewing Flex demo can make any one go crazy about Flex. I recommend you to go thru some of cool n awesome demo of flex at http://www.quietlyscheming.com/blog/
> Recall that all of my server side logic is C# (.NET) based and can be > accessed via HTTP remoting, sockets, etc. What mechanism does a Flex > application use to retrieve information from the server? You can retain your server-side logic. You can request an HTTPService to access your server-side logics. no worries here.
> In the C#/WinForms world, I can purchase components like grids, charts, and > fancy navigational tools from third party component vendors. Is the same > thing true in the Flex world? Things that you may need to purchase for flex development is 1. Adobe Flex Builder - the default IDE used to develop flex applications. 2. Flex Charting SDK - An SDK package that will make creating fancy n interesting charts quite easier. (check charting demos at http://www.quietlyscheming.com/blog/) 3. Lots of custom components are available for free as well as for some money. Most of the commonly used components comes free with Flex SDK.
If you are an expert coder, you can skip Flex Builder IDE and code even in your notepad and compile it using the freely available Flex SDK.
One of the advantages of Flex is you can convert your Flex web based applications to Apollo (now Adobe AIR) desktop based application with minimal changes. ( Oh yeah you need Adobe Apollo runtime to be installed on the client machine for this.)
And Finally WELCOME TO THE WONDERFUL WORLD OF FLEX.
regards, -Anish
> Any information is appreciated. > > Thanks, > > Jules Winfield Jules Winfield - 13 Jun 2007 14:39 GMT Thanks, Anish, for the thoughtful reply. I'll investigate the web site to which you referred. I'd like to ask a followup question to one of the points you rasied:
> You may not encounter JScirpt but you will have to use MXML and > ActionScript to get most of your job done. You can also use CSS to > glorify your app. MXML is kind of XML based language. You mentioned CSS. So it sounds like FlexBuilder not only allows you to build the dynamic application(s) that are built into a web page, but it also allows you to build the web page itself. So would I use DreamWeaver to build the site and FlexBuilder to build the embedded applications, or would I use FlexBuilder for both the site (HTML and CSS) and the embedded applications?
Thanks,
Jules
Mihai N. - 14 Jun 2007 07:53 GMT > You mentioned CSS. So it sounds like FlexBuilder not only allows you to > build the dynamic application(s) that are built into a web page, but it [quoted text clipped - 3 lines] > the site and FlexBuilder to build the embedded applications, or would I use > FlexBuilder for both the site (HTML and CSS) and the embedded applications? No, FlexBuilder does not edit html. FlexBuilder is just the Flex IDE, based on Eclipse. A bit slow, not fancy wizards, ok UI designer. But the debugger part is worth it.
BTW, why don't you just give it a try? Version 3 beta is available at the Adobe labs: http://labs.adobe.com/technologies/flex/
 Signature Mihai Nita [Microsoft MVP, Windows - SDK] http://www.mihai-nita.net ------------------------------------------ Replace _year_ with _ to get the real email
Anish - 14 Jun 2007 09:10 GMT > Thanks, Anish, for the thoughtful reply. I'll investigate the web site to > which you referred. I'd like to ask a followup question to one of the points [quoted text clipped - 13 lines] > > Jules The output you get from a Flex is a .swf flash file. Generally its a trend that people use the .swf file alone and bare little HTML just to embed that .swf . Infact you can check most of the flex demo's are entirely of flash (right click anywhere on the page and you can see its flash).
But that said, its not a constrain that you should use .swf only. We can take that .swf output and just embed into out existing HTML code using the <object> tag just as we embed any .swf files. So you can build most of your app using dreamweaver and embed the .swf file whereever its required.( But here again you can do all the stuff you do in dreamweaver in flex too)
regards, -Anish
Mehdi - 13 Jun 2007 14:54 GMT > ...but after doing some research, I ran across a technology by Adobe called > Flex. I ran some of the demo apps and was completely blown away! They have a > very modern look and they are as responsive as desktop apps. Have any of you > made the transition from WinForms to Flex? What are the pros and cons? I get > the impression that the Flex user interfaces are created using a language > called ActionScript. What are your thoughts on this language? I haven't any experience in either AJAX or Flex application so I won't be able to give you definitive advices on either but I've got a few general thoughts about that. Just like you, I dislike web browser based application both as an end-user and as a developer point of view. I have been unfortunate enough to have to do some simple Flash developement with ActionScript and integrate that into a .NET application and, boy, that was painful... But I'm sure that Flex being specifically targeted as developing application (as oposed to Flash animations), it is perfectly usable by "traditional" software developers without too much pain.
If I had to switch from tradtional desktop application development to browser based application development using either AJAX or Flex, I would be extremely careful before taking the plunge and choosing Flex in favor of AJAX for a number of reasons:
- Flex applications are nothing else than Flash files. This means that by choosing Flex, you are tying yourself to a proprietary format, runtime and environment. Of course, it is unlikely that a company like Adobe will collapse in the near future or that they'll pull the plug on Flash. AJAX on the other side is based on (now) standards and is widely supported by all the major players in the industry.
- Flex requires Flash 9 to be installed on the client machine while AJAX applications require nothing but a resonably recent web browser. This might or might not be an issue. On the other side, AJAX probably requires a lot more testing and tweaking to make sure that the application works fine in most browser while Flex applications should work the same in every browser as they run on top of the Flash runtime.
- Support: with the explosion of the AJAX buzz and number of AJAX based application, the amount of available books and online resources (web sites, discussion forums...) dedicated to AJAX development is almost limitless. What about Flex?
- Development tools: with AJAX being well on its way of becoming the next main development platform after Windows, there are loads of tools and environment developed by many different companies to make development easier. And this is probably just the beginning. With Flex, you'll probably always be stuck with what Adobe has to offer.
- Whenever you'll need to hire a developer or a consultant to work on your applications, how easy will it be find a suitable candidate? With ASP .NET and AJAX it should be reasonably easy these days and in the future to find good developers with all the required expertise and experience. I have my doubts on the Flex side. On top of that, I guess that a number of Flex developers are former Flash designers who are great at designing fancy-looking UIs but have little to no experience and background knowledge in developing robust and secure business applications. Also, if you choose Flex and need to find somebody able to work on both the front-end and back-end of your system, you'll need to find somebody with expertise in both Flex and .NET. I suppose these kind of people are quite thin on the ground.
- Of course, given the type of applications you're developing, I suppose that security is a paramount in every aspect of your work. I can't comment on this but obviously what each framework offers in terms of security features would be an important parameter.
These are just some random thought, I probably forgot the most important ones but what's for sure is that the look & feel or either Flex or AJAX applications is definitely not the only or even the most important point to take into account here.
Jules Winfield - 13 Jun 2007 16:48 GMT Hi Mehdi,
Thanks so much for the comments. They are much appreciated.
It's a very tough decision for me. I wish I could stick with the traditional Windows desktop model as I highly favor mature technologies over the "bleeding edge" stuff like Flex or Silverlight. This isn't to say that competing technologies like AJAX aren't mature; JScript and DHTML have obviously been around for many years. Perhaps it's just my perspective coming from a Windows application development background, but AJAX seems to have a certain "hack" feel to it. I can't quite put my finger on it but using AJAX to design complex applications gives me the distinct feeling that I'm torturing older technologies into doing something that they weren't really designed to do.
Sure, we can point to large companies like Google and Microsoft that have created absolutely incredible AJAX-based solutions that meet or exceed their desktop counterparts -- and don't get me wrong, I'm absolutely blown away by what they've done. But these large companies have access to hundreds of developers and QA testers to investigate and iron out all of the various browser-specific quirks and provide a consistent user experience. I don't have that; All I have is myself (the main developer with a C#/C++ background) and a couple of really good designers. I think Flex is a better fit for my specific situation.
All things considered though, I'm still planning to heed your advice. I'll play it safe and weight the pros and cons. I'll buy some books on Flex, train myself on the technology, and then reevaluate whether or not the project is feasible in a Flex environment. Time will tell. If Flex isn't suitable and AJAX is my only alternative, it's probably time for me to retire. :)
Wish me luck!
Jules
Chris Dunaway - 13 Jun 2007 21:52 GMT > have that; All I have is myself (the main developer with a C#/C++ > background) and a couple of really good designers. I think Flex is a better > fit for my specific situation. You mentioned Silverlight earlier, if you use that, you can program in C#, much like you do now and it supports IE, Firefox, and Safari on Mac. Consider that alternative.
Jules Winfield - 13 Jun 2007 22:16 GMT > You mentioned Silverlight earlier, if you use that, you can program in > C#, much like you do now and it supports IE, Firefox, and Safari on > Mac. Consider that alternative. I'm keeping a close eye on Silverlight too. I was a bit turned off when I read that there are no built in controls (i.e. labels, text boxes, etc.), but it turned out that the reason for this is that Silverlight is still in "alpha" stage. It's not ready yet. Do you happen to know anything about the Silverlight release timeline?
Thanks for reminding me though. I'll investigate a bit further.
Anish - 14 Jun 2007 09:52 GMT > > ...but after doing some research, I ran across a technology by Adobe called > > Flex. I ran some of the demo apps and was completely blown away! They have a [quoted text clipped - 12 lines] > application (as oposed to Flash animations), it is perfectly usable by > "traditional" software developers without too much pain. Yes I agree. its lots more easier to develop web based applications using Flex.
> If I had to switch from tradtional desktop application development to > browser based application development using either AJAX or Flex, I would be [quoted text clipped - 14 lines] > most browser while Flex applications should work the same in every browser > as they run on top of the Flash runtime. AJAX based apps require lots of testing n tweaks before we can make sure it runs as expected on all web browsers. With flex we have the luxury that we can develop for one web browser and be sure that it runs exactly the same way on other browsers too provided they have flash player 9 or above ;-)
> - Support: with the explosion of the AJAX buzz and number of AJAX based > application, the amount of available books and online resources (web sites, > discussion forums...) dedicated to AJAX development is almost limitless. > What about Flex? Even I feel there arn't as much supporting sites for Flex when compared to AJAX. but definetly Flex has some good books and good start up tutorials. TotalTraining has some nice video tutorials on flex. http://www.totaltraining.com/prod/adobe/flex2_ria.asp
> - Development tools: with AJAX being well on its way of becoming the next > main development platform after Windows, there are loads of tools and > environment developed by many different companies to make development > easier. And this is probably just the beginning. With Flex, you'll probably > always be stuck with what Adobe has to offer. The chances of being struck with Adobe is more, but that said now we can expect more as Flex is open sourced (http://www.adobe.com/go/ opensourceflex)
> - Whenever you'll need to hire a developer or a consultant to work on your > applications, how easy will it be find a suitable candidate? With ASP .NET [quoted text clipped - 8 lines] > both Flex and .NET. I suppose these kind of people are quite thin on the > ground. Getting a Flex developer is not an easy task. May be Flex is quite new and it still needs to generate lots of enthu for developers to begin learning it.
> - Of course, given the type of applications you're developing, I suppose > that security is a paramount in every aspect of your work. I can't comment > on this but obviously what each framework offers in terms of security > features would be an important parameter. I feel Adobe has taken security in consideration. But again it depands on what kind of applications we are developing.
> These are just some random thought, I probably forgot the most important > ones but what's for sure is that the look & feel or either Flex or AJAX > applications is definitely not the only or even the most important point to > take into account here. Open Lazlo :- This is one of the competing technologies with Flex and open Lazlo is open source. But i felt its not quite easy to develop apps using Open lazlo. It lacked Flex Builder kind of IDE http://www.openlaszlo.org/
Hope all this thoughts will help you decide the best.
regards, -Anish
sabdillah - 21 Jun 2007 15:20 GMT > > > ...but after doing some research, I ran across a technology byAdobecalled > > >Flex. I ran some of the demo apps and was completely blown away! They have a [quoted text clipped - 84 lines] > I feelAdobehas taken security in consideration. But again it depands > on what kind of applications we are developing. Jules,
I am currently considering investing into Flex also pretty much for the same reasons. ActionScript in its third generation is a great language now. It pretty much there on the OOP side of things so as a C#/C++ developer the concepts will be native to you and it will just be a case of picking up the namespaces (oops I mean packages as they are called in AS).
Adobe have built a great framework the only thing I am battling is the data binding options available to you. Web Services are pretty slow and if you are offering the user a ultra smooth and fast UI coupled with slow data connectivity I am not sure how about the combo. The question for me is can you really develop data centric apps with this amazing technology without the frint end user being faced with an hour glass every five minutes as Flex battles to suck data out of slow responding web services.
Flash Remoting is a solution to this problem but it is also an expensive one that I am told often loses in the cost vs benefit sum up.
You should check out WebOrb as it delivers native object from .NET directly to Flex without having to use WS. I am still getting my head around it so you should go check it out if you haven't already.
http://www.themidnightcoders.com/weborb/
Have fun. Its exciting stuff especially when you can easily port your apps to Adobe Air (Apollo). Try porting your winforms to ASP.NET that easily.
Shion
> > These are just some random thought, I probably forgot the most important > > ones but what's for sure is that the look & feel or eitherFlexor AJAX [quoted text clipped - 9 lines] > regards, > -Anish
Free MagazinesGet these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...
|
|
|