我应该先用C#编写,然后再移植到web吗?

我应该先用C#编写,然后再移植到web吗?,c#,asp.net,prototype,C#,Asp.net,Prototype,我想写一个网站,但我几乎不懂网络编程。我看了ASP.NET,我想知道。我应该用C语言编写我的应用程序,用一个表单和许多按钮来测试每个页面/组件吗?那港口还是叫人帮我港口?还是从一开始就直接从ASP.NET开始 -编辑-我在前6个答案之后编辑了下面的内容,所以它们看起来可能很奇怪 我在想,如果我只使用C#和sqlite,我可以完成更多的工作,因为我可以更快地编写废弃代码和测试代码,更快地创建原型。ASP.NET将花费大量时间来完成简单的基本工作 注意:我不会做繁重的表单编码。只需简单的IO即可从数

我想写一个网站,但我几乎不懂网络编程。我看了ASP.NET,我想知道。我应该用C语言编写我的应用程序,用一个表单和许多按钮来测试每个页面/组件吗?那港口还是叫人帮我港口?还是从一开始就直接从ASP.NET开始

-编辑-我在前6个答案之后编辑了下面的内容,所以它们看起来可能很奇怪

我在想,如果我只使用C#和sqlite,我可以完成更多的工作,因为我可以更快地编写废弃代码和测试代码,更快地创建原型。ASP.NET将花费大量时间来完成简单的基本工作


注意:我不会做繁重的表单编码。只需简单的IO即可从数据库中放入和提取数据。

只需从asp.net开始

WinForms和WebForms不能很好地翻译。尤其是在学习asp.net时



考虑到你对这个问题的更新,这仍然是正确的方向。WinForms!=网络表单!=MVC或者别的什么。了解一个人并不能转化为了解另一个人。

如果你不懂网络编程,那么无论你在C#中做什么,都很难移植到ASP.NET。你需要先了解网络



即使考虑到你的评论,我的建议仍然有效。先学习网络编程。如果愿意,您可以先创建一个单独的DAL和业务逻辑层;您甚至可以使用测试驱动开发来创建它们。但是在你接触UI之前,你需要了解web是关于什么的,否则你会犯一些你会后悔的错误。

正确的方法是用C语言创建一个组件(库),它处理所有的数据库工作(数据的读取和存储以及数据的验证)。您可以在此基础上构建winform,以确保库正常工作

完成后,使用ASP.NET页面中的库,就不必担心已经测试过的低级逻辑


不要尝试将winform代码移植到web,因为这样做不会很好地工作。

我会说直接写入ASP.NET。如果你已经了解WinForms上的C语言,而且ASP.NET中的数据绑定模型在很多方面都有不同,我认为只要写一次,你就会从中受益。如果你打算作为一名真正的程序员尝试一下,并且打算创建一个网站,请继续学习html和css,然后再跳到C。网上有很多很棒的免费资源


学习html和css,然后尝试Asp.NETMVC,让自己轻松地进行动态web开发

正如其他人所说,首先从asp.net开始。我建议首先编写一个小的测试应用程序,它可以在一个小空间中完成你需要大应用程序完成的事情


winforms和asp.net页面之间的差异存在一些障碍。因此,以上内容应该可以帮助你克服其中的一些问题

编写所有后端代码,并使用单元测试框架,以确保其正常工作


完成显示代码以外的所有工作后,您就可以开始进行显示,然后选择要使用的技术。

如果这是您第一次使用C#,那么您甚至可以通过完全将代码层与表示层分离来更好地开始工作。我开始在web和win forms应用程序中使用UI,而不是学习伟大的编码实践和代码分离。如果您是从零开始的,您可以先学习代码分离,而不必担心UI将要做什么

总之,两者都不是。从数据库和自定义数据类之间良好的代码分离开始,并从那里开始。
这决不是一个完美的例子,说明了如何进行良好的代码分离,而是一个项目符号列表,说明了如何开始。您需要搜索依赖项注入、存储库模式等,以获得更多最佳实践视图…

例如,假设您要创建一个联系人管理器应用程序。您知道,您将拥有用于插入、更新和删除的代码,以及一些搜索和一般联系人列表

  • 首先,我要创建一个包含所有字段的数据库
  • 然后我会向数据库中添加一些虚拟数据
  • 现在,我将在我的应用程序中创建数据层。最好是将这个单独的项目一起编译成一个简单的DLL
  • 现在,您已经构建了用于存储联系人信息的数据类,是时候创建一个层来实际获取数据了。转到解决方案并添加一个新项目,该项目将编译为DLL
  • 确保DB对您的代码可用。
    a。LINQ2SQL
    b。企业图书馆
  • 创建用于添加、编辑和删除联系人的功能。该参数很可能是在#3中创建的联系人对象
  • 创建用于搜索和返回联系人列表的功能。这应该会返回一个在#3中创建的列表,或者类似于以下内容的列表
  • 通过引用UI项目中的两个DLL(可能是console、web、win…)在上面添加任何UI层