是否可以将文本区域的内容保存为azure上具有.java扩展名的文件?

时间:2012-01-06 06:08:33

标签: asp.net-mvc-3 azure azure-storage

我必须设计一个azure应用程序,人们可以编写java代码并将其保存在azure云上。我正在使用asp.net来构建应用程序。

我有一个想法是向用户显示一个文本区域,在那里他可以编写他的java代码,然后当他点击保存按钮时自动将其保存为.java文件。这可能吗?有没有办法检索文本区域的内容,然后将内容保存在扩展名为.java的文件中?或者有更好的方法吗?

我对此并不了解,我还在研究。任何帮助将不胜感激。

非常感谢。

1 个答案:

答案 0 :(得分:2)

如果您正在使用Java并且已经熟悉Java语言,为什么不使用JAVA Tooling完全用Java构建Azure应用程序?

除此之外,以下是您的问题的答案:

  

我有想法向用户显示文本区域   编写他的java代码,然后自动将其保存为.java文件   当他点击保存按钮时。这可能吗?有办法吗?   检索文本区域的内容,然后保存内容   扩展名为.java的文件?

是的,这是完全可能的。您必须使用ASP.NET服务器控件TextBox。你可以这样使用它:

<asp:TextBox runat="server" ID="tbMyJavaContent" TextMode="multiline" />

在codebhind上你只需要获取控件的Text属性:

string javaFileContent = this.tbMyJavaContent.Text;
File.WriteAllText("path_to_file.java", javaFileContent);
// here the logic to upload that file to a Blob storage

然后将该内容保存到文件中。但是你不应该只在本地保存它!您应始终使用Windows Azure Blob(或表)存储来保存文件。查看this question以获取有关如何将文件上载到Windows Azure Blob的示例。

至于是否有更好的方法来实现你的目标,我不知道。如果任务是:您的最终用户必须拥有编写自己的代码的工具,结果将保存到本地纯文本文件(扩展名为.java)。然后,即使有其他解决方案,他们都会在用户可以编写的textarea中移动,而不是将此textarea的内容保存到本地文件。最后,不要忘记将文件上传到Blob以获得持久的持久性。

如果您使用的是asp.net MVC框架,那就更容易了。你只需要一个texarea和一个Controller动作,它接受一个类型为string和name的参数 - textarea的名字。像(视图):

@using(Html.BeginForm("SaveContent", "Home", FormMethod.Post))
{
<textarea name="taJavaContent" rows="20" cols="40"></textarea>
}

Controller(HomeController.cs):

public ActionResult SaveContent(string taJavaContent)
{
   string tmpFileName = SomeMethodToGetLocalFileName();
   File.WriteAllText(tmpFileName, taJavaContent);
   SomeMethodToUploadLocalFileToABlob(tmpFileName();
}

希望这有帮助!