PDA

View Full Version : Microsoft: Xamarin è gratuito per utenti Visual Studio e sarà open source


Redazione di Hardware Upg
31-03-2016, 18:25
Link alla notizia: http://www.hwupgrade.it/news/sistemi-operativi/microsoft-xamarin-e-gratuito-per-utenti-visual-studio-e-sara-open-source_61856.html

Microsoft conferma in occasione della Build conference 2016 la decisione di rendere open source Xamarin, annunciata, contestualmente, la possibilità offerta agli utenti Visual Studio di utilizzarlo senza costi aggiuntivi

Click sul link per visualizzare la notizia.

Unrealizer
31-03-2016, 18:42
Una precisione: per le edizioni da Professional in su non è gratuito, ma è incluso in Visual Studio (immagino tramite MSDN), mentre è totalmente gratuito solo con VS Community

tl;dr: se sei uno sviluppatore abbastanza piccolo da poter usare la Community (azienda con <=5 sviluppatori e meno di un milione di fatturato) è gratis, se sei abbastanza grande da aver bisogno di Professional e superiori, Visual Studio devi pagarlo comunque :D

in più, sarà open source solo la parte core ("Xamarin Runtime"), non tutto, ma è comunque notevole

MaxiHori
31-03-2016, 18:47
Qualcuno sa se hanno introdotto o introdurranno il supporto winjs in xamarin?

Tedturb0
31-03-2016, 19:19
certo che, lasciatemelo scrivere, usare xamarin invece di Qt e' come spararsi sui piedi..

djmatrix619
31-03-2016, 20:27
Una precisione: per le edizioni da Professional in su non è gratuito, ma è incluso in Visual Studio (immagino tramite MSDN), mentre è totalmente gratuito solo con VS Community

tl;dr: se sei uno sviluppatore abbastanza piccolo da poter usare la Community (azienda con <=5 sviluppatori e meno di un milione di fatturato) è gratis, se sei abbastanza grande da aver bisogno di Professional e superiori, Visual Studio devi pagarlo comunque :D

in più, sarà open source solo la parte core ("Xamarin Runtime"), non tutto, ma è comunque notevole

Devi seriamente imparare ad usare il "tl;dr".. :asd:

Unrealizer
31-03-2016, 23:48
Qualcuno sa se hanno introdotto o introdurranno il supporto winjs in xamarin?

se non sbaglio winjs è già compatibile con ios e android

certo che, lasciatemelo scrivere, usare xamarin invece di Qt e' come spararsi sui piedi..

e perché mai?

Devi seriamente imparare ad usare il "tl;dr".. :asd:

ho pensato la stessa cosa dopo aver premuto invia, ma non avevo voglia di editare :asd:

matsnake86
01-04-2016, 07:25
Bomba! Ben fatto microsoft.

bigbox168
01-04-2016, 07:26
credo che sia stata una scelta inevitabile, se rimaneva a pagamento non sarebbe cambiato nulla, unito al fatto che si potranno convertire app Win32 in UWP lo store dovrebbe iniziare a crescere (anche per il mobile) ;)

GTKM
01-04-2016, 08:44
Con Visual Studio Community più Xamarin stanno regalando degli strumenti impressionanti. Praticamente, con un unico IDE puoi realizzare il mondo :sofico:

Unrealizer
01-04-2016, 09:56
credo che sia stata una scelta inevitabile, se rimaneva a pagamento non sarebbe cambiato nulla, unito al fatto che si potranno convertire app Win32 in UWP lo store dovrebbe iniziare a crescere (anche per il mobile) ;)

non puoi convertire app Win32 in UWP, Centennial ti permette di impacchettarle in appx (e distribuirle tramite lo/gli store) e di usare le API UWP, anche se da un processo separato, però funzioneranno comunque solo su desktop

l'idea è di sostituire il vecchio MSI con AppX -> https://channel9.msdn.com/Events/Build/2016/B809

Con Visual Studio Community più Xamarin stanno regalando degli strumenti impressionanti. Praticamente, con un unico IDE puoi realizzare il mondo :sofico:

l'idea è quella :D tralaltro ieri hanno annunciato anche il supporto per C++ su Linux direttamente in VS, con compilazione (solo, per ora) remota e remote debugging

support anche ARM e c'è il template per Raspberry https://blogs.msdn.microsoft.com/vcblog/2016/03/30/visual-c-for-linux-development/

GTKM
01-04-2016, 10:12
l'idea è quella :D tralaltro ieri hanno annunciato anche il supporto per C++ su Linux direttamente in VS, con compilazione (solo, per ora) remota e remote debugging


