• Italiano
Tel: +39 0984 1527937
info@vaisulweb.com
  • Area Clienti
  • Whois
  • Contatti
  • API
VaiSulWebVaiSulWebVaiSulWebVaiSulWeb
  • Hosting
    • Hosting Windows
      • Windows .NET Hosting
      • Windows .NET Dedicated Hosting
    • Hosting Linux
      • VSW Linux Basic
      • DNS hosting
    • Related News

      • 10 Maggio, 2025
        Commenti disabilitati su Windows Server 2025: l’hot-patching disponibile da Luglio

        Windows Server 2025: l’hot-patching disponibile da Luglio

  • Domini
  • Cloud e server
    • Piattaforme cloud
      • Virtuozzo Application Platform
      • Microsoft Azure
      • Microsoft Office 365
    • Virtual Private Servers
      • VSW Cloud Server
      • VSW Cloud Server – Serie L
    • Recenti

      • 4 Agosto, 2024
        Commenti disabilitati su VaiSulWeb ottiene una valutazione di cinque stelle sul marketplace Cloud Union di Virtuozzo per le Piattaforme PaaS

        VaiSulWeb ottiene una valutazione di cinque stelle sul marketplace Cloud Union di Virtuozzo per le Piattaforme PaaS

  • Sicurezza
    • Certificati SSL
      • Introduzione ai certificati SSL
      • Certificati SSL RapidSSL
      • Certificati SSL DigiCert
      • Certificati SSL GeoTrust
      • Certificati SSL Comodo / Sectigo
      • Certificati SSL Thawte
      • Certificati SSL Trustwave
    • Altri servizi
      • Servizi di backup
      • Advanced Security + EDR
      • Servizi di monitoraggio
      • Certificati per la firma del codice
      • Firme digitali per e-mail
      • VPN per accesso sicuro
    • Related news

      • 11 Maggio, 2025
        Commenti disabilitati su Attivare una VPN per migliorare la sicurezza dell’accesso alle risorse cloud

        Attivare una VPN per migliorare la sicurezza dell’accesso alle risorse cloud

  • Gaming
    • Piattaforma
      • Giocare con VaiSulWeb
    • Giochi
      • Minecraft
      • Rust
    • Related news

      • 29 Dicembre, 2023
        Commenti disabilitati su VaiSulWeb presenta i nuovi servizi di gaming

        VaiSulWeb presenta i nuovi servizi di gaming

  • Infrastrutture
    • Column1
      • Cluster di Failover Windows Server
      • Storage Spaces Direct (S2D)
      • Infrastrutture iper-convergenti
    • Column2
      • Kubernetes
      • Azure Service Fabric
      • Infrastruttura di hosting cPanel
    • Sidebar
  • Soluzioni
    • Servizi gestiti
      • MongoDB
      • Repository documentali
      • Servizi di TeamShare
      • Posta elettronica e collaborazione enterprise
      • Servizi di memorizzazione S3
    • Servizi gestiti
      • Servizi di streaming e transcodifica
      • Servizio di notarizzazione e firma digitale
      • Windows Bastion Service
      • Hosting radio online
      • Matomo Analytics
    • Related News

      • 26 Giugno, 2024
        Commenti disabilitati su VaiSulWeb annuncia la disponibilità di MongoDB nella sua offerta di servizi

        VaiSulWeb annuncia la disponibilità di MongoDB nella sua offerta di servizi

  • Novità
Next Previous

Programmazione funzionale: come usare SAFE e F# sui nostri servizi di cloud hosting

VaiSulWeb 8 Marzo, 2020

La programmazione funzionale riscuote molto successo soprattutto in ambito matematico e finanziario ma anche nel contesto di sistemi complessi come le telco o la programmazione parallela. Il framework .NET da tempo ha incluso F#, un puro linguaggio funzionale, nel novero dei linguaggi che è possibile utilizzare all’interno del framework e il linguaggio si è diffuso molto velocemente pur rimandendo un linguaggio di nicchia che però opera in contesti di grande importanza e dove siano necessari grande velocità, stabilità e precisione.

