Possibilities for full blown silverlight applications - silverlight

Since the launch of Silverlight 2 I was expecting a lot of full blown Silverlight applications popping up but still there seem to be little evidence of this. Does anybody know of such applications out there in the wild. And also what would be the obvious applications you would develop in Silverlight. I would say mail clients are bad examples as they just as well could be written as a web/ajax app. As Silverlight is far more powerful than web+ajax possible candidates should be impossible/akward implementing as a web/ajax app.
The ones that comes to my mind is
Photo and imaging editing apps
Reporting applications
Office applications, Word/Excel...
Edit:
Added from posts
Games
The point isn't that the app need to fill the whole screen just that it isn't just a small part of a webpage, or you could call it a full blown application running inside the webbrowser, only using the webbrowser as a host.

I think the Medical app that Microsoft itself developed shows pretty well what could be achieved with silverlight http://www.mscui.net/PatientJourneyDemonstrator/
As for image editing then as I understand its a bit difficult as Silverlight lacks a Bitmap API to be able to do per pixel image editing...
Edit:
I noticed you added Word/Excel to your question and there comes the problem that Silverlight doesn't have a rich text editor built in and there hasn't been real good examples of custom implementations. There is one http://www.codeplex.com/richtextedit but I haven't seen any applications that actually use it.

I'm working on one in the medical domain.
This started as an update of a Mac classic application but due to the amount of work involved, broadened to considering other toolkits. I convinced them to go for an initial WPF desktop port to be followed by a Silverlight version.

I don't know one so far, but I could imagine that it could be used in a kind like the fullscreen video playback on youtube.

How many fullscreen desktop apps are there? Most application don't need the entire screen. If you don't want to be distracted by menus and taskbars and so you go fullscreen. Another type of applications that can use fullscreen are games.

You are limited in fullscreen to certain key presses such as arrow keys, tab, enter, and space so this rules out some of those types of apps. They have done this for security reasons so an app can't hijack the screen and record the keypresses, but I wish they could come up with a scheme to sufficiently warn the user then allow it if they consent.

An application Microsoft seem to like to show case is the AOL mail client written entirely in silverlight.
Personally I follow the rule is if you would not write it in flash you would not write it in silverlight preferring AJAX in most cases. In the past most large flash application have failed such as the flash word processor (cant remember the name) while AJAX enabled applications such as google documents have taken off.
Finally I believe until moonlight (linux and mac support) has been released and more general users have silverlight downloaded developers will be reluctant to use it widely even for smaller apps and gadgets.

Related

Port an OpenLayers application to mobile devices

After making a duration/cost estimation, I'm about to start developing a desktop application using OpenLayers. I've never had experience on it before, but have the support of some coworkers who do.
Now we have to estimate the time and effort it would take the same application to be viewable in mobile devices. I know the existence of openlayers.mobile.js, but nobody in my company has ever worked with it before.
I know it has some advantages over the normal OpenLayers library, such as pinching for zooming, and so. But, does it has any blocked capabilities? I mean, if I write code to draw a line on a layer in the desktop application, change the simbology of a layer, add a buffer arround a polyline, etc.. will it still work with the mobile library?
Is there funcionality in the desktop version that is not in the mobile one?
I'd need to know before estimating what can I offer in the mobile version, and how hard will it be to get so.
See examples tagged with mobile:
http://dev.openlayers.org/examples/
The next OpenLayer versions will probably have better mobile support as this is something many users are interested in.

How does Silverlight programming on the Window Phone 7 differ from browser plugin?

