2010-02-17 14 views
10

Lurker da molto tempo, poster prima volta. Sono un hacker autodidatta che ha imparato Ruby on Rails per iniziare. Al lavoro mi è stato concesso di lavorare su un'app Web: l'unico problema è che devo utilizzare ASP.NET. Questa scelta tecnologica è obbligatoria, per quanto preferirei usare Rails.ASP.NET MVC per gli sviluppatori di Ruby on Rails?

Ci sono dozzine di libri "Rails for .NET/PHP/Java Developers" e post di blog, ma non ho trovato alcuna direzione opposta, da Rails a .NET.

Qualcuno potrebbe darmi una panoramica di come una tipica app di Rails si sarebbe tradotta in ASP.NET MVC? Io ricerco i dettagli del IDE, C#/VBScript, ecc Ma quali sono le possibili equivalenti a:

  • Generatori
  • Gems/plugins
  • Basi di dati
  • Migrazioni
  • Itinerari
  • modelli (ORM)
  • Controllers (InheritedResources)
  • visti (layout, template, p artials)
  • Rails Console
  • unità di prova/Spec
  • ecc qualsiasi altra cosa sto dimenticando

Presumo un sacco di sottigliezze Rails dò per scontato come metodi di supporto route-based, e semplici dichiarazioni di associazione macro non saranno possibili. :(

Grazie mille!

+0

Quando si assume, fate ecc Generatori, gemme e le migrazioni non sono lì - tutto il resto si parla è in ASP.NET MVC. :) – bzlm

+2

Sembra promettente, puoi chiamarli? Come, qual è l'equivalente di Rails Console? –

+0

SQL Management Studio, Server Explorer o LinqPad. LinqPad è probabilmente il più amichevole per te se non lo sei in SQL – jfar

risposta

0

è necessario scaricare Visual Studio 2008 Express, e scaricare ASP.NET MVC 1.0 (non vorrei scaricare ASP.NET MVC 2.0 ancora, perché è solo in RC. Attendere fino a raggiungere 2,0 finale).

È inoltre possibile controllare il Nerddinner walkthrough. E 'molto utile quando l'apprendimento ASP.NET MVC.

  • Generatori

Intendi generatori di codice? Ew.

  • Gems/Plugin

Se si desidera la funzionalità, è possibile costruire o vedere se esiste un plugin jQuery per esso.

  • database

Database si accede attraverso il vostro modello.

  • Migrazioni

?

  • Itinerari

Routing viene gestito dal quadro, ed è possibile aggiungere percorsi nel file Global.asax.cs.

  • modelli (ORM)

I modelli sono infatti ancora chiamati 'modelli', e in ASP.NET MVC, se si utilizza LINQ to SQL, il modello viene generato per voi quando si trascina le tabelle del database in. È possibile utilizzare il modello di repository per accedere al modello di database.

  • Controllers (InheritedResources)

controllori sono ancora chiamati controllori.

  • Vista (layout, template i partial)

Ci sono diversi tipi di vista Motori, ma quello fornito con ASP.NET MVC dovrebbe fare bene in un primo momento.

  • Rails Console

Sto indovinando si intende l'IDE/Debugger? È possibile creare e eseguire il debug di un'applicazione ASP.NET MVC all'interno di Visual Studio.

  • unità di prova/Specifiche

È possibile utilizzare NUnit, oppure è possibile utilizzare MSUnit. MSUnit è già integrato con Visual Studio, ma NUnit può esserlo.

+1

@George Non sono d'accordo su ASP.NET MVC 1.0 vs 2.0. ASP.NET 2.0 è molto più maturo di 1.0 e include funzionalità che qualcuno che proviene da uno sfondo Rails troverebbe un miglioramento per non dover reinventare, come ad esempio Aree e Validazione. ASP.NET MVC 2.0 ha la licenza Go-Live, che lo rende una scommessa molto sicura. – bzlm

+0

@bzlm, Ok; ma MVC 2 ha bug che ti faranno impazzire. Ne ho parlato uno l'altra sera. http://aspnet.codeplex.com/WorkItem/List.aspx –

