Domanda

Ho sperimentato WPF e ho eseguito il markup XAML rigoroso in un browser Web, noto anche come Loose XAML (spiegato qui e qui ).

Mi sembra utile soprattutto per visualizzare contenuti statici. Tuttavia, sembra anche possibile collegarsi a un fornitore di dati XML.

I file XAML allentati non vengono compilati con un'applicazione, il che crea le seguenti limitazioni:

  • Non consentono assembly esterni
  • Nessun uso di classi, code-behind (o qualsiasi C #)
  • Nessun database bidirezionale

Quali ulteriori limiti ci sono?

  • Non ho trovato un modo per collegarlo a un provider di database (SQL Server)
  • .NET Framework è richiesto sul computer client per eseguire il rendering di XAML nel browser?
  • I motori di ricerca sono in grado di interrogare Loose XAML per classificare in modo appropriato pagine?

EDIT: ho tentato di associare il fornitore di dati XML a un servizio Web (utilizzando questo semplice esempio) e non hanno avuto successo. Questi risultati mi portano a ulteriori ricerche in cui ho scoperto che questo non è supportato: " XMLDataProvider è progettato per essere di sola lettura (in altre parole, non offre la possibilità di eseguire il commit delle modifiche) e non è in grado per gestire i dati XML che potrebbero provenire da altre fonti (come un record di database, un messaggio di servizio Web e così via). " -Matthew MacDonald, Pro WPF

È stato utile?

Soluzione

AFAIK è impossibile definire una stringa di connessione in XAML. Quindi non puoi accedere al tuo db SQL.

Nota: è possibile eseguire il databind a un servizio Web utilizzando XmlDataProvider. Quindi potrebbe essere un modo per inviare i tuoi dati tramite ...

Modifica: a proposito, ho trovato questo elenco di funzionalità dell'ambiente Sandboxed , in cui l'app è in esecuzione quando si utilizza XBAP e XAML sciolto. è un po 'datato, ma probabilmente la maggior parte delle limitazioni si applicano ancora.

Altri suggerimenti

Per visualizzare le pagine XAML libere in IE è necessario almeno il framework 3.0. Puoi persino verificarlo sul tuo sito cercando " .NET CLR 3.0 " nella stringa dell'agente utente.

Una connessione al database, se possibile, non verrebbe eseguita direttamente in XAML sciolto a causa della necessità di un codice procedurale per aprire la connessione.

Ho lavorato molto nell'hosting di Dynamic Language Runtime (DLR) e nel consentire l'incorporamento di script in XAML. Ora sono al punto che sento che Loose XAML non è un cittadino di seconda classe in quanto posso gestire eventi, scrivere convertitori di valori, eseguire Python / Ruby / JScript per fare cose come connettersi a SQL Server.

Vedi il mio blog per vedere se questa direzione fa per te.

Carico dinamicamente gli assembly usando una proprietà collegata: una volta caricati, puoi fare riferimento alle classi nell'assembly nel solito modo.

Quindi, anche per rispondere alla domanda, ci sono MOLTE limitazioni di Loose XAML out of the box (come non essere in grado di indirizzare un evento a un gestore di eventi), ma questi possono essere superati con un po 'di lavoro.

Ho usato XAML / WPF solo per le app desktop. Spero che qualcun altro salti per rispondere alle domande specifiche del tuo browser.

Ho una libreria che utilizzo nel lavoro commerciale per l'hosting DLR e l'incorporamento di script DLR in XAML che intendevo trasformare in un prodotto supportato. Se questo ti interessasse, assicurati di farmelo sapere.

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