Convert WPF application to Silverlight - wpf

I have WPF Application. Is it possible to quickly convert WPF app to Silvelight application, if not which technic I have to use to transform my WPF app to Silverlight. And also I want to know about limitations of Silvelight app.
Thank you in advance.

Yes its possible to quickly convert a WPF application to Silverlight, for example:-
<TextBlock Text="Hello, World" />
will convert with hardly any changes. Does that help? Clearly not. It really does depend on how much stuff from WPF your app uses that isn't in Silverlight.
You should read through the WPF Compatibility section of the Silverlight documentation to assess how much of your WPF application will port to Silverlight.
What are the limitations of a Silverlight app? Well it can't make a decent cup of tea I know that. Seriously thats far too broad a question. Define what sort of things the app does and that'll guide the advice you get.
For example, is it a LOB app? Does need access to the local file system? Does it depend on third-party components? etc.

Related

Similarities between WPF and Silverlight

I came across differences between WPF and silverlight over the links in the web but I couldn't find any content regarding the similarities in wpf and silverlight. Can anybody please let me know the common points between the two?
This document goes through the differences and the simialarities between the two. It's 69 pages so a bit of a read, but it should cover what you need.
WPF/Silverlight White Paper on Codeplex
WPF is a more mature technology and was designed with a richer feature set. It also has the advantage of being able to run in a browser or as an installed Windows-Form-type app.
Silverlight has a broader reach. You can access Silverlight from many operating systems and web browsers.
The most important reason to choose one over the other should be based on the intended audience for the application.
See this link to get more information. Check this also.

What silverlight dev must learn to use arcGIS silverlight?

I am already familiar with Silverlight programming but not have any experience with GIS.
my role as silverlight developer is only to display existing GIS data.
If you guys have any experience with arcGIS silverlight control & api, what else do you think I must learn to be able to use it.
any learning reference could be helpful. thanks.
you don't need alot, you can dl the SDK from ESRI and then check out thier help site they have crap-loads of examples, both downloadable source and live samples (with the source code). If you have a license, you can use bing maps in the ESRI silverlight control--there are assemblies in the SDK for that.
as an aside, the SDK also includes the WPF assemblies as well.
It helps to have a basic understaind of the ESRI Map and Graphics object model for any of their API's (they all have similarities). The Silverlight API is much simpler than the Arcobjects API, but shares many of the same patterns.
If you are performing specific operations (such as distance calculations, map annotating, etc) there may be very specific concepts that will help. Can you post a question with more details about your goal?
I have made some different projects that used GIS data. I haven't tried arcGIS but used Bing Maps (http://www.bing.com/community/blogs/maps/archive/2009/03/18/introducing-the-virtual-earth-silverlight-map-control.aspx) and a Silverlight component from ThinkGeo (http://gis.thinkgeo.com/Microsite1/MapSuiteSilverlight2/tabid/709/Default.aspx?adcampaign=Map+Suite+Silverlight+Edition&leadsource=Google&adgroup=Silverlight+General&adtype=search&keyword=silverlight+map&gclid=CIu976aW0Z0CFZ1h4wodwGsDsA).
I think that Bing Maps is really easy to work with and there is lots of help available online. Maybe that can help you with some starting resources to argGIS?!
Chris is right. The help site has enough samples. I don't have Silverlight skills, so I really struggled with it and I was pretty bad at it too. I think the silverlight learning curve is much steeper.
I tried to wire up GIS tools/buttons to a ribbon control. It sort of worked, a silverlight dev would do a better job:
View esri-silverlight-toc-png
If you just need to control visibility, between services. It's real easy. Or if you have one service, with layers inside that you need to control...that's easy too.
But if you need both, you will have to roll your own layer control. I wired it up to a treeview, but it doesn't look sexy. ESRI may have a better TableofContents control out now, they didn't when I was messing with it:
View esri-silverlight-png

WinForm Controls for .NET Compact Framework

I'm looking to invest in a UI control toolkit for a Compact Framework 3.5 project for Windows Mobile 5 and later. All I can find is the Resco MobileForms Toolkit (http://www.resco.net/developer/mobileformstoolkit/overview.aspx). I have two questions...
Are there any other good WinForm control collections out there?
Any experience with the Resco controls? How have they been?
What about the Smart Device Framework? The GUI components don't look as fancy as those in the Resco toolkit, but SDF seems to have a broader basic selection (SDF doc). I've never used either (have only used MFC on WinCE), but would also like to hear about CF development experiences.
MiraByte has these controls.
+1 on the Resco Toolkit. I've used it for quite some time now and I must say that if you need slick UI, they're the way to go. Apart from what Ivan's already said, the WYSIWYG template designers for thing like AdvancedList or DetailView let you do rather impressive things pretty easily.