+0

Quale bug era? Dal momento che nessuno usa il problema per votare su Codeplex, e molti problemi sono davvero non-problematici, è difficile da capire guardando la lista. – bzlm

8

Penso che quello che troverai nel mondo .Net è che hai molte scelte da fare. Rails è bello perché fornisce tutte queste cose in un unico posto, ma sviluppando per .Net dovrai mettere insieme una soluzione tutta tua.

  • Generatori - Esistono varie funzioni di generazione del codice, ma ognuna è per un pezzo diverso. Ad esempio, è possibile ottenere MyGeneration che genererà codice basato su un database.
  • Gemme/Plugin - Nessun sistema di collegamento per questo; I componenti possono essere trovati sul web e si dovrebbe scaricare il sorgente o il file .dll, quindi aggiungere un riferimento nel progetto all'assembly (.dll).
  • Database: è possibile connettersi praticamente a qualsiasi cosa; Probabilmente troverai la maggior parte delle indicazioni per un MS SQL Server.
  • Migrazioni - Non conosco un metodo diretto per questo nel mondo .net; Di solito scrivo codice SQL in SQL ed eseguo script sul server manualmente come parte della distribuzione.
  • Percorsi: ASP.Net MVC include percorsi, cerca nel file global.asax.cs che viene generato quando si crea un progetto, ad esempio.
  • Modelli (ORM) - Gli ORM per .Net sono dappertutto. Inclusi come parte di .Net sono cose come Linq-to-sql e Entity Framework. Al di fuori della SM si possono trovare molti, ma probabilmente raccomanderei NHibernate.
  • Controllers - Integrato a .Net MVC; Devi scrivere il codice.
  • Visualizzazioni: integrato in .Net MVC; Ancora una volta puoi scrivere loro. MasterPages ti consente di ottenere lo stesso layout generale su tutte le tue pagine (compresi header/footer comuni, ecc.), I controlli Web (file .ascx) ti permettono di fare una vista parziale.
  • Console di Rails - Non so esattamente cosa ciò offra (sono uno sviluppatore di .net interessato all'apprendimento di Rails, ma non ho ancora trascorso molto tempo); Visual Studio ti consente di eseguire il debug di applicazioni, di eseguire il codice, ecc. Non credo che ci siano console disponibili per testare il codice al di fuori della semplice scrittura del codice, della sua compilazione e della sua esecuzione.
  • Test Units/Specs - Esistono alcuni framework di test per .Net (MS ha un framework incluso, NUnit è un'alternativa). Per specifiche e simili, probabilmente google in giro per Behavior Driven Design e vedere cosa esiste.
+0

Grazie, Chris, questo è utile. RE: Rails Console - è bello. Questo potrebbe essere un vantaggio di un linguaggio di scripting dinamico interpretato. Questo è un buon esempio: http://railscasts.com/episodes/48-console-tricks –

+0

@Chris Shaffer "Consoles to test code." <- Ecco a cosa servono i quadri di test unitari come MSUnit e NUnit. –

+0

@ ASP.NET - grazie per il link, sembra molto utile. Visual Studio fornisce alcune delle informazioni disponibili nella console di Rails (ad esempio, Intellisense apparirà per il completamento automatico, puoi navigare verso classi e simili per vedere cosa è disponibile, ecc. Sfortunatamente non puoi effettivamente interagire con il tuo codice allo stesso modo Durante il debug, è possibile impostare un punto di interruzione e quindi interagire nella console Immediata di VS, tuttavia esistono limiti definiti a ciò che è possibile eseguire qui. –

5

Ci sono un paio di porte .NET di migrazioni RoR. Ho usato migratordotnet e FluentMigrator. Entrambi funzionano come previsto ma preferisco FluentMigrator. È più completo (ad es. Può creare indici) e mi piace lo stile fluente.

+1

Strano che ho avuto un downvote per questo. Qualcuno ha voglia di spiegare? Fluentmigrator è la soluzione ideale se desideri migrazioni di database in stile Ruby. –