Moving towards Ruby on Rails from ASP.NET - asp.net

I am ASP.NET developer from last 5 years and still loving it. There are lots of good voices in air about Ruby on Rails. I want to ask to community, Is there any worth trying to learn Ruby On Rails as a ASP.NET web developer on following point of view.
Scalability
Documentation
Community Support
Hosting Solutions
Deployment
ETC.

I'd take a gander as ASP.NET MVC. This way you can stick with the .NET Framework yet still get some of the things you probably want out of RoR.
ASP.NET MVC is very lightweight and easy to scale with some of the APIs it provides (SQL storage for sessions or even Microsoft Velocity).
ASP.NET MVC has lots of support from the community and thus has lots of documentation and feedback from the community and Microsoft itself.
Lots. Check out http://www.codeplex.com/ASPNET for more information.
Well, ASP.NET MVC is bin-deployable. So as long as your host supports ASP.NET 3.5 there's nothing else you need. They don't need to have ASP.NET MVC installed in any sort of way. So if you wanted to, you could easily use a shared host.
Deployment is very easy with ASP.NET MVC and with the changes coming to Visual Studio 2010 for easier deployment of web sites via "Packages." I currently maintain 2 ASP.NET MVC sites and find it with bin-deployment to be just the same as a regular ASP.NET WebForms site.

I'm now in your shoes, because I'm learning RoR after commercially developing in .NET for 5 years.
Here is my two cents:
Scalability: I believe that rails can scale quite well, there are numerous options available, such as mongrel clusters on linux.
This one is a bit worse than on .NET. But the community is very good and you'll never find yourself searching for a good way to go.
See above (it is excellent)
Hosting is not a problem: numerous hosting options available.
I find transition from development to test and then to production better thought of in Ror than in ASP.NET.

I fully agree with Chad's post.
I was half way through development of an app in rails and now i've done a complete 360 and have reconsidered after delving deep into ASP.NET MVC for my day job commitments.
I am now changing courses and looking into ASP.NET MVC for all my personal projects, I think both are honestly remarkably comparable now as I think MS has had a good hard look at Ruby on Rails' feature set and ensured they could match features very closely. After all, if you couple a project with LINQ 2 SQL / EF, ASP.NET MVC and potentially Dynamic Data (if you need that sort of thing), I really can't think of any compelling reasons to choose Rails over .NET, however I CAN choose reasons to select .NET over rails - after all hands down the rich debugging experience with VS.NET, rich intellisense and watcher/quickwatch support plus the ASP.NET MVC framework supports Html Action Helpers, Model Binders, support and encouragement for unit testing, and now with the inclusion of JQuery and JSON results, you're virtually unstoppable.
I suppose besides obviously hosting/licensing costs, Ruby language preference and other personal preferences such as it being open source etc, It's really your choice.

1) Scalability
Rails is just as scalable as any other web-application stack. The only difference is that your single server might get overloaded, and require splitting to 2 servers sooner than it would in .NET due to the slower performance of the ruby runtime. In practice this is not a problem.
2) Documentation
Microsoft do provide better documentation for the core libraries than Ruby or Rails, but the ruby/rails ones are still on the whole very good. I'd consider ruby/rails to be the winner here for the simple fact that you can always view the source for everything. No amount of documentation is a substitute for being able to actually see what's happening.
3) Community Support
I've been nothing but impressed by the community support around rails. I don't know what else to say there.
4) Hosting Solutions
Since phusion passenger got released, It seems to be easier these days to find rails hosting than it is to find ASP.net hosting. This is only going to sway more towards rails as time goes by for the simple fact that hosting companies do not have to pay royalties towards microsoft to deploy rails on linux servers.
5) Deployment ETC.
Capistrano (the most common deployment solution for rails) beats everything else hands down.