Learn Silverlight or WPF first?

It seems that Silverlight/WPF are the long term future for user interface development with .NET. This is great because as I can see the advantage of reusing XAML skills on both the client and web development sides. But looking at WPF/XAML/Silverlight they seem very large technologies and so where is the best place to get start?
I would like to hear from anyone who has good knowledge of both and can recommend which is a better starting point and why.
Should you learn ASP.NET or Winforms first? ASP or MFC? HTML or VB? C# or VB?
Set aside the idea that there is a logical progression through what has become a highly complex interwoven set of technologies, and take a step back and ask yourself a series of questions:
What are your goals; how do you want to balance profit against enjoyment
Are you short term oriented or in for the long haul
Are you the type of person who likes to get good at something and do it a lot or do you get bored once you fully understand it?
The next and hardest step is to come to accept that any advice you are given is bound to be wrong; and the longer the time horizon the more likely it is to be incorrect. If the advice is for more than six to 12 months, the probability the advice is wildly incorrect approaches 1.
I can only tell you my story, quickly. In 2000 I was happy as a consultant working profitably in C++ on Windows applications, writing about ASP.NET and WinForms. then I saw C# and the world turned upside down. I never went back.
Two years ago I had the same kind of revelation, only an order of magnitude bigger, stronger and with more conviction about Silverlight. Yes, WPF is magnificent, and it may be that I'm all wet about this, but I believe in my gut that Silverlight changes everything. There was no doubt then and there is no doubt today that Silverlight is the most important development platform for Microsoft since .NET (certainly) and possibly since the switch to C++.
In a nutshell, here is why. I don't understand where its limitations are. With most platforms I do: you can do this, but you can't do that. WPF is a pretty good case in point, as was ASP.Net and WinForms and, well really everything until now.
With Silverlight, I don't see the boundaries yet. Silverlight has already leaped off the desktop onto phones, and I don't see any reason for it to stop there. Yes, it is true, it is bound by the browser, but I see that less as a jail cell than as a tank in which Silverlight will be riding over lots of terrain (it must be very late, I should go to bed).
In any case, for now, learning Silverlight is a gas, there is a lot of material on the Silverlight.net site, and what is the very best thing about learning Silverlight is that if you don't see what you need you can holler at me and I'll make sure you get it pretty quickly.
Enjoy, good luck and the dirty little secret is you'll be fine whichever you choose. It's all just software.
-jesse
Jesse Liberty
"Silverlight Geek"
I'd say go with Silverlight first!
I have programmed with WPF and Silverlight before.
But as Silverlight is a subset of WPF if you go in too deep and try to switch to writing Silverlight applications, you'll be scratching your heads looking for that "tag" you learned to love in WPF but is not available in Silverlight.
When you master the basic things in Silverlight first, the extra mechanism/trigger/whatever features in WPF will simply add to most of what you've already known.
Silverlight in WPF differs at the features level, not just some missing controls or animations. Take the WPF triggers mechanism for example, is not available fully in Silverlight.
So learning the smaller subset first, you can extend that knowledge to the full set later, but if you started at the full set and gets addicted to some of the niceties available, you'll have trouble down the line when someone asks you to port your designed-utilizing-WPF apps to Silverlight.
I'll go against the grain and say learn WPF first.
Here's my reasoning:
Much more resources are available for WPF than Silverlight, such as books, blogs, and msdn documentation
WPF Books
You're not dealing with a Beta, moving target
You don't have to deal with working with only asynchronous calls
Not limited by lack of features such as Merged Dictionaries, Triggers, TileBrushes, etc.
You don't have to worry about re-learning to do things correctly because of lacks of features in SL
Silverlight is a stripped down version of WPF so it should have fewer things to learn inside. On the other hand, the two platforms have different targets (web & rich client) so I guess it depends on what app you're going to build.
If you just want to learn for yourself (no app in the close future) I'd pick Silverlight because it would be less to assimilate. Still, Silverlight is pretty much a moving target, much more than WPF, so you'll have to keep up with some changes from time to time (the joys of being an early adopter :)).
WPF has lots more stuff that you will probably want to use at some point but I would wait for the needs to arise first.
Every industry expert I've heard on podcasts, blogs and interviews recommend learning Silverlight first and then gradually moving to WPF which is a huge UI framework.
Silverlight is light and allows you to work on smaller subset of controls and features such that you get your head around this new UI building paradigm based on,
Templating
DataBinding
Styles
Update: 07/2011
I hate to mention this, but in recent times Microsoft has put more focus on HTML5, Javascript and CSS by bringing forward powers of IE 9 and IE 10, as well as the upcoming Windows 8.
More and more developers and CTOs are skeptical about Silverlight as a LOB application platform as the time passes by, we are suspecting Silverlight will be limited to Windows Phone and niche, domain areas like healthcare of graphics related applications rather than a regular LOB app.
As it seems right now, as of summer 2011, the future might look fragmented with more opportunities for pure web technologies (HTML5, JS and CSS) as opposed to a plugin and OS-specific UI technology.
I would start by learning XAML, by reading a few tutorials and playing around with XAMLPad. This will give you a feel for the basics before actually building an app.
I would start with WPF and doing very simple control familiarizaton samples. You goal should be to learn XAML and Binding. So if you just create some basic WPF window apps will bootstrap your learning speed. Then eventually you can move to silverlight. Yeah as other mentioned here Silverlight is a subset of WPF.
Well, it depends on what you are going to be working on. If you are working on client/server, then I would go with WPF. If you are working in an environment where you can guarantee that .Net is installed on all of the machines, then I would go with WPF as well, because you can use what is called an XBAP, which is a WPF application that is run through the browser.
It's really up to you. However, I would state that silverlight is not RTM yet, and WPF is. WPF has a lot of books out on the subject, where silverlight does not. It may be easier to get the whole Zen of WPF by reading a few of those books, and then dive into which ever one you would like to play with.
Just keep in mind that silverlight has a subset of the controls of WPF, a paired down .Net framework, and does not do synchronous calls. As long as you know that up front, you can start learned the core of the whole foundation and tailor your practical experience later on to whichever technology is best for you.
Some tips at Getting started with Silverlight Development