support anche ARM e c'è il template per Raspberry https://blogs.msdn.microsoft.com/vcblog/2016/03/30/visual-c-for-linux-development/

Il primo punto lo voglio approfondire. :D

Unrealizer
01-04-2016, 13:08
Post sul blog di Xamarin: https://blog.xamarin.com/xamarin-for-all/

fano
01-04-2016, 14:05
Beh mi tolgo tanto di cappellino, brava Microsoft!
Ora potrei smettere di usare un orrido Desktop Linux per scrivere codice per il mio target peccato per questioni "politiche" Windows + VS non me lo installeranno mai...

A questo punto non gli resta che fare in modo che Xamarin sia capace anche di creare GUI per Linux "Desktop" e siamo a cavallo :D

Unrealizer
01-04-2016, 14:32
Beh mi tolgo tanto di cappellino, brava Microsoft!
Ora potrei smettere di usare un orrido Desktop Linux per scrivere codice per il mio target peccato per questioni "politiche" Windows + VS non me lo installeranno mai...

A questo punto non gli resta che fare in modo che Xamarin sia capace anche di creare GUI per Linux "Desktop" e siamo a cavallo :D

puoi farlo già ora, direttamente con Mono: puoi utilizzare GTK# per fare applicazioni GTK

ci sono anche dei binding per Qt, ma credo siano tutti un po' monchi

in alternativa puoi anche usare Windows Forms (con SharpDevelop), ma così vai oltre la parte "protetta" dagli standard ECMA e la MS Open Specification Community Promise... dubito sia un rischio ormai (dovrebbero mandare una notifica di violazione copyright a loro stessi :asd: ), ma...

Tedturb0
01-04-2016, 15:25
puoi farlo già ora, direttamente con Mono: puoi utilizzare GTK# per fare applicazioni GTK

ci sono anche dei binding per Qt, ma credo siano tutti un po' monchi

in alternativa puoi anche usare Windows Forms (con SharpDevelop), ma così vai oltre la parte "protetta" dagli standard ECMA e la MS Open Specification Community Promise... dubito sia un rischio ormai (dovrebbero mandare una notifica di violazione copyright a loro stessi :asd: ), ma...

certo che dover mettersi a mischiare la roba .net/mono in C# con le ui native in dio solo sa quale linguaggio/toolkit perche si vuole stare su prodotti maicrosoft non lo capisco.
Tanto vale ingegnerizzare l'applicazione in maniera decente, separando core che sara simile ovunque, e UI, e farselo a mano, il supporto cross platform.

Oppure usare un toolkit cross platform serio come Qt, dove c'e' un astrazione per quasi tutto, senza dover riscrivere le interfacce, ma anche supporto per sensori vari eccetera.

Voglio dire, Microsoft e' all'angolo e non ha scelta. Non per questo gli sviluppatori devono farsi abbindolare dei loro specchietti.

Unrealizer
02-04-2016, 14:00
certo che dover mettersi a mischiare la roba .net/mono in C# con le ui native in dio solo sa quale linguaggio/toolkit perche si vuole stare su prodotti maicrosoft non lo capisco.
Tanto vale ingegnerizzare l'applicazione in maniera decente, separando core che sara simile ovunque, e UI, e farselo a mano, il supporto cross platform.

Oppure usare un toolkit cross platform serio come Qt, dove c'e' un astrazione per quasi tutto, senza dover riscrivere le interfacce, ma anche supporto per sensori vari eccetera.

Voglio dire, Microsoft e' all'angolo e non ha scelta. Non per questo gli sviluppatori devono farsi abbindolare dei loro specchietti.

Il motivo è semplice: funziona, e funziona bene

Perché dovrei sprecare tempo e risorse a farmi a mani il supporto cross platform quando c'è un prodotto che lo fa per me?

fano
03-04-2016, 13:40
puoi farlo già ora, direttamente con Mono: puoi utilizzare GTK# per fare applicazioni GTK

ci sono anche dei binding per Qt, ma credo siano tutti un po' monchi

in alternativa puoi anche usare Windows Forms (con SharpDevelop), ma così vai oltre la parte "protetta" dagli standard ECMA e la MS Open Specification Community Promise... dubito sia un rischio ormai (dovrebbero mandare una notifica di violazione copyright a loro stessi :asd: ), ma...

Ma queste "Windows Forms" funzionano anche su Linux? Io credevo che Mono avesse lasciato il supporto a metà... comunque avrebbero l'aspetto di Windows che su Linux sarebbe un pugno in un occhio (nel senso che sarebbe troppo bello rispetto al resto della GUI :Prrr:).
A parte gli scherzi io vorrei ciò che Java prometteva 10 anni fa (15?) stesso codice, ma GUI con aspetto "nativo" su Windows, Linux (nelle sue differenti ed incompatibili incarnazioni Gnome e KDE) e Mac OSX... è quello che per il mondo mobile promette oggi Xamarin spero sia portato anche nel mondo desktop.
UWP potrebbe anche essere una possibilità anche se continuo a vederle non come applicazioni desktop ma come mobili "forzate" un po' sul desktop, ma questo è forse un mio limite...

