As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I need a tool that handle both on-screen and printed reports, via my C# application.
I'm looking for simple, standard and powerful.
I need to be able to give the user the ability to select which columns to display, formatting, etc... with my own GUI and dynamically build the report based upon their choices. Crystal does not fit the bill here because the columns cannot be added on the fly (and the column widths can not be adjusted on the fly).
I'm thinking of using HTML with the WebBrowser control in my app, but I will have very little control over printing and print preview.
Another option is go to .NET 3.5 (I'm using 2.0) and use XAML with Flow Documents.
What would you use?
We use SQL reporting services. HTML reports have their place but you dont get very much controlling over formatting.
SQL reporting services summary:
Advantages:
Basic version is free
Included with SQL express
Many exporting options pdf, html, csv etc
Can use many different datasources
Webservice which exposes various methods
SQL standard editon includes a report builder component to allow users create and share their own reports
Lots of features for querying formatting etc
Scheduling options
Extensibility import .net framework dlls for custom functionality
Familiar microsoft environment
Disadvantages:
An extra thing to setup
Seemless authentication between application and report server can be a pain depending on your setup
A little bit of a learning curve although its not too hard to pick up
Report model creator needs some work and doesnt automatically a-z fields
I have heard good things about DevXpress so may be worth looking into.
I used Crystal about 5 years ago and remember it being a pain to setup and was costly licence wise.
Check out the Report Viewer stuff in studio 2008 / .NET 3.5
This amazing site has the full scoop:
GotReportViewer
It's a nice build in reporting system that will show a report and print. It's not full blown like Crystal or SQL Reporting Services. If all you need is some lightweight reporting you can't beat the price.
Crystal = Big footprint, huge deployment, fast, good designer and support
MS ReportViewer = small footprint, slow, bad designer, support.. well, not so damn easy to search after reportviewer, a name all uses.. sigh.
We use ActiveReports.net here. They're OK and tend to get the job done pretty well, but I'm not sure if they would fit your definition of "Dynamic". But you can pretty much make them do anything though code.
I'm currently considering DevXpress XtraReports as a replacement for CR. So far I like what I see.
SQL Reporting Services probably aren't flexible enough for what you want as you don't really get a deep level of code manipulation.
Active reports let you get into the binding events and pretty much do whatever you want, however there are a couple of small bugs with active reports (like not being able to bind to a defaultview of a datatable) which make it a pain. Apart from that, it's highly flexible.
XtraReports are awesome but they're a lot pricier than Active Reports. Having said that, their support is fantastic and the reporting package is rock solid. I'd look at forking out the cash for them if possible.
Related
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
At this moment, all of our reports are currently written in stored procedures. We want to start moving this away from a SQL platform and rather to focus most of the logic in .NET code. Reasons include the use of our ORM entities, ease of debugging, parallel processing, more unification with business logic, etc.
The problem we face is that by moving our report logic into .NET code, we cannot deploy support fixes as easily as running a script on our production environment. Releasing binaries means that the whole business has to stop using our application, which is almost impossible during office hours.
One solution is to separate each report into a new project and release just that DLL. The problem with this is that we have over 500 reports. Maintaining that will be a nightmare.
Has anyone experienced something similar or have any other solutions to this problem?
Thanks,
Dave
Why not use Reporting Services? It is made for this! You can even train people in the business (non-devs) to create reports for you and publish them. There are so many features that users can just leverage. Authentication/Authorization, subscribe, export (PDF, Excel, Word), etc.
I wouldn't invest in rebuilding Reporting Services if I was you. I always stir away from writing reports as part of you application or in 'code'.
If you really, really want to do this (which I totally think you shouldn't do) then I would develop a separate service that generates reports (on a separate end-point) that you can call from your main application. Put a queue in the middle that stores 'report requests' when you need to update and the requests can be served after a restart.
Other option would be to go with dynamically loading assemblies. Let a filewatcher watch a folder and as soon as there is a new dll load it dynamically. Unloading is more difficult. You could restart the service when it is not so busy to get remove the old reports from memory or you need to create separate appdomains that you can unload.
A lot of options, but again, you will be wasting time by building and testing a custom report framework. I would go for plain SQL, even if you really like C#, this way you can hire a BI person that can just create reports instead of a dev.
I agree with a lot #bart's answer. My first reaction is that this seems like a unneeded reinvention.
However if you do need .net code and and convenience of declarative code, then why not use a DLR based language like iron python?
We've stored iron python in the db and loaded it on demand. Once jitted it's no different than any non dlr based code, deploying fixes was a dream.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I have to develop an ASP.NET MVC3 application in C# and Razor that has to gather data from a database, elaborate them and, according to the user's preference, display a graph based on user's preferences.
For instance the user might want daily figures or monthly, he wants it in a histogram rather than a cake graph.
I was wondering how can draw a graph in ASP.NET and even decide which kind of graph, etc. I guess they haven't created helpers for these tasks yet.
You have a couple of options:
1. Create your own charting control
Start from scratch or build upon MVC 3's ChartHelper web helper to build your own charts.
2. Use an 'off the shelf' component
Telerik make a great set of controls for ASP.NET MVC, including a chart. Take a look at their demonstrations to see if it fits your needs.
Well, here are a few suggestions for you -
Open flash charts, Google charts, or you can refer to the following question. There are a few suggestions too.
I personally would go for a solution using http://www.jqplot.com/, a jquery plugin that allows you to create all kinds of graph (really, they have lots of them) basing on raw data. Your backend then has to just produce the data, and the drawing is done by the javascript. for examples see http://www.jqplot.com/tests/pie-donut-charts.php
I would take a look at a third party tool to get this done for you. I have used Telerik's MVC extensions in the past and had good luck with them. Depending on your licensing requirements, there is a free or pay version.
There are ChartHelpers in MVC3
Check this:
http://weblogs.asp.net/jalpeshpvadgama/archive/2011/08/30/chart-helpers-in-asp-net-mvc3.aspx
There are many ways to skin this cat, but one good option is using the Telerik MVC Chart extension.
You could try one of the following C# libraries written to make it simpler to integrate Highcharts into ASP .Net
Highcharts.Net (sample project)
DotNet.Highcharts
I've used HighCharts before. This is a javascript charting library, but its easy to configure.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
Basically I have to choose a project methodology.
The components are not big (we develop components mainly for SAP connecting), however the team is rather big , dislocated and and very unorganized.
Besides how big is the team
which other questions should be taken into consideration?
Thank you
I've made very good experiences with answering these questions first:
How does the team prioritize work?
(I would recommend putting todos into a sequence building a backlog)
How does the team track what needs to be done?
(I would recommend breaking things down step-by-step into User Stories and track them using a tool like PivotalTracker)
How can you make sure the team is self-organizing?
(Let the team pull work from the backlog, run daily status meetings and a retrospective every couple of weeks)
How can you optimize how fast features get delivered in optimal quality? (This way of thinking should replace the idea of maximizing capacity utilization)
How can you make the work visible? (Visibility builds trust and momentum - you can start collecting metrics and putting up a screen showing all kinds of graphs)
One very useful question to assist in choosing any sort of method is "What projects can this not help me with?" It can be very difficult to obtain an answer; the usual way that supporters of a particular method respond is "of course method X can help you with any project." Thus they are saying either that all projects are the same, which is obviously not the case; or that they don't know what are the limitations of their method, and so will not be able to recognise when their method is not appropriate.
You say your teams are fairly unorganised. One of the best ways of introducing any new method is to provide tools - even very basic tools - that make it easier to follow the standards than not. An example of this was trying to improve the quality of development reports in a very large organisation - we provided a number of word processing templates, that made it easier to write a report using the templates (and hence the standards) than to write the report from scratch.
Personal note on my choice of language: I have worked with software development methods for many years, and to me "methodology" is the study and comparison of different methods. A particular way of, for example, managing a project, is a method, not a methodology.
I guess this really depends on a number of factors, for instance some contracts require you to use PRINCE project management which is rather complex.
If you dont have any external factors regarding the methodology you choose I would just do a bit of research and see which you think fits your team best.
I havent had chance to use Agile yet although I took a course on it and I liked what I heard, it seemed fairly straightforward which is a bonus.
One thing to remember though is you dont have to stick to one methodology if you find something isnt working for you then make changes.
Questions I would consider though would be the length of the project, Size of the team, Are the team each working on individual parts of the project or are there multiple people working on the same area, Time it will take to implement a methodology, Any costs involved?, Any training involved?
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I am getting a large website developed. The develop has asked me which do I prefer either sitefinity or umbraco. The site will be similar to wikipedia where users can come and edit pages without having to login. I would like to ask your opionions on these two csm systems and which one would you recommend for content website with a community feel and wiki features. Thanks
I disagree with #IrishChieftain's answer and would most certainly go with Umbraco!
I've built a number of websites in Umbraco (and have got my certification) and I have to say I absolutely love it!
XSLT is very easy to learn unless you come across some really complex functionality. But even then, you can resort to ASP.NET if you don't want to learn XSLT.
If it's a non-commercial (charity?) site, you may be able to obtain the community version of Sitefinity for free if you display their logo in the footer. Sitefinity has a lot to offer, including an ORM.
Umbraco on the other hand has, for me personally, an unhealthy reliance on XSLT to customize the content. That was the main reason I didn't go with it.
I would go for Sitefinity or N2 for this.
Contrary to what others have suggested, I find the use of XSLT in Umbraco advantageous on numerous levels. In particular the time it takes to make changes and see their results is very quick. Just create transform and put a macro in your page and you can see the results. You get access to all the site data as necessary directly in the transform. Also, the fact that you are just working in HTML within the XSL transform means that it would be easy for a non .NET web developer to make changes too. I've found that although this is a .NET based CMS there is little reason to perform anything in code so you only really have to have open the CMS and your favourite text editor (I'd suggest using a text editor and accessing static files this way (through FTP or whatever if you're not logged in to the machine the CMS is on) rather than through the CMS interface.
If you're looking for a CMS for a large website and with wiki features, look at Kentico CMS. It was designed for large number of documents and it's the most advanced .NET CMS I have seen.
It has a built-in user-contribution module that allows public users to create new content items from the live site and you can control who can do that (all/authenticated/selected roles) and what type of content items (news/pages/knowledge base articles) they can create. Kentico has a free version, but for this type of functionality, you would need a paid license. Still, if it meets your needs for user contributed content, it may pay for itself very quickly since AFAIK no other .NET CMS has this built-in.
Umbraco was possibly the worst CMS a few years back when it was in version 2. Things have changed though and, for me, it jumped to the top of the list when it hit version 4. I find Umbraco to be the easiest CMS to manage and develop in. The XSLT is probably the hardest thing to get used to here, but like others mentioned it isn't a show stopper because you can still do everything using Umbraco data access layer. The one thing i absolutely love about it is how easy it is for the end user. The UI is very intuitive and easy to grasp. The only downside i see with Umbraco is bugs and there are a whole lot of them even in version 4 releases. Most of them are UI bugs. However, some do affect advanced features such as packages. I would still go with Umbraco if i had to pick a choose a CMS for a project of any size.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
What's the best .NET PDF editing library available, and why?
It needs to be used on an IIS web-server.
Specifically, I need to edit a PDF which was generated by reporting services.
Factors I'm interested in:
Speed
Memory Consumption
Price
Quality of documentation
Library stability
Size of library
Whatever else you think is important
Have a look at iTextSharp. iTextSharp is a port of the iText , a free Java-Pdf library.
To quote iText:
You can use iText to:
Serve PDF to a browser
Generate dynamic documents from XML files or databases
Use PDF's many interactive features
Add bookmarks, page numbers, watermarks, etc.
Split, concatenate, and manipulate PDF pages
Automate filling out of PDF forms
Add digital signatures to a PDF file
And much more...
Syncfusion Essential PDF is the best. I have been using it for years. Also, Syncfusion provides a best support compared to other vendors.
I've researched quite a few tools that aren't offered specifically by Adobe, and the two that come to mind right away are Atalasoft's DotImage and LEADTools. They are both rather pricy, but provide server licensing and use the ultra-fast C++ GDI libraries.
There's a freeware .Net library called PDFSharp that uses .Net native GDI+, so it's slower and memory intensive. But then again, it's free.
webSupergoo have a super PDF library for .NET
Their ABCpdf product is designed for use with web servers. The documentation is clear and the installation is accompanied by an example website project.
If you visit their website you should see a link to the live demonstration:
http://www.websupergoo.com/abcpdf-1.htm
ABCpdf 7 is the current version. The performance and reliability is excellent. The standard version costs $329 USD, but sometimes an installation can be obtained for free. The download size is about 30 MB. Supports both 32 and 64-bit servers.
I've used http://www.tallcomponents.com/ mainly to fill in pdf forms and then flatten the pdf. Seems to work fine. I haven't had any issues.
I don't know if it's the best, but I use PDF-Writer.NET, for which I paid $89. I have used it in several production applications. I like it because it's easy to set up and use, and it doesn't require a lot of coding, which makes it easier for new developers to ramp up on it.
Before that I was hacking together PDFs using an open source library and the Acrobat interop DLLs. That was rough.
Not sure about the PDF part but Aspose has a library for PDF. I've used their word library for generating word documents. their documentation is very decent in my opinion.
http://www.aspose.com/categories/file-format-components/aspose.pdf-for-.net-and-java/default.aspx
Check out Aspose.Pdf for .NET. It has a nice API, is well documented and has a light footprint.