Introduzione

L’obiettivo di una applicazione web sviluppata con MagicCMS è quello di ogni altro CMS: consentire di costruire siti Web in cui il cliente possa intervenire senza scrivere una riga di codice e senza conoscere alcun linguaggio specifico.

Ogni elemento di un sito web (home page complesse, pagine semplici, menu, blog, slide show animate gestite con qualche plug-in Javascipt, gallerie di foto o di video, ecc.) dovrà poter essere gestito anche da un editor inesperto semplicemente riempendo dei campi in un modulo.

Più precisamente MagicCMS è un framework open source scritto in C# per lo sviluppo di applicazioni di tipo CMS in ASP.NET. Creare un Sito MagicCMS, quindi, richiede, anche se può non essere necessario scrivere nemmeno una linea di codice,  un approccio da sviluppatore,  un ambiente di sviluppo specifico (Microsoft Visual Studio), e i siti devono essere pubblicati su web server IIS con ASP.NET 4.5. D'altro canto questo approccio consente una una grande flessibilità. MagicCMS è una libreria di classi può essere facimente estesa e/o integrata in altre applicazioni web ASP.NET.

MagicCMS può essere usato a vari livelli:

  • Si può installare MagicCMS , utilizzare uno dei temi forniti ed eventualmente personalizzarlo modificando fogli di stile e javascript (livello base).
  • Si può modificare un tema esistente personalizzando le pagine master che lo compongono e/o creando nuovi di tipi di oggetti web (e le relative master page che ne gestiscono il rendering).
  • Posso creare temi exnovo.
  • Posso utilizzare MagicCMS come modulo integrato in una altra  applicazione web.

MagicCMS è un progetto Open Sorce. Il codice è disponibile su https://github.com/magicbruno/MagicCMS.4.5. Per partecipare allo sviluppo e suggerire modifiche del progetto si consiglia di aprire una Pull request su GitHub.com.

Creazione progetto

MagicCMS è una libreria di classi. Deve quindi essere registrata in un progetto. Il primo passo è la creazione del progetto web in Visual Studio:

  • Nel menù principale di Visual Studio segliere File > Nuovo progetto.. Si aprirà l dilog box "Nuovo progetto".
  • Nella casella combinata "framework" in alto scegli .NET Framework 4.5 , quindi nella struttura ad albero sulla sinistra scegliere Installato > Modelli > Visual C# > Web e dall'elenco scegliere Applicazione Web ASP.NET vuota.
  • Completare la configurazione riempiendo gli altri campi (Nome, Percorso, ecc) e premere OK.

Una volta creato il processo si potrà passare al passo successivo: l'installazioe di MagicCMS. 

Installazione

Per installare MagicCMS in un progetto aprire la Console di Gestione dei Pacchetti e scrivere:

PM> Install-Package MB.MagicCMS.4.5

Ipotizziamo di avere chiamato il nostro progetto MbWinstrap. In risposta l'output della Console sarà:

