企业级SaaS - 相关框架和方法

时间:2012-05-17 16:02:02

标签: asp.net-mvc silverlight saas

我开始研究一个单独的项目,将现有产品从经典ASP的黑暗时代带入光明之中。在开始这个漫长的旅程之前,我做出的最大决定是确定我将为新设计实施哪些框架和方法。

现在我正在研究MVC或MVVM(我收集的这只是Silverlight?),用于Web界面,Entity Framework或我自己编写的模型和MSSQL作为数据。

不幸的是,我只是一个初出茅庐的程序员,我并不是特别了解编程领域的趋势。我不知道什么只是一种流行的时尚,什么技术实际上具有持久的潜力。我真的想使用一段时间内可能保持相关性的东西。因此,我希望这里的专业人士能够提供有关您的想法,需要注意的缺陷以及需要关注的事项。

我感谢任何和所有建议,请记住,使用Microsoft和.Net是一个先决条件。我真的想确保在开始之前我朝着正确的方向前进,因为这可能需要几个月的时间。

2 个答案:

答案 0 :(得分:2)

至于我个人建议的框架:

  • MVC 4的ASP.NET MVC 3,取决于是否允许测试版软件的问题。
  • 实体框架4.3或5.0。 5.0更快(有自动编译)但它仍然是候选版本。
  • AutoMapper,用于在实体和ViewModel之间进行映射。
  • Ninject for dependency injection(如果你想编写单元测试,则非常有用)。
  • JQuery用于客户端验证(与ASP.NET MVC完美集成)。
  • 可能是一些CSS框架,如Bootstrap。
  • 也许是RestSharp,这样您就可以轻松执行请求。
  • 如果它是云服务(大多数是SaaS)并且您想在Azure上托管它(与.NET堆栈的完美集成),您将需要Azure SDK。

至于软件架构:

  • 使用服务图层
  • 使用存储库模式
  • 使用ViewModels传递到您的视图而不是实体
  • 设置依赖注入容器

这是我的建议,我个人认为这是构建企业应用程序的黄金组合(同时不会浪费太多时间配置很多东西)。

缺陷:

  • 我不知道单元测试是否真的有必要。我应该在设置架构时明确地记住它,但我个人之后选择这样做,因为我甚至不知道我的产品是否会成功,所以我可以更好地花时间构建一个快速的最小可行产品。 / LI>
  • 不要假设任何事情。你可以浪费几个月的宝贵时间来制作一个你认为每个人都会喜欢的酷炫功能,但通常情况并非如此。只做绝对必要的最低要求,如果您的用户喜欢它,请稍后进行改进。

答案 1 :(得分:1)

我将在@Leon建议中添加更多内容,因为我从应用程序框架的角度看这些建议很棒,而我想从云方法论的角度来看这里。

当您选择SaaS时,绝对是您完全使用云,同时将您的应用程序和数据集中到云端,这太棒了!

任何云应用程序都有几个层,并了解让我们看看云服务堆栈的外观。如果我们以Windows Azure为例:

  1. 您有Compute,您的应用程序使用Web服务器运行(或不运行)。
  2. 您有Azure表存储,您可以使用它来连续存储键值对,然后非常快速地访问它们。
  3. 您可以使用Azure Queue将云应用程序的不同部分分离,从而可以使用不同的技术轻松构建云应用程序,并轻松扩展流量需求。
  4. 您具有通过OpenID或AD
  5. 对用户进行身份验证的访问控制服务
  6. 您可以使用服务总线连接云中的其他服务或第三方内部部署。
  7. 您将Azure Blob存储用作基于Web的平面文件服务器
  8. 您有Azure Cache(内存缓存构建可在云中扩展)
  9. 您拥有SQL Azure作为云数据库
  10. 您可以浏览和使用
  11. 等更多服务

    因此,当您决定将应用程序从传统的Web托管迁移到云时,您必须了解如何利用这些不同的云服务在需要时扩展您的应用程序并节省大量资金。

    随着您在云中的应用程序,您尝试以下内容:

    1. 让您的应用程序逻辑尽可能小
    2. 将静态内容保留在计算机外
    3. 使用基于云的缓存,以便在应用程序扩展时快速访问
    4. 如果可能且适用,将数据从传统的RDBMS数据库移出到NoSQL Framework(键值对,文档等以节省资金和灵活性)
    5. 利用其他可用服务降低应用程序复杂性
    6. 如果您在脑海中考虑上述方面,您将创建一个真正的基于云的应用程序,该应用程序将很快并且可以为您节省资金。