wingman87
03-04-2016, 14:08
L'altro giorno ho installato la community edition di VS perché volevo scrivere qualche programmino in C++. Nella configurazione dell'installazione ho selezionato solo C++ (alcune spunte non si poteva toglierle). Risultato: 10GB di installazione.
Poi quando ho avviato VS ho notato che c'era qualcosa che non andava... era in italiano! Allora ho scaricato il language pack e quando ho lanciato l'installazione mi ha detto che avrebbe anche installato Java SE 7 :eek:
Ma cosa c'entra java? Allora ho disinstallato tutto il carrozzone, non aveva proprio alcun senso.
Tra l'altro ci ho messo un sacco a disinstallare tutto perché tra i programmi installati aveva aggiunto una ventina di voci tra runtime libraries, mssql e dipendenze varie...

fano
03-04-2016, 14:20
Il problema dell'installazione troppo grossa è noto anche a Microsoft infatti la prossima versione (che non ho capito perché si chiama "15" invece di VS2016) avrà un installer diverso e più "modulare".

Riguardo Java sei sicuro che non avevi la spunta su C++ for mobile che, per qualche strana ragione, vuole portarsi dietro l'Android SDK che appunto dipende da Java?

Galileo
04-04-2016, 01:41
Il problema dell'installazione troppo grossa è noto anche a Microsoft infatti la prossima versione (che non ho capito perché si chiama "15" invece di VS2016) avrà un installer diverso e più "modulare".

Riguardo Java sei sicuro che non avevi la spunta su C++ for mobile che, per qualche strana ragione, vuole portarsi dietro l'Android SDK che appunto dipende da Java?

Si chiama 15 perché segue la numerazione del codename del software.

Se infatti vedi il percorso installato in Program Files x86, troverai che VS2015 crea una cartella chiamata Microsoft Visual Studio 14.0.
Semplicemente, hanno scelto di associare la progressione del codename al nome identificativo per il pubblico/clientela.

LMCH
04-04-2016, 01:54
Il motivo è semplice: funziona, e funziona bene

Perché dovrei sprecare tempo e risorse a farmi a mani il supporto cross platform quando c'è un prodotto che lo fa per me?

Appunto, perchè non usare Qt ? :D

wingman87
04-04-2016, 06:26
Il problema dell'installazione troppo grossa è noto anche a Microsoft infatti la prossima versione (che non ho capito perché si chiama "15" invece di VS2016) avrà un installer diverso e più "modulare".

Riguardo Java sei sicuro che non avevi la spunta su C++ for mobile che, per qualche strana ragione, vuole portarsi dietro l'Android SDK che appunto dipende da Java?
Sono abbastanza sicuro perché non era l'installazione principale ma solo quella del language pack e forse non bisognava scegliere nulla. In generale faccio attenzione a scegliere solo il minimo indispensabile, quindi credo di non sbagliarmi

fano
04-04-2016, 08:41
Appunto, perchè non usare Qt ? :D

Perché con C# compili una volta sola e funziona PER SEMPRE? E non fino a che gli sviluppatori di Qt non decidono tra una minor release e l'altra di sp*ttanare completamente le API?
Perché l'XAML (e il designer) della Microsoft sono superiori di almeno un fattore 100 a QML?
Perché l'interfaccia utente è davvero nativa (ogni classe C# che ha a che fare con la grafica non è altro che una P/Invoke alla classe nativa) e non "simulata" come fa Qt?
Perché scrivere codice in C# senza doversi preoccupare di core a causa di puntatori, memory leak ed altre menate è molto meglio che scrivere codice in C++?

Unrealizer
04-04-2016, 10:08
Ma queste "Windows Forms" funzionano anche su Linux? Io credevo che Mono avesse lasciato il supporto a metà... comunque avrebbero l'aspetto di Windows che su Linux sarebbe un pugno in un occhio (nel senso che sarebbe troppo bello rispetto al resto della GUI :Prrr:).
A parte gli scherzi io vorrei ciò che Java prometteva 10 anni fa (15?) stesso codice, ma GUI con aspetto "nativo" su Windows, Linux (nelle sue differenti ed incompatibili incarnazioni Gnome e KDE) e Mac OSX... è quello che per il mondo mobile promette oggi Xamarin spero sia portato anche nel mondo desktop.
UWP potrebbe anche essere una possibilità anche se continuo a vederle non come applicazioni desktop ma come mobili "forzate" un po' sul desktop, ma questo è forse un mio limite...

