【问题标题】:Top Level Requirements for scalable web solutions for Windows/.NET适用于 Windows/.NET 的可扩展 Web 解决方案的顶级要求
【发布时间】:2011-04-28 21:27:15
【问题描述】:

我一直在构建应用程序/网络应用程序,我猜我构建的大部分内容都是基于简单的原则,即尽量保持松散耦合,使用行业标准技术等等。

我会尽可能多地关注有关架构以及网站如何扩展(Facebook 等)的技术博客。

现在我正在尝试评估使用在 Windows 2008 R2 上运行的 .NET/C# 构建高可用性站点的要求/组件/工具。正如标题中提到的,我只是想从顶层/30,000 英尺的角度了解“零件”是什么。例如,我(为了争论)不担心我是否将使用 SQL 2008 或 mySQL 作为数据存储,以及 mongoDB 等是否发挥作用。

我想促使我添加这个问题的原因是我一直在编写一些运行良好的网络应用程序,但处理的用户/操作数量远不及一些基于社交的网站。例如,这是非常广泛/概述的东西,到目前为止我一直在使用的结构:

  1. 使用存储过程的 SQL 2008 后端数据存储
  2. MS Enterprise Lib/数据块/缓存等形成“业务对象”层 如果你愿意的话。
  3. 用作前端处理程序的 ASHX 页面
  4. JQuery / Javascript 前端 - 使用 XML(虽然最近有一些 JSON)来获取 从中间层到前端的数据

我意识到以上只是一个基本视图,但它的工作相对较好.. ASHX 页面提供了一种与 JQuery ajax 调用交互的轻量级方法,到目前为止,企业库中的数据访问块(版本 5.0) ,使调用数据库变得简单、快捷,而且通常很快。

那么我在这里之后是什么......

好吧,鉴于上述情况,我有点知道构建某种基于社交的网络应用程序(为了论证,我们假设一个非常迷你的 facebook 版本)需要具备某些基本结构,例如:

  1. 缓存(即 memcache 等?)
  2. 排队机制,因此您可以将冗长的进程移交给后台任务
  3. 快速数据访问技术.. 存储过程是最好的方法吗?

我想我在某处读到 stackoverflow.com 等使用 .NET 技术。我想我所追求的是一些适用于 .NET 世界的起点/阅读材料(我意识到会有很多 * nix 人们在流失.. 我想说我并不反对学习任何新东西,但现在我的技能主要是 .NET)。

希望这种说法有意义,有点啰嗦,但请随时发表评论以获取更多信息。

提前致谢。

大卫。

【问题讨论】:

    标签: .net web-applications architecture


    【解决方案1】:

    听起来您已经做出了很多关键的架构决策——无论如何都是围绕技术。

    我会说您选择的任何平台/技术都可以工作;就像任何人都可以变态和搞砸一样。

    Stored Procs 有利于提高速度 - 它们也是一种很好的安全措施。

    我建议您正式制定您的解决方案架构 - 将其记录在案将有助于那些追随您(或随着时间流逝的您自己)的人,并且记录它的过程将有助于您的思考过程。

    要包括的关键内容:

    • 架构目标。你想在架构上实现什么?这些可能与业务客户提出的高级非功能性要求 (NFR) 保持一致。例如:您的目标是对现有技术进行高度重用,以便业务不必向新领域多元化发展。
    • 架构决策。 “我们选择使用 [技术/组件/模式] “x”,因为它得到了很好的支持”。或者“我们选择 'A' 而不是 'B',因为即使 B 更快,A 也更安全 - 这与关键 NFR 一致。

    完成此操作后,您应该更容易做出决定;有时您可能已经在脑海中知道答案 - 但不是很清楚,写下来会有所帮助。

    【讨论】:

    • 您好,感谢您的回复.. 意思是几天前回复您。所有的点都很好,而且肯定会像你解释的那样至少降低架构点。
    猜你喜欢
    • 2023-02-13
    • 1970-01-01
    • 1970-01-01
    • 2017-04-27
    • 1970-01-01
    • 2016-06-04
    • 1970-01-01
    • 1970-01-01
    • 2016-03-01
    相关资源
    最近更新 更多