I was talking to another developer recently and we started to discuss Window Phone 7 development. Their thoughts, from what they had heard (i.e no hands on knowledge) was it was really just Silverlight development. My reaction was that I see a lot of posts these days regarding Silverlight that call out being for "Windows Phone 7" so there must be some distinctions between the two.
So what I'm wondering is what are the differences between developing for WP7 v. the browser plugin.
The things I can think of, but seem obvious are:
WP7 Silverlight version isn't the same SL 4.0 but more like SL 3.5+
the hardware is different (memory\cpu)
I assume there are some different controls
you need to take into account the form factor
Not discounting the above list, which are important, but what else is different when developing a Silverlight application for WP7 v. browser plugin?
Thanks
There are a lot of technical differences and sure there are plenty here who give you bullet list of these. However there are really just a few real differences that make a big difference to how you develop apps for WP7.
Its a touch interface people
Quite a few apps I've played with from the market place seem to have developers struggling to grasp the concept of a touch based interface. Its clear that many are still using the left mouse down event when they ought to be looking for a "Tap" gesture. This can be frustrating for users trying to "flick" and find they've "clicked" instead.
So make sure you are using a gesture based framework (toolkit has one) so you don't annoy the users.
Your app will tombstone
WP7 guards its resources jealously. At a moments notice your app may be deactivate as the search screen or start screen is invoked. Volatile state of your app will be lost. WP7 API includes a number of ways of keeping key small chunks of data when your app gets "tombstoned" so that when the user returns to it, it should be able to restore near enough the same state it had before. However this isn't done auto-magically you have to code for it.
Again some of the apps in the market place don't handle this well and when you have an Omnia 7 which has a seriously sensitive search button that can be really frustrating.
Network access and other services are intermittent
If you are developing a connected app you need to cope gracefully with changing network access or loss of access all together.
Read the manual
Whilst there are plenty of resources get devs up and running real quick the devil is always in the detail. I recommend you at least start with reading Fundamental Concepts for Windows Phone which will cover some of these issues.
TBH there are a lot. Some of them:
Touch input vs Mouse clicks
Sounds and music
Silverlight 4.0 "/content/song.wma"
Silverlight for Windows Phone 7 "content/song.wav" (mind the slash)
Navigation philosophy
WP7 SL has two threads by default. One (compositor thread) runs all animation, second (UI Thread) runs the rest.
Controls have very diffrent default behavior and look
and many other OS realated
Better than any explanation, you should refer to the official website.
Silverlight for WP has support for (according to the same doc):
Hardware acceleration for video and graphics
Accelerometer for motion sensing
Multi-touch
Camera and microphone
Location awareness
Push notifications
Native phone functionality
It doesn't have regular COM bindings and it has somewhat limited access to reflection, among all restrictions.
For a complete list of features supported in Silverlight for Windows Phone, read this document.

What is major Difference between Adobe Flex and Microsoft Silverlight?

