Mono(non-Windows) Report Writing? - asp.net

we are making an application to run on both Mono and .Net. The application is web based, so it uses ASP.Net.
We are now trying to find some kind of reporting software. We would prefer if there was a designer that end users(non-programmers) would be able to use like Crystal Reports.
Currently, we are not finding anything that looks even barely capable. We will have shell access on the server that Mono is running from, so it doesn't matter if there is no true web-preview or something as long as it's capable of creating a PDF on the server in an automated way.
Has anyone seen any competent report writing software that runs on Mono? (Also, licensing doesn't matter as long as it's not GPL)
edit:
Really, even running something that isn't Mono such as PHP or something else light on dependencies would be ok as long as it would run on *nix systems. I just am having trouble finding anything for non-windows systems for the server and Windows systems for the designer(this is the justification for the linux tag)

We've finally found a reporting solution. It's not quite as pretty as Crystal or something like that, but it works, and that's what counts.
It is called FlexCel.Net http://www.tmssoftware.com/site/flexcelnet.asp
You basically design reports in Excel using special markup(actually, you can even design reports in OpenOffice cause thats what I had to do cause there is something wrong with Excel licensing for me)
It's pretty powerful and cheap, about $200 USD. I have already gotten a demo to run on Mono after about 5 hours of tinking and trying to understand how the demos worked. It's pretty neat though and well put together from what I've seen.. I'll come back and edit this answer if we later decide that this software is not good and we don't recommend it.
They commercially support running their software on Mono(except for the Winforms portions) and you also get full source code, so it really is a good deal. The range name = reporting band is a bit strange in the template, but it's still seeming better the more we use it.

Have a look at itextsharp
Your users can create PDF documents with fields, and then you can use the itextsharp library to populate it.
One thing I have been looking at recently is Jasper reports. Its just like Crystal Reports, and with JasperServer users can connect to it using the iReport editor. The hurdle I have is getting it to play nice with Mono See Running report on JasperServer from C#

Related

Migrate Vb to Vb.net

Hai Friends
I having the project in Vb i want to migrate that project in the vb.net.any tool available pls inform me.i have tried a lot.i have not installed the visual basic.with the help of remote server i am running that project.
Quite a few versions of Visual studio have a built-in Upgrade Wizard to help you with converting VB6 to Vb.Net code. I know that VS 2005 Pro has it but I'm not sure what other versions.
Here's an article about how to go about upgrading. And there's even a complete free e-book about it as can be found here.
Aside from the sources Ho1 mentions some of the biggest pitfalls are the lack of control arrays, printing and graphics. The printing can be partly mitigated by the use of Printer Compatibility. You can download the PCL as part of the Visual Basic Power Pack 3.0.
If you have room in your budget I would recommend ArtinSoft. www.artinsoft.com. They have a trial version that you can test out. They have been named Microsoft's preferred VB to .NET upgrade solution provider.
I have trialed artinsoft's upgrade companion.
I have also looked at vbmigration partner.
This is my, very limited, anecdotal experience.
On vbmigration partner they have some sample conversions of projects they found on planat sourcecode.
One is call ezdatabase.
If you run vbmigration partner's conversion it will crash if you click the connect/disconnect button more than twice.
On the vb6 version you can click this all day without crashing.
This project is small enough to put through the artinsoft trial of vbuc in its entirety, so i did that.
However after i converted it, there seemed to be a lot of compile errors.
It's not a fair comparison as obviously vb migration partner had lots of opportunity to perfect it before putting the converted code on their website. and yet it was easy to crash.
However I was also disappointed with artinsoft's tool as this was just a small (few hundred lines) crud application and yet there were a lot of compile errors.
Make of this what you will. I would like to hear of others' experiences.
EDIT : On the other hand if this is a true test of the relative capabilities of vb migration partner and artinsoft vbuc then vb migration arner is clearly the winner in this example

Visual Studio Console Windows