Il progetto opensource SAFE punta a portare la programmazione funzionale ed i suoi vantaggi anche nello sviluppo di SPA (Single Page Application) sul Web attraverso un framework integrato e di semplice utilizzo. SAFE, come tanti altri progetti basati sul framework .NET, può essere usato sui nostri servizi di hosting ed in particolare godere della scalabilità del servizio di Cloud Hosting.

Per sapere di più su SAFE è sufficiente visitare il sito Web del progetto:

https://safe-stack.github.io/

Questo articolo spiega come pubblicare un progetto basato su SAFE.

Generare il template di applicazione

Per iniziare ad usare SAFE è necessario avere installato .NET Core SDK v3 o successive ed alcuni tool di supporto. La procedura di installazione di questi tool è descritta nel Quick Start disponibile all’URL

https://safe-stack.github.io/docs/quickstart/

Da qui in poi si suppone che sia SDK per .NET Core v3+ e i tool siano stati installati. Inoltre, è necessario avere a disposizione un editor. In questo articolo si descrive la procedura per chi usa Visual Studio 2019.

Crea una cartella nella quale verrà creata l’applicazione, ad es. C:\Safe, ed entra nella cartella.

Installa il template di SAFE:

dotnet new -i SAFE.Template
Il template di SAFE installato correttamente tra quelli di .NET Core

e poi crea il template dell’applicazione nella cartella che abbiamo scelto:

dotnet new SAFE
L’applicazione demo creata dal modello

A questo punto, se si vuole, è possibile provare ad eseguire l’applicazione per confermarne il corretto funzionamento. Sarà sufficiente eseguire:

fake build --target run

e dopo qualche secondo il browser dovrebbe aprirsi sull’indirizzo di default dell’applicazione e visualizzare l’applicazione di test.

Sei pronto per la pubblicazione !

Pubblicazione sul Cloud Hosting

Per la pubblicazione di una applicazione demo è sufficiente attivare anche un account VSW Cloud Hosting Free che consente di provare il servizio in modo completamente gratuito. Maggiori informazioni all’URL:

https://www.vaisulweb.com/it/services/vsw-cloud-hosting-free/

Una volta attivato il servizio è possibile procedere alla configurazione dell’applicazione ed alla sua pubblicazione online.

Inviare nella cartella C:\Safe il seguente comando per la compilazione prima della pubblicazione

fake build --target bundle
La compilazione della nostra applicazione di test

A questo punto saremmo quasi pronti per la pubblicazione e nell’immagine si vede che la nostra applicazione compilata risiede nella cartella

C:\Safe\deploy\server

ma noi vogliamo fare di più!

Bonus: tiered-compilation e Ready2Run image

Prima di pubblicare la nostra prima applicazione SPA in F# vogliamo sfruttare la compatibilità delle macchine di VaiSulWeb per attivare due funzionalità speciali che sono parte di .NET Core v3+.

La prima è chiamata tiered-compilation (TC) e consente di abilitare una modalità di compilazione a livelli che aiuta le applicazioni ad avviarsi più velocemente compilando in maniera più veloce ma meno ottimizzata il codice in caso di avvio dell’applicazione per passare poi ad una compilazione più ottimizzata in un momento successivo ed ottenere prestazioni migliori durante la normale esecuzione.

Oltre a questo attiveremo l’output di una immagine Ready2Run. Anche questa è una nuova funzionalità che consente di generare del codice quasi simile a quello che viene prodotto durante la compilazione JIT in fase di avvio dell’applicazione, in sostanza la compilazione in codice nativo da IL. Se conosciamo già prima l’ambiente (sistema operativo e bitness) sul quale eseguiremo l’applicazione possiamo chiedere al compilatore di emettere un codice già compilato in modalità nativa e risparmiare il tempo della compilazione JIT, avviando l’applicazione più velocemente.