I want to develop a web Application to manage school administration. But I am not clear, which technology should I use to create Rich Internet Application. At present, develeopment company is going with ASP.net tools and say this is a web app.
However, there is page refresh on every click. Which I don't like. Please suggest, where to proceed.
Regards
Piyush
In a plain ol ASP.NET application, the screen refresh can be eliminated by using update panels in webforms, or by using more of the AJAX capabilities of the MVC Framework. (Wikiplex on Codeplex has a crazy simple example of this that I love in their example application).
Between Silverlight and Flash, however, Silverlight is designed to be a Web Application, or (at times) a desktop application in a Browser, while Flash is more of a multimedia framework.
Since it is school administration, which doesn't require random people to have Silverlight installed, Silverlight and JS/AJAX are both good options. Both are built into the ASP.NET set of libraries, and have good support in Visual Studio. Flash is a bit of an outsider in this regard.
So to sum up:
In general JavaScript/AJAX > Silverlight but either would be great.
If you are totally against any screen refresh, I'd lean more towards Silverlight.
If the developers are very familiar with Flash and communicating with the server with Flash, then I'd say it is also an option, but with no knowledge on all three and I'd not pick Flash first.
It's a little late for a response to the initiator. But I didn't agree with some of the answers I read here, and since google is popping this up in the search returns I felt compelled to align my answer on this board.
First off, a lot of developers create applications in ASP.NET and AJAX because they are comfortable with it not because the technology is better. For years, what it took one person to develop in the Adobe Flex framework, took many developers to create in AJAX. There is no more AJAX versus Flex, there's just Flex. Who wants to write a hundred lines of code in AJAX to do the same thing it takes 1 line of code in Flex. That's why the cost with an AJAX deployment was always more expensive.
On ASP.NET, you're right. Who wants to see the page refresh every time you perform an action? Not to mention, no browser follows the HTML implementations exactly, so how .NET app looks in 1 browser would look different in another browser, in addition to differences witnessed with the various browser versions.
Most ASP.NET, heck even Coldfusion Applications are clunky in HTML. So with that in mind all of my gui development is done in Adobe Flex. When a flash file is created, it compatible with 99% of the browsers (safari on mobile devices excluded), and all of the Operating Systems are supported. I'll tell you what, you can get silverlight to work in linux but have fun while it loads 50MB of MS software on your Linux OS. Not to mention Flash has a 99% market penetration. So it's already preloaded on machines and browsers.
Plus flash supports most picture formats and SVG natively. Did you know Silverlight became notorious because they don't support even a GIF/BMP formats? Forget SVG if you're using Silverlight because it doesn't support it. What's SVG? Look it up! It's only the most useful way to create any image you want right in a flex app. For instance maps are useful in SVG. AND its just a small file. Not a horrendous large file.
Language, Flex is just easier to program in and there's a lot of support for it. Think I'm kidding, try for yourself. You can download a Free version of flex for 30 days. Forgive my ignorance but I don't even know where to begin on loading Silverlight. I've got visual studio and all that but I gave up after trying. But that was 1 year after it's release so it may have changed.
And frankly, if you or a developer can't afford flex, DON'T BUY IT. Instead, download eclipse, which is free forever. Adobe Flex is only a special iteration customized by Adobe anyway. So you probably won't get charting and some other components in eclipse, but most of the GUI components are built right into Eclipse.
Programming ASP.NET is just old hat. It's clunky, difficult to work with and it's possible to corrupt the files. It's not possible at all to corrupt your project files in Flex/Eclipse because they are just TEXT files. How cool is that?
Don't get me wrong, I program in ASP.NET too. But I like it for Application server processes; you know like the middleman between database and client. SQL server feeds ASP, and ASP feeds my Flex GUI using SOAP. Big plus is even though I hate Visual studio crystal reports, it's still way better than nothing. Believe me you want to have some reporting possibilities like CF Report Builder or crystal reports. Some people just like a nicely formatted PDF and that's all there is to it.
I've released hundreds of applications using various technologies. Right now this is my favorite. But frankly, a good GUI can be done anywhere if you are a 'kung fu' master. I'm saying that although it's easier out of the gates to program in Flex compared to .NET/Silverlight, someone with some mad .NET skills can put a Flex app to shame. But as it stands right now, there is no argument that Flex is the stronger candidate with the most market penetration, flexibility, and ease of use.
Good luck all...
ASP.NET does provide some special sauce for AJAX, so it's entirely possible to eliminate the page load without leaving ASP.NET. If you leave ASP.NET, the options are endless: Java, Silverlight, JQuery, Flash, etc. ad infinitum.
Silverlight and Flash are great for richer user interfaces, however I dont think they should be used for the "whole" interface or application. Its best to narrow down these parts and decide how rich these need to be, then evaluate which technology to use. If you just want to prevent full round trips to the server on a page, AJAX is a good option. I would also recommend Silverlight over Flex, since you probably/already have the tools.

Is Silverlight ready for commercial website aimed towards non-savy-computer users

My concern is that novice users will turn their back to a website which asks them to install Silverlight.
One of the reasons I think they might be scared of installing Silverlight is because they are not aware of what Silverlight actually is.
What's your take on this?
You can see the website riastats.com for information on install base, the main thing is if Silverlight gives an advantage such as the NBC Olympics coverage in United States uses Silverlight because of the Smooth Streaming technology plus the ablity to have a Live DVR where live streams can be "rewound" - all these features are probably better supported by Silverlight has the Client and Server ends can be well integrated (with Microsoft solutions).
I may be a little biased as I am a Silverlight developer, but with a less than 5MB download for runtime, that helps sell it more - especially as it may be a better alternative than the Flex download for Flash if this is required to create a solution that would have worked in Silverlight as it is a larger download.
Check out the silverlight.net showcase you'll see who and where it is being used - you can then make your decision based on this - rather than a few opinions (including mine!).
Well Silverlight is installed on about 50% of pc's now. So it depends on your market. Normal web users (ie. non-developers) tend to install anything you prompt them to if you can clearly and succinctly give them a compelling reason to run your application.
It doesn't tend to matter outside of the work place environments if you use silverlight or flash. What's more important is that your application will solve a problem the user has, and you can communicate that well.
They do not know what is is, marketshare is around 40%. I'd say it's not ready if you want to reach everyone.
However if Flash or javascript is not an option, give a firsttime visitor window informing your clients about silverlight.
I think you're going to have a lot of users on the public internet that don't have it installed. If you're really going for a mass-market site, and you aren't doing a crazy amount of media-rich type content, I would go with something like JQuery to make your Javascript easy and cross-platform.

