ASP.Net MVC vs. Ruby on Rails [closed] - asp.net

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 12 years ago.
If you were starting a new web development project would you use ASP.Net MVC 2 or Ruby on Rails?
I have recently invested some time in to learning Ruby on Rails because I wanted to learn a solid web development framework. Then I took a new job where I will be using ASP.Net MVC 2.
I know this question is very subjective, but I am planning to write some websites on my own, outside of work, and I would like to get some opinions from others.

Professionally, I'd go with what my team knows best (in my case, MVC and the .Net stack). Since if you have a team with years of experience on a framework, a new app for a production system is not the place to learn new things.
Personally, I'd start by determining where I wanted to take my own learning plan next (I code in both Ruby and .Net, and have personal sites in MVC and Rails). For example, when I wanted to do some personal development in BDD, Jquery, etc. I decided to do my site in MVC since I didn't want to add another learning opportunity at the same time. Now, as I'm looking to build another learning site, I want to play with Cucumber, RSpec, and rails as a learning exercise (and build a nifty site to boot).
Lastly, if I was building a new site with the intent of selling a product or turning a profit, I would objectively figure out which I felt I could get out the door in a shippable state in the shortest time possible. Today, that would be an MVC site. Tomorrow, it might be Rails since I'm on a Ruby studying binge right now.
So to answer, I'd say it depends on your goals (business, learning, profit) and how this site fits either into your professional or entrepreneurial plans or your personal development plan.

The .NET skills you'll acquire working with ASP.NET are applicable across the entire development spectrum; not just web development. Want to write desktop apps? XBOX games? Parallel processing services? Linux or Android apps? You can do all of that with C#/.NET.
I've heard good things about Ruby. I use a variety of languages for different tasks -physicists seem to love SCHEME which has been causing my therapist nightmares as of late - but my web projects are exclusively in .NET.
The best way to become proficient with a new language is to immerse yourself in it, and write something FUN. If you want to get up to speed on the new job as quickly as possible, write something you're interested in using the tools they prefer. ASP.NET MVC is more complex than Ruby, but it's also incredibly powerful once you pass that "Ah ha!" bump in the learning curve.

don't take a poll on stack overflow, use whatever interests you. work is for paying the bills, your personal projects should be for expanding your mind (and having fun)

Since you'll be working with ASP.NET MVC, if I were you I would learn Ruby on Rails on your personal projects. Learning both will make you a stronger programmer because you can see the same solution from multiple perspectives.

Related

