2010-02-17 15 views
10

Excursionista de mucho tiempo, primer póster. Soy un hacker autodidacta que aprendió Ruby on Rails para comenzar. En el trabajo, me permitieron trabajar en una aplicación web; la única pega es que tengo que usar ASP.NET. Esta elección de tecnología es obligatoria, por mucho que prefiera usar Rails.ASP.NET MVC para desarrolladores de Ruby on Rails?

Hay docenas de libros y publicaciones en el blog "Rails for .NET/PHP/Java Developers", pero no he encontrado que vaya en la dirección opuesta, desde Rails a .NET.

¿Podría alguien darme una visión general de cómo una aplicación típica de Rails se traduciría a ASP.NET MVC? Voy a la investigación Los detalles de la IDE, C#/VBScript, etc. Pero ¿cuáles son los posibles equivalentes a:

  • Generadores
  • Gems/plugins
  • Bases de datos
  • Migraciones
  • Rutas
  • Modelos (ORMs)
  • controladores (InheritedResources)
  • Vistas (diseños, plantillas, p artials)
  • rieles consola
  • Test Units/especificaciones
  • etc. cualquier otra cosa que me olvido

Asumo muchas de las sutilezas Rieles que tomo por sentado como métodos de ayuda basadas en rutas, y las declaraciones simples de macro asociación no serán posibles. :(

Muchas gracias!

+0

Cuando se asume, que hacen etc. Generadores, gemas y las migraciones no están allí - todo lo que mencionas es en ASP.NET MVC. :) – bzlm

+2

Eso suena prometedor, ¿puedes nombrarlos? Al igual que, ¿cuál es el equivalente de la consola de Rails? –

+0

SQL Management Studio, Server Explorer o LinqPad. LinqPad es probablemente el más amigable para usted si no está en SQL – jfar

Respuesta

0

debería descargar Visual Studio 2008 Express y descarga ASP.NET MVC 1.0 (no me descarga ASP.NET MVC 2.0 sin embargo, porque es sólo en RC. Espere hasta que llega a 2.0 final).

también puede revisar la Nerddinner walkthrough. es muy útil cuando se está aprendiendo ASP.NET MVC.

  • Generadores

¿Quiere decir generadores de código? Ew.

  • Gems/plugins

Si desea funcionalidad, puede construirlo o ver si existe un plugin de jQuery para ello.

  • Bases de datos

Se accede a la base de datos a través de su modelo.

  • migraciones

?

  • Rutas

enrutamiento es manejado por el marco, y se puede añadir rutas en el archivo Global.asax.cs.

  • Modelos (ORMs)

Los modelos son de hecho todavía llaman 'modelos', y en ASP.NET MVC, si se utiliza LINQ to SQL, se genera el modelo para que cuando se arrastra sus tablas de base de datos. Puede usar el patrón Repositorio para acceder al modelo de base de datos.

  • Controllers (InheritedResources)

controladores todavía están llamados controladores.

  • Vistas (diseños, plantillas, parciales)

Hay diferentes tipos de motores de Vista, pero el proporcionado con ASP.NET MVC deben hacer bien al principio.

  • rieles consola

supongo que quiere decir el IDE/depurador? Puede construir y depurar una aplicación ASP.NET MVC dentro de Visual Studio.

  • Test Units/Especificaciones

Puede utilizar NUnit, o puede utilizar MSUnit. MSUnit ya está integrado con Visual Studio, pero puede ser NUnit.

+1

@George No estoy de acuerdo con ASP.NET MVC 1.0 frente a 2.0. ASP.NET 2.0 es mucho más maduro que 1.0, e incluye características de que alguien proveniente de un fondo de Rails encontraría una mejora para no tener que reinventar, como áreas y validación. ASP.NET MVC 2.0 tiene la licencia Go-Live, que lo convierte en una apuesta muy segura. – bzlm

+0