I have been curious to know what is the purpose of having a console window in .Net? I have not seen applications that are console window based. Is there such a thing as a console based application?
Yes, the C# compiler itself is a prime example, csc.exe.
While overall trend on Windows is to build GUI based apps, there are a lot command line tools out there, especially in the world of development (Compilers, Unit Testing Tools, Code Coverage Tools, Code Analysis Tools, etc).
Typically you won't see command line applications built for non technical users.
The advantage of simple command line tools is that they can be mixed and matched in ways that the original authors may have never anticipated so long as they understand a common medium of exchange, usually plain text. The *nix world has thrived on this principal, but as I mentioned above, this is partly due to the fact that until only in the last few years or so, usually only technical inclined people used those operating systems and were comfortable using command line tools.
GUI applications tend to be much more rigid in design, you're usually limited to only the functionality the author of the application anticipated. The flip side is they tend to be easier to understand and use intuitively.
Actually people mostly use Console Applications for samples and trainings. But there should be some conditions where Console applications are really needed.
Command-line programs can be hooked together like scripts to do interesting things using the |, <, and > operators.
Personally, at work I use small console-based applications in conjunction with Cygwin and shell scripts for better automation of the processes that those small tools need to perform. Like Joe Chung, I use pipes and redirection a lot, for example to save log files. Cygwin(/Linux) is much better at that sort of thing than Windows.
In Visual Studio, I sometimes use the console for "old-school" style debugging, like watching the flow of events when I do things in a Form. It can also be handy to watch when threads begin and end.
Consoles are great for outputting debug messages. I work on a GUI app that, for developers, outputs a lot of stuff to the console but for "real users" doesn't give them all the debugging info.
The entire .NET SDK is console based. Visual Studio is just value add ontop of it.
I think its most important to remember that console applications dont mean 'command line applications', they really are applications which have an interface that is based on stream I/O -
Console applications are very easy to interact with programatically since their interface is relatively simple.
Also, no windowed UI - means you can avoid alot more interaction with unmanged code.
So - there is certainly plenty of room for console apps in .NET

how to write code in asp.net to stop reverse engineering of asp.net application

We are having an application that is downloadable. We want to stop the application being reverse engineered by someone to lose our business. It there any way to stop this?
What do you mean by an downloadable application? You are talking about ASP.NET applications in the title of the question, but that's not a kind of application which can be downloaded. If you have a Console/WinForms/WPF-Application that has compiled binaries, you could use code obfuscation tools to make reverse engineering harder.
Best Regards
Visual Studio (usuall) comes with Dotfuscator (community edition). Look in your Visual Studio Tools program files entry.
PreEmptive Solutions’ Dotfuscator is
the leading .NET Obfuscator, Compactor
and Watermarker that helps protect
programs against reverse engineering
while making them smaller and more
efficient. Dotfuscator Professional
Edition is designed to stop even the
best of decompilers from producing
useful output. It provides
comprehensive and efficient .NET code
development and deployment.
I've had a similiar problem. I had a server based piece of software that was loaded onto a server within the customer's premises. This meant anyone half technical could copy the files from the server onto disk and re-install with some know-how onto another server. Basically, stealing my work.
I wrote in numerous measures, I obfuscated the code and I put hooks into all corners of the server (registry, database, root of drive) so if the code was installed elsewhere the system wouldn't find these items and lock itself up. I even went to the lengths of self encrypting some of the source files and then deleting the encryption tool itself. Unfortunately, if anyone wants to steal the software however, they still can. You have to realistically judge how much effort you must put it to stop a percentage of thefts. I love Roeder's Reflector, but it's programmes like this that allow a competent programmer an insight into your protection code and circumvent it.
Have you looked at 3rd party products like Xheo: http://www.xheo.com/products/codeveil/?gclid=CL-Tjoye7psCFdYB4wodHGVZAQ?
I found this on SO too: Protect ASP.NET Source code
I hope this helps.