Si, il supporto a WinForms 1.1 e 2.0 è completo, e di default ha il tema di Win32 classico (simile a XP con Luna disattivato)

Quello che vorresti tu è qualcosa di simile a Xamarin.Forms, il problema è che ogni piattaforma ha i suoi paradigmi per la UI, quindi a meno di programmi molto semplici avrai sempre qualcosa che stona

UWP resterà una prerogativa di Windows secondo me... Comunque anche io all'inizio avevo la stessa impressione (magari perché le app di 8 erano ancora molto immature?), però mi sono accorto che uso sempre più UWP durante il giorno (Edge, Groove, Outlook, Messaggi/Skype e spesso preferisco le versioni UWP di Office rispetto alle versioni desktop)

L'altro giorno ho installato la community edition di VS perché volevo scrivere qualche programmino in C++. Nella configurazione dell'installazione ho selezionato solo C++ (alcune spunte non si poteva toglierle). Risultato: 10GB di installazione.
Poi quando ho avviato VS ho notato che c'era qualcosa che non andava... era in italiano! Allora ho scaricato il language pack e quando ho lanciato l'installazione mi ha detto che avrebbe anche installato Java SE 7 :eek:
Ma cosa c'entra java? Allora ho disinstallato tutto il carrozzone, non aveva proprio alcun senso.
Tra l'altro ci ho messo un sacco a disinstallare tutto perché tra i programmi installati aveva aggiunto una ventina di voci tra runtime libraries, mssql e dipendenze varie...