BreezeJS vs JayData for SPA development on ASP.NET MVC [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
As a web developer I've discovered the joys of working with KnockoutJS lately but when it comes to working with the server I'm pretty much left on my own. I've considered BreezeJS and JayData for their CRUD capabilities and batch operations but I'm still not sure on which one suits me best.
I'm focused on ASP.NET MVC development with EF right now but I might switch to other platforms later and so I'd prefer not to be restricted to one particular framework. In this respect JayData offers a number of providers over BreezeJS like OData, webSQL, IndexedDB, localStore, Facebook and YQL which is almost overwhelming. BreezeJS does support OData however but only for consumption.
But how about ease of use, documentation and other crucial features which I might not have thought of?
Thanks for your help in helping me choose between them.
I'm member of JayData dev team, but I've tried Breeze, too.
Comparing them by the easy of use would be subjective, it depends on your taste. The intention of these libraries are the same: protect the developer from implementing protocol and concentrate on data management. But JayData isn't just a ORM library, but a unified data management paradigm and tool, which can be used on the server-side to build your own PaaS/BaaS.
As JayData was published in May 2012 with the provider-model, we had more time to implement more data providers (you missed the MongoDB on server-side and WebAPI, which will be released in few days) and support many developer platforms. I would mention the TypeScript support and the online-offline capability thanks to the unified API, which is important if you want to use the library now.
Breeze has also nice features on the roadmap and I'm sure you it will be a useful library in general, not just for consuming WebAPI services in a comfortable way.
The documentations is more or less the same, both team offer enterprise and community support.
If you only want to access WebAPI from JavaScript, I would pick the library depending on my prefered UI library/templating engine:
Breeze: Knockout, Angular, Backbone (Hopefully Breeze guys will update this with insider news)
JayData: Knockout (with dynamic queries), Angular (tutorial on the way), Handlebars, Sencha (read-only), KendoUI (comes in few days).
Both dev teams are helpful and listening to the tags, so you can ask how could these libraries solve the business problem or meet the technical requirements of your project.

What is the best server-side programming language for large scale web applications? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
I have a large web application idea that I would like to work on, which will require secure database interactions, file creation and editing abilities, speed, and output html. It needs to be able to run on a webhost, not a self-run server. What would be the best programming language to use to create it? I am not looking for 'easiest', I am looking for the most useful for the type of web application I wish to develop.
EDIT:
It needs to be able to run on linux.
My pick would be ASP. NET MVC platform with Razor in-line syntax and C# for your code.
.NET ticks all your boxes, plus it has a humongous community, lots of help resources, tutorials etc. online; probably the best coding tool out there (Visual Studio 2010), easy to integrate with cutting-edge stuff like html5, jQuery, CSS3, AJAX etc.
ASP.NET is Microsoft technology, hence you will need to develop on Windows (anything from XP and above will do). C# uses similar syntax to JAVA. Razor is new and fairly easy to use. .NET works very well with most databases and you can even manage both your code and database in the same tool (Visual Studio) depending on which DBMS you'll go for.
And I guess the biggest argument, as Matteo Mosca pointed out is that this very site was built using ASP .NET MVC and, in my opinion, it does its job pretty well.
Please define "webhost". For a lot of people, that means "PHP hoster", and that sort of limits your choice of languages to 1.
For a large webapp, I would definitely take something that runs on the JVM (assuming that your definition of "webhost" includes some shop that accepts .war files for hosting - I usually self-host on virtual machines and run the Play Framework because it is so much easier). On the JVM, you have a choice of frameworks and languages - and again check out Play - and here it starts depending on language skills, specific needs, etcetera. Scala would, for a large app, definitely be on my shortlist these days.
Note that I say "JVM", not "Java". I think the JVM ecosystem rocks - you will probably find a site that takes the standard .war file format to host, if you need a library it is usually there, performance is top-of-the-line. Java as a programming language is so-so, but luckily there is choice these days.
Also, a lot depends on your skills, your preferences, etcetera. I'd say that Python, Perl, Ruby, C# all are very viable languages to build large websites. What development languages do you prefer? At the end of the day, that's a big factor in speed and ease of developement...
I personally would recommend a good structured project (n-layer approach, use of an ORM, etc) under .net 4.0, with the goodness of C# and the Mvc framework (version 3) for the UI part.
If you had bad experiences with .net web forms and you think that sucks, you're right. But the MVC framework is something else, built on the RoR approach.
That's just what I'd use anyway. Consider the power of the features of C# 4.0 (dynamic, linq, generics, etc), the fact that you will be using Visual Studio (which is commonly recognised as the best development ide around) and the great number of free components that are now available, and recently even easy to obtain and use thanks to NuGet package manager.
To give you a great example of a site made with asp.net Mvc - you are on such site right now. Stack Overflow and all the stack exchange sites are built on Asp.net Mvc, if I remember correctly. If not, somebody correct this.

Ruby on Rails vs ASP.NET MVC 3 for a .NET Guy? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
I am very new to RoR and I want to select between ASP.NET MVC3 and RoR. C# is sure easier for me as I have been doing it for so long but I am wondering if there is any point to consider using RoR over ASP.NET MVC to develop a real world website?
What else do I get with RoR which I can't get with ASP.NET MVC 3 that worth spending the time to master RoR? I though the available community RoR plug-in would be one reason but it does not seem that organized and seems like the learning curve to do the right things is going to be so big that it won't practically save much time for a newby! I could be wrong here and I really appreciate your real-life comment on this? Mind you that I still have to learn ASP.NET MVC but that sounds quick for a .NET Guy!
What could RoR offer to a .NET guy that WORTH picking RoR over ASP.NET MVC 3? and please the practical advices! :)
They are both fantastic, and can accomplish the same goals very quickly. I used a great book to learn a while back, and it would be right up your alley: Rails for .Net Developers
Also, I wrote a post about going from MVC to RoR a while back as well.
As for comparisons, they both have strengths as has been covered, but here are a few that stick out to me:
I really do like RoR's deployment and simple ways to push to live sites - no scripts to run at all, just a bit of command line should get you up and running once the code is actually written. If you choose RoR, UNDERSTAND THE COMMAND LINE COMMANDS - it will make your life so much easier!
As you mentioned, the plugins are great, and can really be used to speed things up.
As a .Net dev, MVC will be a breeze, I would recommend using Razor, as it is very simple and less cluttered than the old 2.0 non-razor rendering.
.Net's EF4 can be compared almost directly to RoR's ActiveRecord, great ORM systems tfor dealing with data.
I have found that .Net's documentation is a bit more consistent and thorough.
One problem I had with RoR was the rapid and drastic changes; not so long ago, they upgraded to 3.0 on my host, and I did not lock my version - all sorts of stuff broke until I figured out the new stuff (I should have frozen my version).
It is not a clean cut choice - both are great. As you are already a .Net dev, I would guess MVC3 would be the way to go, but both are easy to learn.
I use and like both, and the problem with a question like this is that they're so different that you could go on all day about apples vs. oranges, but since your question is pretty non-specific, I'll just say:
If you consider yourself "a .NET guy," then you should learn a language which works very differently than C#, and a dynamic language like Ruby isn't a bad place to start. (Another option would be a functional language like Haskell, Scala, etc.)
You will be a better programmer after you do, and you won't have to call yourself "a .NET guy" anymore!
Not a RoR dev here, but I do Django and I think the same question could be asked for Django as well. The #1 thing that I like Django over ASP.NET MVC is that Django comes with the ORM already. Which means most any code examples you'll find on the web will kind of follow a similar pattern. With ASP.NET MVC you can pick from lots of different ORMs which can be a good thing, but can also cause confusion.
Just like #Craig said though, it really is apples vs oranges. I'd pick ASP.NET MVC if I was required to deploy it on a MS stack, and use Django for "personal" projects or projects that required it on to be deployed on linux.
You mention in your response to craig Stuntz that you want the 'right option for the limited time you have'
Go with mvc3 and focus on learning just that, instead of a new language and framework at the same time. RoR is great, but its a new language, framework and IDE all at once and chances are you wont get it right first time. I didnt.
There are some really good tutorials on the asp.net website that will get you up and running very quickly

