我被分配了一个任务来开发一个大型的社交网络应用程序,如Facebook,Twitter等,使用ASP.net与C#
在此之前,我的开发基于三层架构(即表示层,业务逻辑层和数据访问层),但对于这个项目,我很困惑,因为它是我的第一个大型项目:(
我只是想知道我有哪些其他可能的建筑选择?
我知道很难回答这个问题,但我只想拥有良好的资源,然后我研究每个可能的选择,最后选择一个适合我的要求。我在互联网上做了一点RnD,但没有成功。
答案 0 :(得分:2)
您应该查看Windows Azure。它以Blob(或文件/图像/原始),队列(用于分布式通信)和表存储(以非关系方式维护'实体'数据)的形式提供托管,3种类型的可扩展(但不是关系)存储)。
还有用于关系存储的SQL Azure和用于混合(本地/云)应用程序可寻址性的AppFabric和用于基于声明的身份管理的访问控制。
它具有内置诊断功能,如果您了解C#/ ASP.NET / ASP.NET MVC,则无需使用此平台即可获得新技能。它也适用于Java和PHP。
windows.azure.com
答案 1 :(得分:1)
就架构而言,您仍然可以维持3层。您希望能够轻松扩展数据库读取,并且理想情况下有一个缓存层,如memcached或membase。 Facebook,YouTube以及基本上所有其他高流量应用程序都使用这些缓存。
之后,它正在优化页面加载和交付时间 - 这是一项广泛的任务,但也比试图找出如何修改包含1亿条记录的表格更容易。
答案 2 :(得分:1)
我会选择面向服务的架构。良好的服务器上的所有业务逻辑和DAL执行所有时间和资源消耗操作,逻辑。 Microsoft Team的最佳实践和模式为我们详细阐述了所有体系结构模式。阅读Web服务软件工厂并选择它来执行BLL和DAL,并简单地从托管网站的服务器调用服务。在另一台服务器上,您应该放置表示层 - 页面
这将放弃以下好处:
1.最佳实践和架构
2.如果您与其他人一起开发,您可以轻松地分割工作
3.性能,所有工作都在服务器上完成
这些是主要的观点,这是绰绰有余的。
问候,
的Sergiu。
答案 3 :(得分:-1)
我认为设计大型Web架构不仅要提高性能,还要看广泛,既有资源,也有数据架构,易于重构,可以查看不同的处理服务(多层),请参阅我关于大型网页的博文用javascript建筑。
http://faizalpribadi.github.io/web-architecture-for-large-scale-application/