【问题标题】:How to architect a website or steps involved in architecting an application? [closed]如何构建网站或构建应用程序所涉及的步骤? [关闭]
【发布时间】:2012-01-04 21:03:06
【问题描述】:

我需要知道如何构建 Web 应用程序。我设计了一个更像是买卖网站的网站。我设计并编码。它仍然是测试版,我想知道软件架构师将如何启动这个网站。 网址http://www.KashmirSouq.com

我使用 ASP.Net 4.0 Membership 和配置文件来存储某些信息并创建了其他表,这些表链接到用户成员表等。

我使用 MS SQL SERVER 作为后端。

我感兴趣的是了解软件架构师将如何开始这个网站项目,一步一步地以及应该为这个项目使用哪些设计模式。出于学习目的,我需要知道这一点,以便我将来可以在其他项目中采用专业的方法。

注意: *没有 ASP.Net MVC 相关示例*

【问题讨论】:

  • 简短的回答是,这取决于它是什么类型的项目。如果整本书都写过(他们有)这个问题太宽泛了。
  • 如果您开始学习,为什么不从学习 MVC3 和 Entity Framework 4.1 开始呢?网上有很多资源,我个人相信它们会鼓励您采用良好的做法!
  • 只是被detalist...我尝试访问您的注册页面,发现一个名为AOL for Brazil 的州,它不存在!只是小费,顺便说一句...
  • 你说得对,我下载的国家数据库一定是数据库有问题。谢谢,我将从巴西删除 AOL。谢谢..

标签: asp.net design-patterns c#-4.0 architecture


【解决方案1】:

您可以从SharpDevelop 项目中学到很多东西。它们使用行业最佳实践提供了坚实的基础。他们甚至有 VS 模板。

发音为“Sharp Architecture”,这是一个坚固的架构 快速构建可维护的 Web 应用程序的基础 利用 NHibernate 的 ASP.NET MVC 框架。首要的 使用任何架构框架所寻求的优势是 减少必须编写的代码,同时提高质量 成品。框架应该使开发人员能够花费很少的时间 在基础设施细节上,同时让他们专注于他们的 关注领域和用户体验。因此,S#arp 架构遵循以下关键原则: •专注于 领域驱动设计•松耦合•预配置的基础设施 •Open Ended Presentation 总体目标是允许 开发人员不必担心应用程序“管道”并花费 他们大部分时间都专注于为客户增加价值 业务逻辑和开发丰富的用户体验。

【讨论】:

  • 这将向 OP 教授该特定架构,而不是一般架构。
  • 感谢您的回复,我很感激。在我的情况下,我使用的是 ASP.Net C#,我没有使用 MVC
  • @Student,如果你打算从 asp.net 开始,我会强烈考虑使用 asp.net mvc 而不是 webforms。你会发现很多关于选择什么的激烈争论。这是一个很好的客观帖子:weblogs.asp.net/tonylombardo/archive/2009/06/23/…
【解决方案2】:

网络上有很多关于如何做到这一点的优秀资源。

这里有两个我会推荐的。

http://www.asp.net/mvc/videos#ASP.NET MVC Storefront Starter Kit

http://nsk.codeplex.com/

这是“Microsoft .Net Architecting Applications for the Enterprise”一书的源代码示例,非常值得一读。介绍了大量的设计模式/思想,涵盖了数据访问层、业务层和ui层。

