Bandwidth for Silverlight Apps
I have a idea of building sort of a simple online version of Microsoft Visio. The application will be built using silverlight capabilties. People will be able to design f开发者_如何学运维lowcharts similar to how they do in Visio and they will be able to collaborate and work simultaneously on the the design.
Now, I need to get an idea of the bandwidth such an application might consume. I am not sure how silverligt internally work so I need to get an idea whether such an application can be built in a way that make it economically feasible to sell such a product in a software as a service model.
You have to account for two bandwidth costs:
1) Silverlight application
Your users will have to download the Silverlight application (the XAP file) when they start it. These files are pretty compact being mainly compressed managed assemblies, however if you include a lot of binary data (say images) in your application this will add up.
To decrease the initial cost of the application download you can split you application into several assemblies and let some of them only load on demand.
For your application you can also consider installing the Silverlight application as an out-of-browser application. The application will only have to be sent over the network on first install and when there is an update (updating is performed in the background).
2) Client-server data transfer
This very much depends on your application. For a document centric application like the one you suggest you can load and save the entire document from and to the webserver. If you are very concerned about bandwidth you can use your own binary serialization format (e.g. Google Protocol Buffers) or you can build on top of any of the technologies available in the .NET Framework. The bandwidth requirements will increase if your documents contains large objects like images.
Instead of transferring the entire document back to the server you can instead keep parallel representations on the document on both the client and the server and only transfer the operations back to the server when the user manipulates the document. This is a more complex solution but will probably perform better when updating large documents. You can use .NET RIA Services or any other .NET client-server technology to implement this.
In your case I would ignore cost 1) and cost 2) is the same for any .NET based client-server application, that is, Silverlight does not incur any extra cost.
I think you should firstly built the app and then worry about the pricing , if your app is good and your users love it , they will pay whatever reasonable price you put to use it :)
精彩评论