@bzlm, Ok; pero MVC 2 tiene errores que te volverán loco. Me ocupé de uno la otra noche. http://aspnet.codeplex.com/WorkItem/List.aspx –

+0

¿Qué error fue ese? Dado que nadie usa el tema de votación en Codeplex, y muchos problemas no son realmente problemas, es difícil saberlo simplemente mirando la lista. – bzlm

8

Creo que lo que encontrarás en el mundo de .Net es que tienes muchas opciones por hacer. Rails es agradable porque proporciona todo eso en un solo lugar, pero para .Net tendrás que armar una solución propia.

  • Generadores - Existen varios recursos de generación de código, pero cada uno es para una pieza diferente. Por ejemplo, puedes obtener MyGeneration que generará código basado en una base de datos.
  • Gemas/Complementos - Sin sistema de unión para esto; Los componentes se pueden encontrar en la web y descargaría el origen o el .dll, luego agregaría una referencia en su proyecto al ensamblado (.dll).
  • Bases de datos: puede conectarse a casi cualquier cosa; Probablemente encontrará la mayor cantidad de orientación para un servidor MS SQL.
  • Migraciones: no conozco un método directo para esto en el mundo .net; Normalmente escribo código SQL en SQL y ejecuto scripts en el servidor de forma manual como parte de la implementación.
  • Rutas: ASP.Net MVC incluye rutas, busque en el archivo global.asax.cs que se genera al crear un proyecto, por ejemplo.
  • Modelos (ORM) - ORM para .Net están por todos lados. Como parte de .Net se incluyen elementos como Linq-to-sql y Entity Framework. Fuera de MS puedes encontrar muchos, pero probablemente recomendaría NHibernate.
  • Controladores: integrados en .Net MVC; Tienes que escribir el código.
  • Vistas - Construido en .Net MVC; Una vez más, puedes escribirlos. Las páginas maestras le permiten obtener el mismo diseño general en todas sus páginas (incluido el encabezado/pie de página común, etc.), los controles web (archivos .ascx) le permiten hacer una vista parcial.
  • Rails Console: no sé exactamente qué proporciona esto (soy un desarrollador de .net interesado en aprender Rails, pero aún no he dedicado mucho tiempo); Visual Studio le permite depurar aplicaciones, pasar por el código, etc. No creo que haya ninguna consola disponible para probar el código fuera de simplemente escribir el código, compilarlo y ejecutarlo.
  • Unidades de prueba/especificaciones: existen algunos marcos de prueba para .Net (MS tiene un marco incluido, NUnit es una alternativa). Para las especificaciones y tal, probablemente google alrededor para Behavior Driven Design y vea lo que existe.
+0

Gracias, Chris, esto es útil. RE: Consola Rails: es genial. Esto podría ser una característica de un lenguaje de scripting dinámico interpretado. Este es un buen ejemplo: http://railscasts.com/episodes/48-console-tricks –

+0

@Chris Shaffer "Consolas para probar el código". <- Para eso están los marcos de pruebas unitarias como MSUnit y NUnit. –

+0

@ ASP.NET - gracias por el enlace, se ve muy útil. Visual Studio proporciona parte de la información disponible en la consola de Rails (p. Ej., Intellisense aparecerá para la autocompletación, podrá navegar a clases y ver qué hay disponible, etc. Desafortunadamente, no puede interactuar con su código de la misma manera Mientras realiza la depuración, puede establecer un punto de interrupción y luego interactuar en la consola Inmediata de VS, sin embargo, hay límites definidos para lo que puede lograr aquí. –

5

Hay un par de puertos .NET de migraciones RoR. He usado migratordotnet y FluentMigrator. Ambos funcionan como se esperaba, pero prefiero FluentMigrator. Es más completo (por ejemplo, puede crear índices) y me gusta el estilo fluido.

+1

Es extraño que obtuve un voto negativo por esto. ¿Alguien quiere explicar? Fluentmigrator es el camino a seguir si quieres migraciones de bases de datos estilo Ruby. –