Does Silverlight have enough of an install base to consider deploying a public web application with it?

I know this question has been asked a million times in various ways by different businesses, but I'm wondering the community's opinion on it [There's this question, but in the fast-moving world of tech, a year is a long time]. For hypotheoretical purposes, let's consider a website where users can watch videos, a la YouTube, Hulu, etc. (actually, it's an on-demand transcoding solution, but close enough). The website could deployed:
Using HTML, JavaScript, and HTML5's <video> tag
Using HTML, JavaScript and Flash (like most are right now)
Using HTML, JavaScript and Silverlight just for the video player
Using Silverlight for navigation, creating a rich all-Silverlight experience
(Let's assume, again hypoteoretically, that the all-Silverlight version is not as annoying as most all-Flash pages are today, but instead provides an experience similar to a desktop application)
Which way would be able to reach a large percentage of the population? How would people feel about having to install Silverlight to view a site -- how much would they want to see the content to make them click the install button? What if a user is browsing the site at the library on on another public computer with limited bandwidth, possibly using older hardware and with an unprivileged user account -- how easy would it be for them to install the Silverlight runtime?
I really want to use Silverlight since I like its' model (I've been using it for an internal app at work, and I think it's an excellent platform), however I'm afraid that for a public site, a large percentage of users would not be able to view the site, then Flash may be better option.
EDIT:
Well, the idea is to have a player where users can access videos on their home PCs from the web. So the users usually won't be using a home PC -- they'll be using work PCs, friend's PCs, public PCs, etc. That's why I'm worried about the security/install privileges issue.
Start with what each of technologies can do for you and match that against your requirements re: content delivery. Assuming each is just as good as the other for the purpose at hand, and that you have the requisite skills in each or dont mind learning them to produce your content, then dont see player distribution as a problem.
Users not having the priviledges to install the player should it be absent would generally be considered an edge case. If your site is specifically targeting a user group to which this is more likely to apply then obviously it requires deeper consideration but at the end of the day you're always going to have a percentage of surfers who cant do something, or use something, for some reason. In this case it's likely a small percentage and good design dictates some form of graceful degradation regardless of the technology being deployed.
Your other questions re: user preferences is difficult to gauge. Here is a list of sites that clearly dont think its an issue. You'd have to extrapolate the adoption rate numbers but this link, albeit to an MS blog entry, suggests the adoption rate is high, especially considering Silverlights relatively short life.
You also have to factor in that it's an MS technology so you're going to benefit from Windows Update, etc and the strength of the MS marketing machine.
Recommendation: Go for it. The more the merrier.
..
Richard
This line is the decider for me:
I really want to use Silverlight since I like its' model
If you like Silverlight enough to really want to use it, go for it. The UI will be as useful or as annoying as you make it, so Flash has nothing intrinsic over Silverlight there. It comes down to whether Silverlight will do what you want it to.
HTML5 and its suite of technologies are a far better fit at this level. I went to a Microsoft confrence recently and the HTML5 talks where all booked out and the Silverlight talks had hardly any attendees. You can get a web application to almost have a normal application experience with JQuery ajax and HTML5.
Due it is an MS technology, Silverlight is successful for its short life, like Bing (i believe if it wasn't developed by MS most people wouldn't even know its name). But i would not use it for a website actually, most people dont want to install new things unless they have to. And if your site does not have a content that they will desire, they can go away from your site. I'm a Java developer but i dont use JavaFX for web apps, because most user machines have Flash installed it is a better choice for accessibility reasons. Silverlight is a new field for MS but Flash is around for years and it's one of the main focuses of Adobe.

Resources