Generate reports through ASP.NET - asp.net

I need to generate reports from database (billing forms for example) from ASP.NET interface. So I'm wondering which approach is better : Use Crystal Reports, reports based on RDLC or SQL Reporting Services ? I need to create an interface, which allows user to select data and through pre-created report definition generate that report. I want to use ASP.NET with AJAX, so it will act as a real application, but with no need for installation - and this is primary requirement.
So, if somebody knows which technology suits best those requirements...I will be grateful :)

Personally I would go for DevExpress XtraReports.
I have used it in the past in both windows forms and web forms; it costs few hundreds of bucks but with the package you also get plenty of other UI controls, or you spend less and only buy XtraReports. It pays off in a flash, main advantages in my opinion are:
each report can be designed with a Visual Studio integrated designer and becomes a simple c# class, easy to instantiate and use, no magic and no external report definitions, all pure 100% .NET code;
end user designed is royalty free and users are amazed by the power and quality of the designer, with Ribbon or classic UI, plenty of features;
so many out of the box zero coding ready to use features like print preview, export to excel, pdf etc...
Disclaimer: I do not work for DevExpress, I am not paid by them, simply I am a satisfied customer and used their products before with joy and good results, we are now in the process of starting a major MVC application development in my company and we are buying licenses of their DXperience Enterprise subscription these days.
you are free to also evaluate or test Crystal Reports or similar reporting solutions offered by ActiveReports, Telerik etc, I can only speak about XtraReports because I used it a lot, Crystal I used in the past with Visual Studio 2003 but I was not so impressed by the designer and deployment was really a mess in windows forms... always missing some files and having errors on client machines...

I would suggest taking a look at ActiveReports 6. It provides great features and allows you to make almost unlimited customization to your report. For ASP.NET you can either opt for the standard edition which allows you to custom export your reports to different formats like PDF, Excel etc and display them to the users.
The professional edition provides you a webviewer control which allows you to display reports directly on the viewer and the user has the option to chose from PDF, HTML and FlashViewer format. In addition to this it also provides a silverlight based viewer control.
You may also want to check the blogs and the forums just in case you want to get more information about the product.
Thanks,
Sankalp (GrapeCity)

Don't miss to take a look into List & Label, too.
We've done some good projects with it!

We use SQL Server Reporting services, it has a visual studio based designer, and it's free. The distribution is a little tricky - If your clients already have SQL Server installed, then there is a a good chance they will have the reporting framework installed. Otherwise you can get just about distribute the dll's with your application - although this takes a bit of digging.

Related

MorphX report designer: are there any alternatives?