Il servizio di Cloud Hosting di VaiSulWeb è basato su Windows e supporta l’esecuzione a 64 bit per cui compileremo una immagine R2R win-x64.

Modifichiamo quindi il file Server.fsproj in

C:\Safe\src\Server

aggiungendo le righe evidenziate nell’immagine e cioè:

    <TieredCompilation>true</TieredCompilation>
    <PublishReadyToRun>true</PublishReadyToRun>
    <RuntimeIdentifiers>win-x64</RuntimeIdentifiers>

La prima impostazione abilita la tiered-compilation mentre le altre due abilitano R2R e indicano al compilatore per quale piattaforma vogliamo compilare nativamente. Ricorda che non puoi eseguire l’applicazione su una piattaforma diversa da quella che hai indicato. Noi compileremo per Windows a 64bit e a questo proposito ricorda che devi abilitare l’esecuzione a 64bit attraverso il Pannello di Controllo del servizio di Cloud Hosting.

Attenzione: non inserire queste impostazioni nel progetto durante la prima fase di build con FAKE o verrà generato un errore. Modifica il file .fsproj solo dopo la prima compilazione con FAKE.

A questo punto siamo pronti per chiedere al framework .NET Core di compilare la nostra applicazione.

Bonus: pubblicazione indipendente dal framework

Con .NET Core il ciclo di rilascio del framework .NET Core è diventato più complicato. Nello stesso momento ci possono essere più versioni di .NET Core disponibili, alcune supportate per un tempo inferiore (ad es. 12 mesi) altre per un tempo maggiore (le versioni LTS, 3 anni). A questo si può aggiungere l’esistenza anche di versioni “preview” anche con autorizzazione ad andare in produzione.

A livello server è possibile fare il deployment di più versioni del framework ma la realtà è che ogni sviluppatore avrà esigenze diverse e probabilmente finirà per avere bisogno di una versione del framework che magari non è installata. Per non generare confusione e lasciare la massima libertà ai nostri clienti, i server di Cloud Hosting non sono configurati con nessun runtime per .NET Core e deve quindi essere abilitata la pubblicazione indipendente dal framework.

Questo tipo di configurazione genera applicazioni più grandi perchè l’intero set di librerie .NET Core deve essere pubblicato con l’applicazione ma lascia per contro la massima libertà all’utente che può usare qualunque versione decida, anche quelle non più o non ancora supportate ovviamente a suo rischio e pericolo. Spesso non è facile riuscire a seguire l’evoluzione del framework se si deve procedere alla ricompilazione troppo spesso, con la necessità anche di gestire gli errori dovuti a modifiche del funzionamento introdotte dalle nuove versioni.

Nel nostro esempio pubblicheremo in modo indipendente dal framework.

Compilazione finale

Per generare tutti file necessari alla pubblicazione possiamo eseguire il seguente comando, sempre posizionandoci nella cartella C:\Safe

dotnet publish --self-contained -r win-x64

Ci vorrà un po’ di tempo per completare la compilazione ma alla fine dovresti avere un messaggio come quello di seguito:

La compilazione dell’applicazione di test con tutte le impostazioni

La versione dell’applicazione generata dal compilatore si troverà in

 C:\Safe\src\Server\bin\Debug\netcoreapp3.0\win-x64\publish\
L’output generato dalla compilazione

Nel nostro caso la cartella “publish” conterrà circa 95MB di file. Sono tanti! Ricorda però che stai pubblicando l’intero framework che stai usando e che questo ti consente di non preoccuparti delle versioni di .NET Core che possano essere installate sul server.

Pubblicazione sul server

La nostra applicazione richiede la pubblicazione di due distinti contenuti: la parte server dell’applicazione, contenuta appunto nella cartella

C:\Safe\src\Server\bin\Debug\netcoreapp3.0\win-x64\publish\

e la parte client che è invece contenuta in

C:\Dev\Safe\deploy\Client\public