【讨论】:

    【解决方案3】:

    这是一个非常广泛的问题。但对我来说,我总是使用 3 层方法。

    1. 顶层(表示层)。这将是您与特定用户界面相关的所有 asp.net 代码。

    2. 中间层(业务逻辑)。这将是与代码相关的特定业务逻辑。

    3. 底层(数据层)。这将是您的所有数据库代码。

    在 3 层架构上进行 Google 搜索。

    http://en.wikipedia.org/wiki/Multitier_architecture

    【讨论】:

    • 我同意你的观点,我也使用类似的合适。学习者的完整示例总是很棒。我将检查 wiki 链接 带有两到三个表的简单示例也适用于初学者
    【解决方案4】:

    基本上首先定义系统级目标。

    • 您的响应时间应该是多少?
    • 是否应该在所需的数据/支持服务方面进行任何类型的维护工作?
    • 您需要国际化吗?
    • 了解不同的组件,了解不同组件之间的关系以及如何将它们分开。
    • 选择一个开发框架。
    • 了解您的可扩展性要求,这将取决于您的许可成本和决策。
    • 了解您的硬件以及您可以利用它的程度以及最大程度。这将定义界限。

    只是一些要点,这是一个很大的话题,但是分离出您的软件并能够扩展/调整/测试的能力将是您进行任何方式的基本帮助。

    【讨论】:

      【解决方案5】:

      从软件架构的角度来看,

      首先,如果它只是一个网站,它只是一个 UI(用户界面),因此它更多的是视觉设计和 UI 问题,处理它的软件部分将超出软件架构师的关注,即网络和主机等加上优化(当然没有 cms)。

      现在,如果它的网站确实需要动态数据或具有某种交互方式来处理数据(所有网络都是数据),包括 cms 系统等,那么它确实需要软件架构及其与技术无关。您可以使用任意数量的技术来实现您的目的,无论是 (.net) wisp 堆栈,还是 (php) (lamp) 堆栈或 adobe 堆栈或 java 堆栈。

      再次需要理解的重要一点是,Web 只是一个视图,软件核心的其余部分(我称之为软件而不是 Web)是软件架构师的领域。当然会有一套单独的特殊权限来处理某个 UI。 Web 只是一个 UI,就像控制台或桌面程序或移动应用程序一样。它们都可以具有相同的底层核心,但会以不同的方式在所有这些设备上呈现不同的 UI。

      现在由于您关心的是网站,因此有很多人会提出不同的架构等建议,但是除了许多人会说要研究不同的技术等之外,我想说以下几点。

      1. 尽可能创建最解耦的架构,我的意思是一种可以随意更改的软件,即一种适用于抽象(接口或抽象)而不是具体的软件。在 .net 框架中,因为这个问题在 .net 部分中被标记,所以您可以使用开源或 microsoft unity 进行依赖等。您将不得不做大量的阅读来学习这些概念。这也是最可维护的软件设计。

      2. 创建一个与数据无关的存储库来访问数据,这样您就可以在客户需要时插入不同的数据库。

      3. 创建最易于维护的代码,其中的东西不像魔术字符串那样分散,而是易于修改。

      4. 寻找 GOF 设计模式来解决一般问题。

      5. 设计一个面向服务的架构,通过服务访问那些存储库。记住你是如何向票务提供商索取票的,然后票就出来了,所以你就是 UI,票务提供商就是服务。任何人都可以索取票,前提是某些事情已经到位。这些又是高度可维护的设计解决方案。

      平台有时确实会抑制这些事情,但是

      在我看来,在网站 (UI) 方面,带有 MVVM 或 MVC 的 .net 框架适合考虑这些因素的最佳软件架构。这是一个很长的路要走,但却是实现良好架构的更好方法。

      在这里http://www.asp.net/mvc 了解 MVC,去论坛看看其他人是如何做同样的事情的。

      PS:我的答案仅限于微软,因为这个问题是在这项技术下发布的。

      【讨论】:

        【解决方案6】:

        这个问题很难在短时间内给出答案,几乎不可能用几句话来回答。

        相反,我提供了一本参考书,您可以在其中找到步骤(逐步)应用程序架构指南,在这本书中作者专注于 .NET 应用程序,因此这将是一个很好的应用程序架构指南,请下载并查看Application Architecture Guide(下载步骤:点击链接并点击“手气不错”按钮,然后点击“微软应用架构指南”按钮开始下载)

        希望您能找到构建应用程序的方法。

        感谢您的宝贵时间。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-01-06
          • 2011-09-16
          • 2014-11-05
          • 1970-01-01
          • 1970-01-01
          • 2015-12-20
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多