What exactly is WPF?

I have seen lots of questions recently about WPF...
What is it?
What does it stand for?
How can I begin programming WPF?
WPF is a new technology that will supersede Windows Forms.
WPF stands for Windows Presentation Foundation
Here are some useful topics on SO:
What WPF books would you recommend
What real world WPF applications are out there
From my practice I can say that WPF is a truly amazing technology however it takes some time to get used to because it's totally different from the WinForms.
I would recommend you to take a look at this demo.
WPF is the next frontier with Windows UIs.
Built on top of DirectX, it opens up hardware acceleration support for
your .Net 3.0+ user-interfaces.
Emphasis on Vector Graphics - UIs scale and render better
Composable UIs. You could nest animated buttons in combo boxes.. the world's your oyster.
Is a rewrite with only minimal core components written in unmanaged code VS GDI-User Dll based Winforms approach which is a thin managed layer over largely unmanaged code.
Declarative approach to UI programming, User Interfaces are largely specified in a XML variant called XAML (eXtensible Application markup language) pronounced Zammel. This opens up WPF to designer folks who can specialized tools to craft UIs that the developers can then code up. No translation losses between wireframes to final product.
MS 'allegedly' will not provide any future updates to Winforms. Heavily invested in WPF as the way forward
Oh yeah, before I forget. Works best on Vista :)
You can get either Adam Nathan's WPF Unleashed Book or Chris Sells Programming WPF .. those seem to be the way to go. I just read the first chapter of Adam's (Lead for WPF at MS) book. Hence the WPF praise fountains :)
Take a look here http://windowsclient.net/ and here Windows Presentation Foundation (WPF)
Basically WPF is created to make windows form easier to design because of the use of XAML, designers can work on the design and programmers on the underlying code
WPF is the Windows Presentation Foundation. It is Microsoft's newest API for building applications with User Interfaces (UIs), working for both standalone and web-based applications.
Unsurprisingly, there is a very detailed but not all that helpful Windows Presentation Foundation page at Wikipedia.
The WPF Getting Started Page at the Microsoft MSDN site is probably a better place to start.
Is the new Windows Gui system. I don't believe its aim is to make development easier per se but more to address fundamental issues with WinForm, such as transparency and scaling, neither of which WinForm can effectively address. Furthermore it seeks to address the "one resolution only" paradigm of WinForm by mapping sizes to real-pixel sizes and making flow layout easier and more fundamental.
It's also based on an XML derivative making it easier to change the UI and forcing a separation of the UI and the core code (although technically you can still badly hack it together in this manner).
This separation also drives a desire to be able to divide the work into two camps, the designers taking charge of the XAML and layout and the programmers taking care of developing the objects used in the XAML.
Check out Eric Sink's Twelve days of WPF 3D.
Windows Presentation Foundation. It's basically Microsoft's latest attempt to make development easier, and provide a whole heap of nice functionality out of the box. I'm not sure where to start, but googling "WPF 101" should throw up a few useful links.
WPF is part of the .net 3.0 stack. Its microsoft's next generation Graphical User Interface system. All the information you need can be found on wikipedia and msdn's wpf site
To Get Started programming I guess check out the essential downloads on windows client

Resources