To WPF or not to WPF, that is the question

H

Howard Swope

I have been glancing peripherally at the WPF since it came out and I have never really embraced it, and I am not sure that I should.

I really like the C# language and I like Windows Forms for creating rich clients. Years ago I did a lot of web programming CGI, ISAPI, ASP, ASP.Net, etc. As the web became popular and many people tried to do everything through a browser, I slowly developed an extreme dislike of web programming. I basically realized that a web browser is a lousy place for a user interface. It's a good place to disseminate information, but a lousy place to write an application.

So I vowed never to write another web app and I have been immensely happy with my decision. I still get some services over http, I still use XML for many things that it is appropriate for. But I never ever try to use a web browser to create a UI.

Now WPF comes along and blurs all the nice boundaries I have set up. It is using markup to create UI. It is mixing markup with real code (arg!). Is this a technology I should embrace? Why?
 
P

PvdG42

"Howard Swope" <howard_swopeAThms3DOTcom> wrote in message I have been glancing peripherally at the WPF since it came out and I have never really embraced it, and I am not sure that I should.

I really like the C# language and I like Windows Forms for creating rich clients. Years ago I did a lot of web programming CGI, ISAPI, ASP, ASP.Net, etc. As the web became popular and many people tried to do everything through a browser, I slowly developed an extreme dislike of web programming. I basically realized that a web browser is a lousy place for a user interface. It's a good place to disseminate information, but a lousy place to write an application.

So I vowed never to write another web app and I have been immensely happy with my decision. I still get some services over http, I still use XML for many things that it is appropriate for. But I never ever try to use a web browser to create a UI.

Now WPF comes along and blurs all the nice boundaries I have set up. It is using markup to create UI. It is mixing markup with real code (arg!). Is this a technology I should embrace? Why?

One good reason to pay attention is that WPF is being pushed as the future replacement for Winforms. If the push continues, Winforms will eventually disappear. Like it or not, change is the only constant in this business. I'm not saying the projected outcome is set in concrete, but current indications lead to that conclusion.

You can get lots of opinions on "WPF replace Windows Forms" by searching Google groups, as well.
 
M

Mr. Arnold

"Howard Swope" <howard_swopeAThms3DOTcom> wrote in message I have been glancing peripherally at the WPF since it came out and I have never really embraced it, and I am not sure that I should.

I really like the C# language and I like Windows Forms for creating rich clients. Years ago I did a lot of web programming CGI, ISAPI, ASP, ASP.Net, etc. As the web became popular and many people tried to do everything through a browser, I slowly developed an extreme dislike of web programming. I basically realized that a web browser is a lousy place for a user interface. It's a good place to disseminate information, but a lousy place to write an application.

-------------

Well, you have heard of "cloud" technology haven't you, which are Internet services provided by a vendor or internally in a company via the Intranet? The industry keeps moving sturdily in that direction.

--------------------------------

So I vowed never to write another web app and I have been immensely happy with my decision. I still get some services over http, I still use XML for many things that it is appropriate for. But I never ever try to use a web browser to create a UI.

------------------------------------

I don't make that distinction, and I happily move between the two environments of Web and Windows based solutions, as I have to be "paid" for my services, my expertise, and I am not choosey.

-------------------------------------------

Now WPF comes along and blurs all the nice boundaries I have set up. It is using markup to create UI. It is mixing markup with real code (arg!). Is this a technology I should embrace? Why?

-----------------------------------------------------

Well, WPF formally know as Winfx is a managed graphical subsystem of ..NET, which was introduced to the Windows O/S such as Vista and Win 2K8 server to eventually replace the Windows API. WPF gives a clear separation of UI logic from business logic and by doing that, it gives the ability for a Windows desktop or Web based solution to use the same business logic or backend with very little or no code changes at the UI.

Web solutions do not need to be deployed to the Windows desktop, leaves little or no footprint and little or no hasslement of deploying solutions to the workstation.

.Net solutions are now using Windows Workflow, which is business logic, that lives in both environments of WEB or Windows, and WF controls the flow of work and what is seen on the UI at different stages of the flow of work. Also, starting with IIS7, IIS7 can control the WF and tell/direct a solution/application using WF as to what screens are to be shown at the UI as well.

More and more companies are now starting to embrance technology such as the WEB, Windows desktop, WPF, WCF, ADO.NET Entity Framework, IIS, SQL Server Service Broker and LINQ Service Provider just to name some, and in general, they are using/pushing SOA to develop intranet businness solutions for internal company needs that can be used by a Web or Windows based application that can be used by internal and external clients.

On the other hand, companies also what to use the un-tapped resources and power provided by Window workstation to run applications other than a Windows service or Console application, which takes the pressure off of something that's using a WCF Web service or other types WCF non Web service based solutions sitting on the middle tier server that provides persistence to a database. You can include ADO.NET Data Service as well in this too. The technologies will be used more and more in SOA.

