0

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

现在,我正在寻找用于 Web 界面、实体框架或我自己编写的模型和 MSSQL 作为数据的 MVC 或 MVVM(据我所知,这只是 Silverlight?)。

不幸的是,我只是一个初出茅庐的程序员,我并不特别了解整个编程世界的趋势。我不知道什么只是昙花一现,什么技术实际上具有持久的潜力。我真的很想使用一些可能会在一段时间内保持相关性的东西。因此,我正在向这里的专业人士寻求对您有用的想法、需要注意的陷阱和需要关注的事情的意见。

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

4

2 回答 2

2

至于我个人建议的框架:

  • MVC 4 的 ASP.NET MVC 3,取决于是否允许 beta 软件的问题。
  • 实体框架 4.3 或 5.0。5.0 快得多(具有自动编译功能),但它仍然是候选版本。
  • AutoMapper 在实体和视图模型之间进行映射。
  • Ninject 用于依赖注入(如果你想编写单元测试很有用)。
  • 用于客户端验证之类的 JQuery(与 ASP.NET MVC 完美集成)。
  • 可能有一些 CSS 框架,如 Bootstrap。
  • 也许 RestSharp 这样你就可以轻松地执行请求。
  • 如果它是一个云服务(大多数 SaaS 都是)并且你想在 Azure 上托管它(与 .NET 堆栈的出色集成),你将需要 Azure SDK。

至于软件架构:

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

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

陷阱:

  • 我不知道是否真的需要单元测试。在设置架构时我一定要牢记这一点,但我个人选择稍后再做,因为我什至不知道我的产品是否会成功,所以我可以更好地把时间花在构建快速的最小可行产品上。
  • 不要假设任何事情。您可以将数月的宝贵时间浪费在您认为每个人都会喜欢的酷功能上,但通常情况并非如此。只做绝对需要的最低限度,如果你的用户喜欢它,以后再改进它。
于 2012-05-17T16:10:35.680 回答
1

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

当您选择了 SaaS 时,您肯定会完全迁移到云中,同时将您的应用程序和数据一起放到云中,这太棒了!!

任何云应用程序都有几个层次,要了解让我们看看云服务堆栈是什么样的。如果我们以 Windows Azure 为例:

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

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

使用云中的应用程序,您可以尝试以下操作:

  1. 让您的应用程序逻辑尽可能小
  2. 将您的静态内容保留在计算之外
  3. 随着应用程序横向扩展,使用基于云的缓存进行快速访问
  4. 如果可能且适用,将数据从传统 RDBMS 数据库转移到 NoSQL 框架(键值对、文档等以节省资金和灵活性)
  5. 利用其他可用服务来降低应用程序复杂性

如果您在脑海中考虑以上方面,您将创建一个真正的基于云的应用程序,它将快速并为您节省资金。

于 2012-05-17T19:02:13.213 回答