标签: web-architecture

.NET实体框架项目布局(架构)

我正在尝试确定如何最好地构建.NET实体框架项目以实现一个很好的分层方法.到目前为止,我已经在基于浏览的游戏中尝试过,玩家拥有并操作行星.这是我如何得到它:

网站

这包含所有前端.

C#项目 - MLS.Game.Data

这包含带有我所有数据映射的EDMX文件.这里别的不多.

C#项目 - MLS.Game.Business

这包含我称之为"管理器"的各种类,例如PlanetManager.cs.行星管理器具有用于与行星交互的各种静态方法,例如getPlanet(int planetID),它将从MLS.Game.Data返回生成的代码对象.

从网站上,我会做这样的事情:

var planet = PlanetManager.getPlanet(1);

它从MLS.Game.Data(从EDMX生成)返回一个Planet对象.它有效,但它在某种程度上困扰我,因为这意味着我的前端必须引用MLS.Game.Data.我一直认为GUI应该只需要引用Business项目.

另外,我发现我的经理类往往变得非常沉重.我最终会得到几十种静态方法.

所以...我的问题是 - 其他人如何布置他们的ASP EF项目?

编辑

经过一些更多,还有额外的项目困扰我.例如,假设我有我的Planet对象,它再次从向导生成代码.如果时间到来我的星球需要有一个专门的属性,比如说"人口",这是基于Planet对象的其他属性的某种计算.我是否想要创建一个继承自Planet的新类,然后返回它?(嗯,我想知道这些课程是否被EF密封?)

谢谢

c# architecture asp.net entity-framework web-architecture

12
推荐指数
1
解决办法
3770
查看次数

在 AWS Application LB 之上添加 AWS Cloudfront 有什么好处?

我参加了 AWS 培训,他们向我们解释说,一个好的做法是通过 Cloudfront 缓存所有动态内容,将 TTL 设置为 0,即使负载均衡器前面有一个 LB。所以它可能是这样的:

Route 53 -> CloudFront -> Application LB
Run Code Online (Sandbox Code Playgroud)

我看不到这种架构的任何优势,而不是直接(仅适用于动态内容):

Route 53 -> Application LB
Run Code Online (Sandbox Code Playgroud)

我不明白这一点,因为 Cloudfront 将始终将所有流量发送到 LB,因此您将拥有:

  • 两个 HTTPS 协商(客户端 <-> Cloudfront 和 Cloudfront <-> LB)
  • 完全没有缓存(它是动态内容,不应该被缓存,因为这就是“动态”的意思)
  • 您将没有客户端 IP,因为您的 LB 只会看到 Cloudfront IP(我知道这可以修复,以拥有客户端 IP,但是接下来您会遇到问题)。
  • 作为一项额外的工作,您需要能够经常更新您的 LB 安全组,以匹配 CloudFront IP(对于该区域),因为我猜您只想从您的 Cloudfront 获取流量,而不是直接从 LB 公共端点获取流量.

所以,可能我遗漏了一些关于这个Route 53 -> CloudFront -> Application LB架构的重要信息。

有任何想法吗?

谢谢!

web-architecture amazon-web-services amazon-cloudfront aws-application-load-balancer

8
推荐指数
2
解决办法
793
查看次数

JSF 2.0应用程序的水平扩展

鉴于JavaServer Faces在服务器端本质上是有状态的,建议使用哪些方法来横向扩展JSF 2.0应用程序?

如果应用程序运行多个JSF服务器,我可以想象以下场景:

  1. 粘滞会话:将与给定会话匹配的所有请求发送到同一服务器.
    • 问题:通常使用什么技术来实现这一目标?
    • 问题:服务器故障导致会话丢失......并且通常看起来像脆弱的架构,尤其是在重新开始时(不尝试扩展现有应用程序)
  2. 状态(会话)复制:在群集中的所有JSF服务器上复制JSF状态
    • 问题:通常使用什么技术来实现这一目标?
    • 问题:没有扩展.cluster的总内存=最小服务器上的总内存
  3. 指示JSF(通过配置)将其状态存储在外部资源(例如运行内存非常快的数据库的另一台服务器)上,然后在需要应用程序状态时从JSF服务器访问该资源?
    • 问题:这可能吗?
  4. 指示JSF(通过配置)是无状态的?
    • 问题:这可能吗?

[编辑]

更新以回应Ravi对Sticky Sessions的建议

stateful cluster-computing web-architecture horizontal-scaling jsf-2

6
推荐指数
1
解决办法
1934
查看次数

什么是JAMstack Web开发架构?

我一直看到对JAMstack Web开发架构的引用.

从网页Jamstack.org可以看出,JAMstack 与REST API后端架构的常见JavaScript SPA前端有何不同.