What are some current opinions on WPF? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I was looking for some current opinions on WPF based on their 4.0 release.
We are trying to decide if we want a Desktop application with a WCF server, or if we want an ASP.Net web app. I would really like to do it in WPF, however some major concerns have come up that I am not sure if WPF can handle. I have looked around online and a lot of WPF reviews are based on the 3.5 version, so I was looking for some current opinions.
What sort of Support is out there for it? Microsoft support and Community? Is WPF a dying technology or a growing one?
It is harder to find WPF programmers. Is this always going to be the case?
What is the performance like for terminal services? The majority of our users login using WYSE thin-clients to a Windows 2003 terminal server. Each server normally has between 10 and 30 people on it on any given day. Most of our TS users only need basic view/insert/update abilities and our admin staff needs the more advanced features and reporting. The admin users all have XP machines with SP2 or higher.
What other concerns should I have about WPF?
It seems the underlying concern here is whether or not WPF is a mature enough technology for serious desktop application development. The answer there is IMHO certainly yes and the proof I offer is Visual Studio 2010. It is written in WPF, is a major desktop application and has to meet the criteria laid out in your question.
To attempt to head off the 2010 is slow + buggy argument. Yes, 2010 is not a perfect product and has bugs. The vast majority of those problems are not purely a WPF issue but instead are related to legacy code, managed native interop or just interesting interactions between old and new technology.
To answer some of the non-technical questions with hand wavy answers ...
Yes today it's probably harder to find WPF programmers than say WinForm programmers. WPF is a newer technology and hence likely won't have as many developers. Will this be true in the future will only be decided in the future :)
I feel like there is great support for WPF (see the WPF tag on this site for an example). When I started doing WPF work for the 2010 release the vast majority of the questions I had were already answered on this site or in blog tutorials.
#1 - I've done projects with WPF. There is quite a bit of information out there. Microsoft seems to be investing more in Silverlight at the moment, but I suspect that WPF and Silverlight will be merged in the coming years. WPF/Silverlight/XAML will be Microsoft's way of building desktop apps for the foreseeable future.
#2 - Developers with good WPF (or Silverlight) skills are hard to find, though not impossible. WPF/Silverlight definitely has a steep learning curve.
#3 - There have been problems with WPF apps running on terminal server because WPF runs on top of DirectX. I would definitely try running a WPF app on your Windows Server 2003 terminal server to see how it behaves. My biggest concern would be that Microsoft would likely be investing in any WPF-related fixes for Server 2008 TS and I'm not sure they would necessarily port those to Server 2003. As for a good test app, I would grab something like the WPF photo viewer demo (http://msdn.microsoft.com/en-us/library/ms771331%28VS.90%29.aspx). Something reasonably graphically intensive to stress TS.
#4 - Personally #3 is the biggest concern IMHO. If you can't run on Windows Server 2003 TS, the other questions are moot.
Concern #1: What sort of Support
So far, it's growing and growing well. The IDE support is finally decent as of VS2010, and it appears as though MS is going to be pushing this for a good amount of time. There are lost of examples from MS and the community.
Concern #2: It is harder to find WPF programmers.
Well, it depends on how crazy you want to get with your UI. If you want the latest, greatest whiz bang 3D animations and multiple effects, it might be difficult to find someone off the street with all of those skills that you can afford. However, if you're banging out a relatively simple UI, many experienced developers can quickly grow into this role.
Concern #3: What is the performance like for terminal services?
That depends on how much animation and other whiz bang features you want to add. If there is lots happening on the screen, it will take more bandwidth. Once again, a simple interface should have no problems.
Concern #4: What other concerns should I have about WPF?
Hard to say!
There is always a risk that a technology will become obsolete. That's just the way it is. And there's no way to know for sure.
Here is a possible scenario: WPF is being overshadowed by Silverlight, since everyone wants to "do it on the web." You decide to develop your application in Silverlight (even though it's only a subset of WPF's feature set) and get blindsided by HTML 5, which takes over the world because now you can do everything in the browser without a plugin. Even Flash becomes obsolete.
Will it happen? Who knows?
People are still quite happily making Winforms applications, arguably an obsolete technology. Are they worried about obsolescence? Probably not.
As far as I know, Microsoft actively and enthusiastically supports this technology. If you are concerned about performance and other issues, the best way to find out if it meets your needs is to build a prototype.

