Despite similar model and names of two products, the previous ASP.NET Viewer (Report Sharp-Shooter Web Forms Edition) and a new Web Viewer (SharpShooter Reports.Web) have dramatic differences. Here, we would like to clarify the main differences.
Architecture
The main architectural difference between the components is as follows: Web Viewer in Report Sharp-Shooter Web Forms Edition is ASP.NET component and a new Web Viewer in SharpShooter Reports.Web can be called a JavaScript component.
In Report Sharp-Shooter Web Forms Edition a report page along with the web-page are fully rendered on the server-side and is passed to a user browser as a ready document. This means that the component is difficult to extend and its use in unusual conditions can be complicated.
SharpShooter Reports.Web gets the data about a report (including report pages in HTML format) on a server side and then displays and positions a report on a client side.
Use of a component
Report Sharp-Shooter’ Web Viewer is added by dragging and dropping it onto a form and requires minimum configurations in the property grid.
Integration of SharpShooter Reports.Web is little bit more complicated. You need to add additional resources to the project: styles, images, JavaScript files. Besides, the component requires adding some lines of code to the web page. It is also needed to configure a service to present data about a report.
Reports Display
ASP.NET Viewer supports only the page-by-page reports display and to display a subsequent page it is required to refresh the preview area. A new viewer (SharpShooter Reports.Web) displays all pages of a document downloading them as you view them. Besides, a new viewer includes the components allowing display thumbnails and document structure.
JavaScript API
SharpShooter Reports.Web includes a wide set of methods to manage reports visualization available from JavaScript on the client side. It allows managing reports loading, their display and subscribing for components events such as end of report loading, page change, and click on the thumbnail or hyperlink inside a document.
Web service
Unlike ASP.NET Viewer in Report Sharp-Shooter where the presentation layer is generated on the server side, a new Viewer uses service-oriented architecture. Client requests the data from a service which provides access to separate pages of a document, thumbnails, document structure, bookmarks tree, etc and service returns information in JSON format which is processed by a client, then the information is being visualized. Thus, logic of report display, navigation, etc is fully realized on the client side and does not depend on service which provides data.
The only requirement to a service is the need to realize API (consisting of 12 methods so far) to present data of JS-based client side. Architecture and structure of the service does not affect client side anyhow. Theoretically, the service can be realized not only on ASP.NET, but on Java, Python or PHP. In this case, of course, you may face additional challenges while integrating reports rendering system realized on .NET platform.
Integration of a server side with an existing system
Using the previous Web Viewer in Report Sharp-Shooter Web, you must write the server side and integrate it with a website on your own. SharpShooter Reports.Web includes ready base classes and implementation samples on the WCF base or ASP.NET MVC controller to present data. You can use ready service implementation included into the delivery package or use it as a base to create your own by overriding the required methods. And you still have the opportunity to realize a service from scratch following the specification.
User Interface Design and Styles
Unlike web viewer in Report Sharp-Shooter, SharpShooter Reports.Web includes not only the component to display a report, but also the components to display thumbnails, bookmarks, and a full set of elements to manage report preview (buttons, status bar, paginators).
All appearance parameters of a new web viewer are set with the help of editable CSS.
The delivery package includes a wide set of styles developed by our designers which you can use to implement custom interface. From the other side, if you need to use a style specific to your website, you can easily redefine styles of the component.
We are welcome any questions at [email protected].