2

我过去的经历

我在 C# win-forms 和 WPF 和其他一些语言方面有大约 04 年的经验,但对 ASP.Net(或任何 Web 应用程序)是新手。

问题描述

我想在我的公司内部创建一个文档管理站点,管理员可以在其中定义模板(例如在 Visual Studio 中,我们获得项目模板,因此我们可以确定是否创建文本或电子表格或其他类型的文档,如 MS Word 或 Excel ) 并且可以将多个字段添加到其中并保存。然后用户可以访问保存的模板并创建自己的文件(具有相同的模板但不同的数据)并保存。我还需要保存版本更改。

我该如何处理?

  1. 在 ASP.Net(如 WPF)中实现丰富的文档支持是否非常困难?
  2. 它是在重新发明轮子吗(因为有谷歌文档或者人们可以购买 MS Office 并创建文档并将其保存在服务器中),但并非所有人都会购买它?
  3. 我应该将模板保存为数据库中的 XML 或 HTML 还是如何?

任何起点或参考将不胜感激。

4

1 回答 1

0

其实做起来没那么难。我刚刚完成了一个项目,其中整个 UI 都围绕着允许用户创建、保存、编辑然后填写模板。您实际上可以将信息保存在字节数组中,然后将其保存到数据库中。这是我使用的新模板方法的示例。这并不难,但可以在此处包含更多信息。表单的创建是最难的部分。这个表单的创建是 3100 行代码。

private void doNew()
    {
        try
        {
            this.m_bDialogOpen = true;
            //New instance of data object
            MergeLetterDocsDO clnt = new MergeLetterDocsDO(7);
            //Creates a new title or name for the template
            NewMergeLetterTitle title = new NewMergeLetterTitle("New Merge Letter", 7);
            DialogResult dr = title.ShowDialog();

            if (dr == DialogResult.OK)
            {

                Form1 frm = new Form1(Simple.Form1.DocumentTypes.MERGE_LETTER,  Simple.Form1.OperationModes.DESIGN_TIME, null);
                frm.ShowDialog(this);

                byte[] bb = frm.InternalFormatDocument;
                byte[] rtfbb = frm.RtfFormatDocument;
                clnt.SaveNewMergeTemplate(bb, rtfbb, bb.Length, rtfbb.Length, title.MergeLetterTitle);
            }

            this.m_bDialogOpen = false;

            this.Populate();
        }
        catch (Exception ex)
        {
            Trace.WriteLine(ex.Message);
        }
    }O
于 2012-07-20T18:36:21.583 回答