Blogging Software - Wordpress vs BlogEngine.NET vs Anything else [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
Basically I need to choose one so that, I can get familiar with it quickly and then customize it to my needs.
I'm a .NET developer and know classic ASP too. But I think understanding PHP will not be a problem for me and also think that it won't be that difficult.
What will you like to recommend me?
UPDATE:-
Sorry that I'm adding this info late.
Right now I don't know what customization I will be doing. But I'm sure going forward I will have my own requirement and will need to customize. So I don't want to be in situation where I will have to say "This engine which I'm using will not allow me XYZ change or it will be too difficult for me to make XYZ change in this blogging software, so lets migrate to something else."
I will prefer a short learning curve.
Wordpress is nice, but if you're a .NET developer BlogEngine.NET is extremely easy to extend. The drawback is the much smaller community and resources, but if you're wanting to do some real customization and tweaking, BlogEngine will probably fit your tastes much better. There is a decent development community backing and supporting customization and plugins for BlogEngine, but you'll find that a lot of the information is outdated or maintenance has been forgotten.
If you're wanting something with tons of community widgets, plug-ins and tons of themes, Wordpress is your prime choice without a question. But that's if you're going with the canned solutions. There are a lot of them, and you can still customize them and tweak things, but that's dependent on how comfortable you feel about picking up a new paradigm. Wordpress customization isn't so much PHP development, as it is Wordpress development, since you'll be so deep in Wordpress' own world and API.
Both are available in MS's Web Platform Installer, check them out of your box and play around with them some. It's really going to come down to which one you feel just fits. I've used both for different projects, but I've fallen back on doing my own thing with BlogEngine more than Wordpress. But that's for my own personal stuff.
If you know .NET and C#, facing PHP and mySql is going to feel like you went back to 19th century and have to burn coal in your "car" instead of tanking your beamer at a local gas station :-)
One particularly interesting thing about BlogEngine.NET is that out of the box it will run without SQL Server - just with XML files as a storage. If you know your programming I don't have to tell you what kind of flexibility that provides. Not that I'd recommend actually running a web site for a long time without SQL Server but such dual backing opens some very interesting options.
Should I mention that it comes with Visual Studio sln and proj files? :-) That pretty much means zero learning curve.
Go with Wordpress. It's easily customisable, and there's masses and masses of information on customising it.
Digging into Wordpress
Wordpress docs
Thematic - a Wordpress theme designed to be easily customisable/extensible.

Resources