我正在尝试确定如何最好地构建.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密封?)
谢谢
我参加了 AWS 培训,他们向我们解释说,一个好的做法是通过 Cloudfront 缓存所有动态内容,将 TTL 设置为 0,即使负载均衡器前面有一个 LB。所以它可能是这样的:
Route 53 -> CloudFront -> Application LB
我看不到这种架构的任何优势,而不是直接(仅适用于动态内容):
Route 53 -> Application LB
我不明白这一点,因为 Cloudfront 将始终将所有流量发送到 LB,因此您将拥有:
所以,可能我遗漏了一些关于这个Route 53 -> CloudFront -> Application LB架构的重要信息。
有任何想法吗?
谢谢!
web-architecture amazon-web-services amazon-cloudfront aws-application-load-balancer
鉴于JavaServer Faces在服务器端本质上是有状态的,建议使用哪些方法来横向扩展JSF 2.0应用程序?
如果应用程序运行多个JSF服务器,我可以想象以下场景:
[编辑]
更新以回应Ravi对Sticky Sessions的建议
stateful cluster-computing web-architecture horizontal-scaling jsf-2
我一直看到对JAMstack Web开发架构的引用.
从网页Jamstack.org可以看出,JAMstack 与REST API后端架构的常见JavaScript SPA前端有何不同.
关键区别是什么?
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填充大量动态数据会产生跨浏览器问题.
谁有人评论?我有兴趣阅读你对这种架构的看法.
参考文献:
javascript json separation-of-concerns web-architecture static-html
我有一个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)
然后相同,除了使用get访问以下请求.这是处理这个工作流程的好方法还是我应该用另一个系统来保存内存中相当大的数据(5mb到100mb)?
django memcached web-architecture pandas django-rest-framework
页面控制器模式(使用Microsoft .NET的企业解决方案模式中描述的MVC模式的细化)基本上是简单URI页面请求的模式(即URI +表单提交+查询字符串); ASP的基本?或者它是更复杂的东西.
任何人?
你试图保持简单,并有一个根文件夹,然后1个文件夹的图像,JavaScript,闪存等?你通常把你的文件夹称为什么?你给你的文件命名约定?
从最近几天开始,我一直在寻找新的Web应用程序的最佳架构,这将使用C#在ASP.Net中开发.到现在为止,我只发现并研究了3
现在,我的问题是:
1)据我所知3 Tier Architecture和MVP我可以说MVP和3 Tier是一回事吗?如果没有,那么两者之间有什么区别?(注意:我只发现MVC和MVP或MVC和3 Tier Archi之间的区别,但没有人能够解决MVP和3 Tier Archi之间的差异)
2)我只发现了以上三种架构选项,还有其他选择吗?(注意:这里我只想要Web应用程序整体架构的选项,如上面的3)
architecture ×2
asp.net ×2
asp.net-mvc ×1
aws-application-load-balancer ×1
c# ×1
django ×1
javascript ×1
jsf-2 ×1
json ×1
memcached ×1
mvp ×1
pandas ×1
stateful ×1
static-html ×1
three-tier ×1
web ×1