La cartella public contiene tutti i file accessibili dal Web da parte degli utenti e quindi include font, fogli di stile (CSS), immagini etc. Per impostazione predefinita la cartella “Client\public” si trova allo stesso livello della Server che quindi si aspetta di trovarla ad un livello superiore rispetto al codice che sta eseguendo (in termini di percorso è “..\Client“). Questa impostazione può ovviamente essere modificata ma lasceremo tutto nella sua configurazione standard. Si tratta solo di capire dove pubblicare le diverse cartelle.

La parte server verrà pubblicata nel percorso predefinito del Cloud Hosting e quindi in:

C:\home\site\wwwroot

in questa cartella verrà inserito il contenuto di

C:\Safe\src\Server\bin\Debug\netcoreapp3.0\win-x64\publish\

Oltre a questo, dobbiamo anche creare un file web.config che consentirà a .NET Core ed al Cloud Hosting di comunicare. Basterà inserire questo contenuto:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <location path="." inheritInChildApplications="false">
    <system.webServer>
      <handlers>
        <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
      </handlers>
      <aspNetCore processPath=".\Server.exe" stdoutLogEnabled="false" stdoutLogFile=".\stdout.txt" />
    </system.webServer>
  </location>
</configuration>
<!--ProjectGuid: 73E8E820-C8AA-47CC-BB2B-152CA4D0B856-->

Questo file indica al server di eseguire il processo “Server.exe” e configurarlo per l’esecuzione assegnandogli la porta che il Cldou Hosting ha riservato per l’applicazione. Opzionalmente è possibile anche abilitare la generazione di un file “stdout.txt” che conterrà tutto l’output generato dal processo in esecuzione, una opzione utile per registrare il contenuto della console e rilevare eventuali errori o altri messaggi di stato. Questa opzione è però disabilitata (stdoutLogEnabled=”false”).

La cartella Client con la sua sottocartella public devono essere invece pubblicate in

C:\home\site

per ottenere quindi un percorso finale sul server come

C:\home\site\Client\public

con i file che abbiamo prelevato dall’omonima cartella sulla nostra macchina.

Siamo pronti per eseguire la nostra applicazione F# con SAFE !

Risultato: il programma di test online

Richiamando ora l’indirizzo assegnato dal Pannello di Controllo, dovresti visualizzare il demo dell’applicazione in F#:

Congratulazioni! La tua prima applicazione in F# è ora online ed il limite è solo la tua fantasia.

Nel nostro caso, un demo dell’applicazione è pubblicata all’URL:

http://safedemo.eu-w.cloudapps.enterprisehost.biz/

Nota come siano molto veloci nella risposta i due pulsanti nonostante il codice per la loro gestione venga eseguito sul server.

Per maggiori informazioni non esitare a contattare il nostro servizio di assistenza.

2

Search

Recent news

  • Attivare una VPN per migliorare la sicurezza dell’accesso alle risorse cloud Maggio 11, 2025
  • Windows Server 2025: l’hot-patching disponibile da Luglio Maggio 10, 2025
  • I vantaggi della Protezione Continua dei Dati per la vostra azienda Maggio 5, 2025
  • VaiSulWeb lancia un nuovo servizio di DNS hosting globale Dicembre 24, 2024
  • Nuovo servizio di firma digitale delle e-mail Dicembre 1, 2024

Archives

  • Maggio 2025
  • Dicembre 2024
  • Agosto 2024
  • Giugno 2024
  • Dicembre 2023
  • Novembre 2023
  • Ottobre 2023
  • Settembre 2023
  • Maggio 2023
  • Aprile 2023
  • Febbraio 2023
  • Gennaio 2023
  • Dicembre 2022
  • Agosto 2022
  • Giugno 2022
  • Gennaio 2022
  • Maggio 2020
  • Marzo 2020
  • Dicembre 2019
  • Ottobre 2019
  • Luglio 2019
  • Maggio 2019
  • Aprile 2019
  • Marzo 2019
  • Maggio 2018
  • Novembre 2017
  • Ottobre 2017
  • Maggio 2017