Come ha già detto fano il problema della dimensione è qualcosa che stanno già affrontando con la prossima versione di VS (è già disponibile la prima preview, sia con l'installer tradizionale che con il nuovo)

Per Java: sicuramente è perché avevi selezionato (o dimenticato di deselezionare?) qualche componente per lo sviluppo su Android

Il problema dell'installazione troppo grossa è noto anche a Microsoft infatti la prossima versione (che non ho capito perché si chiama "15" invece di VS2016) avrà un installer diverso e più "modulare".

Riguardo Java sei sicuro che non avevi la spunta su C++ for mobile che, per qualche strana ragione, vuole portarsi dietro l'Android SDK che appunto dipende da Java?

15 è il numero di versione (come VS 2015 è la v14), mentre "l'anno" è il nome commerciale

a me sembra strano che non abbiano deciso di saltare la v15, dato che avevano saltato la v13 proprio per evitare che la gente lo confondesse con il 2013 (che è v12)

Appunto, perchè non usare Qt ? :D

Nel campo mobile c'è un motivo che da solo basta: non sono UI native
Nel caso stessi facendo un'app LOB o per cui non mi importa avere una UI adatta alla piattaforma, farei comunque prima con Xamarin.Forms

fano
04-04-2016, 12:15
Si, il supporto a WinForms 1.1 e 2.0 è completo, e di default ha il tema di Win32 classico (simile a XP con Luna disattivato)

Quello che vorresti tu è qualcosa di simile a Xamarin.Forms, il problema è che ogni piattaforma ha i suoi paradigmi per la UI, quindi a meno di programmi molto semplici avrai sempre qualcosa che stona


Forse per i telefoni ha più senso dove solitamente la pagina / form è una o al massimo 2?
Non è ben capito sul sito quando parlano di supporto a Windows se intendono la versione "mobile" quindi UWP che - comunque - su Windows 8 e 10 desktop dovrebbe funzionare con anche i "magici" adattamenti di "Continuity".


UWP resterà una prerogativa di Windows secondo me... Comunque anche io all'inizio avevo la stessa impressione (magari perché le app di 8 erano ancora molto immature?), però mi sono accorto che uso sempre più UWP durante il giorno (Edge, Groove, Outlook, Messaggi/Skype e spesso preferisco le versioni UWP di Office rispetto alle versioni desktop)


Sì sulla prima versione di Windows 8 davano proprio fastidio: venivano a tutto schermo, non avevano la barra tipica di un'applicazione (niente 'X' per chiuderla) insomma rompevano le palle! Poi con 8.1 le hanno rese già meno invadenti e con 10 probabilmente il cerchio si è chiuso...
Poi io sono un'utente un po' "atipico" il mio cellulare è ancora un glorioso Nokia 3310 quindi l'unica App per me è Snake! Skype non l'ho installato nemmeno sul PC se no rischio che il mio capo mi scriva cose di lavoro :cry:

Prima o poi mi dovrò far coraggio e cambiarlo, ma ho un problema funziona ancora per forza Nokia è fallita: l'ho lanciato contro un muro una volta (perché si era permesso dopo 5 giorni di avere la batteria scarica), l'ho rimontato e continua a funzionare :Prrr:


15 è il numero di versione (come VS 2015 è la v14), mentre "l'anno" è il nome commerciale

a me sembra strano che non abbiano deciso di saltare la v15, dato che avevano saltato la v13 proprio per evitare che la gente lo confondesse con il 2013 (che è v12)


Forse "VS15" è solo il nome della beta poi lo chiameranno "Visual Studio 2016" creerebbe troppa confusione altrimenti... a quel punto tanto vale fare come Java e ricominciare la numerazione!


Nel campo mobile c'è un motivo che da solo basta: non sono UI native
Nel caso stessi facendo un'app LOB o per cui non mi importa avere una UI adatta alla piattaforma, farei comunque prima con Xamarin.Forms

Infatti questo oltre al fatto di avere un vero IDE per scrivere il codice (Visual Studio), C#/XAML al posto dell'instabile C++/Qt (instabile non solo perché va in core, ma anche l'API è instabile) sembra essere un ulteriore vantaggio di Xamarin: la GUI è nativa e non "emulata" in qualche modo!

Unrealizer
04-04-2016, 14:42
Forse per i telefoni ha più senso dove solitamente la pagina / form è una o al massimo 2?
Non è ben capito sul sito quando parlano di supporto a Windows se intendono la versione "mobile" quindi UWP che - comunque - su Windows 8 e 10 desktop dovrebbe funzionare con anche i "magici" adattamenti di "Continuity".

dipende dalle app, quella su cui sto lavorando per ora ha una ventina di pagine diverse :D

se parli di Forms, intendono sia Windows Phone 8.0 (su Silverlight) sia UWP (quindi desktop, mobile, xbox e hololens)

Sì sulla prima versione di Windows 8 davano proprio fastidio: venivano a tutto schermo, non avevano la barra tipica di un'applicazione (niente 'X' per chiuderla) insomma rompevano le palle! Poi con 8.1 le hanno rese già meno invadenti e con 10 probabilmente il cerchio si è chiuso...
Poi io sono un'utente un po' "atipico" il mio cellulare è ancora un glorioso Nokia 3310 quindi l'unica App per me è Snake! Skype non l'ho installato nemmeno sul PC se no rischio che il mio capo mi scriva cose di lavoro :cry:

Prima o poi mi dovrò far coraggio e cambiarlo, ma ho un problema funziona ancora per forza Nokia è fallita: l'ho lanciato contro un muro una volta (perché si era permesso dopo 5 giorni di avere la batteria scarica), l'ho rimontato e continua a funzionare :Prrr:

beh, stamattina in aeroporto il mio 1520 è scivolato dalla tasca mentre correvo(ultima chiamata per il mio volo, il gate era dall'altra parte del piano) e ha fatto 2-3 metri strisciando sul pavimento dal lato del display, nemmeno un graffio :D

Forse "VS15" è solo il nome della beta poi lo chiameranno "Visual Studio 2016" creerebbe troppa confusione altrimenti... a quel punto tanto vale fare come Java e ricominciare la numerazione!

la versione è v15, ma visto che non si sa ancora se uscirà nel 2016, 2017 o anche 2018 lo indicano con il numero di versione oppure con un generico "vNext"

Infatti questo oltre al fatto di avere un vero IDE per scrivere il codice (Visual Studio), C#/XAML al posto dell'instabile C++/Qt (instabile non solo perché va in core, ma anche l'API è instabile) sembra essere un ulteriore vantaggio di Xamarin: la GUI è nativa e non "emulata" in qualche modo!

In più, c'è anche un altro vantaggio: la licenza di Xamarin ora è NETTAMENTE più conveniente di quella di Qt

fano
04-04-2016, 16:16
Mmh quindi Qt non è gratuito per uso commerciale? Ops :eek:

the_best_hacker
04-04-2016, 16:36
No, bisogna acquistare la licenza.
Con la versione open source, a quanto ho capito, non si possono creare dei pacchetti d'installazione contenenti tutte le librerie ma queste devono essere fornite insieme all'eseguibile dell'applicazione.
Almeno a livello desktop (ambito linux) significa che devi fornire all'utente uno zippone contenete l'applicazione è tutte le librerie di supporto di Qt e sarà poi compito dell'utente andare ad installare (oppure crei uno script ad hoc con tutte le path, cosa che su Windows ad esempio non so se è fattibile).

Poi in ogni caso le Qt pur basandosi sul c++, che in teoria dovrebbe fornire performance molto buone, alla fin dei conti risulta molto poco performante. Questo almeno se paragonato ai vari strumenti messi a disposizione del sistema per il quella sviluppi.
Ad esempio se fai un'applicazione per Mac OS con xcode e swift2 avrai un'ottimizzazione molto superiore rispetto a quella che avresti con le qt. Poi non parliamo neanche delle differenze per quanto riguarda i vari componenti grafici della ui, quelli proprio non si intonano per niente.

Stesso discorso penso sia su Windows con la suite VS e c#.


Ora però io stesso mi pongo un dilemma esistenziale. Al giorno d'oggi per un ragazzo che sta iniziando a studiare come programmare le prime app sul mondo mobile (nel caso mio Android) avrebbe più senso intraprendere la strada "nativa" e quindi studiare bene java (nel mio caso parto da una conoscenza discreta di c++) oppure puntare su questa piattaforma xamarin e quindi studiarsi per bene c#?

Voi cosa fareste?

Unrealizer
04-04-2016, 17:06
No, bisogna acquistare la licenza.
Con la versione open source, a quanto ho capito, non si possono creare dei pacchetti d'installazione contenenti tutte le librerie ma queste devono essere fornite insieme all'eseguibile dell'applicazione.
Almeno a livello desktop (ambito linux) significa che devi fornire all'utente uno zippone contenete l'applicazione è tutte le librerie di supporto di Qt e sarà poi compito dell'utente andare ad installare (oppure crei uno script ad hoc con tutte le path, cosa che su Windows ad esempio non so se è fattibile).

Poi in ogni caso le Qt pur basandosi sul c++, che in teoria dovrebbe fornire performance molto buone, alla fin dei conti risulta molto poco performante. Questo almeno se paragonato ai vari strumenti messi a disposizione del sistema per il quella sviluppi.
Ad esempio se fai un'applicazione per Mac OS con xcode e swift2 avrai un'ottimizzazione molto superiore rispetto a quella che avresti con le qt. Poi non parliamo neanche delle differenze per quanto riguarda i vari componenti grafici della ui, quelli proprio non si intonano per niente.

Stesso discorso penso sia su Windows con la suite VS e c#.


Ora però io stesso mi pongo un dilemma esistenziale. Al giorno d'oggi per un ragazzo che sta iniziando a studiare come programmare le prime app sul mondo mobile (nel caso mio Android) avrebbe più senso intraprendere la strada "nativa" e quindi studiare bene java (nel mio caso parto da una conoscenza discreta di c++) oppure puntare su questa piattaforma xamarin e quindi studiarsi per bene c#?

Voi cosa fareste?

Per le performance di Qt non saprei dirti, l'unico programma Qt 5 che uso spesso è Telegram Desktop, che è dannatamente veloce

Anche in ufficio mi capita di usare un PC (i5-6600U + 16 GB di ram + SSD) con Arch e KDE Plasma, anch'esso basato su Qt 5 ed è abbastanza reattivo

Comunque, per come la vedo io Xamarin al momento è una scelta migliore: con Java ti bloccheresti solo su Android o al massimo iOS con RoboVM (che è comunque proprietà di MS, Xamarin l'aveva comprato qualche mese fa), mentre con C# puoi scrivere codice cross-platform

c'è comunque da considerare che, a meno che non usi Xamarin.Forms (scelta IMHO limitante) devi comunque conoscere i vari framework nativi: su iOS userai comunque Autolayout, UIKit e compagnia bella, come su Android userai comunque AXML e le normali API di Android, solo che li usi da C# invece che da Objective-C/Swift/Java (e nel caso di Android gireresti su Mono invece che su Dalvik/ART)

comunque negli ultimi mesi la richiesta di Xamarin è aumentata: solo da ottobre a oggi ho avuto 4 proposte di lavoro per Xamarin, e questo nonostante la licenza costasse 999$ per sviluppatore e per piattaforma (quindi un team da 2 sviluppatori che lavora ad un'app su iOS e Android poteva costare 4000$ in licenze), figuriamoci ora

wingman87
04-04-2016, 20:44
Come ha già detto fano il problema della dimensione è qualcosa che stanno già affrontando con la prossima versione di VS (è già disponibile la prima preview, sia con l'installer tradizionale che con il nuovo)

Per Java: sicuramente è perché avevi selezionato (o dimenticato di deselezionare?) qualche componente per lo sviluppo su Android

Il fatto che stiano già lavorando per ridurre la dimensione è una buona notizia. Sulla questione Java, quello che dite tu e fano ha sicuramente senso ma me lo sarei aspettato al momento dell'installazione principale, non di un language pack... Insomma mi ha deluso e penso che aspetterò la prossima versione prima di riprovarci.

LMCH
04-04-2016, 23:27
No, bisogna acquistare la licenza.
Con la versione open source, a quanto ho capito, non si possono creare dei pacchetti d'installazione contenenti tutte le librerie ma queste devono essere fornite insieme all'eseguibile dell'applicazione.
Almeno a livello desktop (ambito linux) significa che devi fornire all'utente uno zippone contenete l'applicazione è tutte le librerie di supporto di Qt e sarà poi compito dell'utente andare ad installare (oppure crei uno script ad hoc con tutte le path, cosa che su Windows ad esempio non so se è fattibile).

Certo che per uno che come nickname ha "the_besk_hacker" ... :rolleyes:

Sia con Windows, Linux ed Android si possono rilasciare applicazioni commerciali
usando la versione open source di Qt (licenza LGPL)
ed esiste pure un generatore di installer dedicato per Qt (http://doc.qt.io/qtinstallerframework/) che permette di evitare di ricorrere agli "zipponi".

Anche con Android non è quel problema che sembra visto che gli .apk sono essenzialmente dei file .zip con dentro le librerie.

Gli unici veri problemi li si ha con iOS (bisogna usare xcode su Mac OS/X per il sideload) e con la vendita di app a pagamento su APp Store Google Play (per quelle finanziate con l'advertising non ci sono problemi) perchè bisognerebbe rendere disponibile su un sito il package di installazione senza firma "per chi vuole fare da se".

In quei casi, se si decide di rilasciare software a pagamento conviene procurarsi la licenza commerciale di Qt, meno problemi e maggiori funzionalità disponibili in anticipo rispetto alla versione open source.

the_best_hacker
05-04-2016, 09:45
Il nickname è cosa di decenni fa :cool:

In ogni caso non penso che per sviluppare su Android/iOS sia una scelta furba usare le qt.
Ormai questi due sistemi hanno sviluppato un loro ecosistema, insieme a tutte delle convenzioni grafiche che, ovviamente, con le qt è molto difficile riprodurre.
Faccio un esempio pratico.
Molto spesso un app Android ha necessità di accedere al tuo account Google. Usando gli strumenti ufficiali, basta inserire un modulo (già preconfigurato) e sei apposto. Con le Qt invece dovresti scriverti tutto tu. Testarlo ed eventualmente fixare eventuali bug.


Con iOS sarà ancora peggio, considerando la mole di oggetti preconfezionati (e fortemente ottimizzati) che ti fornisce xcode.


Senza considerare che alla fine questi strumenti sono praticamente free.

Unrealizer
05-04-2016, 10:09
In quei casi, se si decide di rilasciare software a pagamento conviene procurarsi la licenza commerciale di Qt, meno problemi e maggiori funzionalità disponibili in anticipo rispetto alla versione open source.

E a questo punto perché usare Qt? Con Xamarin non ho questi problemi e non pago nulla

LMCH
05-04-2016, 15:54
E a questo punto perché usare Qt? Con Xamarin non ho questi problemi e non pago nulla

Qt copre un numero più ampio di piattaforme/ecosistemi inoltre hai meno problemi di retrocompatibilità e di supporto sul lungo termine (visto che hai accesso completo ai sorgenti e nel caso peggiore puoi ricompilare tutto da te per una delle innumerevoli piattaforme supportate).

La licenza commerciale al momento serve solo su iOS ed Android se vuoi sviluppare un prodotto commerciale "direttamente" a pagamento oppure se servono alcune delle funzionalità "per applicazioni comemmerciali" (in-app purchase ecc.).

Nel caso di Android si può monetizzare su add-on e plug-in (l'app principale ha già le librerie Qt, ma gli add-on sono a pagamento sullo store) oppure con l'advertising.

In altre parole, non è quella gran limitazione che sembra inizialmente.

LMCH
05-04-2016, 16:51
Il nickname è cosa di decenni fa :cool:
Si, ma qui risulti iscritto dal 2011 e quindi il fraintendimento viene spontaneo. ;)

In ogni caso non penso che per sviluppare su Android/iOS sia una scelta furba usare le qt.

Questo se sviluppi solo per essi e non hai una mole notevole di codice di backend tuo che vuoi essere in grado di riutilizzare altrove, è tutto un altro paio di maniche se hai roba che gira da anni su Windows CE 6, Windows "desktop", Linux embedded o se sai che serve un prodotto multipiattaforma che non dipenda troppo dalle strategie di un azienda focalizzata su UNA piattaforma.


Ormai questi due sistemi hanno sviluppato un loro ecosistema, insieme a tutte delle convenzioni grafiche che, ovviamente, con le qt è molto difficile riprodurre.
Faccio un esempio pratico.
Molto spesso un app Android ha necessità di accedere al tuo account Google. Usando gli strumenti ufficiali, basta inserire un modulo (già preconfigurato) e sei apposto. Con le Qt invece dovresti scriverti tutto tu. Testarlo ed eventualmente fixare eventuali bug.

Ti sei scordato i vantaggi dell' open source ? ;)
http://www.ics.com/technologies/qt/qt-based-clients-google-apis

Per esperienza diretta, usare funzionalità "speciali" di Android da Qt "codificando da zero"
non è quel problema che sembra, ricorda che sia Android che iOS supportano
anche lo sviluppo di software in C++.
Da lato C++ si ha accesso a tutto il necessario per usare le API di Android, integrare librerie scritte in Java per esso, interagire con altre app o con estensioni, ecc.
(e le librerie Qt hanno pure delle funzioni ed oggetti per semplificare tale interfacciamento).

Con iOS sarà ancora peggio, considerando la mole di oggetti preconfezionati (e fortemente ottimizzati) che ti fornisce xcode.

Senza considerare che alla fine questi strumenti sono praticamente free.

E' nel "praticamente" che si nascondono le differenze.
Nel senso che ad esempio Qt è votato ad essere multipiattaforma mentre invece Xamarin alla fine si sa cosa ha come riferimento e cosa privilegerà.

Unrealizer
05-04-2016, 22:49
Qt copre un numero più ampio di piattaforme/ecosistemi

Xamarin copre Mac OS, iOS e Android, il codice posso riciclarlo per WP/UWP e Windows desktop, volendo posso anche usarlo su Linux con GTK#

cosa mi manca? bada, tizen e blackberry?

inoltre hai meno problemi di retrocompatibilità e di supporto sul lungo termine (visto che hai accesso completo ai sorgenti e nel caso peggiore puoi ricompilare tutto da te per una delle innumerevoli piattaforme supportate).

anche Mono è open source e adesso lo è anche Xamarin (che gira sopra mono)
sui problemi di retrocompatibilità hai qualche fonte? perché so di parecchie breaking change nel passaggio da Qt 4 a Qt 5, mentre Mono e .NET non ne hanno mai avute (e nemmeno Xamarin, se escludiamo quelle specifiche dei SO target)

La licenza commerciale al momento serve solo su iOS ed Android se vuoi sviluppare un prodotto commerciale "direttamente" a pagamento oppure se servono alcune delle funzionalità "per applicazioni comemmerciali" (in-app purchase ecc.).

la licenza aggratis di Xamarin copre tutto questo

Nel caso di Android si può monetizzare su add-on e plug-in (l'app principale ha già le librerie Qt, ma gli add-on sono a pagamento sullo store) oppure con l'advertising.

In altre parole, non è quella gran limitazione che sembra inizialmente.

mi pare tutto tranne che immediato
inoltre, su iOS non puoi avere add-in

E' nel "praticamente" che si nascondono le differenze.
Nel senso che ad esempio Qt è votato ad essere multipiattaforma mentre invece Xamarin alla fine si sa cosa ha come riferimento e cosa privilegerà.

Sii più chiaro, esattamente cosa ha Xamarin come riferimento e cosa privilegerà?

fano
06-04-2016, 09:07
anche Mono è open source e adesso lo è anche Xamarin (che gira sopra mono)
sui problemi di retrocompatibilità hai qualche fonte? perché so di parecchie breaking change nel passaggio da Qt 4 a Qt 5, mentre Mono e .NET non ne hanno mai avute (e nemmeno Xamarin, se escludiamo quelle specifiche dei SO target)


Ti posso confermare che su Qt (come su tutte le cose parte del mondo Open Source) i breaking change sono all'ordine del giorno:


Nel passaggio da Qt4 a Qt5 non una sola riga del nostro codice compilava! Abbiamo dovuta riempirlo di #ifdef e peggio ancora anche la variabile di enviroment QT_MAJOR_VERSION era definita solo per Qt5! Così in realtà quando - mesi dopo - provammo a compilare su Qt4 non compilava lo stesso!
Tra Qt 5.5 e Qt 5.6 hanno abolito WebKit per usare Blink... anni ed anni di codice da buttare nel cesso! Il modo giusto - e non si discute - era di mantenere 2 versioni la versione basata su Webkit (segnatela come legacy / deprecated) e quella basata su Blink!



la licenza aggratis di Xamarin copre tutto questo


Spero che facciano qualcosa anche per Linux e soprattutto di riuscire a convincere i miei capi ad usarlo... sono stufo di dover usare ste cose pasticciate.