Divorcing ASP.NET & SQL SERVER what alternative do you suggest? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 8 years ago.
Improve this question
I have been developing in asp.net since its existence (also classic asp before that) and also I have been using SQL server as my back-end database.
After serious consideration, I now want to change the language I use. Considering the OOP capabilities of the .NET platform, what other languages do you suggest that I start learning instead of ASP.NET and why?
Also what should I use as a database? I have no experience in databases other than the SQL Server.
Django would get my vote.
Like you, I'd been using ASPNET since its creation and then a job forced me to use PHP. Then another. And another. I got to the point where 90% of my time was spent doing PHP and I didn't want to split my time between two completely different work-flows so I just went with it.
PHP, as you may or may not be aware, is a complete scrotum of a language when compared against the relative beauty of languages like C# or even VB.NET. And it's not getting better any way soon. Development frameworks mean you have to upload half-a-million files for each project and it all just feels unneccessary.
So about two months ago I started to look into alternatives. I use Linux now so I bump into Python quite a lot of the time. It looks pretty enough. It's always pretty well formatted (by design) and it has fairly excellent OOP techniques and opportunities.
Then I learnt about the Django ORM so I thought I'd make a quick site with some basic interactive features. I made a secret santa website for my girlfriend's family. Multiple forms, authentication, listing and detail pages and a splash of AJAX. Took me (a complete uber-novice) two days to get functional and the rest of the week to beautify (I'm a slow designer).
Other benefits include its superb built-in caching, a community that really knows how to program stuff, pre-made, reusable apps that you can just plug into your site and go, and python's easy_install and pip that make getting modules so simple. Oh and unlike ASPNET, it'll run on any OS which can make for considerable savings for personal projects.
I've since ported the rest of my PHP sites (and those that I have to maintain) to it and I'm about to start porting over my ASPNET projects. I'm happy.
Databases are pretty much a non-issue in Django. You pick one that's right for the size of your project, plug it in and the ORM handles all the DBIO.
I use SQLite for small-to-medium projects and a MySQL cluster for large projects.
I would use PostgresSQL for your database. It is by far the most feature complete of the open source databases. Though MySQL seems to be regarded as the best for speed. If cost is no object then oracle is obviously a big player.
In terms of language Java is going to be your best bet for similarity to the .Net languages. It is strictly typed and OO like C#. And is widely used in large enterprises, much like .NET.
Of course if you are changing just for the sake of change then maybe its better to switch to something more different. Ruby and Python are the big dynamic languages these days and will offer a different perspective.
Ruby on Rails seems to be very nice choice. Only it is a bit too different and bit too weird. But seems to be most effective, too. RoR is database agnostic, so the choice of database is not about syntax. You don't need to think about which database you use when writing application. You just use RoRs methods to access database and it will automatically wire it to the DB engine.
Or go with PHP and MySQL, it is proven and widely spread. I myself was using MS SQL Server first and switched to MySQL without problems. PHP is a bit dirty language, but it is comfortable to use and well supported and documented, too. If you decide to go this way, try ZEND framework, it solves lots of things and makes writing web applications much easier.
Use Mono, it runs on Linux, Mac and Windows. It runs my ASP.NET program faster in Ubuntu than when it is running on my development machine(Windows XP's IIS, though I haven't yet compared the speed when running on Windows server)
Languages supported on Mono: C#, Java, Boo, Nemerle, VB.NET, PythonNet, IronPython, Oberon, PHP, Object Pascal, Cobra, Component Pascal, Delta Forth, DotLisp, #Smalltalk
For database, use PostgreSQL, it is dubbed as the Oracle of the opensource database. It has many features suitable for enterprise-type system.
http://www.mono-project.com/Main_Page
Why not take a look at ASP.Net MVC, you will capitalize on much of what you already know and is quite a bit different in its approach to websites. Just switching without a compelling reason or target in mind is probably not that useful, however it doesn't hurt to learn another language.
This site is built on ASP.Net MVC and Linq to SQL.
What is the reason for you leaving the .net scene?
A change of language may not fix the root cause.
I switched from LAMP to .net myself due to my job and then gradually in my hobby time to allow me to focus 100% on 1 language.
I switched from LAMP to .net myself due to my job and then gradually in my hobby time to allow me to focus 100% on 1 language.
You probably learned a few things from LAMP that you could apply to .NET. That's the best reason to explore other languages and frameworks.
Dynamic scripting languages can save considerable development time: no compilation, weak typing, and flexibility.
Personally, I love the flexibility of php. There are no abstract, inflexible, complex web controls to learn. I have complete control of my widgets because I can change the underlying code.
I didn't know php is still like a scrabbled scripting language... I don't want to go back to the old times...
No I need the shift to be as smooth as possible. From what I read, it seems ruby is going to be the choise... although Django seems interesting.
To be perfectly honest, the more I discover and experience in JavaScript / jQuery and DOM the less I use asp.net controls and related garbage on my pages. I have reached to a point where I know use ASP.NET for my project's back-end (objects and data classes to send and retrieve data) and standard HTML forms and controls on the front side, using jQuery for DOM manipulation and communication (thorugh ajax) with the server.
Having come to this point in my development career, I thought it would be a good idea to learn a new language that is faster than asp.net, that is not dependent on windows, and that is easier to learn.
I can then buy a macbook and relax :)
SQL Server Express has worked fine for me. I've used a lot of different databases with c#, but only mysql and binary files in production.
ASP.NET isn't a language. It's a framework upon which you can build web sites and web applications.
the reason is not job-centric.
Recently I realised I had enough of
bits-of-pieces that keeps me stuck
with microsoft. e.g. I want to buy a
MacBook but I can't since I need IIS
and VS etc.. (I know I can use windows
on a mac but what's the point)
Are you tired of Microsoft in general or ASP.NET specifically? Or is there a Cult you want to join that requires MacBook ownership? Or are you interested in LAMP or Java development? Do you still want to do web applications or are you more interested in desktop or mobile applications?
As far as databases are concerned, the most obvious alternative would be MySQL. Other options would be PostgreSQL or SQL Lite
I am creating a project called MPDA. It is a simple Dll and application that creates files that act as databases. It is aimed at .NET developers that want to use a database that does NOT impact on system performance on the system it is hosted on. Has no webside dependencies. If you have FTP access you can host it. No install required client or webside. Works on ANY platform with a file hosting ability. On drawback is it is accessible from .NET only.

What are the current best practices for load testing and profiling ASP.NET web applications?

I am tasked with improving the performance of a particular page of the website that has an extremely high response time as reported by google analytics.
Doing a few google searches reveals a product that came with VS2003 called ACT (Application Center Test) that did load testing. This doesn't seem to be distributed any longer
I'd like to be able to get a baseline test of this page before I try to optimize it, so I can see what my changes are doing.
Profiling applications such as dotTrace from Jetbrains may play into it and I have already isolated some operations that are taking a while within the page using trace.
What are the best practices and tools surrounding performance and load testing? I'm mainly looking to be able to see results not how to accomplish them.
Here is an article showing how to profile using VSTS profiler.
If broken it is, fix it you should
Also apart from all the tools why not try enabling the "Health Monitoring" feature of asp.net.
It provides some good information for analysis. It emits out essential information related to process, memory, diskusage, counters etc. HM with VSTS loadtesting gives you a good platform for analysis.
Check out the below link..
How to configure HealthMonitoring?
Also, for reference to some checklist have a look at the following rules/tips from yahoo....
High performance website rules/tips
HttpWatch is also a good tool to for identifying specific performance issues.
HttpWatch - Link
Also have a look at some of the tips here..
10 ASP.NET Performance and Scalability secret
Take a look at the ANTS Profiler from Red Gate. I use a whole slew of the Red Gate products and am very satisfied!
There are a lot of different paths you can go down. Assuming a MS environment you can leverage some of the team system tools such as MS Team Tester to record tests and perform load testing against your site. These can be set to run as part of an automated build process.
A list of tools is located at: http://www.softwareqatest.com/qatweb1.html#LOAD
Now, you might start off simple. In this case install two firefox plugins: Firebug and YSlow for Firebug. These will give stats and point out issues such as page size, the number of requests made to get the page, etc. They will also make recommendations on some things to fix.
Further, you can use unit tests to execute a lot of the code behind to see what functions are hurting you.
You can do all sorts of testing if u have full MS dev system with TFS and Visual Studio Team Edition. Based on what I see here
I recently had a nice .Net bug which was running rampant. This tool sorta helped, but in your case, I could see it working nicely..
http://www.jetbrains.com/profiler/
Most of the time we've used WCAT from Microsoft. If your searches where bring up ACT then this is probably the tool you want to grab if you are looking for requests per second and the such. Mike Volodarsky has a good point pointing the way on how to grab this.
We use it quite a bit internally when it comes to testing our network infrastructure or new web application and it is incredibly flexible once you get going with it. And it seems every demo Microsoft has done for us with new web tech they seem to be busting out WCAT to show off the improvements.
It's command line driven so it's kinda old school, but if you want power and customization it can't be beat. Especially for free.
Now, we use DotTrace also on our own applications when trying to track down performance issues, and the RedGate tools are also nice. I'd definitely recommend a combination of the two of them. They both give you some pretty solid numbers to track down which part of your app is the slowdown and I can't imagine life without DotTrace.
Visual Studio Test Edition (2008 or 2010) comes with a very good load testing component for ASP.NET apps.
It allows you to get statistics for all the perfmon stats for a server (from basics like CPU and disk waits to garbage collection and SQL locks)
Create a load test for the page and run it, storing the stats in a database for the base line. Subsequent runs can be compared.

Resources