Categories

  • Analisi
  • Case study
  • Cloud
  • cPanel
  • Database
  • Eventi
  • Gaming
  • HCI
  • Hosting
  • Infrastrutture
  • Servizi
  • Servizi
  • Servizi gestiti
  • Sicurezza
  • Strumenti
  • Tutorial
  • VaiSulWeb

  • You may also like

    Windows Server 2025: l’hot-patching disponibile da Luglio

    Read now
  • You may also like

    VaiSulWeb lancia un nuovo servizio di DNS hosting globale

    Read now
  • You may also like

    Namaste India !

    Read now
  • You may also like

    Servizi Linux disponibili su Londra dal 1° Gennaio 2023

    Read now
  • You may also like

    .NET 7 è arrivato ed è già disponibile con VaiSulWeb

    Read now

Contatti

Via Corrado Alvaro 31
87036 Rende (CS)
Italia
+39 0984 1527937
info@vaisulweb.com
Intesa Sanpaolo - Digitalizziamo Tour 2023 - Azienda selezionata

Chi siamo

  • Chi siamo
  • Network e datacenters
  • Contatti
  • Condizioni di servizio
  • Nota sulla privacy
More information on EU Digital Professions from Netcore s.r.l.

Novità

  • Attivare una VPN per migliorare la sicurezza dell’accesso alle risorse cloud

    L’uso di una VPN per l’accesso alla parte amministrativa delle risorse in

    0

    11 Maggio, 2025
  • Windows Server 2025: l’hot-patching disponibile da Luglio

    Windows Server 2025 introduce l’hot-patching, una tecnologia che rivoluziona la gestione degli

    0

    10 Maggio, 2025

Iscriviti alla newsletter

Iscrizione newsletter 2

Questa newsletter non distribuisce più di un messaggio al mese.

Copyright © 1999-2024 VaiSulWeb (una divisione di Netcore s.r.l. a socio unico) - P.IVA IT03149210787 - REA CS214579
  • Hosting
    • Hosting Windows
      • Windows .NET Hosting
      • Windows .NET Dedicated Hosting
    • Linux hosting
      • VSW Linux Basic
      • DNS hosting
  • Domini
  • Cloud e server
    • Virtual Private Servers
      • VSW Cloud Server
      • VSW Cloud Server – Serie L
    • Piattaforme cloud
      • Virtuozzo Application Platform
      • Microsoft Azure
      • Microsoft Office 365
  • Sicurezza
    • Certificati SSL
      • Introduzione ai certificati SSL
      • Certificati RapidSSL
      • Certificati DigiCert
      • Certificati SSL GeoTrust
      • Certificati SSL Comodo / Sectigo
      • Certificati SSL Thawte
      • Certificati SSL Trustwave
    • Altri servizi di sicurezza
      • Servizi di backup
      • Advanced Security + EDR
      • Servizi di monitoraggio
      • Certificati per la firma del codice
      • Firme digitali per e-mail
      • VPN per accesso sicuro
  • Gaming
    • Giocare con VaiSulWeb
    • Minecraft
    • Rust
  • Infrastrutture
    • Cluster di Failover Windows Server
    • Infrastrutture iper-convergenti
    • Storage Spaces Direct (S2D)
    • Azure Service Fabric
    • Kubernetes
    • Infrastruttura di hosting cPanel
  • Soluzioni
    • MongoDB
    • Repository documentali
    • Servizi di TeamShare
    • Posta elettronica e collaborazione enterprise
    • Servizi di memorizzazione S3
    • Servizi di streaming e transcodifica
    • Servizio di notarizzazione e firma digitale
    • Matomo Analytics
    • Windows Bastion Service
    • Hosting radio online
  • Novità
  • VaiSulWeb
    • Chi siamo
    • Network e datacenters
  • Contatti
  • Area Clienti
  • Whois
  • Italiano
VaiSulWeb