46 Answers, 1 is accepted
To be honest, we have not tested Telerik Reporting under Mono, but we do not believe that it would work as we’re a multi-platform product (web and win) and have multiple dependencies (including OS ones), unlike the ASP.NET controls which require a browser and simulation of the .NET runtime only.
We’ve currently got a lot of other things on our hands, so support for Mono for Telerik Reporting is currently with low priority on our list.
Best wishes,
Steve
the Telerik team
Instantly find answers to your questions on the new Telerik Support Portal.
Check out the tips for optimizing your support resource searches.
Nothing has changed since last post. In fact now we support two more platforms (Silverlight and WPF), which makes it even more questionable whether we would be able to work on Mono in the near future.
Greetings,
Steve
the Telerik team
I am trying to run Telerik Reporting Q1 2012 under Mono 2.10 + ASP .NET MVC and was unsuccessfull so far :(
For me it related to this bug in Mono: http://lists.ximian.com/pipermail/mono-bugs/2010-March/098641.html
because Reporting uses RegionInfo class to get current region and it might be NULL in Mono.
I am digging into it now and will let you know if any progress
It now works in my ASP .NET MVC2 project well. If someone wants - i can share the complete solution.
I would really appreciate if you could send me that solution!
My email is rav@risetechnology.com.au
Rav
let me post it here instead.
i will do it in few hrs
upd: one problem i found while testing - is that Charts are partially workable in the Reports. This issue is related to some unsupported methods of Graphics class in Mono.
We would like to assist you with any information and/or core changes you may need. Built-in support for Mono has always been with lower priority in our plans, but with your help we may be able to help the Mono community sooner than we thought.
Please, send us any questions you may have and we will try to address them. We would also like to get a list of changes you have made (and which you plan to make) to the source which allowed you to run Telerik Reporting under Mono. We would like to review these and find a way to include them in Telerik Reporting. Feel free to open a new support ticket in order to send us your project (unfortunately, sharing the source code of the product is not allowed publicly in the Forums, thus the request). We are ready to offer you a complimentary extension of your subscription for helping us with this project. How does this sound?
We are excited by this opportunity!
All the best,
Vassil Petev
the Telerik team
BLOGGERS WANTED! Write a review about Telerik Reporting or the new Report Designer, post it on your blog and get a complimentary license for Telerik Reporting. We’ll even promote your blog and help bring you a few fresh readers. Yes, it’s that simple. And it’s free. Get started today >
sounds good, thanks!
so let me go over my changes..
i worked with Q1 2012 6.0.12.215 sources of Telerik Reporting; i was able to build them under MonoDevelop 2.8.8.4 with platform target Mono 2.10.8.
First thing as i mentioned before (server exception 500 error) is related to RegionInfo.CurrentRegion
http://lists.ximian.com/pipermail/mono-bugs/2010-March/098641.html
Workaround:
CultureInfo ci = CultureInfo.CurrentCulture;
// If current culture is invariant then region is not available.
if
(ci !=
null
&& CultureInfo.BootstrapCultureID != 0x7F)
currentRegion =
new
RegionInfo(CultureInfo.BootstrapCultureID);
so the best way - is to add a static variable currentRegion and replace all occurences of accessing property RegionInfo.CurrentRegion:
- Telerik.Reporting\Drawing\PageSettings.cs line 261
- Telerik.Reporting\Drawing\Unit.cs line 145
- Telerik.Reporting\Report.cs line 115
- Telerik.Reporting\ReportSectionBase.cs line 16
- Telerik.Reporting.Pdf\PdfPageDictionary.cs line 23
- Telerik.Reporting.Pdf\PdfPageDictionary.cs line 43
Open Telerik.Reporting.Processing\ExtensionManager.cs locate #if DEBUG directive (line 12) which contains extension types
replace the #else section with it so you should have:
static
readonly
string
[] extTypes =
new
string
[]
{
"Telerik.Reporting.ImageRendering.ImageReport, Telerik.Reporting.ImageRendering"
+ currentVersion
//... etc
Method GetExtensionTypes must be replaced as well:
static
IEnumerable<
string
> GetExtensionTypes()
{
return
extTypes;
}
Put all compiled assemblies together (why dont XCOPY to some common build output directory) and change references from Telerik.Reporting GAC to the local assemblies named Telerik.Reporting.XXXXX.
Remember, when you do this - you not able to open report with Visual Studio designer, so it would be better to have reports in different Class Libraries which are references to the GAC version of Telerik.Reporting assembly.
Last thing - in order to use ASP .NET MVC application, you should ignore ASPX and AXD in global.asax.cs:
public
static
void
RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute(
"{*allaspx}"
,
new
{ allaspx = @
".*\.aspx(/.*)?"
});
routes.IgnoreRoute(
"{*allaxd}"
,
new
{ allaxd = @
".*\.axd(/.*)?"
});
Do it because you have HTTP handler registration of the Telerik Reporting in web.config
<
add
name
=
"Telerik.ReportViewer.axd_*"
type
=
"Telerik.ReportViewer.WebForms.HttpHandler, Telerik.ReportViewer.WebForms, Version=6.0.12.215, Culture=neutral, PublicKeyToken=a9d7983dfcc261be"
path
=
"Telerik.ReportViewer.axd"
verb
=
"*"
preCondition
=
"integratedMode,runtimeVersionv2.0"
/>
The example which works for me on Mono, Debian ASP .NET MVC Project created with VS 2010:
http://www.4shared.com/zip/ApvtTmW2/Report.html
I removed all pre-compiled Telerik assemblies, so you should build them from scratch, using my post.
Right now i am trying to get Charts working with Mono, but due to some non-implemented things in System.Graphics class it does not work as expected. Mono has its own GDI+ implementation (libgdiplus, http://www.mono-project.com/Libgdiplus) and should work fine in most (but not 100%) cases.
For example one of the problem i found so far - Telerik.Charting\ChartGraphics.cs has methods EnumerateMetafile with overrides:
public
void
EnumerateMetafile(Metafile metafile, Point destPoint, Graphics.EnumerateMetafileProc callback)
{
chartGraphicsGraphics.EnumerateMetafile(metafile, destPoint, callback);
}
I just found this problem with Mono Migration Analyzer http://www.mono-project.com/MoMA
I am still digging into it and trying to get Charts working with Mono as well. Will let you know about my progress!
p.s. How do i attach ZIP files? i believe i was able to do it before...
Excellent, thank you for this information. I have forwarded it to our developers for review and testing. Hopefully you will manage to get the chart problem fixed.
You can send us the project in a new support ticket.
Thanks again! Keep us updated.
All the best,
Vassil Petev
the Telerik team
BLOGGERS WANTED! Write a review about Telerik Reporting or the new Report Designer, post it on your blog and get a complimentary license for Telerik Reporting. We’ll even promote your blog and help bring you a few fresh readers. Yes, it’s that simple. And it’s free. Get started today >
i am working with another project now and had no chances to figure out any workarounds on the chart problem.
I will keep you guys informed about my progress.
Any progress with the mono?
I am going to work on the chart problem
I'm also interested by having reporting working under mono.
Can you tell me if the patches suggested by Igor have been merged in the latest code release (Q3 2012) ?
Thanks
Igor has not sent any project or feedback after the last post and we have not made any changes on our end yet.
Greetings,
Steve
the Telerik team
HAPPY WITH TELERIK REPORTING? Do you feel that it is fantastic? Or easy to use? Or better than Crystal Reports? Tell the world, and help fellow developers! Write a short review about Telerik Reporting and Telerik Report Designer in Visual Studio Gallery today!
Sorry for delays, i have high load on another project and unable to review Reporting solution for Mono.
Did you apply anything from my post Apr 23, 2012? Vassil told he forwarded it to the Developers team.
According to the changes i made, the only problem for Mono persists - with Charts.
Will try to review it in the future against the latest Telerik Reports and Mono version.
From my side, I tried applying a patch similar as your description, but I did not succeeded in having it running under Mono. It was returning blank pdf.
I had to implement the report generation on a windows server with a proxying for the mono machine...
i am not sure but it's possible due to version mismatch,
notice that i built the sources with MonoDevelop.
Even if I did a work-around for now, I'm still interested in having the reporting under Mono. If you have a compiled dll, I can test it with my application and provide feedback.
Best regards
Frederic
Has there been any update on this (Telerik Reporting in Mono)? I'm also very keen to get this happening, actually I don't care so much about the report viewer, I just want to have a report generator service which can run on Linux OS.
Any assistance would be appreciated.
Rav
Currently Telerik Reporting does not support Mono and since the last update by Igor there is no change and it is not in our short plans to revise this possibility.
If there is any chance it will be announce through our official channels, meanwhile if anyone has some update on this we will be glad to check it.
Kind regards,
Stef
the Telerik team
Have you tried the new visualization options in Telerik Reporting Q1 2013? You can get them from your account.
I am overloaded with my project with a different tasks right now and extremely sorry that i have no time to complete that Mono support.
It is anyway in my TODO list, and i will re-visit it for sure next month.
If someone could help me with it - i kindly ask to provide some tests with WMF graphics inside Telerik Reports under Mono (since there was a problem with GDI+ support on Mono for WMF/EMF format).
We can suggest to test with the latest release of Telerik Reporting Q1 2013 and the newly introduced Graph item for charts.
Kind regards,
Stef
the Telerik team
Have you tried the new visualization options in Telerik Reporting Q1 2013? You can get them from your account.
Rav ask me to test latest telerik reporting with latest mono.
I've build mono from sources and tested some basic functionality.
For build latest mono in ubuntu/lubuntu 12.10 you can use this script: https://github.com/jvlppm/build_monodevelop/
Also for run my project you need to build xsp. For doing that you only need to add this line to script: install xsp
I've written mvc project that can generate report on server side and save report as file.
I've tested on simple report, that contains only text. Exporting to pdf not working, but export to MHTML, RTF, HTML working fine.
You can find code here mvc2.zip.
For testing you can change format in ReportHelper class:
var pdf = reportProcessor.RenderReport("PDF", instanceReportSource, null);
To run project you need to open solution in monodevelop and run solution. Navigate in browser to http://127.0.0.1:8080/home/exportpdf
File should be saved to App_Data/Reports
I've tested more complex reports, but mono crushed.
I hope with sources you can find why export to pdf not working and maybe make possible to create more complex reports.
P.S. I can share with you copy of my virtual machine with configured mono and mono develop.
P.P.S. in virtual environment lubuntu working faster than ubuntu and fully compatible with ubuntu.
The problem you faced with - is related to the GDI+ partial implementation in Mono. PDF generation, as well as Graph, uses in-memory GDI+ WMF routine to make a drawing.
See this topic of gdiplus library http://wiki.winehq.org/GdiPlus (Metafile handling (WMF, EMF, EMF+) is not really implemented)
Here is the link to svn repository (which is not available at the moment) of Mono implementation http://www.mono-project.com/Libgdiplus
They migrate to git: https://github.com/mono/libgdiplus
great news! i didnt know that. have you tried this one with your Mono?
do you have the crash details in Mono, when you rendering PDF? Is anything there about EMF/WMF codecs?
System.Threading.ThreadAbortException: Thread was being aborted
at Telerik.Reporting.Drawing.UnitHelper.ConvertToUnits (Double pixels, UnitType type) [0x00000] in <filename unknown>:0
at Telerik.Reporting.Drawing.Unit.ChangeType (UnitType type) [0x00000] in <filename unknown>:0
at Telerik.Reporting.Drawing.FontFacade.ToGdiFont (IFont font) [0x00000] in <filename unknown>:0
at Telerik.Reporting.Processing.VisualElement.Telerik.Reporting.Drawing.IFont.ToGdiFont () [0x00000] in <filename unknown>:0
at Telerik.Reporting.Processing.MeasureContext.MeasureString (System.String text, IFont font, SizeF layoutArea, System.Drawing.StringFormat stringFormat, System.Int32& charactersFitted, System.Int32& linesFilled) [0x00000] in <filename unknown>:0
at Telerik.Reporting.Processing.TextRenderer.SplitText (IMeasureContext context, System.String text, IFont font, RectangleF bounds, System.Drawing.StringFormat format, Telerik.Reporting.Processing.DrawTextContext drawTextContext, System.Drawing.RectangleF& textBounds) [0x00000] in <filename unknown>:0
at Telerik.Reporting.Processing.TextRenderer.SplitText (IMeasureContext context, System.String text, IFont font, RectangleF bounds, Double angle, System.Drawing.StringFormat stringFormat, System.Drawing.RectangleF& textBounds) [0x00000] in <filename unknown>:0
at Telerik.Reporting.Processing.TextBoxUtil.FillTextElement (ITextContainer textContainer, RectangleF layoutBounds, IMeasureContext context) [0x00000] in <filename unknown>:0
at Telerik.Reporting.Processing.TextBox.MeasureItem (IMeasureContext context, SizeRF availableClientSize, Boolean canGrow) [0x00000] in <filename unknown>:0
at Telerik.Reporting.Processing.TextBox.MeasureItem (IMeasureContext context, SizeRF availableClientSize) [0x00000] in <filename unknown>:0
at Telerik.Reporting.Processing.TextBox.MeasureContent (IMeasureContext context, SizeRF availableClientSize) [0x00000] in <filename unknown>:0
at Telerik.Reporting.Processing.LayoutElement.MeasureCore (IMeasureContext context, SizeRF availableSize) [0x00000] in <filename unknown>:0
at Telerik.Reporting.Processing.VisualElement.MeasureCore (IMeasureContext context, SizeRF availableSize) [0x00000] in <filename unknown>:0
at Telerik.Reporting.Processing.ProcessingElement.MeasureCore (IMeasureContext context, SizeRF availableSize) [0x00000] in <filename unknown>:0
at Telerik.Reporting.Processing.LayoutElement.Measure (IMeasureContext context, SizeRF availableSize) [0x00000] in <filename unknown>:0
at Telerik.Reporting.Processing.AbsolutePositionLayout.MeasureChildItems (IMeasureContext context, SizeRF availableClientSize) [0x00000] in <filename unknown>:0
at Telerik.Reporting.Processing.AbsolutePositionLayout.MeasureContent (IMeasureContext context, SizeRF availableClientSize) [0x00000] in <filename unknown>:0
at Telerik.Reporting.Processing.ReportSectionBase.MeasureContent (IMeasureContext context, SizeRF availableClientSize) [0x00000] in <filename unknown>:0
at Telerik.Reporting.Processing.LayoutElement.MeasureCore (IMeasureContext context, SizeRF availableSize) [0x00000] in <filename unknown>:0
at Telerik.Reporting.Processing.VisualElement.MeasureCore (IMeasureContext context, SizeRF availableSize) [0x00000] in <filename unknown>:0
at Telerik.Reporting.Processing.ProcessingElement.MeasureCore (IMeasureContext context, SizeRF availableSize) [0x00000] in <filename unknown>:0
at Telerik.Reporting.Processing.LayoutElement.Measure (IMeasureContext context, SizeRF availableSize) [0x00000] in <filename unknown>:0
at Telerik.Reporting.Processing.StackLayout.MeasureContent (IMeasureContext context, SizeRF availableClientSize) [0x00000] in <filename unknown>:0
at Telerik.Reporting.Processing.Group.MeasureContent (IMeasureContext context, SizeRF availableClientSize) [0x00000] in <filename unknown>:0
at Telerik.Reporting.Processing.LayoutElement.MeasureCore (IMeasureContext context, SizeRF availableSize) [0x00000] in <filename unknown>:0
at Telerik.Reporting.Processing.VisualElement.MeasureCore (IMeasureContext context, SizeRF availableSize) [0x00000] in <filename unknown>:0
at Telerik.Reporting.Processing.ProcessingElement.MeasureCore (IMeasureContext context, SizeRF availableSize) [0x00000] in <filename unknown>:0
at Telerik.Reporting.Processing.LayoutElement.Measure (IMeasureContext context, SizeRF availableSize) [0x00000] in <filename unknown>:0
at Telerik.Reporting.Processing.StackLayout.MeasureContent (IMeasureContext context, SizeRF availableClientSize) [0x00000] in <filename unknown>:0
at Telerik.Reporting.Processing.Report.MeasureContent (IMeasureContext context, SizeRF availableClientSize) [0x00000] in <filename unknown>:0
at Telerik.Reporting.Processing.LayoutElement.MeasureCore (IMeasureContext context, SizeRF availableSize) [0x00000] in <filename unknown>:0
at Telerik.Reporting.Processing.VisualElement.MeasureCore (IMeasureContext context, SizeRF availableSize) [0x00000] in <filename unknown>:0
at Telerik.Reporting.Processing.ProcessingElement.MeasureCore (IMeasureContext context, SizeRF availableSize) [0x00000] in <filename unknown>:0
at Telerik.Reporting.Processing.LayoutElement.Measure (IMeasureContext context, SizeRF availableSize) [0x00000] in <filename unknown>:0
at Telerik.Reporting.Processing.LayoutElement.MeasureElement (Telerik.Reporting.Processing.LayoutElement elementToMeasure, IMeasureContext context) [0x00000] in <filename unknown>:0
at Telerik.Reporting.BaseRendering.RenderingExtensionBase.MeasureReportCore (Telerik.Reporting.Processing.Report report, IMeasureContext measureContext) [0x00000] in <filename unknown>:0
at Telerik.Reporting.ImageRendering.PdfReport.MeasureReportCore (Telerik.Reporting.Processing.Report report, IMeasureContext measureContext) [0x00000] in <filename unknown>:0
at Telerik.Reporting.BaseRendering.RenderingExtensionBase.MeasureReport (Telerik.Reporting.Processing.Report report) [0x00000] in <filename unknown>:0
at Telerik.Reporting.BaseRendering.RenderingExtensionBase.Render (Telerik.Reporting.Processing.Report report, System.Collections.Hashtable renderingContext, System.Collections.Hashtable deviceInfo, Telerik.Reporting.Processing.CreateStream createStreamCallback, Telerik.Reporting.Processing.EvaluateHeaderFooterExpressions evalHeaderFooterCallback) [0x00000] in <filename unknown>:0
First thing as i mentioned before (server exception 500 error) is related to RegionInfo.CurrentRegion
http://lists.ximian.com/pipermail/mono-bugs/2010-March/098641.html
Workaround:
CultureInfo ci = CultureInfo.CurrentCulture;
// If current culture is invariant then region is not available.
if
(ci !=
null
&& CultureInfo.BootstrapCultureID != 0x7F)
currentRegion =
new
RegionInfo(CultureInfo.BootstrapCultureID);
so the best way - is to add a static variable currentRegion and replace all occurences of accessing property RegionInfo.CurrentRegion:
- Telerik.Reporting\Drawing\PageSettings.cs line 261
- Telerik.Reporting\Drawing\Unit.cs line 145
- Telerik.Reporting\Report.cs line 115
- Telerik.Reporting\ReportSectionBase.cs line 16
- Telerik.Reporting.Pdf\PdfPageDictionary.cs line 23
- Telerik.Reporting.Pdf\PdfPageDictionary.cs line 43
Not sure, if it help
Let's wait them to answer
The Telerik Reporting source code is available to all Subscription license holders. If you have purchased a subscription for either Telerik Reporting or Telerik DevCraft, you can download the product source code from:
your account --> Products & Subscriptions --> Reporting (or DevCraft) --> Download installer & other resources --> Browse all product files.
Kind regards,
Vassil Petev
the Telerik team
Have you tried the new visualization options in Telerik Reporting Q1 2013? You can get them from your account.
as you told in this thread before, you have forwarded my proposals (http://www.telerik.com/community/forums/reporting/telerik-reporting/does-telerik-reporting-work-in-mono.aspx#2081803) to the Telerik development team. Do you know, if anything was changed and the workaround for Mono has been applied?
Our development team is well acquainted with the progress of this forum thread and your proposals. We have discussed the pros and cons of Mono, and we don't find it reliable enough to shift up the priority of supporting it.
Any community member interested in using our product in Mono, including us as a team, will appreciate your updates, and as far as it is related to Telerik Reporting technical questions, we will be glad to provide you all the needed support.
All the best,
Stef
the Telerik team
Have you tried the new visualization options in Telerik Reporting Q1 2013? You can get them from your account.
I am glad to know that.
Please tell me if it is possible to submit some modifications of your Reporting sources, or you probably could add a separate branch for Mono?
Rav and Andrey are able to test your product with the Linux and Mono, so i think we could mix up together.
We held an internal discussion about supporting Mono last week, and we think that the effort we'll put into supporting Mono will not pay off. The interest in the platform has decreased substantially in the past several months. The opportunity was there a few years ago (which we have missed obviously), but this is not the case today.
We prefer to focus our efforts in developing features which to cover new markets, such as support for MVC, HTML5 and mobile.
We hope this will not stop you from collaborating with other community members and continue working on this challenge.
We are sorry to bring you this news.
Best Regards,
Vassil Petev
the Telerik team
Have you tried the new visualization options in Telerik Reporting Q1 2013? You can get them from your account.
yes i understood that and totally agree with you. Porting on Mono is not a high priority for now, but part of your community uses ASP .NET MVC running on Linux Servers, with Telerik technologies, such as KendoUI, and they work perfectly (i have started from Telerik Extensions for MVC, then migrated to KendoUI). The point of interest is to cover all Telerik web technologies running with Mono as well as .NET Framework. So i believe we will continue with our researches. The question is - could Telerik help with it by sharing a version of Telerik Reporting sources (maybe to the common storage, such as Codeplex), where it could be edited by community and all neccesary changes will be submitted for Mono compatibility.
Thank you!
Telerik Reporting as our other products is an intellectual property (IP) of Telerik, so its source code cannot be published in Codeplex or other storage for open source hosting.
Your collaboration is in the spirit of the idea of our community and we appreciate your undertaking. However, please keep in mind the license agreements protecting our IP and do not redistribute the source code on the net.
All the best,
Stef
the Telerik team
Have you tried the new visualization options in Telerik Reporting Q1 2013? You can get them from your account.
with my big respect to your company i am not going to redistribute any part of your IP.
It was a proposal for Telerik about such possibility.
I believe we will find out a workaround for the Mono support ;)
Telerik Reporting does not include Mono support and such is not planned.
If other community members have news, we will appreciate your updates here.
Regards,
Stef
Telerik