WPF For Beginners Clarification - asp.net

I am a Web developer in ASP.Net. Just I heard about WPF.Is WPF is for Desktop stuff or can
i use all WPF controls in my web application?. When i visit the microsoft website it talsk much about designer tools (expression,blend),where can i get web developer perspective vidoes of WPF (Just drag the control on my form and set the properties for coding)?

Bottom line is this - WPF is a desktop technology. It's very closely related sibling - Silverlight requires a runtime much like Flash to run in the browser.
Silverlight components/controls/applications can be hosted inside of an asp.net application but the idea that your skills will just 'carry over' is grossly misguided. Silverlight uses the same core languages (C#, VB.NET etc and a subset of the .NET Framework) so to that extent that knowledge is valuable but both WPF and Silverlight use a declarative presentation language called XAML or (XML Application Markup Language). XAML is what HTML can only dream to be - it is extremely powerful and elegant and has rich support for things like binding.
From a tooling perspective - Expression Blend is really a XAML designer that can target Silverlight or WPF applications.
Videos can be found at
http://windowsclient.net/learn/videos_wpf.aspx
http://silverlight.net/learn/
http://microsoftpdc.com/Videos
UPDATE: Ray makes some good points in the comments section about WPF controls and the XBAP type (Xaml Browser Applications)

If you are developing intranet applications, you might also consider WPF XBAPs(XAML Broswer applications). Clickonce enables very interesting deployment scenarios of WPF XBAPs in intranet environment.
WPF XBAPs can provide more features than silverlight because XBAPs can make use of full .NET framework. Having said that silverlight is really amazing for developing Line Of Business applications.
Hope this helps.

You CAN use WPF for your web application. I have done so on several occasions.
To deploy WPF to a web browser you wrap your content in Page controls and create what is called an XAML Browser Application ("XBAP"). XBAPs can do almost everything that a full WPF application can do except access the local computer and call unmanaged code.
At present XBAPs are significantly more powerful than Silverlight, though that gap is closing quickly. I expect in another year or two Silverlight will be as good as XBAP for web deployment.

WPF is solely for desktop applications. Silverlight is very similar to WPF however and can be used as a Flash replacement, so your skills carry over.

If you are looking for WPF beginner videos to start with, then try these:
http://windowsclient.net/learn/videos_wpf.aspx
Hope, it will be helpful.

Related

WPF, Silverlight or WinForms? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 1 year ago.
Improve this question
The company I work for has an existing product which is a Delphi 32 bit windows application.
The application has a spreadsheet like UI which requires a very fast data grid/table view and advanced charting (plus the usual button/dropdown/menuing/toolbar controls).
We also have a .net 3.5 ASP.NET application which mirrors large parts of the business logic in the windows app.
We want to re-write the delphi application in .net, so we can have one set of business logic code.
We would like one application if possible (which is why we are looking at Silverlight).
What do we lose in going from WPF to Silverlight? Should we use neither, and use WinForms instead? or should we just further enhance the ASP.NET/AJAX application?
WPF is currently more flexible but both WPF and Silverlight are slowly merging. If you want the ability to access the application in a browser go Silverlight, otherwise WPF.
The charting may be a bit of an issue depending on how complex it is. So far there isn't many charting packages available for WPF or silverlight. ChartFX is decent but doesn't support advanced financials such as MACD etc..., which there is a financial pack available in the winforms version.
Another consideration would be if this application is for internal or external use? If it's external I would say stay away from silverlight as the adoption isn't quite there yet. If it's internal and you control the standard then definitely do silverlight vs asp.net MVC.
If you are not tied to an existing Winform app, and you plan on doing a lot of design work, then WPF or Silverlight should be higher up on your priority list. The main benefit of WinForms today is that they are more mature and have more 3rd party components, but XAML is becoming more popular and opens new doors in terms of application GUI design.
The choice between Silverlight and WPF mainly pivots on your distribution method and application requirements. Silverlight apps are usually accessed via a web page, and while there are methods of accessing them offline they really work best in lightweight situations. WPF apps run in "Full trust" mode and have many features that are not available even in Silverlight Offline applications. If you are talking about a simple data entry or Line of Business application, Silverlight should meet your needs, but if you need access to external resources (Hard Drive, local database, USB device, etc) then you may be stuck with a WPF application. I believe that WPF apps can use Click-Once deployment, which gives you may of the benefits of a web-deployed application while retaining full access to the underlying hardware.
WPF vs Silverlight
I would go for WPF, even if you have some fancy control etc. in WinForms you can always host it in WPF.
UI which requires a very fast data grid/table
WPF uses DirectX and Redering is much faster. Also you have one more way - XBAP.
On the other hand, ASP.NET/AJAX is more multiplatform.
WPF = fast rendering, ASP.NET/AJAX = multiplatform.
Silverlight is not that mature.
just go througth this reference also
Choosing between WPF and Silverlight
Silverlight is largely a subset of WPF (that's an oversimplification, but the general point remains). Frankly, you don't lose a whole lot by using it over WPF -- in fact, the XAML differences between the two are enough that making one Silverlight solution is going to be easier.
In any case, I'd say that either are better than WinForms, which throws out the web interface altogether. Also, Silverlight/WPF has a generally better rendering engine, and allows for easier separation of display and business logic.

What are the pros and cons of these client options in C#? winforms, WPF, Jquery, ASP.NET AJAX, and Silverlight

just wanted to clarify the options for client presentation :
1) winforms - for windows client - older technology
2) wpf - for windows client - newer technology, uses xaml
3) jquery - for web client - uses javascript
4) asp.net ajax - for web client - older technology
5) silverlight - for web client - newer technology, uses xaml
for the web client, what are the pros and cons of option 3, 4, 5. is it better to learn jquery or asp.net ajax ? is silverlight mature enough to be used ?
In terms of desktop applications, you cannot go past WPF, the problem is there doesn't seem to be a huge knowledge or push for commercial projects using WPF.
I have been using it to write my companies in house applications and it is miles ahead of winforms, it brings all the UI templating and reuse that asp.net can have to desktop apps, plus a whole lot more.
Spend some time to play with it, especially look at the binding side the using Linq and a project like CLinq or BindableLinq to propagate changes to the base lists to the UI without handling any events.
jQuery and ASP.NET Ajax complement each other so I guess it's not an either or for them, at least not according to Microsoft.
The problem with Silverlight is not maturity but rather the low rate of installations. In an intranet scenario this might not be a problem. Also Silverlight suffers from the same problems as Flash. It's harder to get linkability, searchability and such.
I'd like to add MVC, it's part of asp.net depending on who you ask but it's so different that it's worth being on it's own.
I recently rebuild an old asp.net webapplication in asp.net mvc for a customer and he was very impressed with how much more intuitive and fast the application had become. I did not do any functional changes. Just the presentation part was changed. I'd say it's worth mentioning here.
These 2 blog entries from ASP.Net answers my question
http://weblogs.asp.net/paullitwin/archive/2009/03/30/the-four-pillars-of-asp-net.aspx
http://weblogs.asp.net/shijuvarghese/archive/2008/07/09/asp-net-mvc-vs-asp-net-web-form.aspx

