Quali sfide dovremo affrontare porting di un sito da asp.net a uno stack LAMP (php)?

StackOverflow https://stackoverflow.com/questions/617829

  •  03-07-2019
  •  | 
  •  

Domanda

Abbiamo un'applicazione enterprise scritta in asp.net c # (3.5) e SQL server che vogliamo raggruppare e rilasciare per i clienti.

Tuttavia, molti hanno espresso preoccupazione per il fatto che richiede un server Microsoft a causa dei costi. Sì, lo so ... Pertanto, stiamo prendendo in considerazione il porting su uno stack LAMP, con la "P" riferendosi a php.

Quali sfide possiamo aspettarci di affrontare nello sviluppo di uno stack LAMP proveniente da un ambiente asp.net di Visual Studio?

I problemi di cui sono sicuro sono:

  1. Debug: Visual Studio è eccezionale sia per il debug lato client che lato server.
  2. Framework: il codice dietro il modello funziona alla grande, e il framework MVC è carino.
  3. Manutenzione: vorremmo che il set di funzionalità fosse comune su entrambe le piattaforme.
  4. Livello database: il codice è liberamente associato ai tipi di dati mssql.

Se hai attraversato questo entusiasmante processo, mi piacerebbe sapere com'è stato con alcuni consigli / suggerimenti.

A parte questo, c'è un modo per noi di eseguire questo codice così com'è? Mono? Altri?

È stato utile?

Soluzione

Ho più esperienza con .NET rispetto agli stack * AMP, ma in base alla mia esperienza con XAMPP, offrirei le seguenti osservazioni

  1. Debug: Visual Studio è eccezionale sia per il debug lato client che lato server.

    Eclipse PDT funziona perfettamente per progettazione, sviluppo e debug. Ho sentito cose positive su Zend Studio ma non ci ho lavorato.

  2. Framework: il codice dietro il modello funziona alla grande e il framework MVC è carino.

    Esistono framework che consentono di separare la presentazione dalla logica (ad es. Smarty ) e su è disponibile almeno un framework MVC (ad es. CakePHP )

  3. Manutenzione: vorremmo che il set di funzionalità fosse comune su entrambe le piattaforme.

    Se si esclude la funzionalità specifica di Windows (Windows Integrated Security, ecc.) non ci dovrebbe essere molto che non si possa fare in entrambi gli stack, ma se si devono riprodurre controlli come il gridview essere laborioso.

  4. Livello database: il codice è liberamente associato ai tipi di dati mssql.

    Non sono a conoscenza di alcun tipo di dati che non può essere mappato tra mysql e sql server e c'è una buona documentazione per gestione delle migrazioni

Mono potrebbe ridurre il tempo necessario per il porting della soluzione, ma non sono a conoscenza di alcun modo in cui potresti riutilizzare tutto il tuo codice "come è".

Altri suggerimenti

Un altro IDE PHP che puoi prendere in considerazione è NetBeans.

Come sviluppatore .NET, Java e LAMP in un punto o nell'altro, il cambiamento più grande è stato in gran parte culturale. Ad esempio, PHP ha un'eredità di non utilizzare i principi OO mentre ASP .NET è iniziato come un linguaggio .NET con supporto OO completo. Questa differenza di base porta a problemi significativi come i lunghi elenchi di parole chiave riservate di PHP e così via.

Altri framework MVC:

  • CodeIgniter
  • Kohana
  • Yii

(Ho appena scoperto Yii. Ecco un articolo che li confronta.)

Probabilmente ce ne sono anche una mezza dozzina in più là fuori.

Ho un background Asp.net e ho cercato framework open source negli ultimi mesi. Non ho ancora deciso. Di recente ho visto Grails. Sembra avere il meglio di entrambi i mondi: un framework MVC RAD open source, facile da usare, su una piattaforma aziendale. Utilizza il linguaggio di scripting Groovy (simile a ruby) ma gira su JVM in modo da poter usare il framework Java completo se lo desideri. ci sono tonnellate di componenti Java pre-scritti là fuori da attingere. Questa cosa è piuttosto bella. sarai in grado di eseguire il porting della tua app esistente abbastanza rapidamente. Tuttavia, avrai bisogno di un webhost Tomcat.

se hai bisogno di PHP, il PHP diretto funziona abbastanza bene ma la maggior parte dei framework ha prestazioni scadenti. Se vai con dritto PHP non c'è mvc. Utilizzeresti il ??modello tradizionale basato su pagina. Ma ti sentirai più a casa. Puoi creare il tuo DAL con PDO e utilizzare le procedure memorizzate. Tuttavia avrai bisogno di un sistema di template. Stai lontano da Smarty che usa il suo linguaggio di template. È lento e perché hai bisogno di imparare una lingua di template separata. non l'ho mai capito. Utilizza invece Savant: http://phpsavant.com/ . usa php per il linguaggio dei template ed è veloce. Puoi imitare il code-behind anche con questo creando una pagina modello per ogni pagina del sito. Per quanto riguarda mvc c'è un nuovo framework PHP chiamato Yii ( http://www.yiiframework.com/ ) che afferma di avere le migliori prestazioni là fuori per i framework php. È anche ben documentato. È probabilmente il migliore framework php là fuori se vieni da .Net. Sembra impresa come Zend ma senza le scarse prestazioni. La maggior parte degli altri è giocosa o molto lenta come Symphony and Cake. Php funziona alla grande con Apache. Non c'è molta ottimizzazione o manutenzione a differenza di Rails e Django.

Successivamente è necessario un IDE. Vai con Netbeans. Utilizza la versione di PHP e installa http://www.xdebug.org/ . Si sentirà inferiore a VS ma non è male.

Per un DB, MySql è la scelta sexy ma Postgres è superiore. Ha un motore db che fa tutto. Con Mysql, alcune funzionalità desiderate sono in InnoDB e altre in MyIsam. Se hai bisogno di chiavi esterne e transazioni devi usare InnoDB. Usa MyIsam per la ricerca full-text e prestazioni di lettura più veloci. Le prestazioni di Postgres sono notevolmente migliorate con la versione 8 (come adesso mysql) e finalmente ha un bel programma di installazione di Windows.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top