Archive

Posts Tagged ‘Asp.net’

From .NET to Rails

December 14th, 2008

Right now I am basically testig my thought processes (maybe getting a headache) and seeing how I can apply what I have learned over the years programming in ASP.NET (C#) to Ruby On Rails. One major thing that sticks out when started a RoR project is that the structure is already there and set in stone. Sure if you are feeling frisky you could change how things work, but why bother, its already been tested and its ready to go.

Here are a few items that RoR gives you that makes life a bit more simple:

1. Generators - Generate the stubs for models, controllers and other various items. ASP.NET you get use to “adding new item” to create user controls, pages and other items required for your application.

2. If you are a Prototype fan, integration for AJAX calls. I prefer JQuery, and yes there is a plug-in for JQuery which will overwrite the Prototype calls. But I prefer to use just the JQuery library without the rails plug-in. Yes, ASP.NET has the lovely AJAX libraries but they are a bit bloated and the server side controls are not that great, too much talk over the HTTP protocal for my blood. My current .NET projects all use JQuery and have tossed aside the ASP.NET AJAX libraries.

3. ActiveRecord is baked in. No need to stored procedures, modelling and other various task that most .NET developers cried about. But a plus for .NET is libraries such as NHibernate (I use this), SubSonic and LINQ. These libraries make your DB cook with happiness.

4. Structure - where things go, how things work and how things should be done is there for you already. This is great, since it really takes away the having to thing and plan out part of your project. But on the flip side, it might get a little redundant after 10 or so projects in Rails. ASP.NET MVC is trying to follow this method but you still have a lot of flexibility to make your project work the way you want it to.

5. Filters - filters are great because they intercept the request, before_filter, after_filter - these are great for items such as authentication, or even setting various parts of the page when needed. ASP.NET and ASP.NET MVC have ways of doing this with overriding base class methods and MVC has filters cooked in (stolen from RoR I would suppose).

Now, the only real questions I have about Ruby on Rails is, how well does it scale. I know the guys over at Rails Envy joke about this a lot, but seriously, you hear the horror stories about Twitter crashing, and 37singals heavily driving into C code to do task fast for their flagship applications. I will have to research this more and find an answer for myself, I will be googling this topic more and posting my findings.

I enjoy the simplicity of rails, and it does make web development fun again. The current version of ASP.NET MVC did breath some life into .NET development but it still has a way to go.

One thing I hate about .NET development is the “drag and drop” features. You interview a canidate and all they know how to do is drag and drop code snippets onto the work space. Come on now, learn to code!!! I blame Microsoft for this, they always discuss the basic kiddy features and never bother to dive into the good stuff, are we just that dumb when it comes to development and software design? That we need a GUI to do any type of work?!?

Rails notes:

400 restarts a day! - this post is basically a response for Zed Shaw’s bashing and most hilarious opinion of of rails.

Presentation on Scaling Rails - have read this on, some great ideas that you can apply to any enviornment, not ust rails!

Asp.net, Asp.net MVC, Microsoft, Ruby, Ruby On Rails , , , , , , , ,

The Development Shift.

December 6th, 2008

Shifting from development process to another takes a little bit of time. Currently most of the projects we start are ASP.NET(C#) projects. Why, that is what we know, and can product high quality code with. The shift, to Ruby On Rails. Why, agile practices, development time, and many other small nice additions and features we have come to love.

Yes, with ASP.NET you can practice agile processes, but the ASP.NET MVC Framework is not 100% yet, but it is solid. With ASP.NET you have the joy of compiled code, “speed”, faster loading and so on…

But, with open source being a nice shiny rock to look at we decide it was time to give it a test run. I evaulated RoR, Django and CakePHP. CakePHP, lost instantly because I am done with PHP in general, so it did not have much to stand on. Django, very interesting framework, and some great features like “auto-admin” pages. The Python language is fun to work with and the overall power of the framework is very impressive. RoR, this being the most mature of the three and the most community focused, I felt that this for now would be the framework/development path of choice.

Currently we are various development stages with a few projects, 1 project is ASP.NET MVC, 1 is RoR and the last one is ASP.NET WebForms.

Out of these three, the one that I dread the most to work with is the ASP.NET WebForms. The development style feels old, clunky and just slow. The code-behind-method and the lack of any real separation of concerns is a major downfall to this development process.

ASP.NET MVC is a breath of fresh air, but late to the scene. In typical MS fashion they tend to copy, and no longer be a leader in the field. The team developing the ASP.NET MVC Framework has done an amazing job, and the framework is great to work with. It still has a long way to go, but the overall status of the framework now is very promising. Only issue, many .NET developers will sit on the fence and either stick with WebForms or move onto MVC. There will be a divide in this development space.

RoR is really comminity driven. One thing that is somewhat good about the framework is that they is only one way to do things. Configuration is only in one spot, the Ruby language is refreshing to work with and easy to pick up. Overall the experience has been pleasent. Only issue was deployment, since there is a little more involved in this step. But after working out a few issues, things are flying!

Asp.net, Asp.net MVC, Ruby, Ruby On Rails , , , , , , ,