关键区别是什么?

web-architecture web

6
推荐指数
1
解决办法
683
查看次数

使用AJAX/JSON提供静态HTML和生成内容有什么好处?

http://blog.urbantastic.com/post/81336210/tech-tuesday-the-fiddly-bits

来自Urbantastic的Heath写了他的HTML生成系统:

Urbantastic中的所有HTML都是完全静态的.所有动态数据都以JSON格式通过AJAX发送,然后使用Javascript与HTML结合.换句话说,Urbantastic的服务器软件专门生产和使用JSON.HTML,CSS,Javascript和图像都通过不同的服务(vanilla Nginx服务器)发送.

我认为这是一个有趣的模型,因为它将表示与数据分开.我不是建筑专家,但似乎效率和稳定性会有所提高.

但是,以下关注我:


  • [主观] Clojure非常强大; Javascript不是.在为另一个目标创建的语言上编写所有内容生成将产生一些痛苦(想象一下在CSS中编写Javascript类型的代码).除非他有一个用于生成Javascript的宏系统,否则Heath可能需要在JavaScript和Clojure之间不断切换.他还会有很多JS代码; 可能比Clojure要多得多.在功能,快速开发,简洁以及我们在切换到基于LISP的语言时所考虑的所有事情方面,这可能不太好.

  • [性能]我不确定这一点,但渲染用户机器上的所有内容可能会滞后.

  • [可访问性]如果您已禁用JS,则根本无法使用站点.

  • [accessibility#2]我怀疑用JavaScript填充大量动态数据会产生跨浏览器问题.

谁有人评论?我有兴趣阅读你对这种架构的看法.

参考文献:

  1. 链接到关于HN的讨论.
  2. 链接到关于/ r /编程的讨论.

javascript json separation-of-concerns web-architecture static-html

5
推荐指数
1
解决办法
3592
查看次数

通过会话密钥访问请求之间的pandas数据帧对象

我有一个pandas数据框,周围有一个松散的包装类,为我的django/DRF应用程序提供元数据.该应用程序基本上是一种用户友好(非程序员)方式来进行一些数据分析和验证.在请求之间,我希望能够保存数据帧的状态,这样我就可以与数据进行一系列交互,但不需要将其保存在数据库中(只需要与浏览器会话一起存活).从这里可以看出django的会话框架是合乎逻辑的,但是从我所听到的会话数据应该是轻量级的,而dataframe对象不是json序列化的.

因为我没有大量的用户,并且我希望应用程序感觉像桌面站点,我正在考虑使用django缓存作为将数据帧对象保留在内存中的一种方法.因此将数据放入缓存中将会是这样的

>>> from django.core.cache import caches
>>> cache1 = caches['default']
>>> cache1.set(request.session._get_session_key, dataframe_object)
Run Code Online (Sandbox Code Playgroud)

然后相同,除了使用get访问以下请求.这是处理这个工作流程的好方法还是我应该用另一个系统来保存内存中相当大的数据(5mb到100mb)?

django memcached web-architecture pandas django-rest-framework

5
推荐指数
1
解决办法
1091
查看次数

什么是页面控制器模式?

页面控制器模式(使用Microsoft .NET的企业解决方案模式中描述的MVC模式的细化)基本上是简单URI页面请求的模式(即URI +表单提交+查询字符串); ASP的基本?或者它是更复杂的东西.

任何人?

http://msdn.microsoft.com/en-us/library/ff647095.aspx

asp.net-mvc design-patterns web-architecture

3
推荐指数
1
解决办法
7401
查看次数

您如何构建您的网站内容?

你试图保持简单,并有一个根文件夹,然后1个文件夹的图像,JavaScript,闪存等?你通常把你的文件夹称为什么?你给你的文件命名约定?

web-architecture

2
推荐指数
1
解决办法
488
查看次数

我可以说MVP = 3级Archi?

从最近几天开始,我一直在寻找新的Web应用程序的最佳架构,这将使用C#在ASP.Net中开发.到现在为止,我只发现并研究了3

  • 三层体系结构(注意:按层,我的意思是逻辑层)
  • 模型视图控制器(MVC)
  • 模型视图演示者(MVP)

现在,我的问题是:

1)据我所知3 Tier Architecture和MVP我可以说MVP和3 Tier是一回事吗?如果没有,那么两者之间有什么区别?(注意:我只发现MVC和MVP或MVC和3 Tier Archi之间的区别,但没有人能够解决MVP和3 Tier Archi之间的差异)

2)我只发现了以上三种架构选项,还有其他选择吗?(注意:这里我只想要Web应用程序整体架构的选项,如上面的3)

architecture asp.net mvp three-tier web-architecture

2
推荐指数
1
解决办法
2299
查看次数