首页 > 解决方案 > 将旧的 VB.Net Web 项目转换为新的响应式项目

问题描述

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

标签: javascriptasp.netvb.netresponsive-design

解决方案


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

事实上,当从一个软件平台转换到另一个软件平台时,如果数据库已经是 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" 说同样的话

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

presto,我们现在得到这个:

在此处输入图像描述

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

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

你可以用 PHP 或 MVC 构建一个网格——你会得到很多相同的结果——一个很好的引导“响应式”网格。

因此,数据库是您最不担心的,也是最不担心的。

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

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

正如我所说,即使有 10 年以上历史的基于 webforms 的 asp.net 站点在 99% 的情况下都已经包含了引导框架 - 实际上默认包含在内。

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

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

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

为什么?

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

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

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

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

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


推荐阅读