Is there any good open source ASP.NET application using MVP pattern

I'm trying to upgrade my existing web forms application to upcoming framework and rewriting couple of workflow as per the new business requirements. I want to introduce TDD based development in this project but after some investigation found that ASP.NET MVC will not help me as my web existing application is using lots of Infragistics UltraWebGrid controls for grouping, paging, column moving etc and there is no good alternative grids in ASP.NET MVC world. I also need to support blackberry in this release. So, am planning to use both MVP for desktop client and MVC for blackberry client in same project.
I would like to know if someone has done something similar in their project and links to any good open source asp.net applicaton using MVP pattern. I dont want to use WCSF as it is too heavy weight. I saw their MVPBundle sample application but it lacks use of modern tools like IoC (Unity or StructureMap), Mocking framework etc.
Regards,
Sunil
The latest incarnation of Nerd Dinner has mobile support in an ASP.NET MVC app.
I'm not sure about the JS support on a black-berry but there are quite a few grid/repeater type controls and mechanisms available using either jQuery or the forthcoming ASP.NET AJAX 4 templating controls.

Are ASP.NET Web Parts a viable technology for implementing a portal architecture

Web parts seem to be used extensively in Sharepoint related development, but examples of using them in asp.net webforms applications are few and far between. I'm implementing a domain specific portal framework and like the "widgetlike" functionality in iGoogle or pageflakes and would like to get that kind of feature in my application. The real troubling issue from my perspective is that the drag & drop layout features of web parts do not work in non-IE browsers unless you use the latest ASP.NET AJAX futures library. It seems to me if Microsoft meant this to be a foundation technology, they would have moved these features into the main product by now.
Are web parts a dead-end technology? If so, are there any alternatives?
i think they are (dead), at least for developing the types of UI modern web-browsers are looking for. My recommendation ... ASP.NET MVC and a nice .js library. It's more work out of the gate, but with the proper planning and implementation it will serve you much better in the long run.
I found a really great site about some tips to implementing WebParts-like behaviour:
http://blogs.msdn.com/b/nunos/archive/2010/02/16/quick-tips-about-asp-net-mvc-webpart-framework.aspx
Webparts are a part of the .NET infrastructure and are a foundation technology. There are few interface technologies, to make webparts compatible with their J2EE counterparts.

WPF app into ASP

Is there any way to turn to WPF app into an ASP app? Or are they totally unrelated technologies? XAML format reminds me so much of HTML that it seems like there might be a way.
WPF app is a windows application while an ASP.Net app is a web application. These two platforms have huge differences which make it hard to convert. In most cases this isn't even feasible due to different limitations and strengths of these platforms.
For viewing this might be possible but if the WPF application does anything like write to the local filesystem or modify something on the user's computer this just won't work on the web.
If the application is for internal use, you could look into XAML Browser Applications (XBAP). These have only security limitations which you can bypass by signing the deployment and propagating the correct certificate to the client computers through the Domain. The great part about XBAPs is that they can share assemblies with the WPF application and so converting WPF application to an XBAP is quite trivial.
Silverlight is another possibility but there are quite major differences between WPF and Silverlight and turning a WPF application into a Silverlight application requires more rewriting than one might initially think. The Silverlight engine is built on top of .Net but it uses different virtual machine and isn't binary compatible. It's still easier to port to than to ASP.Net!
Even if you would manage to convert the XAML to ASP.Net HTML you'd have problems with the minor differences in control behaviours. And if your WPF app is using the major WPF features such as embedding controls inside tab page headers or applying transformations don't even think of trying this.
I don't believe there is an easy way to do so; they are indeed basically unrelated technologies. WPF renders to your screen while ASP.NET renders HTML for viewing through a browser, and all the event/data pipelines are completely different.
Though you could convert your WPF app somewhat easily into a Silverlight app if you want to run it on the web.

Resources