将旧的 VB.Net Web 项目转换为新的响应式项目 [关闭]

Posted

技术标签:

【中文标题】将旧的 VB.Net Web 项目转换为新的响应式项目 [关闭]【英文标题】:Convert an old VB.Net web project to a new responsive one [closed] 【发布时间】:2021-12-24 04:46:13 【问题描述】:

我正在尝试将一个旧的 VB.Net Web 项目转换为一个新的响应式项目,但是因为它过于复杂和庞大而无法将代码隐藏代码转换为 MVC,而且我没有时间创建一个新数据库。你推荐什么框架或解决方案?对不起我的英语不好

【问题讨论】:

对于这个网站来说,这甚至不是一个问题。 100% 由您自己进行研究并决定哪些工具最适合您的要求。如果您希望将现有项目迁移到新的技术堆栈,最好直接去做,而不是尝试走捷径 【参考方案1】:

到底为什么数据库会在网站上有任何反映,以及该网站是否要响应?

事实上,当从一个软件平台转换到另一个软件平台时,如果数据库已经是 SQL 服务器,则需要对该数据库进行零更改。事实上,它是您可以恢复、重复使用且完全不改变的一件事。它是应用程序中最可重用的部分,无需任何更改即可 100% 重用。因此,在建议、提示或责备数据库是重写软件的任何因素方面,我一定是失败了。

另一方面,为什么要重写?

至少 10 年来,asp.net webforms 网站的默认设置包括引导程序,因此所有网页都可以而且应该基于这一事实 100% “响应”。

我的意思是,假设我们放入了一个 gridView。

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    If Not IsPostBack Then
        LoadGrid()
    End If

End Sub

Sub LoadGrid()

    Using conn As New SqlConnection(My.Settings.TEST4)
        Using cmdSQL As New SqlCommand("SELECT * from tblHotels  Order by HotelName ", conn)

            conn.Open()
            GridView1.DataSource = cmdSQL.ExecuteReader
            GridView1.DataBind()

        End Using
    End Using

End Sub

然后说这个标记:

       <div>

        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
            DataKeyNames="ID">
            <Columns>
                <asp:BoundField DataField="FirstName" HeaderText="FirstName"  />
                <asp:BoundField DataField="LastName" HeaderText="LastName" />
                <asp:BoundField DataField="HotelName" HeaderText="HotelName" />
                <asp:BoundField DataField="Description" HeaderText="Description" />

                <asp:TemplateField HeaderText="View">
                    <ItemTemplate>
                        <asp:Button ID="cmdRow" runat="server" Text="Row Click"
                            OnClick="cmdRow_Click"
                            />

                    </ItemTemplate>
                </asp:TemplateField>

            </Columns>
        </asp:GridView>

        </div>

好的,所以我们有这个:

因此,网格不会填满整个页面。

让它响应。

只需将 CssCass = "table table-hover" 添加到 GV 中

像这样:

       <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
      CssClass="table table-hover"
            DataKeyNames="ID">

按钮 CssClass="btn" 也一样

快!! - 网格现在是响应式的 - 像这样填写整个页面:

很快,我们现在得到了这个:

我们甚至可以获得悬停效果,您甚至可以完全响应式地重新调整该网格的大小 - 一直到良好的移动渲染。

所以,现在网格是一个 100% 完整的引导程序“响应式”网格。我花了更少的时间来做出这个改变然后写这篇文章!!!

您可以在 php 或 MVC 中构建一个网格 - 您会得到很多相同的结果 - 一个很好的引导“响应式”网格。

所以,数据库是您最不担心的事情。

我的意思是,因为您突然决定转换为 MVC?零零零零为您获得响应式网站 - 它对您没有任何作用。

那么,我不明白为什么在现有网页中简单地引入引导类是不够的?由于您现在采用 MVC,您不会通过某种魔术获得响应式网站,您只能通过引入响应式框架(例如引导程序)来获得响应式网站。

正如我所说,99% 的情况下,即使是 10 多年前基于 webforms 的 asp.net 网站也已经包含引导框架 - 实际上默认包含。

但无论如何,100% 忽略上述内容?数据库对该结果和结果的影响为零,并且不影响生成的网站将成为响应结果的多少、多少或什至一位。

我的意思是,当然,在 jQuery.UI 中折腾一些不错的对话框等,您甚至可以将引导对话框与 jQuery 一起使用 - 再一次,所有这些 100% 在该 webforms 应用程序中都可以正常工作。

我的意思是花掉所有转换为 MVC 的金钱和时间?这表明你坐下来,有一堆新工作和新特性,开发团队是一群非常擅长 MVC 的开发人员,因为作为一般规则,MVC 需要更多的努力和更多的时间,以及更多的工作来产生与 webform 相同的效果。尤其是这种情况,因为使用 datalist、gridview,尤其是 listview?

为什么?

在 MVC 中,您拥有自己的。当你在谷歌上搜索一些网格解决方案时,你会得到 50 种不同的方法,因为在 MVC 中没有定义说 Listview 或控件。更好的是,我发现 webbforms 应用程序中的 VAST MORE 一致性更高,因为如果您使用 Gridview,那么 SAME 事件模型适用于 listview、datalist、repeater 和更多控件。

使用 MVC,您必须构建并准备如何放置网格,因为您没有内置的此类控件选择。

MVC 的另一个优点是它允许您向更多用户扩展,但在 99% 的情况下,如果 webforms 代码做得好,性能的提高并没有真正实现。糟糕的代码和糟糕的设计与 Web 表单与 MVC 的关系为零。这一切都归结为好的设计。但是,由于使用 MVC,您几乎可以自己处理任何事情 - 包括诸如列表视图之类的事情,您经常会发现 MVC 应用程序中的混乱和缺乏一致性,因为没有人定义或建立方法显示一个网格作为列表视图不存在。

事实上,既然你必须去网络土地并找到第 3 方控制?好吧,那么使用 MVC 而不是 PHP 或其他一些系统的全部原因就完全不存在了。 (因此新的 asp.net 开发人员的采用率确实受到了很大影响)。

不管上述情况如何,数据库系统的选择或事实对您决定围绕引导程序等响应式框架构建您的网站没有任何影响,事实上,正如我所说,您无论如何,可以而且应该将引导程序引入那些现有的网络表单 - 结果不会或多或少地“响应”,然后采用 MVC。

【讨论】:

以上是关于将旧的 VB.Net Web 项目转换为新的响应式项目 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

MSAccess.SysCmd 将旧 mdb 转换为 accdb,在 vb.net vs2019

使用 vb.net 以编程方式将 Access 数据库从 03 转换为 07?

将 Quick BASIC 转换为 VB.Net - 随机访问文件

构建后事件无法执行

我可以将旧的 AVAudioPlayer 与新的 AVAudioEngine 一起使用吗?

无法在 Visual Studio 2019 上为 VB.NET Web 应用程序创建新的构建配置