【问题标题】:Cross device web application with ASP.NET MVC使用 ASP.NET MVC 的跨设备 Web 应用程序
【发布时间】:2014-05-28 19:14:51
【问题描述】:

我目前正在开发一个必须针对移动设备(尤其是平板电脑和智能手机)进行优化的 ASP.NET MVC 网上商店。这是给我们工作中的客户的,但我正在家里对 ASP.NET MVC 设备检测进行一些研究。我用它创建了一个小应用程序,它似乎工作得很好。我喜欢通过为每种设备类型使用不同的视图来很好地分离所有内容的方式。

我现在正在努力解决的问题是,该网店也使用 ASP.NET MVC 设备检测,还是使用客户端响应框架,如 Bootstrap。我正在为这个决定而苦苦挣扎,因为 ASP.NET MVC 设备检测对我来说似乎并不真正“成熟”。在互联网上找不到太多关于它的内容,默认情况下它只支持移动视图,不支持平板电脑视图或其他任何内容。

我对设备检测犹豫不决的另一个原因是,带有移动设备用户代理字符串的标准 ASP.NET MVC 库可能不会更新,所以当新设备问世时(它们确实会), webshop 正在显示桌面视图,而我们为移动设备提供了一个很好的优化视图。当然,也有用于最新设备检测的服务,例如 51Degrees.mobile,但它们非常昂贵。 (免费版不支持检测平板电脑)
我已经找到了一种通过使用this 帖子中的示例为平板电脑创建不同视图的方法,但该示例使用正则表达式来检测智能手机和平板电脑,当然这在某些时候也会过时。

另一方面,我们有客户端响应式解决方案 (Bootstrap)。客户端响应式站点的缺点是不同的视图模式没有分开。 HTML 未针对设备进行优化。该网站只是一种“加入”桌面版本,浏览器使用 CSS 媒体查询调整 HTML 页面。代码不像设备检测解决方案那样干净。

快速提问:是否有任何免费或更便宜的方式来使用 ASP.NET MVC 设备检测?随着时间的推移,它会满足我们的需求吗?它不会在某个时候过时吗?

很高兴听到您认为在这种情况下的最佳选择。提前致谢。

【问题讨论】:

  • 当我在 nuget 中拉 51 度时,似乎没有任何费用。您是否尝试过安装 nuget 包而不是访问他们的网站? 51degrees.codeplex.com/license
  • 确实有免费版本,但是,就像我说的,不幸的是,该版本无法检测平板电脑,而平板电脑尺寸是这种情况下最重要的尺寸。谢谢你的建议。感谢您的努力!

标签: asp.net-mvc twitter-bootstrap responsive-design device-detection 51degrees


【解决方案1】:

响应式设计的全部意义在于它是独立于设备的。据我所知,MVC 中的设备检测始于一些相当陈旧的 IIS Browsercap 技术,该技术已经过时了。

现在 Android 手机的尺寸范围从 4 英寸到 6.5 英寸甚至更大,有太多的外形尺寸跟不上。使用响应式设计框架(例如 Bootstrap)将允许您定位分辨率,而不是设备。大多数现代智能手机和移动浏览器(甚至 IE!)都会一致地呈现响应式设计。

【讨论】:

  • 感谢您的回答。我以一种(某种)与设备无关的方式使用了设备检测。我创建了三种视图类型:一种用于台式机、平板电脑和智能手机。 (即_Layout.cshtml;_Layout.tablet.cshtml;_Layout.mobile.cshtml)不同屏幕尺寸的问题是通过使用与浏览器尺寸相对应的CSS来处理的(使用百分比宽度)。这一切都很好,但我的主要问题是:这会在某个时候过时吗?如果是这样,那会是多久? 5年还是一个月?你是说我最好选择 Bootstrap 解决方案?
  • 就像 Dave 所说,设备检测已经过时了。我不希望我的六英寸手机上的移动布局被炸毁,我想要一个适合该屏幕的设计。
  • 设备检测的好处之一是首先为网站的单独移动版本提供服务。许多网站都这样做,并在底部为大型智能手机/平板电脑/平板电脑的用户提供“完整网站”链接。
【解决方案2】:

您应该将设备检测与响应式设计结合使用。浏览器宽度小于 X 像素这一事实并不意味着用户在移动设备上,或者他们更喜欢查看网站的移动版本。

使用这两种检测方法可以为用户提供更多选择,并更准确地提供最佳体验。

ismobiledevice 附带 .net,可免费用于您的 asp.net mvc 应用程序。

http://msdn.microsoft.com/en-us/library/system.web.configuration.httpcapabilitiesbase.ismobiledevice(v=vs.110).aspx

【讨论】:

  • 感谢您的回答。我知道 IsMobileDevice 附带 .NET,但问题是:设备检测(用户代理字符串)库是否会过时?如果某家公司决定制造智能手机并给他们另一个用户代理字符串怎么办?另外:同时使用响应式(客户端)设计设备检测是什么意思?提前致谢!
猜你喜欢
  • 2010-09-21
  • 1970-01-01
  • 2011-03-28
  • 2011-03-05
  • 1970-01-01
  • 2016-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多