PM> install-package MB.MagicCMS.4.5
Tentativo di risolvere la dipendenza 'Facebook (≥ 7.0.6)'.
Tentativo di risolvere la dipendenza 'jQuery (≥ 2.2.4)'.
Tentativo di risolvere la dipendenza 'jQuery1 (≥ 1.12.3)'.
Tentativo di risolvere la dipendenza 'json2 (≥ 1.0.2)'.
Tentativo di risolvere la dipendenza 'MB.FileBrowser (≥ 1.1.8)'.
Tentativo di risolvere la dipendenza 'Respond (≥ 1.4.2)'.
Installazione di 'Facebook 7.0.6'.
Installazione di 'Facebook 7.0.6' completata.
Installazione di 'jQuery 2.2.4'.
Installazione di 'jQuery 2.2.4' completata.
Installazione di 'jQuery1 1.12.3'.
Installazione di 'jQuery1 1.12.3' completata.
Installazione di 'json2 1.0.2'.
Installazione di 'json2 1.0.2' completata.
Installazione di 'MB.FileBrowser 1.1.8'.
Installazione di 'MB.FileBrowser 1.1.8' completata.
Installazione di 'Respond 1.4.2'.
È in corso il download di Respond da Scott Jehl,  Paul Irish,  Nicholas Zakas, il cui contratto di licenza è disponibile all'indirizzo https://github.com/scottjehl/Respond/blob/master/LICENSE-MIT. Verificare eventuali dipendenze aggiuntive del pacchetto a cui potrebbero essere associati contratti di licenza separati. L'utilizzo del pacchetto e delle dipendenze costituisce accettazione dei contratti di licenza applicabili. Se non si intende accettare i contratti di licenza, eliminare i componenti in questione dal dispositivo.
Installazione di 'Respond 1.4.2' completata.
Installazione di 'MB.MagicCMS.4.5 1.0.25'.
Installazione di 'MB.MagicCMS.4.5 1.0.25' completata.
Aggiunta di 'Facebook 7.0.6' a MbWinstrap.
Aggiunta di 'Facebook 7.0.6' a MbWinstrap completata.
Aggiunta di 'jQuery 2.2.4' a MbWinstrap.
Aggiunta di 'jQuery 2.2.4' a MbWinstrap completata.
Aggiunta di 'jQuery1 1.12.3' a MbWinstrap.
Aggiunta di 'jQuery1 1.12.3' a MbWinstrap completata.
Aggiunta di 'json2 1.0.2' a MbWinstrap.
Aggiunta di 'json2 1.0.2' a MbWinstrap completata.
Aggiunta di 'MB.FileBrowser 1.1.8' a MbWinstrap.
Aggiunta di 'MB.FileBrowser 1.1.8' a MbWinstrap completata.
Aggiunta di 'Respond 1.4.2' a MbWinstrap.
Aggiunta di 'Respond 1.4.2' a MbWinstrap completata.
Aggiunta di 'MB.MagicCMS.4.5 1.0.25' a MbWinstrap.
Aggiunta di 'MB.MagicCMS.4.5 1.0.25' a MbWinstrap completata.

Come primo approccio, per capire come funziona MagicCMS, conviene installare uno dei temi a disposzione su magiccms.org. Se ad esempio decidiamo di utilizzare il tema derivato da Winstrap dovremo inserire nella riga comando della Console di gestione dei Pacchetti:

PM> Install-package MB.MagicCMS.Winstrap

La risposta della console sarà:

Tentativo di risolvere la dipendenza 'MB.MagicCMS.4.5 (≥ 1.0.22)'.
Tentativo di risolvere la dipendenza 'Facebook (≥ 7.0.6)'.
Tentativo di risolvere la dipendenza 'jQuery (≥ 2.2.4)'.
Tentativo di risolvere la dipendenza 'jQuery1 (≥ 1.12.3)'.
Tentativo di risolvere la dipendenza 'json2 (≥ 1.0.2)'.
Tentativo di risolvere la dipendenza 'MB.FileBrowser (≥ 1.1.8)'.
Tentativo di risolvere la dipendenza 'Respond (≥ 1.4.2)'.
Installazione di 'MB.MagicCMS.Winstrap 1.2.0'.
Installazione di 'MB.MagicCMS.Winstrap 1.2.0' completata.
Aggiunta di 'MB.MagicCMS.Winstrap 1.2.0' a MbWinstrap.

Il passo successivo sarà creare il database in cui verranno inseriti i contenuti Web.

Creazione database