Well I dont know anything about the Scalability part, but personaly i started learning Ruby On Rails from ASP.NET a while ago. I really had a hard time finding some good documentation - the class documentation on Rails site was really poor in my eyes, and I had a simple question about what arguments you could put into an actionlink. But maybe it was just me who never found the right place. But personally i think that the ASP.NET documentation is better than rails - at least buy a book, i think thats a good way to go.
Number 3. Im pritty sure that there is very good Community Support for rails you just have to find the right forum or other media that suites your liking - maybe this what was I did wrong.
Number 4. There is alot of hosting solutions for Rails, but not as much as ASP.NET or PHP. I think you have to research this your self, and find out, if there is anything that suites your likeing.
Number 5. Ruby should be very easy to deploy, it has a notion of a development, test and production database. It uses migrations, so updates in the database schema is seamless - thats very cool. It is scripting, so it should be a matter of xcopy from the development computer to the production server.
The reason you should choose Ruby on Rails is if you like the MVC pattern. The MVC pattern is genius, and ruby is a great language when you learn it. Maybe take a dive into the ASP.NET MVC, and see what its like - then maybe move to Rails. Then you only have to learn a new language, and not a new arhitecture, framework and language at the same time.
Remmember this is from a ASP.NET Developer who sniffed to Rails, but gave up, doe to the lack of ability to find really good documentation, and there was always some strange errors, from the editor or Rails - but thats properbly a newbie thing :)
But if you have time, by all means learn it. Some developers say that we should learn one new language per year, and Ruby is a great candidate for that.

Related

Is FluorineFX mature enough to use for a large web application?

I am in the planning stages of developing a large web application written in Flex and was wondering if anyone has actually used FluorineFX in a large production environment?
The documentation and online community makes it seem like it could be abandoned in the years to come and I have yet to read about it being used in production.
I have been assessing Weborb as well, but the costs are extremely high and I'm not entirely satisfied with the general workflow/setup of it. Are there any other solutions out there that I should consider?
I've used FlourineFx with great success in a large product with a Flex 3 client, and it actually works better than the ColdFusion (Adobe LiveCycle) product it replaced. It does require some configuration to work correctly, but it seems to work quite well once your config files are set up -- then again, its the same config files that Adobe LiveCycle need.
Not sure about FlourineFX. It looks like it is either just getting started or ending.
Working with DotNet and Flex, I would recommend writing the Flex Client and using ASP.NET web services to communicate. Microsoft ASP.NET MVC is a wonderful framework that is free and well supported. See: http://www.asp.net/mvc
The advantage of using a web service is that the client can change so that if you decide against Flex in the future or decide to use a Mobile Client then the service will remain the same. Plus, ASP.NET MVC has been proven on some very large sites like SO here.
Hope this helps.

Microsoft WebMatrix: what is it?

I'm a little confused about new Microsoft products.
I'm a classic webform Asp.Net developer. I know exists also Asp.Net MVC with a different approach based on Mvc pattern.
Now, i know exists also WebMatrix that uses new Razor "notation".
Can someone explain me what are the main difference between that "technology" ? When use WebMatrix, when WebForm ?
Thanks!
Webmatrix is a platform that integrates a variety of recently released technologies such as IIS Express, Asp.Net Webforms, Razor, SQL Express etc. I guess from what I have been reading it's a way that eases the barrier to entry, for non-MS developers, into the MS world. In addition you can also use code your site in PHP and use a variety of open source tools for developing web sites. To directly answer your question, in you planning on creating a complex web application, WebMatrix may not be the solution you're looking for.
As a reference, I suggest reading through Scott Gu's Introduction to Webmatrix
WebMatrix will be able to take
advantage of these technologies to
facilitate a simplified web
development workload that is useful
beyond professional development
scenarios – and which enables even
more developers to be able to learn
and take advantage of ASP.NET for a
wider variety of scenarios on the web.
If you are a professional developer
who has spent years with .NET you will
likely look at the below steps and
think – this scenario is so basic -
you need to understand so much more
than just this to build a “real”
application. What about encapsulated
business logic, data access layers,
ORMs, etc? Well, if you are building
a critical business application that
you want to be maintainable for years
then you do need to understand and
think about these scenarios.
Imagine, though, that you are trying
to teach a friend or one of your
children how to build their first
simple application – and they are new
to programming. Variables,
if-statements, loops, and plain old
HTML are still concepts they are
likely grappling with. Classes and
objects are concepts they haven’t even
heard of yet. Helping them get a
scenario like below up and running
quickly (without requiring them to
master lots of new concepts and steps)
will make it much more likely that
they’ll be successful – and hopefully
cause them to want to continue to
learn more.
One of the things we are trying to-do
with WebMatrix is reach an audience
who might eventually be able to be
advanced VS/.NET developers – but who
find the first learning step today too
daunting, and who struggle to get
started.
If someone is still interested: a pretty good lessons here http://habrahabr.ru/company/microsoft/blog/136004/ . This link is for those, who understand russian.
Shortly speaking WebMatrix allows you to conveniently mix up C# server code and html (this mixing is provided by simple Razor sytax). Also in WbeMatrix 2.0(beta version now) is provided full IntelliSense for html/css/c# code.

