C# - web or winforms?
-
KevinMac wrote:
Early on the organization made everything web apps because it was stylish for management to talk about
I suspect this is the driving force behind at least 50% of the web apps out there. I think you guys are right on the money in defaulting to native apps and requiring justification for browser based ones. HTTP was not intended to serve as an application development environment.
Author of The Career Programmer and Unite the Tribes www.PracticalStrategyConsulting.com
I have nothing against web applications but it seems that business users decided to apply them across the board as "what works" in every instance. Not trying to start a war here but I have seen the same thing with Java and MS solutions. I pointed out in a requirements meeting the other day that both languages are OO so saying all outward facing websites must be Java since they are more secure is not fact. I offered that it has more to do with how the languages are used that determined the security of the web site. Guess I will not be invited back but that is ok I was feeling a little lonely anyways. There are some really strange opinions in the business community regarding technology.
-
My initial interest in C# was due to the vast improvements it made in web development over classic ASP. However, for client apps I instinctively reach for C++ simply because of the years I've been doing it. I was wondering how many of you are using C# for client Windows app development rather than for browser based scenarios. Is C# / Winforms suitable for serious client side development, or does everyone tend to stay in a web browser?
Author of The Career Programmer and Unite the Tribes www.PracticalStrategyConsulting.com
And some webservices only dabbling into the ASP.NET side when forced to. Personally Winforms is infinitely better then VB6 for client-side business apps. Even some hard logic apps and visualizations. In fact with Direct X and Open GL c# can be a potent game language as well. In fact with the ease of deployment and myriad of remoting options available I find it really amazing that people even want web apps anymore. (Ok, that goes to far because there are other OS'es)
File Not Found
-
My initial interest in C# was due to the vast improvements it made in web development over classic ASP. However, for client apps I instinctively reach for C++ simply because of the years I've been doing it. I was wondering how many of you are using C# for client Windows app development rather than for browser based scenarios. Is C# / Winforms suitable for serious client side development, or does everyone tend to stay in a web browser?
Author of The Career Programmer and Unite the Tribes www.PracticalStrategyConsulting.com
I'm usng Winforms. It's just quicker.
Christian Graus - C++ MVP 'Why don't we jump on a fad that hasn't already been widely discredited ?' - Dilbert
-
Christopher Duncan wrote:
I was wondering how many of you are using C# for client Windows app development rather than for browser based scenarios.
I use C# exclusively for WinForm development. I haven't encountered any reason to miss MFC or C++.
Christopher Duncan wrote:
Is C# / Winforms suitable for serious client side development
I would say yes, qualified by what you mean by "serious". The only app I will continue developing in C++, and for that I'm hoping to migrate the UI and DB parts to C#, is a tool that analyzes switch rings for communication satellites, which needs to be as fast as possible. Even that though is best optimized by understanding the problem rather than hacking out a solution and hoping it runs fast enough. Marc
People are just notoriously impossible. --DavidCrow
There's NO excuse for not commenting your code. -- John Simmons / outlaw programmer
People who say that they will refactor their code later to make it "good" don't understand refactoring, nor the art and craft of programming. -- Josh SmithMarc Clifton wrote:
I'm hoping to migrate the UI and DB parts to C#, is a tool that analyzes switch rings for communication satellites, which needs to be as fast as possible.
I would love to see more performance critical apps written in C#.
█▒▒▒▒▒██▒█▒██ █▒█████▒▒▒▒▒█ █▒██████▒█▒██ █▒█████▒▒▒▒▒█ █▒▒▒▒▒██▒█▒██
-
My initial interest in C# was due to the vast improvements it made in web development over classic ASP. However, for client apps I instinctively reach for C++ simply because of the years I've been doing it. I was wondering how many of you are using C# for client Windows app development rather than for browser based scenarios. Is C# / Winforms suitable for serious client side development, or does everyone tend to stay in a web browser?
Author of The Career Programmer and Unite the Tribes www.PracticalStrategyConsulting.com
Christopher Duncan wrote:
Is C# / Winforms suitable for serious client side development
Absolutely.
Christopher Duncan wrote:
in a web browser?
That is to be avoided at all cost.
-
My initial interest in C# was due to the vast improvements it made in web development over classic ASP. However, for client apps I instinctively reach for C++ simply because of the years I've been doing it. I was wondering how many of you are using C# for client Windows app development rather than for browser based scenarios. Is C# / Winforms suitable for serious client side development, or does everyone tend to stay in a web browser?
Author of The Career Programmer and Unite the Tribes www.PracticalStrategyConsulting.com
Both. Winforms is fine unless you are some sort of control freak who cares more about fiddling bits than getting the application into the end user's hands in good working order. I actually started with winforms and then moved on to asp.net. I think the whole concept of c# being first and foremost an asp.net thing is bizzarre in the extreme and I don't know where that idea came from in the first place. Maybe they were the earliest adopters?
-
Yeah, this is kind of the scenario I was suspecting. With MFC and C++, I have a language that won't tell me "no" regardless of what I'm trying to accomplish. However, there are much more jobs out there these days for C# than there are C++ / MFC. I was curious as to whether client side C# would be as fun as C++ always has been, or if it would be as incredibly limiting as browser based development. From your description, it sounds like even native app development with C# is still akin to working with one hand tied behind your back compared with C++. I'd truly like to get excited about the C#, but it's really hard to go backwards in power and flexibility.
Author of The Career Programmer and Unite the Tribes www.PracticalStrategyConsulting.com
I have never been told "No" by C#. The .NET BCL and WinForms often tell me no, but not C#.
-
Marc Clifton wrote:
I'm hoping to migrate the UI and DB parts to C#, is a tool that analyzes switch rings for communication satellites, which needs to be as fast as possible.
I would love to see more performance critical apps written in C#.
█▒▒▒▒▒██▒█▒██ █▒█████▒▒▒▒▒█ █▒██████▒█▒██ █▒█████▒▒▒▒▒█ █▒▒▒▒▒██▒█▒██
It has not worked well for me -- writing performance-critical applications on .NET. Regardless of what I did to improve performance, C++ always remain ahead by a large margin. Maybe, as Marc suggested, C++ could be used only for the peformance critical code.
-
My initial interest in C# was due to the vast improvements it made in web development over classic ASP. However, for client apps I instinctively reach for C++ simply because of the years I've been doing it. I was wondering how many of you are using C# for client Windows app development rather than for browser based scenarios. Is C# / Winforms suitable for serious client side development, or does everyone tend to stay in a web browser?
Author of The Career Programmer and Unite the Tribes www.PracticalStrategyConsulting.com
Christopher Duncan wrote:
I was wondering how many of you are using C# for client Windows app development rather than for browser based scenarios. Is C# / Winforms suitable for serious client side development, or does everyone tend to stay in a web browser?
I use C# mainly for Windows App development. I've never had any real issues and built several serious business applications using it. My one pet peeve, is that the UI is defined as imperative code rather than declarative. So a lot of my apps used MyXaml for defining the UI. I used to be a hard-core MFCer, but now I rarely touch it for desktop apps. C# and .NET has given me a wonderful toolset for building my kind of applications. I also use the Smart Client Application Software factory a lot now to give me a good solid application framework.
Michael CP Blog [^] Development Blog [^]
-
I've tried writing several client side apps with C# / Winforms and have almost always ended up throwing in the towel and switching back to MFC. One important note: these apps are not database centric. To repeat, these are not "business" apps. Just a few weeks ago, I tried porting an important applet I was working on to C# to see if provided any significant benefit. I ran into a problem which would have required very complicated P/Invoking. So, I chucked the feature an immediately ran into another problem. It was like a comedy where someone steps on a rake, turns and steps on another rake. I ended up tossing it and going back to MFC (which saved the company a measurable amount of money in terms of my time.) One problem is that C# is still missing a whole bunch of small things us MFC app developers have taken for granted. .NET 2.0 made big improvements in this area. I anticipate .NET 4.0 will make more.
Anyone who thinks he has a better idea of what's good for people than people do is a swine. - P.J. O'Rourke
Joe Woodbury wrote:
It was like a comedy where someone steps on a rake, turns and steps on another rake.
That'll be Sideshow Bob[^], then...well, it was that episode that I immediately visualised when you mentioned stepping on a rake :-)
-
My initial interest in C# was due to the vast improvements it made in web development over classic ASP. However, for client apps I instinctively reach for C++ simply because of the years I've been doing it. I was wondering how many of you are using C# for client Windows app development rather than for browser based scenarios. Is C# / Winforms suitable for serious client side development, or does everyone tend to stay in a web browser?
Author of The Career Programmer and Unite the Tribes www.PracticalStrategyConsulting.com
-
Both. Winforms is fine unless you are some sort of control freak who cares more about fiddling bits than getting the application into the end user's hands in good working order. I actually started with winforms and then moved on to asp.net. I think the whole concept of c# being first and foremost an asp.net thing is bizzarre in the extreme and I don't know where that idea came from in the first place. Maybe they were the earliest adopters?
John Cardinal wrote:
I think the whole concept of c# being first and foremost an asp.net thing is bizzarre in the extreme
Just a guess, but it probably came about from the first version of C# / Winforms. Version 1.0 of anything usually leaves a lot to be desired, and back in those days it wasn't a given that the .NET framework was installed on a machine. So, it wasn't an obvious out of the box replacement for MFC. On the web side, however, the difference between classic ASP and C# / ASP.NET is nothing short of monumental, making web development almost feel like real programming. In any event, it's good to see so many people I respect using C# for desktop development. Perhaps it's time to find that old bathing suit and take a deeper plunge... :)
Author of The Career Programmer and Unite the Tribes www.PracticalStrategyConsulting.com
-
Yeah, this is kind of the scenario I was suspecting. With MFC and C++, I have a language that won't tell me "no" regardless of what I'm trying to accomplish. However, there are much more jobs out there these days for C# than there are C++ / MFC. I was curious as to whether client side C# would be as fun as C++ always has been, or if it would be as incredibly limiting as browser based development. From your description, it sounds like even native app development with C# is still akin to working with one hand tied behind your back compared with C++. I'd truly like to get excited about the C#, but it's really hard to go backwards in power and flexibility.
Author of The Career Programmer and Unite the Tribes www.PracticalStrategyConsulting.com
Having gone through this myself, I'm gonna say it's a case of being used to doing things in wrong, screwed-up ways in MFC. Then when you try it in C#, the method is totally foreign to you, and C# will not let you play your old games, at all. In a lot of cases, you simply can't do things the old way, and this freaks out a lot of programmers, who then go off and say C# sucks. Yes, some things are different in C#, requiring you to take a new approach. When you re-think the problem and try a more object-oriented approach, usually the C# way ends up being much more elegant.
"Quality Software since 1983!"
http://www.smoothjazzy.com/ - see the "Programming" section for freeware tools and articles. -
My initial interest in C# was due to the vast improvements it made in web development over classic ASP. However, for client apps I instinctively reach for C++ simply because of the years I've been doing it. I was wondering how many of you are using C# for client Windows app development rather than for browser based scenarios. Is C# / Winforms suitable for serious client side development, or does everyone tend to stay in a web browser?
Author of The Career Programmer and Unite the Tribes www.PracticalStrategyConsulting.com
Christopher Duncan wrote:
My initial interest in C# was due to the vast improvements it made in web development over classic ASP
You make it sound like C# is a web programming language. It's not. It's one of the languages you can use with ASP.Net, but as a language, C# stands on its own.
Christopher Duncan wrote:
how many of you are using C# for client Windows app development
I am using it for that, and for several other things, a screensaver, a link-checker and sitemap tool, and a DB-enabled customer service app for a loan company. See my web site for examples.
Christopher Duncan wrote:
does everyone tend to stay in a web browser?
C# has very little to do with that. It is a fully featured language all by itself. It is associated with programming libraries like ASP.Net and .Net Frameworks, but it's not tied to those permanently. The choice to do something as a web application is driven by other considerations, and a desire to use C# should not affect that decision too much.
"Quality Software since 1983!"
http://www.smoothjazzy.com/programming.html - freeware tools and articles. -
John Cardinal wrote:
I think the whole concept of c# being first and foremost an asp.net thing is bizzarre in the extreme
Just a guess, but it probably came about from the first version of C# / Winforms. Version 1.0 of anything usually leaves a lot to be desired, and back in those days it wasn't a given that the .NET framework was installed on a machine. So, it wasn't an obvious out of the box replacement for MFC. On the web side, however, the difference between classic ASP and C# / ASP.NET is nothing short of monumental, making web development almost feel like real programming. In any event, it's good to see so many people I respect using C# for desktop development. Perhaps it's time to find that old bathing suit and take a deeper plunge... :)
Author of The Career Programmer and Unite the Tribes www.PracticalStrategyConsulting.com
We have a very large, very successful commercial application that is written in c# and has a winform interface, an asp.net interface, remoting, an accounting application interface and is used globally in over 50 countries, but I won't anger the lounge gods by posting a link to it here. ;) Suffice to say there is really no good reason not to use C# for most desktop apps these days. Even Linux and Mac platforms are supported through MONO.
-
We have a very large, very successful commercial application that is written in c# and has a winform interface, an asp.net interface, remoting, an accounting application interface and is used globally in over 50 countries, but I won't anger the lounge gods by posting a link to it here. ;) Suffice to say there is really no good reason not to use C# for most desktop apps these days. Even Linux and Mac platforms are supported through MONO.
I assume you have your business and communication logic in one layer and simply designed two separate UI layers for the desktop and web interfaces?
Author of The Career Programmer and Unite the Tribes www.PracticalStrategyConsulting.com
-
My initial interest in C# was due to the vast improvements it made in web development over classic ASP. However, for client apps I instinctively reach for C++ simply because of the years I've been doing it. I was wondering how many of you are using C# for client Windows app development rather than for browser based scenarios. Is C# / Winforms suitable for serious client side development, or does everyone tend to stay in a web browser?
Author of The Career Programmer and Unite the Tribes www.PracticalStrategyConsulting.com
My personal experience... I've been using MFC for years, and I recently decided to write my first significant client app in C#/.NET. I have to say that I'm really pleased so far. There's is just so much more that's done for you already, and it really minimizes the amount of code you have to write/maintain. I would say that if your client app is heavily based around file access, UI, databases, or networking... then give C# a try. But if your app relies on a lot of direct memory access and processing type behaviors, then perhaps stick with C++/MFC. You could always try managed C++ and use forms in that way, but it just seems strange to me, personally.
-
I assume you have your business and communication logic in one layer and simply designed two separate UI layers for the desktop and web interfaces?
Author of The Career Programmer and Unite the Tribes www.PracticalStrategyConsulting.com
Yup. In fact it's definitely not perfected yet. We designed and wrote a rough business object library at first, then developed it and the winform UI layer in parallel up to release. Then I wrote the asp.net UI layer. Doing a second UI after the initial one was completed resulted in not noticing some redundancies in the UI layer. Next time around I'm going to introduce another layer which resides between the UI and the business object layer and acts as a more UI centric interface to some of the methods in the business object layer. There is a lot of housekeeping and UI centric features that are common to both asp.net and winform UI's but don't really fit in the business object layer. I highly recommend you check out Rockford Lhotka's CSLA book for more on this if you are interested: http://www.lhotka.net/cslanet/default.aspx[^] It's open source (I've modifed it quite extensively for my purposes) but it really gives you everything you need to know to properly stratify applications, goes into remoting, asp.net and winform ui's, scaleability etc. IIRC it presents three different interfaces to the same application.
-
Marc Clifton wrote:
I'm hoping to migrate the UI and DB parts to C#, is a tool that analyzes switch rings for communication satellites, which needs to be as fast as possible.
I would love to see more performance critical apps written in C#.
█▒▒▒▒▒██▒█▒██ █▒█████▒▒▒▒▒█ █▒██████▒█▒██ █▒█████▒▒▒▒▒█ █▒▒▒▒▒██▒█▒██
Captain See Sharp wrote:
I would love to see more performance critical apps written in C#.
The real question is would users want to use them. C#, and dotNET in general, has many advantages over native code but, in general, performance and resource usage are not amongst them.
Steve
-
Having gone through this myself, I'm gonna say it's a case of being used to doing things in wrong, screwed-up ways in MFC. Then when you try it in C#, the method is totally foreign to you, and C# will not let you play your old games, at all. In a lot of cases, you simply can't do things the old way, and this freaks out a lot of programmers, who then go off and say C# sucks. Yes, some things are different in C#, requiring you to take a new approach. When you re-think the problem and try a more object-oriented approach, usually the C# way ends up being much more elegant.
"Quality Software since 1983!"
http://www.smoothjazzy.com/ - see the "Programming" section for freeware tools and articles.