I fear this has been beaten to death, but I'm still struggling with the problem of reading Excel files in my ASP.NET application that has recently been ported to Server 2008 and 64-bit.
Many posts I find point to the existence of 64-bit Microsoft drivers here:
here and here.
My concern is the warnings I'm also reading about these not intended "As a replacement for the Jet OLEDB Provider in server-side applications" possibly for thread-safe reasons? This IS a server-side application and while Excel uploads aren't hundreds-of-times-a-day ocurrances, they will be done by customers.
I know there are also commercial libraries available and while I'm opening to considering them I do worry about the 'revision chase' and not getting burned by them going belly-up (it has happened to us before).
So, IS there a thread-safe, server-safe way to read Excel files in 64 bits?
And before you suggest .CSV, I have a hard enough time getting customers to send me reasonably-formatted Excel files, let alone asking them to export to a .csv.
Oh, and to add yet-another-requirement, I really don't want to run the whole application 32-bit.
You may be able to hook into a Java library such as this:
http://jexcelapi.sourceforge.net/
I have no affiliation with these guys: SpreadsheetGear but their tool completely solved my problem. Wicked fast and server-wide formula evaluation. VERY cool.
Related
I am an MS Office veteran with self-taught basic GIS skills (Tatuk Editor), including use of SQLite-based layers that link to MS Access. In the past few years I've been learning to use qGIS, and for the most part, the experience has been very positive.
What hasn't been so great in the qGIS learning curve is my attempt to link a qGIS-created geopackage layer (using the SQlite ODBC driver) to an MS Access application for the express purpose of editing and, ideally, for programmatic updating of attribute fields in existing records. Yes, the gpkg table will link, but unfortunately the connection is read-only. The problem apparently stems from an rtree rigger in the underlying geodatabase that won't allow the edited or updated records to be written /saved.
At the recommendation of a friend who is more highly versed in these technicalities, I tried to resolve the 'no gpkg editing' problem by adding spatialite .dll files to the system folder and appropriate extensions in the ODBC set up box, all without success. I next dumped the 32 bit version of my Office 365 software and transitioned to the 64 bit version, which fortunately didn't faze my existing documents, databases, etc. but had no effect whatsoever on the 'no gpkg editing' problem. At the end of the day, I'm no closer to achieving the desired solution, i.e. an editable connection between Access and the gpkg table.
Without going into immense detail of the various steps I've tried, I will stop here and give folks an opportunity to respond. I'm hopeful that someone reading this has not only encountered the 'no gpkg editing' problem when linking to a geopackage with MS Access, but has also learned how to resolve the issue. If you are that person, please explain the process as best possible. If it simply can't be done, I would appreciate knowing that, as well.
I have the same exact problem. I downloaded the spatialite dlls and tried to put them in the same folder as the ODBC driver, and Sys32 other folders. No Dice. I tried using 32-bit and 64-bit driver, no dice. I tried the environment variable. No Dice.
I'm also an ArcGIS user who will miss being able to use Access Databases. Now that Pro can edit geopackages, we'd have a great option if we could edit the data in Access via ODBC. Frustrating!
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.
Our company is using some software that ONLY accepts input from an "Imaging Device" i.e. a TWAIN device (e.g. scanner).
The problem is that we are receiving our files digitally, so using an actual scanner would require us to print, scan, and shred documents that we already have on the computer, but not in the software.
I was curious if anybody has any idea of how we might be able to work around this problem in the meantime. My first thought was to find some way to trick the program into thinking we're using a scanner, via some new 'imaging device' that would just read in the file, and spit it out to the software, but I don't even know where to begin with that.
We put in a feature request, seeing as how this problem should obviously be addressed in the software itself, but the company is notorious for lagging pretty hard when it comes to updates.
The system used by scanners is called TWAIN, so you'd be looking for some sort of virtual twain driver.
A quick google search will produce several hits, I don't have any experience with the software myself so can't advise any further.
Two such providers I found via experts exchange:
http://www.twaintools.de
http://www.scanpoint-usa.com
OK, months late... but in case you are interested, I have a TWAIN driver framework/toolkit that might let you build this fairly easily, depending on just what your scanning app expects, and how hard it is to read images from your digital documents. It's a Microsoft Visual C++ project. No charge but you'd need our permission to redistribute a driver based on it: GenDS
The TWAIN Working Group also has a sample/skeleton driver, I think it's straight C - and used to have some rather bad bugs (Why I wrote mine ;-) but, it might have got better.
Look for the "sample data source and application" on their download page.
And of course I have a 'commercial' version of GenDS that I use to write TWAIN drivers on contract.
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#
We have a fairly high volume ASP.Net site written in c# using MS commerce server, running in a 32-bit environment. I see the worker process up to 980 megabytes quite often. I would like to profile this process and determine where any gains could be made in code to reduce the memory foot print of this site. My question what tools have worked well for you doing this sort of thing on ASP.Net web applications?
I am looking for tools that will give me very specific feedback, that will really help to clearly see what needs to change in the code. It would be best if this tool could profile our production environment worker process for a more concrete set of data to compare.
[edit]
So far it seems the consensus is that it's a toss up between Ants and JetBrains. Has anyone used both? If so which one was superior, or what are the pros and cons of each?
There's a free way.
launch the task manager
right-click the w3wp process
select "create dump" (I'm amazed how few people know about this feature - including myself at some point!)
copy the dump file to your local machine (so we don't bother the production server)
open the file in Visual Studio
enjoy
select "Debug Managed memory" for advanced view which class uses memory etc.
AFAIK, the above requires Visual Studio "Ultimate" edition (I guess its called "Enterprise" now?). If you don't have one, then follow these steps (very simple too)
launch WinDbg (free tool, part of Windows SDK, there are tons of answers here on StackOverflow on how to download WinDbg without all the SDK bloatware)
Press Ctrl + D and load the dump file into WinDbg
type .loadby sos clr (this will load SOS.dll that allows WinDbg to analyze .NET processes, SOS.dll is a part of NET Framework so you probably already have it)
type !dumpheap -stat (this will output the class names, sorted by memory usage, ascending order. Skip system.string and system.byte[] classes cause these are side-effects, not the cause...)
UPDATE FROM 2019: WinDbg is now available via MS Store, just search for "WinDbg", then couple of clicks and its there.
ANTS Profiler is very good at profiling ASP.NET applications.
http://www.jetbrains.com/profiler/
Something like ANTS memory profiler might be useful to you.
Also consider AQTime from Automated QA.
dotTrace from JetBrains saved me several times.
It is not free (trial is available), but it is really powerfull!
We use AviCode, and it works pretty good for us.