MorphX report designer in Ax 2009 seems to be not the 'best' as report designer.. I don't know if is my fault, or if morphx report designer too buggy to do his job.
I'm guessing if there are some alternative to do report for Ax 2009: maybe Crystal Report and Visual Studio ? Or ... ?
Thanks
SSRS is the main alternative for AX 2009. You can deploy the reporting extensions and analysis cubes for some good reporting data. Analysis cubes will need to be configured to match your individual license file.
If you just want to be able to create SSRS reports, I believe you can just go to (Admin>Setup>Business analysis>Reporting Services>Reporting Servers" and point to your SSRS instance, and create the "Dynamics AX" data source.
You might need to do Kerberos setup too depending on your environment topology.
The best alternative options is by far Reporting Services. It is supported by Dynamics AX 2009 in a way there there is tools and platforms to develop reports than honor the security from within AX and also the important feature of being able to persist the report design back to the Application Object Tree (under Report Libraries).
How to setup and configure SSRS for Dynamics AX 2009 is a topic on it's own, but there should be plenty of good resources out there to help you.
Good luck!
In addition to previous answers you can use any report designer you like if you are going working with database directly.
But be ready some of axapta features will not be working automatically, for example - labels for enum values.
Great place to start with SSRS using Visual Studio 2008 are screencasts available on youtube, just go onto youtube and search for "AX2009 SSRS".
SSRS is fine for periodic reporting, however "online" reporting - such as invoices, pick lists, etc (anything printed when posting) is better off handled by external software. You may wish to print to file or to a DB and use 3rd party software to pick up the design/formatting.
Bottomline's Create Forms is one example I have seen used. You also have workflow options which is great when you have different companies/customers/suppliers with difference requirements, even better if you have multiple brands within the same company.

Fast and simple and light reports system for .NET (asp mvc)?

Does there exist a fast and light reporting system for projects in Visual Studio for projects in asp .net mvc? Crystal reports is too big and "heavy" and not a good choice for 200+ users who create a PDF report at once.
Thanks for your tips.
I like FastReport. But I just know the Delphi-Version and can't say how mature the .Net-Version is.
The Delphi-version is lightweight, easy to use but with it's scripting-possibilities very powerful.
So I think even the .Net-version should be worth a look.
Take a look into List Label (from combit), too! It has a different approach, a very good designer and direct vendor support. Distribution files are "lightweight" compared to other solutions.
Reporting services is free if you have an sql server license and if you run the reporting services server on the same db server. I consider it pretty lightweight and easy to use.
Try the ItextSharp or the nuget package
We used it's and it was fine!
DevXpress XtraReports allows you to design reports with a good designer then you use them as normal C# classes. I like it very much, you can create reports and export them to pdf file or stream on the server even with no UI at all then you can download the pdf from mvc or store it somewhere. I use it as much as I can.
There is a blog which details about using Active Reports to create reports in a MVC application. You can go through the blog here.
Active Reports is a very flexible and easy to use reporting tool,it is supported on Win Forms, Asp.net, SilverLight and supports data sources like Sql Server, My Sql, XML, Oledb etc.

SharePoint Development and Data Centric Projects

I was involved in a SharePoint(WSS) project that was very data centric. The project consisted of more than 500 lists that has very complex relations between them. The client also asked for more than 350 Reports. Don't tell me why did you use SharePoint from the beginning. It was a managerial decision and we already delivered the project after 14 months of pain (this is 6 months overdue to the deadline)
When we first started the project, we didn't know anything about SharePoint development (believe it or not). The management said that they will take the risk. They were very convinced that SharePoint is the optimal solution for anything!!!(well, that proved wrong at the end of the project).
Anyway, we were learning SharePoint while we were developing. Our development were mainly based on SharePoint designer to customize all the AllItems/NewForm/EditForm/DispForm for every list to provide the needed logic/validation that the client asked for (Using JavaScript). We also implemented around 15 Custom Fields (e.g. master-details fields). We also made an event receiver to handle all the adding/updating/deleting... events for all the lists in the site. Plus around 40 ASP.Net user controls.
The main problems that faced us (we worked-around it but sadly in an inefficient way)
1- The Client asked for a search web part in each AllItems.aspx. The search web part should have multiple keys for the client to search with. We did that using Form Web parts using SPD no problem. But the real problem was how to search for a related field that was not in the current list. (So, in such cases we had to save these fields values in our list to be able to search for (crap, I know!!)). You might ask, why didn't you implement ASP.Net user controls for such task? Well, that would require us to forsake the default AllItems web part, and were already customized hundereds of AllItems.aspx pages with alot of customization that would take us a lot of time to reimplement them from the beginnging. Also, even if we used user controls, CAML is very inefficient in retrieving data from multiple related lists!
2- I think you can guess this one, if we've already faced a big time doing search web parts, how on earth will be able to do the 350 reports!!:D But we figured out a work-around (as usual :S) we made an Access DB file with links to all the 500 sharePoint lists, then we implemented a user control that has a report viewer control. This user controls takes an ordinary T-SQL Query to query on the Access DB, the Access DB retrieves the data from the SharePoint DB and pass it back to the user control which views the DataSet on the report viewer.
There are other administration related problems, but I would like to focus on the development here.
So, after I showed you the picture (sorry for the long post). What do you think was the best SharePoint development technique that we should have taken in such a data centric Project, if any?
I heard that some companies doesn't use lists at all in such projects, and builds there own SQL database tables instead of the SharePoint Database. But I can't keep my self from wondering, If I'm making my own DB, and hence implementing my CRUD web parts from scratch (We will also lose the security module benefits provided by SP Lists), what would be the benefits of SharePoint?
Once again I apologize for the long post.
I think you found out exactly what I did. Sharepoint just isn't good at handling large enterprise type applications. We ended up creating a custom database to house our data. We used Webparts for the user interface, but otherwise, the entire application was independent of Sharepoint.
In my opinion, Microsoft is overselling Sharepoint. It's actually good at team collaboration sites and simple Excel services applications, but anything beyond that it just isn't capable of handling.
I have to disagree with both Geoff and Abu in regards to SharePoint being a bad choice for large enterprise applications.
As you state yourself Abu your team were learning on the job as you had no SharePoint development experience, the issues you faced was more a Management error that a platform problem, management should have brought in SharePoint contractors to work alongside your team to help build what sounds to be a fairly complex system.
As a developer who has worked with SharePoint for a number of years many of the projects I have worked on some that I myself would not have believed suitable for SharePoint with in my first few years of developing on this platform, however now with more experience I know how to leverage the power of the platform far better and I realise the advantages gained using SharePoint for projects of that nature. That said I have a number of issues with parts of the platform but this is no different to any other platform I have worked on including parts of the ASP.Net platform.
If I was asked to develop a solution using a bespoke Java based system (or perhaps the new MVC platform) I am sure I would experience many problems similar to what you experienced where I simply don’t know what the right approach would be. That would not in any way be an issue with the platform but more with my inexperience.
I am sorry to hear that both of you experienced pains working within the bounds of the SharePoint platform that was forced on you by your management. Though I am disappointed that you are so fast to point the blame away from yourselves and your management.
Was SharePoint the best platform for your projects I can’t say, but that doesn’t make it a bad platform for enterprise applications.
I disagree with Geoff that SharePoint is no good for large enterprise type apps. You have to remember from the start that SharePoint is a development PLATFORM. This means it gives tyou a lot of functionality out of the box, but is extremely customisable.
Being a platform does not mean every bit of customisation needs to be done based on SharePoint lists. Seeing as it is built on ASP.NET you can do anything in SharePoint you could do in ASP.NET as well.
I have built a great deal of ASP.NET apps that were hosted in SharePoint, letting SharePoint do the authentication etc.
I have to say though, determining where SharePoint should stop being your base and you should switch to regular ASP.NET is sometimes hard..
If you are looking for a data-centric solution in SharePoint, the best solution is to use the Business Data Catalog (BDC). This keeps your rich data relationships and all of the SQL (or other DBMS) goodness you want where it should be - in a repository designed to be optimal at storing data.
For an overview of what the BDC functionality can do, see this post on the SharePoint Team Blog. For much more details, read the series on SharePoint Magazine. Note that these features requires an Enterprise license of SharePoint 2007.

ASP.NET Application Suite Development - Gotchas

This may sound a bit general, but I have a startup that is working on an ASP.NET (greenfield) suite of software applications. We are aiming to spend a substantial amount of time in the architecture phase to develop a strong foundation for our software. I was wondering if anyone has any advice, anything we should focus on or any suggestions for areas we should focus on to build a better suite.
Some things we are focusing on right now:
1. Session state requirements - should sessions be sticky or should we take server clustering session migration into account.
2. User login authentication - what are the major concerns in this space - LDAP, AD, custom SQL authentication systems etc.
3. The DAL - ORM vs Stored Proc
4. Integrating multiple ASP.NET applications in a single software suite. How it should look/feel. How it should be architected, etc.
I would appreciate any advice from any architects out there that have built similar systems from the ground up.
I know there are lots of solutions to session, but if you can create your framework to be session-free, you will avoid a lot of potential headaches. (There are lots of session-free options, but an obvious one is a hidden form field, somewhat like ViewState.)
Just some quick notes. I can't get too detailed since we went through this exercise where I worked last year - and I don't work there any more!
Start from the beginning using Enterprise Library, especially the Logging and Exception Handling application blocks. I've also found their Unity dependency injection library to be very useful.
Consider using Visual Studio Team Foundation Server. It's not just for source control, but can create you a complete continuous integration solution, complete with integrated bug tracking, code quality tracking, etc. If you've got the time and people, it's well worth a man-month to learn how to do an initial deployment.
You may want to buy one or more licenses of one of the Visual Studio Team System editions. You don't need these versions in order to use TFS, but they work well with it.
Consider globalization right from the start. Same with customization, if your suite will run on customer premises and be customizable by them.
You haven't said how large your team is, or is expected to be. If it's large enough, you'll want to spend at least a man-week learning a bit about what's available to you in terms of Visual Studio Extensibility. Your developers (and maybe also your QA folks) will all but live in Visual Studio, so the ability to customize it to meet your needs can be a big win. Whether it's just some macros and maybe some customized project or item templates, or whether you want to do add-ins or more, Visual Studio is very extensible.
Be certain to use WCF for any web services work. The older ASMX web service technology is now considered by Microsoft to be "legacy software".
Finally, be sure to find out whether you qualify for BizSpark, "A program that provides Software, Support and Visibility for Software Startups." And does so almost for free.
I saw a demo of Silverlight 3 at the PhillyDotNet User Group last night - WOW. Wow for business applications, not graphic applications. There is a learning curve, but you get a lot for it. For example, the demo showed a grid being bound to a table without needing to write any code.
Right out of the box you had sorting, editing, paging, etc. But it wasn't the lame stuff you normally get and then have to rework. For example the paging was smart enough to write the sql that would only bring back the 20 rows you needed for the page.
The demo continued with him putting a detail form on the page for editing. Again no code, but it was smart enough to know that it had the same datasource as the grid on the page. So as you were moving row to row on the grid - the detail form was showing the current row (and it was very fast).
Both the grid and the detail form were editable and as you changed a field in one the other would reflect the new value. The editing was smart enough to validate the field on its own. So you couldn't put a letter in a field that was an integer type, etc. It also limited the number of characters that could be entered based on the column size found in the database. All the date fields on the detail form automatically had a calendar next to them. You get the idea - no coding for any of this.
If this weren't enough, it can be used to build occasionally connected applications. So he showed how he updated a few records on a few different pages, had the option to revert back a field later (ctrl-Z), and then at the end submitted all the changed records to be saved.
Also, they said it works with Linq2SQL and the entity fraimwork.
So if I were building a new product now, I would really look into this as a way of differentiating my product. And I suspect that if you don't do it with Silverlight now, you will be rewriting it in a few years anyway.
Here is a link to a demo (not the one I saw.)
Some general thoughts. If you'd like me to expound on any of these, let me know.
Inheriting from a custom subclass of
Page instead of Page itself is a
great way to share functionality
across your site.
Nested MasterPages are good.
Charting: I've tried DevExpress,
Syncfusion, and MSChart control and
all have their own issues.
The built-in forms authentication is
pretty good. Building a site that
allows both integrated authentication
and forms authentication is tricky
but can be done.
I've tried using cross page postbacks
and I'm still not sure if I like
them.
Localization takes a lot of time
Come up with a good structure for your App_Themes and css.
Use Elmah to track unhandled exceptions

Active/Crystal Reports & The End-User Designers

I've been doing research on reporting suites for a project my company is about to undertake, and have narrowed the candidates down to Active Reports and Crystal Reports.
During the demo yesterday, it was clarified to me that one of the capabilities our client would like is the ability for the end-user to create custom reports integrated into the Web-Based client. I know that both packages have options for integrating an end-user designer to a WinForms based app, but I can't find a definitive straight yes or no answer for either suite as to whether or not it's possible to attach them to an ASP.Net based app.
My instinct is no, but I was hoping somebody with more experience in reporting suites could give me a solid yes or no.
I can't speak for Active Report, but it's not hard to find someone who loathes Crystal Reports. AFAIK crystal report editing on web requires BOXI which cost allot but includes a much better reporting tool called web intelligence or "webbi", think of it as a web based pivot table.
No mater which produced you end up choosing if you don't have a star schema the end users are going to have a hard and frustrating time creating reports. Even if you have an abstraction layer you are going hit walls.
Curious why did you decide against SSRS? If you already own SQL server you already have a license.
I used to love activereports. Haven't used them in a while. Did you know that visual studio has built in reporting? So does SQL Server.
I agree with jms, it's not hard to find someone who hates crystal reports.

Resources