Mixing languages in .Net [closed]

-1

So che .Net fornisce la funzionalità per mescolare più lingue all'interno della stessa applicazione (ci sono alcuni vincoli ovviamente, ma questo non è essenziale). In teoria, ciò potrebbe essere fatto perché le lingue supportate da .Net non espongono completamente tutte le funzionalità che possono fornire. IL lo fa ovviamente. Quindi, quando hai bisogno di una funzione che la lingua corrente non fornisce, potresti scriverla in un altro linguaggio .Net. L'intero codice verrebbe tradotto in IL, quindi si otterrebbero più funzionalità.

Dalla mia esperienza personale, stavo scrivendo un progetto in C # e avevo bisogno di integrare un piccolo progetto scritto in C ++ sotto .Net. Quando ho consultato alcuni programmatori più esperti, hanno detto che sarebbe stato molto più facile "tradurre" il codice C ++ in C # piuttosto che integrarlo. Dato che ho avuto poco tempo, è stato quello che ho fatto, ed è stato abbastanza facile (il progetto era piuttosto piccolo).

Quindi la mia domanda è: qualcuno ha sperimentato una situazione di vita reale quando mescolare le lingue è una necessità assoluta?

    
posta superM 10.08.2012 - 11:37
fonte

3 risposte

4

Il miglior scenario del mondo reale che ho incontrato è quando si desidera accedere alle classi C ++ da un ambiente gestito, ad esempio da un'applicazione basata su C #.

C # può accedere alle classi COM non gestite utilizzando COM Interop o API C non gestite come l'API Win32 utilizzando P / Invoke / DllImport, ma non può accedere alle normali classi e API C ++ non COM. Se hai bisogno di farlo, il modo più semplice è scrivere un componente in C ++ / CLI.

Poiché il componente è un componente .NET gestito, può essere facilmente chiamato dal codice C #. Dal momento che è C ++, può creare un'istanza di oggetti C ++ e chiamare API non gestite. Tutti sono felici.

    
risposta data 10.08.2012 - 11:40
fonte
2

Questa funzione può essere utilizzata in ASP.NET website di sviluppo.

Ho avuto un'occasione in cui il progetto è stato inizialmente sviluppato in VB.NET e ho richiesto alcune nuove aggiunte (nuove forme web). Dopo aver analizzato i pro ei contro e la timeline, ho deciso di aggiungere nuove forme in C #, poiché era la mia lingua di sviluppo principale. Tutto è andato abbastanza bene per quel piccolo progetto.

Tuttavia, potrebbero esserci alcuni svantaggi / effetti collaterali per progetti relativamente grandi, in cui le lingue sono miste.

Nota: puoi utilizzare solo una lingua .NET in ASP.NET web application

    
risposta data 10.08.2012 - 12:41
fonte
1

Ho lavorato su un progetto in cui avevamo un'interfaccia utente scritta in VB.NET e calcoli scritti in C #. Ciò è dovuto principalmente allo sviluppatore dell'UI che non ha esperienza in C # e allo sviluppatore di calcoli che non ha esperienza in VB.NET. Con .NET, tutto ha funzionato insieme.

Idealmente, gli sviluppatori avrebbero dovuto concordare sulla lingua, ma ha funzionato per un tempo di completamento rapido del progetto (nessun linguaggio aumenta).

    
risposta data 10.08.2012 - 17:17
fonte

Leggi altre domande sui tag