If you want to keep pace as .Net changes how things are done, then you have to move with it and not stagnate yourself. I like the Windows programming too, but mama didn't raise no fool. I also know when to hold the cards in the hand and fold the cards, and I have been doing this for over 30 years in IT.

It would behoove you to pick-up WPF if you can IMHO, because that's where things are headed towards is SOA, "cloud" technology, internally and eternally in the business environment, which can be used be Web or Windows based solutions.
 
H

Howard Swope

Interestingly enough, in my current position I am technical lead for a product that uses a combination of WinForms and Direct3D to provide a design time to users to create 3D scenes that eventually are rendered in their run time solely as DirectX renders. Our UI layer is written in C# and our rendering layer is a combination of C++ /CLI and native C++. There are a lot of parallels between our system and WPF. Logically, aside from my personal prejudice against XAML, one would think that WPF could aid us in our work flow. Perhaps our system goals are so similar to those of WPF they naturally compete. However, I am not interested in competition, only leveraging a body of work in a similar problem domain to the benefit of our product. I just don't know where it fits in, if at all.

"Howard Swope" <howard_swopeAThms3DOTcom> wrote in message I have been glancing peripherally at the WPF since it came out and I have never really embraced it, and I am not sure that I should.

I really like the C# language and I like Windows Forms for creating rich clients. Years ago I did a lot of web programming CGI, ISAPI, ASP, ASP.Net, etc. As the web became popular and many people tried to do everything through a browser, I slowly developed an extreme dislike of web programming. I basically realized that a web browser is a lousy place for a user interface. It's a good place to disseminate information, but a lousy place to write an application.

-------------

Well, you have heard of "cloud" technology haven't you, which are Internet services provided by a vendor or internally in a company via the Intranet? The industry keeps moving sturdily in that direction.

--------------------------------

So I vowed never to write another web app and I have been immensely happy with my decision. I still get some services over http, I still use XML for many things that it is appropriate for. But I never ever try to use a web browser to create a UI.

------------------------------------

I don't make that distinction, and I happily move between the two environments of Web and Windows based solutions, as I have to be "paid" for my services, my expertise, and I am not choosey.

-------------------------------------------

Now WPF comes along and blurs all the nice boundaries I have set up. It is using markup to create UI. It is mixing markup with real code (arg!). Is this a technology I should embrace? Why?

-----------------------------------------------------

Well, WPF formally know as Winfx is a managed graphical subsystem of ..NET, which was introduced to the Windows O/S such as Vista and Win 2K8 server to eventually replace the Windows API. WPF gives a clear separation of UI logic from business logic and by doing that, it gives the ability for a Windows desktop or Web based solution to use the same business logic or backend with very little or no code changes at the UI.

Web solutions do not need to be deployed to the Windows desktop, leaves little or no footprint and little or no hasslement of deploying solutions to the workstation.

.Net solutions are now using Windows Workflow, which is business logic, that lives in both environments of WEB or Windows, and WF controls the flow of work and what is seen on the UI at different stages of the flow of work. Also, starting with IIS7, IIS7 can control the WF and tell/direct a solution/application using WF as to what screens are to be shown at the UI as well.

More and more companies are now starting to embrance technology such as the WEB, Windows desktop, WPF, WCF, ADO.NET Entity Framework, IIS, SQL Server Service Broker and LINQ Service Provider just to name some, and in general, they are using/pushing SOA to develop intranet businness solutions for internal company needs that can be used by a Web or Windows based application that can be used by internal and external clients.

On the other hand, companies also what to use the un-tapped resources and power provided by Window workstation to run applications other than a Windows service or Console application, which takes the pressure off of something that's using a WCF Web service or other types WCF non Web service based solutions sitting on the middle tier server that provides persistence to a database. You can include ADO.NET Data Service as well in this too. The technologies will be used more and more in SOA.

If you want to keep pace as .Net changes how things are done, then you have to move with it and not stagnate yourself. I like the Windows programming too, but mama didn't raise no fool. I also know when to hold the cards in the hand and fold the cards, and I have been doing this for over 30 years in IT.

It would behoove you to pick-up WPF if you can IMHO, because that's where things are headed towards is SOA, "cloud" technology, internally and eternally in the business environment, which can be used be Web or Windows based solutions.
 
A

aboahmed222

I have been glancing peripherally at the WPF since it came out and I havenever really embraced it, and I am not sure that I should.

I really like the C# language and I like Windows Forms for creating rich clients. Years ago I did a lot of web programming CGI, ISAPI, ASP, ASP.Net,etc. As the web became popular and many people tried to do everything through a browser, I slowly developed an extreme dislike of web programming. I basically realized that a web browser is a lousy place for a user interface.. It's a good place to disseminate information, but a lousy place to write an application.

