问题标签 [architecture]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net - 什么用于 ASP.NET 中的成员资格
我在使用 ASP.NET 方面不是很有经验,但是我已经为简单的 WebForms 应用程序使用了内置的成员资格提供程序,并且在尝试扩展它们的工作方式时发现了它们 PITA(添加/删除一些字段并相应地重做控件) . 现在我正在为 MVC(基于 ASP.NET MVC 或 Monorail)项目做准备,我在想——有没有更好的方法来处理用户?让他们登录/注销,让某些用户可以访问网站的某些部分(例如登录的用户,或类似于许多社交网站的“与朋友分享”功能,您可以在其中指定有权访问的用户某些事情。如何以可以很好地扩展的方式最好地实现这一点?
我想,我不是很清楚。重新表述我的问题:您会为面向 Web 的应用程序使用标准的 ASP.NET 成员资格提供程序,还是其他(什么)?
architecture - XP/SCRUM 有多大?
在规划新系统开发的最初阶段,遵循哪种开发模式似乎至关重要。我一直坚信经典瀑布(或混合瀑布/迭代原型)是大中型项目的最佳方法。似乎一旦项目达到一定规模,敏捷/XP/Scrum 范式就无法解决复杂的需求、大型团队、多个子系统之间的复杂性、文档需求、人员变动等,等等
这种敏捷方法在系统规模、团队规模、LOC 等方面的限制是什么?
architecture - 扩展应用程序
我有一个需要扩展的应用程序(IP 会议服务)。它有很多独立的组件/应用程序,用不同的语言(主要是 C++ 和 PHP,一些 Perl)编写。目前,单个安装在 5 台机器上运行,1-2 个组件共享一个盒子。因此每个盒子的配置都是不同的,所以扩展整个东西是一件痛苦的事,更不用说维护了。
各个组件从媒体代理到消息代理和数据库各不相同,因此负载几乎是平衡的。
我正在考虑将所有组件放在一台机器上并添加更多盒子,同时在前面添加某种负载均衡器。其他人建议我以另一种方式扩展——在应用程序负载变高的地方添加专门的盒子——但这又导致了维护的噩梦。
你知道我应该从哪里开始的资源吗?理想情况下,我需要一些基准,哪种方法在性能方面更好?(大声思考,当我有 X 量的负载和 Y 量的内存和处理能力时,我如何分配它有什么关系?)
architecture - 软件架构师是否在敏捷中发挥作用,尤其是。Scrum?
我正在阅读 Marc 和 Laura Sewell (亚马逊链接)的《软件架构师的职业》一书,它让我想知道软件架构师是否是旧的非敏捷 BDUF 方法的一部分。
软件架构师在敏捷方法中是否有一席之地?我对 Scrum 特别感兴趣。
顺便说一句,我目前是一家大公司的 Unix 应用程序架构师。
干杯,
抢
language-agnostic - 除了作为一系列视图之外,人们还能如何呈现架构文档?
大多数(如果不是所有)我见过(和开发)的架构文档都以一系列视图(逻辑、物理、用例等)的形式呈现。这是首选布局吗?还有哪些其他款式?
model-view-controller - 新的 Web 应用程序应该遵循 MVC 还是 MVP 模式?
请注意,我不是问选择哪一个(MVC 或 MVP),而是问是否应该将两者之一用于 Web 应用程序。
我意识到将旧应用程序从其当前设计转换为 MVC 或 MVP 模式可能需要做太多工作。但是,对于新应用程序呢?看起来这些是最流行的架构模式,那么应该选择其中一种吗?如果不是,还有哪些其他模式?
如果您不熟悉 MVC 和/或 MVP,一个很好的问题是“什么是 MVP 和 MVC,有什么区别?” . 它有很多很好的答案,包括指向各个网站的链接,这些网站会分解每个网站。
c# - 初始化静态对象 - 代码设计问题
在我的 Web 应用程序(C#,.Net 3.5)中,由一个核心类库(包含业务逻辑、数据层和几个实用程序类)、一个 Windows 服务项目、一个 Web 服务项目和网站项目组成,我有一个所有其他项目使用的核心库中的几个静态类。这些类(例如Log类)需要一些初始化(它们有一个Initialize方法)才能设置它们以供使用。例如,Log类的Initialize方法有一个目录路径参数,它告诉Log将日志文件保存到哪里。或者我正在考虑加载日志的“设置”静态构造函数中的配置文件中的类。缺点是,我需要在生产代码中进行不同的单元测试设置。
有没有更好的方法来设计这个?这种方法的缺点是,静态类的所有使用者都将尝试调用 Initialize。这不是一个真正的问题,因为一旦初始化,该方法将立即返回,而不是再次执行 Initialize 代码,但设计对我来说似乎有点奇怪。
我希望我的英语足以解释我所追求的。如果问题不够清楚,请不要犹豫。
architecture - 最灵活的 Web 开发框架架构?
编辑,2020/09:如果有人想知道,12 年后,是的,我们现在都已经迁移到 JSON 和 Kubernetes。原文如下。
显然,没有一种单一的解决方案可以满足每个人的需求。架构始终是一种权衡。我想创建一个框架,最初是针对网页游戏的RAD。目标语言是 PHP,尽管该架构应该是广泛适用的。
我为这个框架设定的目标是:实现结果的方式的灵活性;为开发人员提供最大的舒适度;连接乐高®积木等模块;多种输入,多种输出,一种处理格式。
不优先的目标是速度、企业使用和赚钱。它应该是一个开源项目。
这种设计的基石是所有内容,在转换之前,都在 XML 中处理(基于我使用过的 EAI 系统,eGate 的想法)。数据抽象层——希望是一些智能的 ORM——现在并不重要。输出将使用 XSLT 或任何其他自定义模块生成,几乎适用于任何客户端 - 用于旧浏览器的 HTML、用于现代浏览器的 XHTML/HTML5、用于移动客户端的简单 HTML、用于 AJAX/XMLRPC 的 XML 等。
使用 XML 的主要原因是:
- 这是一个众所周知的标准
- 用于导航和修改内容的现有工具,如 XPath、SimpleXML 和 DOM
- XSLT 提供了一种强大而统一的方法来将代码转换为任何标签汤
- 我发现 XML 标记非常容易阅读,因此我不认为 JSON 或 YAML 的优势在这里有所作为
- 内容可以轻松堆叠,只要使用 XSLT 正确转换,内容的顺序并不重要
页面生成过程将包括以下阶段:
- 预处理:初始化模块,处理 GPCS 数据,应用默认 [XML] 模板
- 处理/生成:业务逻辑的主要部分,使用最大数据生成臃肿的 XML(尽管希望优化为不生成压载物)
- 处理:一些额外的业务逻辑,例如削减一些标记,准备转换,报告,统计等。
- 后处理:通过转换引擎(很可能只是 XSLT)解析 XML,输出。
生成的内容将包含大量元数据(例如标签、权限、重要性、必要性、目标输出类型),这些元数据将在后处理期间被剥离。
所以,我的问题是:除了速度,这个解决方案的缺点是什么?在框架的开发/维护及其应用程序中,哪里可能出错?这种架构的缺点是什么?
.net - 跨多个应用程序的配置
在 winforms 解决方案中的多个相关应用程序之间共享配置数据的建议是什么?我设想的两种可能的解决方案是使用 machine.config (?) 文件中的自定义部分,另一种是创建一个额外的配置服务应用程序,该应用程序通过其 Properties 类维护设置,并处理来自这些设置的 get 和 set 请求所有其他应用程序。
c# - 开发要销售的基于 Web 的应用程序时需要考虑哪些常见事项
我正在为内部客户开发应用程序。要求之一是它的开发方式可能会出售给其他组织。该应用程序是一个筹款组织的跟踪应用程序,该组织将管理他们的捐赠、捐赠者、参与者和活动。我已经知道我需要开发一个用于身份验证的插件架构(授权将在内部处理)并从外部目录中获取人口统计数据。
该应用程序将在 ASP.NET/C#/Linq/SQL Server 上构建。在这一点上,我并不是真的愿意支持替代数据库,但我想如果有必要,我可以在未来通过不同的 Linq 驱动程序来做到这一点。
迄今为止,我构建的所有 Web 应用程序都是自定义实现,所以我想知道是否还有其他需要通过插件和/或配置项解决的问题。任何输入都会有所帮助。
谢谢。