Classic ASP - It’s totally outdated but is it irrelevant?

Although I develop all of my company’s web-sites in .net, all of my personal sites are still in "Classic ASP". I'm always being pressured to move away from it... but it works! Why change?
There are some reasons to change but in the end, if your sites are up and running and you don't really need the new stuff, stick with it.
One good reason to change is existing support from MS and the developers community. I guess is harder to get a answer for a problem with ASP since most people moved to .net long ago.
The only real reason would be because the technology is getting to the point where you're going to find yourself without a platform to run your code on.
...who knows how much longer Microsoft is going to keep Classic ASP support in IIS.
In general, I'd never upgrade working code just for the heck of it because it's in an older, deprecated language. Especially for something like a personal page.
I can think of one exception, though: are you currently in the job market? You probably don't want to give clients/employers the impression that you're stuck in Classic ASP land.
I have a lot of Classic ASP production code, though, and I feel you on the Classic ASP "backlash." It's actually kind of embarassing to have that .asp extension in your URLs. I've actually considered changing the extension on all the .asp files to something new and changing IIS' settings so that new extension is handled by the ASP component.
I was in a similar situation - working on .NET at the office, and 5 or 6 sites at home on ASP that worked fine. For me the compelling reason to switch was when the .NET MVC community preview was released. I had been working with other MVC frameworks for years and was glad to be able to use a well-built native MS one.
I have switched about 4 ASP sites over to MVC as a way to learn the new framework and I am really glad I did. I'll always have a soft spot for ASP (and can still remember enough to answer most questions), but .NET MVC feels so much more advanced.
If you feel your skills with what you do at your job is fine (don't need more practice) and you are happy with your personal sites the way they are then leave it.
The only thought to consider is if you were to want to use the personal sites as a way to promote yourself it could be viewed as old tech and thus your skills may be looked down upon.
It is outdate? absolutely, but is it Irrelevant? well it is based on scope of your application, if it is just a simple database driven (eg: CMS, e-commerce) i personally think that classic asp still relevant for that, in fact that I still use it for some CMS/e-commerce projects since I already have application legacy written with it and has satisfied my clients for years.
but if you going to build large business application with multi programmers involved then you may need to think about .NET
For me personally, ASP.NET has been more reliable. I mean, some bad ASP.NET code can't as easily take down IIS as some bad ASP code. Again, that's just from my own experiences. I don't know how much merit there is to it.
But I don't see the harm in running your personal sites in classic ASP really as long as it's working for you.
Classic ASP certainly isn't as common now as it was before the introduction of the .NET family, but I don't think you're hurting yourself much by maintaining personal sites in it. If you were self-employed and looking for work as a .NET developer, it might be odd to have personal sites only in Classic ASP; in that situation, you could convert one or more to .NET, and that might help you demonstrate your skills in both sets of languages.

What to learn - Ruby on Rails or ASP .NET MVC...given that am familiar with ASP .NET [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
I need to learn and adpot the MVC methodology for building web apps. Which is the better way to go given that I have experience with ASP .NET Webforms - ASP .NET MVC or Ruby on Rails?
I've heard people going gaga over RoR and its simplicity and its features such as scaffolding, ActiveRecord, convention over configuration etc.
However, I fail to see what is so great about these. Most of them sound basic (the kind you'll not really want to use in production code - scaffolding for example) - and most of them sound like they are there in ASP .NET MVC in some form or the other.
Why should I consider learning RoR over ASP .NET MVC?
Are there benefits I do not know about or am unable to perceive?
I suggest you learn both!
I'm a professional ASP.Net developer by day, and a hobbyist RoR developer by night. Learning RoR will in fact make you a better .Net developer, and it's fun!
Also consider that one day you may in fact be able to write an ASP.NET MVC app in IronRuby instead of fussy old c# :)
There are many reasons I would recommend learning RoR over MVC
It's a much more mature stack. It's been around since 2005.
You get to learn a new programming language. "They" say you should learn a new programming language every year.
There is a very rich set of extensions to the base stack. Eg. HAML, Authentication gems, profiling and the list goes on and on.
You get to use database migrations out of the box. Something that is a bit of a breakthrough in database configuration management.
Dynamic languages give you a massive amount of flexibility.
That said: ASP.Net MVC is an awesome framework from Microsoft. I am not advocating dumping your stack and moving to the dark side. I just think it helps to have a broad understanding when it comes to technology.
If you're familiar with the Microsoft stack (Windows, IIS, SQL, ASP.NET) but not so familiar with the Linux stack (Apache, MySql, etc), then going with ASP.NET MVC over Ruby on Rails will cost you a lot less in the long run, in time spent on learning infrastructure.
I suggest you take a look at the job market in your area, and choose what will increase your opportunities. Ruby on Rails is a great framework, but if nobody in your area cares or uses it, then it won't do you any good to learn it (speaking from a career perspective - there are lots of reasons it would benefit you from a learning perspective). I was faced with this dilemma recently and gave it a lot of thought; since my area is pretty much 99% .Net based and that's what companies want, I decided to focus on MVC and becoming an "expert" in ASP.NET instead of learning RoR, since there's no demand for RoR. I actually wasted two months learning RoR before I realized that it would help me personally, but not professionally.
That said, if you're planning on striking out on your own then choose whichever one you feel more comfortable with. If you already know Asp.Net though, I'd recommend taking a look at the MVC framework first since it leverages what you already know, but I heartily suggest looking at picking up Ruby, if not the Rails framework, since it's a very good scripting language for many tasks.
I would recommend learning one at a time. The biggest part of of learning a new language or method of programming is learning the best practices and changing how you approach a programming problem. Not just the syntax. Jumping into two at once will leave you with bad habits in both.
Because you already know ASP.NET I think learning ASP.NET MVC would be the logical next step. Get a solid understanding of MVC concepts and THEN try a project or two in Ruby on Rails. The two frameworks approach some things differently. You may find that your style and preferences fit one better than the other. But either way, now you know both. Can't hurt right?
However, I fail to see what is so
great about these. Most of them sound
basic (the kind you'll not really want
to use in production code -
scaffolding for example) - and most of
them sound like they are there in ASP
.NET MVC in some form or the other.
The ability to rapid prototype a website is part of what makes RoR so popular. When designing a website for a client there's a big difference between a non-functional mock and a functional mock.
I believe the feature gab between ASP.NET MVC and RoR will continue to get smaller. Eventually the choice will come down to a question of Windows vs LAMP.
I would spend a few weeks with RoR. It's extremely simple to get it installed and up and running so you can develop with it. Then it's just a matter of following a few tutorials until you've covered most of the basics. Then decide if you want to continue with RoR or stick with ASP.NET MVC.
if you already know c# and you were working with asp.net webforms, try asp.net mvc...and when you learn it, you can improve your skills with RoR as I am planning to...
cheers
Personally I would invest the time in learning both. I have done this and although I ended up going with MVC for my current project, the decision was because I didn't have the time to invest in learning Ruby language. The RoR framework on the other hand you can get within a few nights and get going with webpages, validation, CRUD e.t.c. in no time at all. However when you need to start adding domain logic, learning about gems you may need to understand Ruby.
Another reason is I already have a hosting setup for Microsoft, and I know c# and the .net framework and the resources I'll need already so although it's less mature and isn't as feature-rich as RoR, I deduced I could get further faster with MVC.
To make the decision yourself, weigh all the options, spend a week with MVC ( use the book MVC in Action ) and spend a week with RoR (use the book Agile Web Development with Ruby on Rails 3rd Edition ) these will get you going within no time. Then when you decide on one or the other you will have a more knowledgeable perspective.
Considering Stack Overflow is written with ASP.NET MVC I think it might be sacrilege to promote RoR over MVC.
MVC has pretty much given Microsoft lovers one more tool that they don't need to go elsewhere to get.

What is the easiest way to convert from asp classic to asp.net?

I am a .Net developer that has been tasked with upgrading a classic asp website to asp.net. The website is currently running on luck and bubble gum but there is not enough time or money to stop progress and do a full rewrite. Of course I will still need to be able to deliver new features while I am upgrading.
What strategies should I use to make a smooth gradual change to asp.net? Should I convert to a single tier .net solution and then refactor to a proper multi-tier solution or should I design my business and data layers now? Should I go straight to 3.5 or is it easier to just get to 1.1 and upgrade to 2.0 or 3.5 after?
A full conversion would probably take 3-5 months. There is also some existing 1.1 code, which is why I am considering using that as a jumping off point.
Don't throw away your code!
It's the single worst mistake you can make (on a large codebase). See Things You Should Never Do, Part 1.
You've invested a lot of effort into that old code and worked out many bugs. Throwing it away is a classic developer mistake (and one I've done many times). It makes you feel "better", like a spring cleaning. But you don't need to buy a new apartment and all new furniture to outfit your house. You can work on one room at a time... and maybe some things just need a new paintjob. Hence, this is where refactoring comes in.
For new functionality in your app, write it in C# and call it from your classic ASP. You'll be forced to be modular when you rewrite this new code. When you have time, refactor parts of your old code into C# as well, and work out the bugs as you go. Eventually, you'll have replaced your app with all new code.
You could also write your own compiler. We wrote one for our classic ASP app a long time ago to allow us to output PHP. It's called Wasabi and I think it's the reason Jeff Atwood thought Joel Spolsky went off his rocker. Actually, maybe we should just ship it, and then you could use that.
It allowed us to switch our entire codebase to .NET for the next release while only rewriting a very small portion of our source. It also caused a bunch of people to call us crazy, but writing a compiler is not that complicated, and it gave us a lot of flexibility.
Also, if this is an internal only app, just leave it. Don't rewrite it - you are the only customer and if the requirement is you need to run it as classic asp, you can meet that requirement.
Having been a longtime classic asp programmer, and now an ASP.NET dev, I would take the time and architect it properly in the 2.0 framework (3.5 if you want/need the features).
My last job we had a large handful of very badly build classic asp apps that we were rebuilding, and the "nuke and pave" approach was the most successful. Use the existing classic app as your functional spec and wireframes, and build your tasks and tech specs off of that.
How long would a complete conversion/rewrite take? It's also going to depend on how you've structured your original project.
I can answer that you should just target v2.0 (3.5 if you want/need it's features) from the beginning. There's no need to subject yourself to 1.1 of the framework.
Try these links
Migrating from ASP
Key Considerations
Converting ASP to ASP.NET
ASP to ASP.NET Migration Guide
You may want to look at the new ASP.NET MVC framework. The level of flexibility is amazing and the coding style is slightly more akin to the ASP classic approach, albeit with much better separation of church and state.
Take a look at Snitz Forums (www.snitz.com) - they are currently in ASP but the port to ASP.NET is almost complete. Both code bases are available for you to look at so you may get an idea of how it has been done there to help you.
I would avoid going into .NET 1.1 since Microsoft is ending support for v 1.1 of the .NET Framework on 10/14/2008. The extended support runs through 10/8/2013 but is typically expensive to purchase. Any bugs or security holes will not be addressed and are your problem.
http://support.microsoft.com/lifecycle/?LN=en-us&x=11&y=10&p1=1249
Paul
easiest way to do it is to just jump in head first. get some asp.net books and dive into visual studio. Do the examples, play with it, build something fun for yourself. You'll learn by doing.
I'm also working on a gradual migration from classic ASP to ASP.NET. Our first phase is migrating some common logic from an ASP include to a .NET assembly that is exposed to COM Interop so they can be called by both classic ASP and ASP.NET. I've written some tests using ASPUnit to verify the behavior after migration to the .NET assembly (with the added benefit of safer refactoring). Once the core logic is in .NET, we can begin creating new pages in ASP.NET and migrating individual ASP pages to ASP.NET at our own pace.
I would recommend .NET 2.0 or 3.5 over 1.1. ASP.NET MVC looks like an attractive upgrade path.

Resources