So I vowed never to write another web app and I have been immensely happywith my decision. I still get some services over http, I still use XML formany things that it is appropriate for. But I never ever try to use a web browser to create a UI.

Now WPF comes along and blurs all the nice boundaries I have set up. It is using markup to create UI. It is mixing markup with real code (arg!). Is this a technology I should embrace? Why?
 
P

Peter Morris

"You should never be afraid of new technology, as that is what makes things
interesting."

It can also cause you to waste a lot of time, especially if new technologies
get dumped for something else. Never be afraid, but always be cautious :)
 
P

Peter Morris

I have never had that problem.

Linq2SQL springs to mind. I hadn't even got around to learning it when I
heard it was deprecated.
 
G

Gareth Erskine-Jones

On Sun, 5 Apr 2009 13:33:00 -0400, "Mr. Arnold" <MR.
The bottom line is the Windows API is legacy COM technology, which is what I think you are dependent upon at this time when the push is for MS to start dumping COM technology as much as possible with .NET, keeping in mind that .NET must be backwards compatible with COM for awhile due to legacy COM solutions that are still being maintained in companies.

COM might be around for quite a while. Microsoft have acknowledged
that they thought it was become less important more quickly than it
has done - and some of the features in the next version of C# (e.g.
optional parameters) are there largely to support interaction with
COM.
The problem I find in companies that I consult with is their inability to embrace new technology and move forward, and they wind-up having to catch-up.

As a contract programmer, I obviously have the need to keep up to date
with technologies, and so I'm often disappointed when a client is slow
to adopt the latest framework version etc. Of course, from the point
of view of a large company, the need to always be at the cutting edge
simply isn't there. It can be very expensive to adopt a new platform
(and even more expensive to migrate existing codebases).
 
P

Pavel Minaev

I have been glancing peripherally at the WPF since it came out and I havenever really embraced it, and I am not sure that I should.

In a few years you'll have no choice, most likely. Unless you want to
get stuck supporting legacy projects, or move to native development.
I really like the C# language and I like Windows Forms for creating rich clients. Years ago I did a lot of web programming CGI, ISAPI, ASP, ASP.Net,etc. As the web became popular and many people tried to do everything through a browser, I slowly developed an extreme dislike of web programming. I basically realized that a web browser is a lousy place for a user interface.. It's a good place to disseminate information, but a lousy place to write an application.

Yes, but this has nothing to do with WPF, and everything to do with
HTML being a Hyper _Text_ Markup Language.
Now WPF comes along and blurs all the nice boundaries I have set up.

Blurs what boundaries? If anything, WPF makes it much easier to
enforce model/view separation than WinForms ever was, thanks to
immensely powerful data binding.
It is using markup to create UI.

What's wrong with that? Using a declarative language to describe UI is
a well-known and widely used approach. XML is well suited for that,
too, since UI is a tree of widgets, and XML is good at trees. It's
also much easier for tools to work with than code (remember how easy
it is to break WinForms designer by manually editing the code it works
with).
It is mixing markup with real code (arg!).

It doesn't do that. Well, it lets you embed scriptlets into XAML, but
this is strongly not recommended, comes with a large number of
limitations. In practice, this is mostly used to test stuff out - I've
never seen it being used in production apps, or even in complete
samples.
Is this a technology I should embrace? Why?

Because it is much easier to work with, because it lets you do very
clean model/view separation, because its layout facilities are far
better than WinForms, and because it is designed for today's high-end
(and therefore tomorrow typical) display hardware - because of
emphasis on resolution independence throughout the framework.

Now why you possibly shouldn't embrace it is because it is still
pretty new, and has some quirks (like that awful font smoothing). For
some applications you can work around those. For others, you might
want to wait for .NET 4.0 / WPF 4.0 release, which irons a lot of that
out.

Also, you'll have a chance to see for yourself how a large and complex
WPF 4.0 app can look and perform with VS2010 - and then decide.
 
J

JM

"You should never be afraid of new technology, as that is what makes
I have never had that problem.

You must be the exception and not the rule - congrats!

That, or you're just not very adventurous..

John
 
I

invegat

Hi,
I want to learn both WPF and it's subset? Silverlight. What's the
best way to do that?
Thanks,
invegat
 
P

Pavel Minaev

I want to learn both WPF and it's subset? Silverlight.   What's the
best way to do that?

Until Microsoft Research polishes the existing internal tool for
direct uploading of data to brain to the point where it's ready for
public release, you'll have to do with an ancient and barbaric method,
to wit:

1) Buy books about WPF and Silverlight.
2) Read them.
3) Profit!
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top