5

I'm looking for suggestions on the Visual Studio approach to take for a web application that is in the conceptual stage.

My environment has a lot of tools:

  • Windows Server 2008 R2 Standard 64bit
  • Visual Studio 2010 Professional Edition
  • Sharepoint 2010 Server Enterprise Edition
  • SQL Server 2008 R2
  • Office 2010 Professional

I know I will need this app to retrieve data from a database (or a web service - not sure exactly at this point). The data needs to be placed in an Excel workbook dynamically. The app will need to have a nice user interface (standard web controls - perhaps with some Javascript effects). The Excel ribbon and worksheet grid will need to be hidden. Some web control(s) will cause the Excel chart(s) to be rendered.

I am thinking this sounds like Visual Studio Tools for Office (VSTO) so as to leverage .Net and hide Excel.

Can you offer suggestions regarding: One ASP.Net Web App Project One Class Library Project for Excel or perhaps which one of the several different Excel 2010 project types (addin, template, document)

Would Excel Services for Sharepoint be useful (or required) ?

I am feeling a little overwhelmed with so many choices at this early stage of conceptualizing the app. Can you suggest some ideas for this sort of thing? Also, I am a bit more experienced with C# but I've read VB.Net is better for work with the Excel object model.

What are general advises with regard to tool choice and overall approach tradeoffs?

BЈовић
  • 13,981
  • 8
  • 61
  • 81
John
  • 51
  • 1

1 Answers1

1

If you need to only show charts to the user, you can generate those on the fly and display them as a part of the web page. Look into ASP.Net chart controls. There are some other commercial chart components. If the information is relatively static, you can pre-build charts and refresh them as needed. You can accomplish everything from one ASP.Net web project. You can also create a class library to generate charts if you plan to use charts somewhere else.

If my answer does not help, please clarify your scenario. Do you need to use all the tools? Do you have to make charts available in SharePoint? Do your users have to have the Excel documents as backup source to validate data (you can still do that from ASP.Net app though)? If you could elaborate more on your end product, that would help.

Eugene
  • 169
  • 1
  • 5
  • My research so far indicates I can definitely use VSTO for Excel in a Windows Form app (with lots of flexibility regarding UI, templates, add-in(s), etc.). Presumes desktop user has Excel client installed; suggests classic deployment to desktop and versioning issues. Delivering functionality as ASP.Net web app may solve some deployment issues but I think invites problems as in: http://support.microsoft.com/kb/257757 (for example, could much be done with one install of Office 2010 on the webserver with thin web clients connecting?). I know Sharepoint Excel Services solves much of this however. – John Mar 09 '12 at 01:49
  • At this point, I "think" a web app would be preferable to a windows app but I "think" requiring Sharepoint may be too much. Finally, I "think" the end-user will probably want mostly charts of existing data (they don't really like the gridlike and ribbon interface for Excel). I think they may want to introduce some "what-if" values to the dataset(s) to see how that affects the chart(s). This is mostly exploratory for a tentative proposal for a possible client where requirements are still-in-flux. Thanks in advance for your time and responses. – John Mar 09 '12 at 01:54
  • If I had to implement a project based on your requirements (as I understand them now) in a web environment, I would use the ASP.Net chart component for presentation. I would pull data from the database and present charts based on what you have in the database. Then I would build an interface to let users play with data (your "what-if" component. That way my app would be light enough not to have to deal with MS Office components, I could adjust the presentation to users' likings, I would be in a flexible-enough environment to adjust features based on user's needs, and no deployment needed. – Eugene Mar 09 '12 at 03:10