locked
Looking for high level project review, but pointers to detailed help / information as well. RRS feed

  • Question

  • For the official moderators and those that like to play moderator, this post is looking for a high level review of my problem (platform, technologies, techniques, etc) and possible solutions. It is looking for recomentations on code samples, technuqies, whitepapers, etc. It is concerning a project using VB.Net (or C#), ASP.Net, IIS, Windows Server, Visual Studio, HTML, OpenXML, OpenXML-SDK, and MS-Excel. I am willing to consider, "this should be in whatever, whatever" but please make it relevant and not just "let's get this out of our queue". 

    ---------------------------------------------------------

    This is a design problem / brain teaser for all the Architect minded folks in the community. For those that expend the time to at least read this document, I thank you. For those that read, consider and share their opinions, I am humble by your dedication to helping others and I am most appreciative.

    I have a conversion project for a client that has painted me into a corner and I am hoping there is someone out there with the knowledge and expertise to help me.

    Should you choose to accept this assignment.... <cue music>

    The requirements are fixed, so the suggestion to just use a different language, web webserver, commercial component, etc will be considered, however will most likely be discounted as a no solution. Please do not misunderstand, I am open to new ideas and certainly open to any help you may be able to provide: code samples, white papers, articles, etc which relate, however part of the problem is meeting the clients requirements. Even I, the lowly programmer, most likely could solve this problem if I were allowed to change the requirements and the environment. Any changes to the requirements will need to be justified as "the only way to solve the problem."

    Requirements/Goals:

    * Native code/components. No commercial components please. Solutions using open source components will be considered.
    * Thin Client / Browser based (IE is standard)
    * IIS WebServer running on Windows Server.
    * If submitting or referring to samples/solutions, VB.Net/Asp.Net preferred, however I can translate C#


    Problem:

    Convert a desktop vb6 client/server program using Office Automation to a ASP.Net thin client application. The program reads two Spreadsheets (one with static design elements, calculations and cells/text boxes which are populated with data from the DB and one with named ranges containing drawings) and merges all this onto a spreadsheet which is persisted to the Server HD for archive, and then needs to be displayed to the user. Of course in the client/server world, displaying was done with launching Excel, however in the websrver/browser world, the document needs to be rendered as HTML and sent back across the HTTP pipe to the clients browser (rendered as close to the spreadsheet as possible). EXCEL WILL NOT BE ON THE CLIENT MACHINE, so the output must come down to the browser as HTML.

    Notes:

    1). Excel is the preferred way of maintaining the templates with the design and calculations on it. Unless there is a significantly better option, Excel will continue to be used.

    2). Excel is the preferred way of maintaining the drawings, HOWEVER, if there is a significantly better option, we can flatten these drawings making them JPEGs/etc and use them as Images rather than Drawings.

    3). MS Web components 2010 ran out of support this year, so we wish to stay away from it. The notice on Technet says to use other technologies, however I did not see a suggestion as to what that may be.

    4). MS and most of the forums strongly suggest that we do not use Office Automation on the server side, so we would like to adhere to that.

    5). The information, samples, blogs, VCasts from Eric White is great stuff and he is working on great things to improve the area of OpenXML-SDK, however I do not think I have found any of his stuff which exacly helps me. I may be wrong. Along this vein, I have been working on these issues for a while. You doing a quick Google and pointing me to the first link in the top 10 that looks interesting, is not going to do it.

    Progress:

    Here is what I have done and here is where my problems have been:

    Effort: I started going down the path of converting the spreadsheets to OpenXML and using the OpenXML-SDK to merge the spreadsheets and to pull the data from he DB and populate certain cells and text boxes. This went well however...

    Roadblock: Copying the drawings from one spreadsheet to another using the OpenXML-SDK has turned into an issue which is out on 3-4 forums with no results. It is currently being considered my a MS Technician (for the last week) as a MSDN help ticket, but I do not have faith that this will go far as the technician has been very quiet so far. The OpenXML-SDK and the current sample code / articles in the community seems to be lacking when dealing with moving Drawing Components.

    Roadblock: Using OpenXml-SDK to convert the OpenXML to HTML to be sent back though the web server to the users browser has become a roadblock. Of course in the world where Office Automation is available, HTML and PDF are available as SaveAs types, however so far I have found the OpenXML-SDK, Samples code, Articles all to be lacking in this area as well. The OpenXML is a structured multi file format with style, pictures, data all intermingled in a fair involved way. Simply "sending the XML" across the wire is not an option. The OpenXML Document needs to be rendered into HTML with structure, style and data all encoded in the markup. Since design and structure is handled in the Excel Document, we do not with to have to change style and layout on the client side though CSS.


    Questions:

    1). So, is there a better approach?

    2). Am I missing some Components / Samples / Techniques / Articles which could help me get my current solution implemented (namely the copying of Drawings from one spreadsheet to another, AND the rendering of the OpenXML document as a HTML Document)?

    3). How would you do this?

    4). Am I the only one tired of American Politics and the election season?


    If you ave made it this far, thank you. You are obviously not the kind of person looking to just drop the quick "You should be able to..." type comment. I do appreciate your effort so far, and if you can help, I will be even more appreciative.

    Tuesday, October 2, 2012 1:57 PM