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 , , , , , , ,

Rails 2.2 released!

November 21st, 2008

Packed with a bunch of new features, Ruby on Rails 2.2 has been released to the masses.

Check out the additions here.

A few things you need to do first:

  1. Update gem (sudo gem update –system)
  2. Update Rails (sudo gem install rails)
  3. If you want to upgrade an existing application to Rails 2.2 => rake rails:update

So happy Rail’ings!

Ruby, Ruby On Rails ,

Programmers Fears…

November 19th, 2008

How many programmers have you worked with in the past, or now, that fear the command line?

“I need my editor, my GUI editor, otherwise I am worthless”

How many times have you heard that from junoir level programmers, or worse yet, the seasoned professional, who has become lazy and bored on ones job. If you come from an unix world, you are very familiar with your command prompt or terminal, but the windows people, well, lets just say, they usually do not know of a console or command prompt but only a GUI interface to everything and anything.

Yes, the GUI editors to have their place. Yes, they do speed up processes at times. Yes, they are NEEDED. I am not saying they are the root of all evil in the programming world, just a cause of laziness and lack of understanding.

Many developers/engineers/programmers should become friends with their console window. Not just be a GUI jockey, but really understand the inner workings of their trade. The blinking cursor is your friend, not your enemy. How many programmers know how to compile a C# project from the command line? Worse yet, how many know how to show a directory listing?

One great think I love about the console is the ability to create small little task that you can run with a batch script, semi-automate repetative task or file creation for projects.

“The goal is to work smart, not just hard”

Random , ,

Oh no, you didn’t…

November 16th, 2008

But, I did…

What did I do, well I sold all of my computers (Dell) in order to change over to Apple hardware. Why you might ask? Am I crazy, one for being an MS developer and selling my MS based computers? Naw, just crazy and just forward thinking. While MS technologies have been my bread and butter for several years now, I just needed a fresh environment and not Vista (been there did that).

Here are a few reason:

1. I like Apple OSX

2. VMware Fusion is absolutely amazing, and I can virtualize Windows XP or Vista flawlessly.

3. Open Source (Ruby, Python & others). I have always been interested in various open source technologies so why not.

4. Linux/Unix/MacOS connection. Yes I love the command prompt. I do not need a GUI to do everything for me. Click Click Click done. Typing is a must, must know what is “really” going on.

VMware Fusion

What an amazing application. VMware out did themselves with this product. Truely an amazing virtualization product for the MAC. I currently run Windows XP, with Visual Studio, SQL Server and the whole other bunch of tools that I require for MS ASP.NET development. I choose XP since the memory requirements are lower, but I am finding that I may soon have to change to Vista/Win2K8 in order to use a lot of the upcoming and new technologies that MS is releasing such as Azure Services.

Open Source

As a developer, I am constantly looking at new technologies and existing ones to new methods or ideas on how to solve a problem. One problem I find with MS is how narrow minded many of the developers are, they only know MS methods and processes and never have looked outside that realm. Most say, “MS is my paycheck, why other looking at other ways”. Basically a closed minded developer, somebody I would never hire.

Damn good looking computer

Yes, the MAC is just a great looking computer, with many great “working” accessories. Something Windows-based machines haven’t accomplished yet.

I think if Microsoft did the same exact thing that Apple, producing their own hardware, the number of issues with Vista would have been reduced 10 fold.

MacOS, Microsoft, Random

Excellent CSS Tip : Clearing Floats

November 15th, 2008

Over at Jim Nearth’s blog is a great quick blog post that every web developer should take a look at.

Self Clearing Floats in CSS

div#container
{
  height: 1%;
}

div#container:after
{
content: ".";
display: block;
height: 0;
clear: both;
visibility: hidden;
}

Very simple, huh… Just gotta love that little snippet of code.

Tricks & Tips

Microsoft MSDN Events

November 14th, 2008

Have you ever attended a Microsoft MSDN or TechNet event? Notice that the knowledge level is a step above dumb ass? Sure, I know its an introduction to the subject at hand, like LINQ or SQL Server 2008, but seriously, why treat us like we have never programmed in our life.

I am sure that most of the developers in the conferences are bored and use the event as an excuse to skip work or get out of the office. I think MS should at least offer some events that really dive into the available technologies, so that developers can get a more in depth look at how to use these technologies. Plus, stop showing the “drag and drop” development method. I don’t know a single developer who uses this method for development, its just lazy and create bad bad bad code!

Just a few thoughts on the events that they host, at least they are free. If I had to pay, I would demand some quality.

Microsoft ,

JQuery - my take…

November 13th, 2008

Have you use the JavaScript library JQuery? If not, you have been missing out on a powerful and simple to use JavaScript library. If you spend a few hours with this library you will become a pro, plus there are a ton of tutorials on the web that make this simple to use and quick to get up and running with the compact library.

Here is a few quick samples:

Access an ID element in the DOM

$(’#elementID’) same as document.getElementByID(’elementID’)

It is as simple as that. JQuery uses the ‘$’ like prototype.

Also, a great advantage of JQuery is the numerous libraries or ‘plug-ins’ that are available. Plug-ins such as Form Validation, Lightbox enablers, and Date Pickers. These plug-ins are easy to enable, include the required JS/CSS files and you are off and running.

I will blog more about JQuery as I learn more of the in’s and out’s of the library. Check out the documentation here.

JavaScript ,

ASP.NET MVC

November 13th, 2008

So, not really sure how many people have heard about the new Beta framework from Microsoft from the ASP.NET team called ASP.NET MVC (Model View Controller). But, if you haven’t, check it out! The framework follows the convention of separation of concerns and is excellent for building web applications. I find it to be a huge improvement over ASP.NET WebForms.

At first glance a development might be a little scared of the project layout, but after working with it for a few hours, things just start to click. You start to see how the controller handles all of the request and passes the data off to either the DAL (Data Access Layer) or the View (HTML). This starts to become simple, and you may find yourself enjoying web development again. The View is simple and is only used to display the information. Some have stated that we are returning to the time of “spaghetti code”, but its the View, deal with it, and learn to write “helpers” (we’ll cover that later).

But truthfully, ASP.NET MVC is defiantly something to check out, and if you are a web developer you should install the beta give it a spin and see what it has to offer. Plus, if you are a purist and believe in standardized HTML, then make the move and start developing in MVC today. Your Views (HTML) will be cleaner, no View State or a messy post-back process to deal with.

Here are a few resources to get you started:

Rob Conery
He has an excellent series on creating an ecommerce project in the ASP.NET MVC complete with screen cast.

Phil Haack

Phil works at Microsoft and is one of the engineers on the ASP.NET MVC team, he always has some future insight to what is coming up next for the framework.

Well that’s it for now, but hopefully this opens some developer’s eyes to the greatness of MVC and the community starts to grow.

Asp.net, Asp.net MVC ,

I am back!!!

November 12th, 2008

I am finally starting up my Code For Web blog!!!

Why? Well there is some cool stuff going on in the web world and I figured I would share my thoughts…

I just got back from a few Microsoft MSDN events, discussing the future of .NET Technologies. I will be posting some of my thoughts about the event in the next few days.

Random