I am developing a Facebook Card Game for my thesis and i am wondering which architecture fits best?
I am going to develop the game using Silverlight + ASP.NET.
On the one side the game should contain player vs. player card games.
On the other there will be also a lot of contant similar to Mafia Wars(or any other game like that) where you just interact with the server (incl. database)
I read a lot about ASP.NET MVC, Silverlight MVVM and that stuff.
But what fits best for a game like that?
Also i am not sure if i should go with Silverlight 4 already?
I don't want to start the wrong way.
I really appreciate your help.
I would choose a rich media architecture that you are familiar with. A card game can (and has) been done in just about every client + server architecture that exists.
However, here are some considerations:
The Facebook platform has a rich developer history with PHP, not to mention a decently vetted API library in PHP5.
Choose your rich media options carefully if you are concerned about platform support. Flash has a much deeper user install base than silverlight. If you are concerned about IPad support, go with HTML+CSS and use a good JS toolkit like JQuery.
Any decent Facebook game that has a large amount of traffic will need an object caching strategy. Choose a server architecture that has one natively, supports one, or integrates with one (like memcached)
Related
I am starting to develop a facebook game using ASP.NET + Silverlight
Which architecture would you use? ASP.NET MVC or MVVM or RIA Services?
ALso what do you think about using XNA with Silversprite?
The game won't be a arcade game. It will be more strategy/RPG.
Thanks a lot in advance.
If you are developing a game then I doubt you'll have a great deal of the sort of navigation that MVC helps you with. Hence if anything you should be looking at MVVM and even that may not be applicable to game dev, it really does depend on the sort of game you are creating.
It might be worth you considering Silversprite which enables you to use XNA to develop a 2D Sprite based game and then deliver it on silverlight.
There's no reason you can't use a combination of almost all of those.
Your web application could be an asp.net mvc web app
The silverlight app could be implemented using mvvm
silverlight/server can use ria services for communication
That leaves whether to use silversprite or not ... that really depends on the kind of game. If your game is going to use lots of menus and text, then you might want to avoid silversprite (which is based on xna). However, if you want a more graphical/interactive experience then silversprite is a great choice as it's basically just writing the game with xna.
And then, you could always port your game to windows, xbox360, windows phone 7, and even iphone (via xnatouch) since silverlight is based on XNA ;-)
We have a large code base in MFC and VB. A few applications are in .NET. All these applications interoperate with each other on the user's machine and also connect with Unix servers via sockets.
Recently we have started discussing a re-write of our applications and possibility of moving a lot of these desktop applications to web (they would run in intranet). A straight forward way is rewritting them in one of the .NET technologies. But a suggestion about using Google Web tookit has popped up and the argument is that it would help creating applications that would run in a browser on both desktop and mobile devices.
One of the key problem that I see is that GWT is a large abstraction over Javascript. This will require the team to learn GWT, Javascript, IDEs etc as their experience has been primarily Microsoft technologies and not Java. It would be easier for them to learn .NET technologies instead of GWT.
I do not have a depth of GWT and its drawback pittfalls and do not know about a parallel Microsoft Technology that I should investigate.
So I would appreciate if people here can share their views or experiences using GWT or equivalent Microsoft technology.
Questions like this are subjective, so you wont get one straight answer. Are you rewriting the unix/socket backend as well? Or do you intend to put a web service wrapper in front of the sockets because without this I cant see a web / internet solution working.
For my money if you are a .net/microsoft house then a MS technology is the way to go. MS is currently backing jQuery which is a client side javascript framework, but there are others like extjs. If you stick with MS and a server side solution then ASP.NET MVC is currently gaining a lot of traction. MVC and jQuery work well together imho.
If you set up a REST based web service layer for your backend it means you can even get away with flat html front ends powered by any javascript framework without needed a server side web rendering technology at all. For REST you can look at .NET WCF if you stick with MS tech.
Given that you've been working with MFC and VB, .NET is going to be a new world to you as well. At least with Microsoft you'll have strong development tools and learning resources that you'll need. Not so sure that will be the case with GWT.
But also, if one of your developers wins the lottery and leaves the company, you'll have fewer problems finding another MS developer to replace him.
Given you guys are a Microsoft development shop, I'd stick with the Microsoft stack (unless your developers really want to learn something new - in my experience that's rarely the case).
Anyway, I thought I'd bring up that Microsoft had an "embraced and extended" version of GWT called Volta that they release 2-3 years ago. The idea is that it takes C# as its source file, and compiles that to Javascript.
I suspect the project is dead (I can't seem to find a whole lot of information about it), but you may want to verify that. I brought it up because you guys seemed like a Microsoft shop who's interested in GWT.
Based on your provided information I think it is better to use fromMicrosoft Technologies instead of Google Technologies.
This will reduce Cost (include Time to learn and also the budget and etc)
on the other hand, Silverlight goes on the windows phone mobiles with (WinMo7) so your application will run as the same in Cellphones too. So my sugesstion is to use Microsofts Technologies.
I'm wondering if anyone has tried to use Flex to power the front end of an enterprise level application at all, and if so, what advantages/disadvantages did you find when doing so. I'm currently looking into a possible project that would have global users requiring enterprise level access and performance, and wondering if it would be prudent to call upon some of my contractors flex experience with this project.
Flex and Flash is a great tool for enterprise level applications.
Our general rule of thumb is to use Flex or Flash when the type of rich interface required cannot be achieved using html/javascript/ajax. In this event the rich UI in flash/flex should be built keeping in mind that its the "Presentation Layer" and apart from basic front-end validation all the work (server side validation and logic) should be done by the underlying application. I would say that flex/flash should be used ot build component parts of an interface, not the whole interface.
The advantages are mainly in achieving a much richer and more stable interface than html/javascript/ajax type interfaces. In my experience the development time may not neccessarily be quicker, but the end result can be much greater!
The disadvantages I have experienced come in the form of finding the right kind of developers and finding developers to take over projects if contractors are used.
I have been using it for exactly that and, like anything, it has it ups and its down. One thing I have found impressive is its support for SOAP based web services. Your requirements here are very vague - but I would say that using Flex has been a positive experience for me.
There are thousands of production Flex enterprise apps out there. If you are looking for help check out these companies:
Gorilla Logic
Cynergy Systems
Universal Mind
I am wondering if there is any codes sample for ASP.NET with Voice recording.
Ok, Basically, i want to create a web page that allow user to click a record button and record his voice thru his/her microphone and then convert it into mp3 file, then i want to click PLAY button to play what was recorded.
I have searched google alot and cannot find any codes that code do just that.
I have seen site that can do just that and it is using FLASH with RoR (i think).
Is there any way to record voice using ASP.NET?
I dont care if it need to combine with FLASH with ASP.NET, as long as it is possible.
Thanks.
EDIT:
Stephen M. Redd,
Appreciate your input. Yes, i know there is no simple way to accomplish what i am asking for. I also have researched and google alot on this question. Yes,I have come to know the best way to do this is through using FLASH with either FMS or RED5 (open source).
So i am trying to figure out how to write a simple FLASH (.swf) that i can record voice and then save into mp3 format to RED5 server.
Do you know or can you provide any directions to what i am asking above?
1) Tutorial on Microphone class in FLASH (i am reading some basic implementation from a book called "FLASH Actionscript in a classroom", which doesnt tell me how to record voice but ONLY how to use microphone object in FLASH)
2) Tutorial on how to setup and use RED5 (FMS is NOT an option due to its cost)
3) how to integrate 1) and 2) with asp.net and javascript (if there is any flashvars that the FLASH microphon .swf i can access so that ASP.NET can be used with javascript)
Thanks.
EDIT 2:
I cant consider to accept an answer BECAUSE none of them has provided a good answer.
Take a look on my question and read the comments i got, and you will see that my question was NOT being provided a good answer.
My question is to find a web-based Audio/Voice recorder so that the users can record their voice on the site.
To better convey what i exactly asked for, take a look at www.snapvine.com or www.pubclip.com . Both of them provide a way for users to record their voice right on the webpage.
So, i am looking for a FLASH component (.swf) similar to what they offer to integrate with my site.
EDIT 3:
This voice/microphone recording thing seem to be a challenging project for most developers.
I guess this means i am all alone.
I think this is something that would have to be done with Flash.
This guy appears to have some examples of doing voice recording in Flash, with code samples:
http://fms.denniehoopingarner.com/
There is no simple way to do this kind of thing. Standard web technologies based on HTTP and HTML just don't have the features. HTTP doesn't work well with moving audio data, and HTML and Javascript are not able to talk directly to the hosting OS or hardware resources like the microphone.
There are 3rd party browser plug-ins and applets that you may be able to use via a web application to do this kind of thing.
Most people use Flash and the Flash Media Server to do audio input via the web.
There are also some Java applets that have similar capabilities such as the ListenUp SDK (I have not used this, so it isn't an endorsement).
There is a lot of discussion on this topic related to Microsoft Silverlight, but as I understand it voice and camera inputs from the client side are not supported as of Silverlight 2, though it may get put into Silverlight 3. There is a good bit of information about how to use the necessary Flash bits within a Silverlight application though. For more info on that, check out this post.
ASP.net is a Server-Side Technology, but voice recording is done Client side. So regardless if you use ASP.net, PHP, Ruby on Rails or Cobol, you can't do it directly.
What you need is a Client-Side Application that works together with the Server Side to accomplish this. I do not know if Silverlight can do Microphone recording, but Flash can. This is apparently quite easy using the Flash Media Interactive Server, but normally you should be able to do this without, i.e. just by having a Flash Application doing the recording and then Uploading it to the server.
Hi Sam in Silverlight 4 it is possible to record voice from microphone and webcams.
Just follow the blog.
http://blog.ondrejsv.com/post/Audio-recorder-Silverlight-4-sample.aspx
Good Luck
We need to build an administration portal website to support our client/server application. Since we're a .Net shop the obvious traditional way would be to do that in ASP.Net. But Silverlight 2 will be coming out of beta a good while before our release date. Should we consider building the whole website in silverlight instead, with a supporting WCF backend?
The main function of the portal will be: users, groups and permissions configuration; user profile settings configuration; file upload and download for files needed to support the application.
I think the main reason for taking this approach would be that we have good experience with WPF and WCF, but little experience in ASP.Net. Either way we would have to learn ASP.Net or Silverlight, and learning Silverlight seems a more natural extension of our current skills.
Are there any big no-nos from the experience of StackOverflowers? What are the big positives?
I would recommend against building a pure Silverlight site.
Silverlight suffers from the same issues as Flash does: Unintuitive Bookmarking, issues with printing, accessibility issues, not working back buttons and so on.
Also, you would require your users to have Silverlight installed or at least to have the ability to install it.
In controlled environements (eg. in large companies or health care) or on mobile devices, this might not be the case.
I would definitely go for a full Silverlight application, specially if you have good experience from WPF. You will be able to reuse your knowledge from WPF, and should be able to pick up Silverlight fairly quickly. I've been working with Silverlight since Beta 1, and the current Beta 2 is of solid quality. I guess it's safe to assume that a RTW version is just around the corner.
Pilf has some valid point, specially around printing. For that I would probably use SQL Reporting Services, or some other reporting framework, on the server side, and then pop up a new window with printable reports. For linking and bookmarking the issues are no different than any other AJAX application. I did a blog post today about how to provide deep linking and back-forward navigation in Silverlight.
Silverlight also has all the hooks needed for great accessibility support, as the UI Automation API from WPF is brought into Silverlight. I don't know if the screen reader vendors have caught up yet. The styling/template support in Silverlight makes it easy to provide high-contrast skins for visual impaired users if that is a concern.
Depends on your goals. If administration portal is part of application and will only be used from computers where your application is installed, there are plenty of advantages of going fully Silverlight - or even WPF.
But if you can see a scenario where it will be used either from random PC or by random person, fully functional HTML/Javascript version is absolutely necessary.
Some reasons are:
Most people don't have silverlight and you'll earn a good load of swearing if they have to download and install it. Some people who have it installed keep it disabled (together with flash and sometimes even images) to avoid distractions and speed up browsing.
When HTML site fails, user gets error page and reloads. When silverlight fails, it can hang or crash.
HTML is what is expected - both by users and web browsers: back and refresh buttons work as they should, hyperlinks and forms work as expected.
Slow internet is still very common, both in remote areas and mobile devices.
I agree with what everyone had said so far and I think this Flow Chart, which is aimed at Flash, also applies to Silverlight.
Source of Image
It sounds like your problem is that you need a rich-client admin application. Why not use click-once?
On the topic of remote andministrators, another poster stated that was an argument in favor of HTML if the admins were on a slow connection. I would argue that depending on the type of information, it may be more efficient to use Silverlight. If you have an ASP.NET datagrid populated with server side data binding, you can be downloading a ton of markup and viewstate data. Even if you're using an alrternative to DataGrid that's lighter on the ViewState, you will still have a lot of HTML to download.
In Silverlight, once you get the XAP down, which is probably going to be smaller than the corresponding HTML, the XAP is cached and so you shouldn't have that cost every time, and you'll just be retrieving the data itself.
For another example, let's say you have a bunch of dropdown lists on one of your forms which all have the same values in the list. In Silverlight, you can get these values once and bind them to all of the dorpdowns, in HTML you will have to repeat them each time.
This will get better with client side data binding in ASP.NET, which follows a very similar model to Silverlight and WPF for data binding.
Overall, I would also think that you would need to write less code for the Silverlight implementation which can increase productivity and reduce maintenace costs.
ASP all the way. You should only use silverlight/flash etc when text can't do what you want it to do - e.g. display video.
Using a plugin for your website makes it slow, and requires the user to have the plugin installed. Silverlight for instance rules out all Linux user. Also, since Silverlight is pretty new, there is no telling how committed Microsoft will be to keep the platform alive if it doesn't pick up soon.
I'd stick to plain old HTML with server side scripting.
Also, for public websites: Flash and Silverlight can't be indexed by any search engine, so good luck with writing tons of metadata if you want any visitors at all.
Silverlight is a good choice for an internal-facing portal, just as it would be for a public-facing portal if you've already evaluated your project and have decided to go forward with a web portal. You are free to integrate Silverlight components within an existing ASP.NET application (i.e. the "islands of richness") approach, but if you have the ability to build a new project from scratch, don't discount a completely Silverlight solution as a valid choice where you would have went with a traditional ASP.NET portal. Silverlight is RTW now, so if this decision is still on the table, you know you won't have to deal with breaking changes going forward.
There are some downsides with developing a site completely in Flash / Silverlight, but if those downsides won't matter to you or won't have an impact then there is nothing stopping you. Choose whatever tool you think meets your needs more fully. I wouldn't be put off creating a site purely in Silverlight based on the downsides, because it brings a lot more positives to the user experience.
The previous comments have dealt with most of the downsides of using Silverlight for a site like this and I agree. If you're determined to have rich-client style development and your audience is small (for admins only) then I'd probably recommend WPF over Silverlight as it currently provides a richer set of tools and controls.
If you stick with ASP.NET have you looked at Dynamic Data - it's ideal for building backend management sites with little effort.
I've seen "Silverlight only" websites at Microsoft and they are pretty impressive. But again, the demos were there to exploit the full potential of what Silverlight can do. The moment you need something different you may be out of luck. I don't see Silverlight like Flash except in the way they are installed/seen. But the Flash/ActionScript backend is really bad compared to what Visual Studio can offer with .NET
Ask yourself why would you like to use Silverlight? Fancy effects or programming model?