Un tema di MagicCMS è fatto essenzialmente di tre gruppi di elementi:

  • una serie di definizioni di tipi di oggetti web (tipi di pagine e altri oggetti che concorrono a definire l'interfaccia) memorizzate nel database che determina quali sono i campi che l'utente deve riempire o modificare per gestire il sito web,
  • un gruppo di Master Page che si occupano di rendere in pagine web gli oggetti definiti dai tipi,
  • i file (fogli di stile, codice javascript, immagini) che concorrono a costruire l'interfaccia del sito.

Tutti i file che costituiscono il tema sono collocati in una cartella che porta il nome del tema che è a sua volta collocato nella cartella Themes che si trova nella root del progetto MagicCMS. Nella cartella del tema c'è una cartella database (nel caso abbiamo installato il tema Winstrap: Themes\Winstrap\database\) nella quale c'è Create_database.sql un file di comandi SQL che oltre a creare un database MagicCMS vuoto, aggiunge ai tipi di pagina predefiniti i tipi personalizzati dal tema.

Pre creare il database di MagicCMS apri Create_database.sql in Visual Studio o in SQL Server Management Studio, avendo curo di impostare la modalità SQLCMD.

 Nelle prime quattro righe devi impostare quattro variabili che personalizzano il tuo database:

:SETVAR DbName MagicCMS
:SETVAR DbDataPath "N'c:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER_R2\MSSQL\DATA\MagicCMS.mdf'"
:SETVAR DbLogPath "N'c:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER_R2\MSSQL\DATA\MagicCMS_log.ldf'"
:SETVAR AdminEmail "N'bruno@magicbusmultimedia.it'"

USE [master]
GO
/****** Object:  Database [$(DbName)]    Script Date: 07/04/2015 08:14:34 ******/
CREATE DATABASE [$(DbName)] ON  PRIMARY 
( NAME = [$(DbName)], FILENAME = $(DbDataPath) , SIZE = 30MB , MAXSIZE = 2048MB, FILEGROWTH = 1024KB )
 LOG ON 
( NAME = [$(DbName)_log], FILENAME = $(DbLogPath) , SIZE = 30 MB , MAXSIZE = 2048MB , FILEGROWTH = 10%)
GO
ALTER DATABASE [$(DbName)] SET COMPATIBILITY_LEVEL = 100
GO

:SETVAR DbName qui devi inserire il nome del tuo database. Ad esempio:

:SETVAR DbName MyWinstrapDatabase

:SETVAR DbDataPath e :SETVAR DbDataPath qui devi inserire il percorso e il nome del file in cui vuoi memorizzare i contenuti del database e il relativo log file. Ad esempio:

:SETVAR DbDataPath "N'c:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER_R2\MSSQL\DATA\MyWinstrapDatabase.mdf'"
:SETVAR DbLogPath "N'c:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER_R2\MSSQL\DATA\MyWinstrapDatabase_log.ldf'"

:SETVAR AdminEmail qui devi inserite il tuo indirizzo di e-mail. È molto importante, perchè questa e-mail to consentirà il primo accesso al database attreverso il back-end di MagicCMS. Al primo accesso, infatti, utilizzerai come username questa indirizzo e-mail e come password la password generata automaticamente che il sistema ti invierà. Una volta entrato potri cambiare liberamente la tua password e creare tutti gli utenti di cui avrai bisogno. Ad esempio:

:SETVAR AdminEmail "N'mario.rossi@gmail.com'"

Infine dovrai assicurarti di essere connesso con il tuo database e eseguire lo script.

Se, per caso, non hai ancora installato Microsoft SQL Server puoi usare uno dei seguenti link:

Configurazione

Nella fase di installazione MagicCMS modifica il file Web.config del tuo progetto. Sono modifiche conservative. MagicCMS non elimina nessuna delle impostazioni presenti e aggiunge le sue. Si consiglia, comunque, per la prima installazione, di utilizzare il Web.config creato per default da VisualStudio come si consiglia vivamente di installare MagicCMS in un progetto Web di Visual Studio vuoto. Prima di utilizzare MagicCMS è necessario configurare correttamente alcune sezione di Web.config.

Per farlo apri Web.config nell'editor di Visual Studio. Quello che vedrai è il risultato della fusione tra il file preesistente e quello installato da MagicCMS. Questa operazione di fusione potrebbe aver fatto perdere al file alcune caratteristica di formattazione rendendolo meno leggibile. Per ovviare al problema premi Ctrl-A per selezionare l'intero file e Ctrl-K Ctrl-D per riformattarlo.

Vedremo ora come configurare correttamente il proprio progetto MagicCMS modificando il file Web.config. Prima di passare alle modifiche è bene ricordare alcune regole generali. Web.config è un file XML che consente di gestire le impostazioni di un sito modificando i tag XML di cui è composto. La struttura dei dati segue una sintassi semplice ma molto rigorosa. Un file Web.config è composto tra tre tipi di elementi:

  • Elementi che contengono altri elementi. Iniziano con un marker di apertura la cui sintassi è <nometag> , e terminanano con un marker di chiusura la cui sintassi è </nometag> . Tra di due marker è collocato il contenuto dell'elemento. Ad ogni marker di apertura DEVE corrispondere il relativo marker di chisura.
  • Elementi che non contengono altri elementi la cui sintassi è <nometag /> .
  • Commenti (testi esplicativi per l'utente che vengono ignorati durante l'elaborazione delle impostazioni) che sono compresi tra i segni <!-- e --> .

I tag possono avere degli attributi che rappresentano le verie impostazioni del sito su cui posso intervenire. Gli attributi seguono questa sintassi: <nometag attributo1="valore1" attributo2="valore2" /> . I valori assegnati agli attributi devono essere sempre tra apici doppi (virgolette) o apici semplici.

L'elemento root di Web.config che contiene tutti gli altri elementi è  <configuration>... </configuration> .

Questa è la struttura di Web.config così come viene modificato dall'installazione di MagicCMS::

<?xml version="1.0" encoding="utf-8"?>
<configuration>

  <system.web>
    .....
  </system.web>

  <configSections>
     .....
  </configSections>

  <MagicCMSConfigSection  ..... />

  <connectionStrings>
     .....
  </connectionStrings>

  <system.webServer>
    .....
  </system.webServer>

  <runtime>
    .....
  </runtime>

  <system.serviceModel>
    .....
  </system.serviceModel>

</configuration>

Come potete vedere le impostazioni sono articolate in varie sezioni figlie dell'elemento radice della struttura, il tag configuration. Di norma l'ordine delle sezioni è quello indicato dallo schema. Modifiche è successivi aggiornamenti possono portare a variazioni di ordine che non modificano, però, ila funzionalità del sito, cun un unica importante eccezione.

Attenzione! La sezione  <MagicCMSConfigSection  ..... /> deve sempre essere collocata dopo la sezione <configSections> ..... </configSections>. In caso contrario il parser del ASP.NET lancerà un errore.

La sezione system.web

Di norma la prima sezione che troviamo in testa al file è la sezione system.web contiene sezioni che definiscono alcune caratteristiche generali del sito.

<configuration>	
	<system.web>
		<compilation debug="true" targetFramework="4.5"/>
		<customErrors mode="RemoteOnly" defaultRedirect="/error/000">
			<!-- Gestione personalizzata errori -->
			<!-- Custom errors handling. -->
			<!-- NON MODIFICARE - Inizio | DO NOT CHANGE - Start -->
			<error statusCode="400" redirect="/error/400"/>
			<error statusCode="401" redirect="/error/401"/>
			<error statusCode="403" redirect="/error/403"/>
			<error statusCode="404" redirect="/error/404"/>
			<error statusCode="405" redirect="/error/405"/>
			<error statusCode="406" redirect="/error/406"/>
			<error statusCode="408" redirect="/error/408"/>
			<error statusCode="412" redirect="/error/412"/>
			<error statusCode="500" redirect="/error/500"/>
			<error statusCode="501" redirect="/error/501"/>
			<error statusCode="502" redirect="/error/502"/>
			<!-- NON MODIFICARE - Fine | DO NOT CHANGE - End -->
		</customErrors>
		<httpRuntime maxRequestLength="102400" requestValidationMode="2.0" targetFramework="4.5"/>
	</system.web>
    ........
</configuration>

Le impostazioni di default per .NET 4.5 sono:

	<system.web>
		<compilation debug="true" targetFramework="4.5"/>
		<httpRuntime targetFramework="4.5"/>
	</system.web>

A queste impostazioni viene aggiunto il blocco customErrors che definisce la  gestione personalizzata degli errori. Questo blocco non andrebbe modificato.

Vengono poi aggiunti due attributi alla sezione httpRuntime:

		<httpRuntime maxRequestLength="102400" requestValidationMode="2.0" targetFramework="4.5"/>

L'impostazione requestValidationMode="2.0" definisce quale tipo di validazione verrà usato da ASP.NET. nel elaborare le richieste ed è essenziale per il corretto funzionamento di MagicCMS.

L'impostazione maxRequestLength="102400" modifica il limite della dimensione dei file che possono essere caricati sul sito (per impostazione predefinita IIS consente di caricare file di dimensioni fino a 4 Megabyte). Il valore inserito (102400) corispondente a 100 megabyte e può essere sostituito con il valore desiderato (ricordati che il valore è in Kilobyte).

Configurazione di MagicCMS

Prendiamo in esame le sezioni configSection e MagicCMSConfigSection

<configuration>
    ........
	<configSections>
		<!-- NON MODIFICARE - Inizio | DO NOT CHANGE - Start -->
		<section name="MagicCMSConfigSection" type="MagicCMS.Core.MagicCMSConfiguration"/>
		<!-- NON MODIFICARE - Fine | DO NOT CHANGE - End -->
	</configSections>
	<MagicCMSConfigSection 
		ConnectionName="conn" 
		DefaultThemePath="/Themes/Default" 
		DefaultContentMaster="Standard.master" 
		ThemePath=""
		smtpServerName="smtp.magiccms.org" 
		smtpUsername="noreplay@magiccms.org" 
		smtpPassword="*****" 
		smtpDefaultFromMail="noreplay@magiccms.org" 
		smtpAdminMail=""
		supportMail="" 
		editorsMail="" 
		defaultImage="/Themes/Default/ico/fb.png" 
		imagesPath="/Themes/Default/ico/"
		allowedFileTypes="jpg,jpeg,doc,docx,zip,gif,png,pdf,rar,svg,svgz,xls,xlsx,ppt,pps,pptx" 
		testoBreveDefLength="300" 
		GoogleCaptchaSecret="" 
		GoogleCaptchaSite=""
		CkeditorCdn="//cdn.ckeditor.com/4.6.0/full/ckeditor.js" 
		FileChangesMonitorStop="false" 
		jQueryLow="1.12.3" 
		jQueryHigh="2.2.4" 
		GoogleMapApiKey=""
		backEndLang="it"/>
	<connectionStrings>
    .....
</configuration>

Nella sezione configSection vengono definite le sezioni personalizzate di Web.config. La riga

<section name="MagicCMSConfigSection" type="MagicCMS.Core.MagicCMSConfiguration" />

comunica al sistema che nel file di configurazione esiste una sezione chiamata  MagicCMSConfigSection e che la classe  MagicCMS.Core.MagicCMSConfiguration  (definita nella libreria MagicCMS) e preposta alla lettura dei dati impostati in quella sezione. Non modificare questa riga.

Ad ogni attributo della sezione MagicCMSConfigSection corrisponde un'impostazione di configurazione di MagicCMS.
 

attributo obbligatorio valore di default descrizione note
ConnectionName "" Nome di una delle stringhe di connessione definita nella sezione connectionStrings La libreria MagicCMS userà questa stringa di connessione per connettersi al database.
NB: è possibile definire più stringhe di connessione (ad esempio una per la lamacchina locale usata per lo sviluppo e una per il server remoto) e passare da una all'altra modificando questo parametro. Si può automatizzare il processo impostanto le modifiche di questo es altri attributi nel file di trasformazione Web.Release.config (vedi: https://msdn.microsoft.com/en-us/library/dd465326(v=vs.110).aspx)
DefaultThemePath "" Percorso della cartella che contiene il tema. Mantenuto per compatibilità. Si suggerisce di lasciare invariato e utilizzare l'interfaccia di configuraznione del back-end di MagicCMS per modificare questo dato.
ThemePath "" Percorso della cartella che contiene il tema. Mantenuto per compatibilità. Si suggerisce di lasciare invariato e utilizzare l'interfaccia di configuraznione del back-end di MagicCMS per modificare questo dato.
DefaultContentMaster "" Pagina master di default. Questo valore indica solo l'impostazione iniziale "al primo avvio" di MagicCMS. Successivamente questa impostazione, se necessario, va modificata attraverso l'interfaccia di configuraznione del back-end di MagicCMS.
smtpServerName, 
smtpUsername, e smtpPassword
  Server SMTP (posta in uscita) che usa MagicCMS per inviare messaggi di posta e relative credenziali di accesso. È assolutamente necessario configurare correttamente un server di posta in uscita. Questo, infatti, è l'unico mezzo che MagicCMS prevede per inviare le password provvisorie agli utenti registrati. Questo valore indica solo l'impostazione iniziale "al primo avvio" di MagicCMS (necessario, appunto, per inviare la password all'amministratore il cui indirizzo e-mail viene inserito quando viene creato il database). Successivamente questa impostazione, se necessario, va modificata attraverso l'interfaccia di configuraznione del back-end di MagicCMS.
smtpDefaultFromMail "" Indirizzi di posta utilizzato come mittente per i messaggi inviati da MagicCMS. Si consiglia di inserire un'indirizzo e-mail esistente onde evitare che i messaggio inviati siano catalogati come spam. Questo valore indica solo l'impostazione iniziale "al primo avvio" di MagicCMS. Successivamente questa impostazione, se necessario, va modificata attraverso l'interfaccia di configuraznione del back-end di MagicCMS.
smtpAdminMail "" Indirizzo di posta del WebMaster Questo valore indica solo l'impostazione iniziale "al primo avvio" di MagicCMS. Successivamente questa impostazione, se necessario, va modificata attraverso l'interfaccia di configuraznione del back-end di MagicCMS.
supportMail e editorsMail "" Idirizzi e-mail aggiuntivi che possono essere usate nel sito.  
defaultImage "" Immagine di default utilizzata quando non venga definita un immagine specifica. Questo valore indica solo l'impostazione iniziale "al primo avvio" di MagicCMS. Successivamente questa impostazione, se necessario, va modificata attraverso l'interfaccia di configuraznione del back-end di MagicCMS.
imagesPath "" Percorso dove sono collocate le icone del sito (icone per i dispoditivi apple, immagine di default per facebook, favicon) Questo valore indica solo l'impostazione iniziale "al primo avvio" di MagicCMS. Successivamente questa impostazione, se necessario, va modificata attraverso l'interfaccia di configuraznione del back-end di MagicCMS.
allowedFileTypes "" Elenco separato da virgole delle estensioni di file che è consentito caricare sul server tramite il file manager di MagicCMS.  
testoBreveDefLength 300 Numero di caratteri massimo che contiene la descrizione breve di una pagina quando è generata automaticamente.  
GoogleCaptchaSecret e GoogleCaptchaSite "" Chiave Segreta, e id del sito per l'uso di Google reCAPTCHA. Per controllare il login al back-end di un sito MagicCMS con Google reCAPTCHA basta inserire qui un is per il sito e la relativa Secret Key. 
CkeditorCdn "" Indirizzo del CDN da cui caricare CKEDITOR. Vedi http://ckeditor.com/download per maggiori dettagli.
FileChangesMonitorStop false Se impostato a true blocca il processo che controlla la modifica dei file in ASP.NET Questa impostazioni non è più necessaria in .NET 4.5..
jQueryLow   "" Indica la versione di jQuery che viene usata se il sitema rileva un browser <= IE8. MagicCMS è predisposto per supportate anche Internet Explorer 8. La corretta visualizazzione del sito sui vecchi bowser, comunque, dipende, principalmente dal tema che è stato applicato.
jQueryHigh "" Indica la versione di jQuery che viene usata sui browser moderni.  
GoogleMapApiKey "" Consente di memorizzare in Web.config la API key di Google Maps. Per utilizzare  Google Maps è necessario creare un progetto e ottenere una Key di accesso gratuta alle Google Maps JavaScript API (Apri la 'Developer Console di Google').
backEndLang "it" Definisce la lingua usata nel backend (l'interfaccia di editing del sito). Una tabella del database contiene tutte le stringhe usate nell'interfaccia backend di MagicCMS. Per default viene fornita la traduzione in inglese, ma è possibile aggiungere traduzioni in qualsiasi lingua. Modificando il valore di questo attributo viene modificata la lingua utilizzata. Ovviamente il codice inserito deve corrispondere a una delle lingue di cui è presente la traduzione.

 

La sezione connectionStrings

La sezione connectionStrings  contiene la definizione delle stringe di connessione, stringe che contengono i parametri necessari a connettersi con un motore database. la sistassi per aggiungere una stringa di connessione alla sezione è:

    <connectionStrings>
        <add connectionString="Elenco parametri di connessione" name="NomeConnessione"/>
    </connectionStrings>

Nel nostro caso dovrai sostituire Elenco parametri di connessione con i parametri necessari a collegarsi al database MagicCMS che hai creato e NomeConnesione con il nome che sceglierai per la connessione. Dovrai poi assegnare il nome scelto per la connessione al parametro  ConnectionName di  MagicCMSConfigSection.

Per avere informazione sulla stringa di connessione da utilizzare per il tuo database system puoi consultare: https://www.connectionstrings.com/sql-server/

La sezione system.webServer

Le impostazioni create da MagicCMS in questa sezione sono in granparte tratte dal progetto server-configs del gruppo HTML5 Boilerplate (https://github.com/h5bp/server-configs-iis). E, in linea di massima, non vanno modificate.

	<system.webServer>
		<httpCompression directory="%SystemDrive%\websites\_compressed" minFileSizeForComp="1024">
			<scheme dll="%Windir%\system32\inetsrv\gzip.dll" name="gzip"/>
			<dynamicTypes>
				<add enabled="true" mimeType="text/*"/>
				<add enabled="true" mimeType="message/*"/>
				<add enabled="true" mimeType="application/javascript"/>
				<add enabled="true" mimeType="application/json"/>
				<add enabled="true" mimeType="application/json; charset=utf-8"/>
				<add enabled="false" mimeType="*/*"/>
			</dynamicTypes>
			<staticTypes>
				<add enabled="true" mimeType="text/*"/>
				<add enabled="true" mimeType="message/*"/>
				<add enabled="true" mimeType="application/javascript"/>
				<add enabled="true" mimeType="application/json"/>
				<add enabled="true" mimeType="application/json; charset=utf-8"/>
				<add enabled="false" mimeType="*/*"/>
			</staticTypes>
		</httpCompression>
		<urlCompression doDynamicCompression="true" doStaticCompression="true"/>
		<staticContent>
			<!-- Set expire headers to 30 days for static content-->
			<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="30.00:00:00"/>
			<!-- use utf-8 encoding for anything served text/plain or text/html -->
			<remove fileExtension=".css"/>
			<mimeMap fileExtension=".css" mimeType="text/css"/>
			<remove fileExtension=".js"/>
			<mimeMap fileExtension=".js" mimeType="text/javascript"/>
			<remove fileExtension=".json"/>
			<mimeMap fileExtension=".json" mimeType="application/json"/>
			<remove fileExtension=".rss"/>
			<mimeMap fileExtension=".rss" mimeType="application/rss+xml; charset=UTF-8"/>
			<remove fileExtension=".html"/>
			<mimeMap fileExtension=".html" mimeType="text/html; charset=UTF-8"/>
			<remove fileExtension=".xml"/>
			<mimeMap fileExtension=".xml" mimeType="application/xml; charset=UTF-8"/>
			<!-- HTML5 Audio/Video mime types-->
			<remove fileExtension=".mp3"/>
			<mimeMap fileExtension=".mp3" mimeType="audio/mpeg"/>
			<remove fileExtension=".mp4"/>
			<mimeMap fileExtension=".mp4" mimeType="video/mp4"/>
			<remove fileExtension=".ogg"/>
			<mimeMap fileExtension=".ogg" mimeType="audio/ogg"/>
			<remove fileExtension=".ogv"/>
			<mimeMap fileExtension=".ogv" mimeType="video/ogg"/>
			<remove fileExtension=".webm"/>
			<mimeMap fileExtension=".webm" mimeType="video/webm"/>
			<!-- Proper svg serving. Required for svg webfonts on iPad -->
			<remove fileExtension=".svg"/>
			<mimeMap fileExtension=".svg" mimeType="image/svg+xml"/>
			<remove fileExtension=".svgz"/>
			<mimeMap fileExtension=".svgz" mimeType="image/svg+xml"/>
			<!-- HTML4 Web font mime types -->
			<!-- Remove default IIS mime type for .eot which is application/octet-stream -->
			<remove fileExtension=".eot"/>
			<mimeMap fileExtension=".eot" mimeType="application/vnd.ms-fontobject"/>
			<remove fileExtension=".otf"/>
			<mimeMap fileExtension=".otf" mimeType="font/otf"/>
			<remove fileExtension=".woff"/>
			<mimeMap fileExtension=".woff" mimeType="application/x-font-woff"/>
			<remove fileExtension=".woff2"/>
			<mimeMap fileExtension=".woff2" mimeType="font/woff2"/>
			<remove fileExtension=".crx"/>
			<mimeMap fileExtension=".crx" mimeType="application/x-chrome-extension"/>
			<remove fileExtension=".xpi"/>
			<mimeMap fileExtension=".xpi" mimeType="application/x-xpinstall"/>
			<remove fileExtension=".safariextz"/>
			<mimeMap fileExtension=".safariextz" mimeType="application/octet-stream"/>
			<!-- Flash Video mime types-->
			<remove fileExtension=".flv"/>
			<mimeMap fileExtension=".flv" mimeType="video/x-flv"/>
			<remove fileExtension=".f4v"/>
			<mimeMap fileExtension=".f4v" mimeType="video/mp4"/>
			<!-- Assorted types -->
			<remove fileExtension=".ico"/>
			<mimeMap fileExtension=".ico" mimeType="image/x-icon"/>
			<remove fileExtension=".webp"/>
			<mimeMap fileExtension=".webp" mimeType="image/webp"/>
			<remove fileExtension=".htc"/>
			<mimeMap fileExtension=".htc" mimeType="text/x-component"/>
			<remove fileExtension=".vcf"/>
			<mimeMap fileExtension=".vcf" mimeType="text/x-vcard"/>
			<remove fileExtension=".torrent"/>
			<mimeMap fileExtension=".torrent" mimeType="application/x-bittorrent"/>
			<remove fileExtension=".cur"/>
			<mimeMap fileExtension=".cur" mimeType="image/x-icon"/>
			<remove fileExtension=".webapp"/>
			<mimeMap fileExtension=".webapp" mimeType="application/x-web-app-manifest+json; charset=UTF-8"/>
		</staticContent>
		<httpProtocol>
			<customHeaders>
				<!-- 
				http://hacks.mozilla.org/2009/07/cross-site-xmlhttprequest-with-cors/
				Uncomment to serve cross-domain ajax requests
    
				<add name="Access-Control-Allow-Origin" value="*" />
				-->
				<!-- 
				Force the latest IE version, in various cases when it may fall back to IE7 mode
				github.com/rails/rails/commit/123eb25#commitcomment-118920
				Use ChromeFrame if it's installed for a better experience for the poor IE folk
        
				  <add name="X-UA-Compatible" value="IE=Edge,chrome=1"/>
				-->
				<!-- 
				Allow cookies to be set from iframes (for IE only)
				If needed, uncomment and specify a path or regex in the Location directive 
					<add name="P3P" value="policyref=&quot;/w3c/p3p.xml&quot;, CP=&quot;IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT&quot;" />
				-->
			</customHeaders>
		</httpProtocol>
		<security>
			<requestFiltering>
				<!-- MASSIMA DIMENSIONE DI FILE CARICATI - UPLOADED FILES MAXIMUM SIZE -->
				<!-- 
				Per impostazione predefinita IIS consente di caricare file di dimensioni 
				fino a 4 Megabyte. Spesso questa dimensione non è sufficiente nella gestione 
				di un sito. Si può modificare questo limite assegnando la dimensione massima 
				caricabile in byte all'attributo maxAllowedContentLength di 
				system.webServer/security/requestFiltering/requestLimits. 
				Va modificato anche l'attributo maxRequestLength in system.web/httpRuntime.
				Nota bene: l'unità di misura utilizzate per maxRequestLength è il Kilobyte, 
				mentre quella usata per maxAllowedContentLength è Byte.
				Vedi sopra.
				-->
				<!--
				By default IIS allows you to upload files up to 4 Megabytes. Often this 
				dimension is not sufficient in managing a site. You can change this limit by 
				setting the system.webServer/security/requestFiltering/requestLimits 
				maxAllowedContentLength attribute to the maximum uploaded files size in Bytes. 
				The maxRequestLength attribute in system.web/httpRuntime also must be modified.
				Please note: the units used for maxRequestLength is Kilobytes, while that used 
				for maxAllowedContentLength is bytes. 
				See above.
				-->
				<!-- L'impostazione riportata qui consente di caricare file di 
                     dimensioni fino a 100 Megabyte. -->
				<!-- The following setting lets you upload files up to 100 Megabytes.-->
				<requestLimits maxAllowedContentLength="104857600"/>
				<!-- FINE MASSIMA DIMENSIONE DI FILE CARICATI - UPLOADED FILES MAXIMUM SIZE END -->
			</requestFiltering>
		</security>
	</system.webServer>

All'interno della sezione system.webServer (in security->requestFiltering ) posso modificare l'attributo  maxAllowedContentLength dell'elemento  requestFiltering  per aumentare il limite dei file che si possono caricare sul server (vedi anche la procedure analoga nella sezione system.web ).

	<system.webServer>
		<security>
			<requestLimits maxAllowedContentLength="104857600"/>
		</security>
	</system.webServer>

e sostituire al valore  104857600 , che corrisponde a 100 megabyte, con la dimensione desiderata in byte.

Infine si raccomanda di non modificare le sezioni runtime e system.serviceModel .

Torna all'inizio