6

Desidero utilizzare il controllo ReportViewer di Reporting Services in un progetto ASP.NET Core MVC.È possibile utilizzare il controllo Reportviewer in ASP.net Core

La soluzione proposta in altri answers per aggiungere un modulo Web al progetto.

Tuttavia, poiché ASP.NET Core non supporta i Webform, non è possibile aggiungere il controllo a un modulo Web.

Esiste qualche altra soluzione che potrebbe aiutarmi ad utilizzare il controllo ReportViewer in un'applicazione Web ASP.NET Core?

risposta

0

Ecco un visualizzatore di report che funziona sia su ASP.NET MVC che su ASP.NET Core.

MVC .NET Core Report Viewer

+1

L'implementazione di cui sopra non supporta attualmente i file .rdlc locali e può essere utilizzata solo con i report SSRS ospitati sul server. – ekhanna

+0

@ekhanna Ancora non supportano i file .rdlc locali? – k11k2

2

No, non puoi.
Microsoft sta solo valutando la creazione di un controllo .NET Core ReportViewer.
Il che significa che non ce ne sono al momento (05/2017).
Inoltre non esiste alcun "controllo" di ReportViewer per ASP.NET MVC.

C'è solo alanjuden's wrapper intorno a ReportExecution.asmx di MS-ReportServer.
Ma non è lo stesso. Ciò richiederà comunque l'autenticazione di Windows sul server di report (insieme al gruppo di utenti specifici del gruppo di utenti) e un server SSRS in esecuzione su Windows.

Se si dispone di un server di report SSRS su Windows, è molto meglio integrare SSRS ReportViewer.aspx in un iframe. Potresti voler aggiungere l'autenticazione dei moduli al tuo server dei rapporti. Inoltre, se deve essere multipiattaforma (= cross-browser = non-IE), è necessario SSRS> = 2016 (cross-browser non disponibile in SSRS 2005/2008R1/2008R2/2012/2014).

Se sei su Windows e non vuoi (il tuo cliente) di dover installare una versione specifica di SSRS (il che significa che devi licenziare un server MS-SQL), puoi creare un file non .NET. -core applicazione web su IIS (sullo stesso dominio), e condivide il auth-cookie. Quindi incorporare ReportViewer dall'applicazione non core di IIS .NET tramite iframe (o collegamento con target = _blank) nell'applicazione Web .NET Core. In questo modo non è necessaria una licenza SQL Server e nessun MS-SQL-Server se, ad esempio, si utilizza MySQL/PostgreSQL/Oracle.

Oltre ad attendere, è possibile associare Apache Tomcat con BIRT all'applicazione e use Launch4J to redistribute it with the JRE. Quindi dovrai semplicemente utilizzare il ReportDesigner Eclipse-BIRT per creare report BIRT (report non SSRS).

Oppure è possibile incorporare JasperReports con JasperServer.
Questo sarebbe molto più difficile da distribuire in bin di BIRT.

Jasper e BIRT hanno il vantaggio di funzionare anche su Linux/Mac.
Tuttavia, ciò significa che è necessario che JRE sia installato sul server o distribuisca bin JRE insieme all'applicazione.

Il vantaggio di Jasper su BIRT è che è più veloce e supporta il testo verticale (non solo nel Web e il testo verticale non viene visualizzato come immagine).

Di solito ci sono sempre problemi con le versioni BIRT scaricate dal loro sito Web che impediscono di eseguire BIRT all'inizio.Essere una variabile di ambiente JAVA_HOME mancante, una dipendenza .jar mancante o una firma non valida in un file .jar. Per informazioni su ciò che sarà sulla tua macchina al momento, consulta i file di log di TOMCAT, quindi verifica il problema con google.
La cosa bella di BIRT è che è relativamente facile da distribuire in bin.

Un'altra opzione sarebbe jsReports, se ti piace nodeJS.
Tuttavia, Bin-Deploy che senza installazione e complicazioni sarà ancora più difficile (PhantomJS, Webkit, wkHtmlToPdf - per esempio con un processore ARM su Raspberry PI).

Se hai qualche anno di anticipo, puoi anche solo aspettare fino a quando il team di SSRS effettuerà il port in .NET Core - se ciò accade, cioè.