【问题标题】:ASP.NET Application Suite Development - GotchasASP.NET 应用程序套件开发 - 陷阱
【发布时间】:2010-11-11 11:38:41
【问题描述】:

这听起来可能有点笼统,但我有一家初创公司正在开发 ASP.NET(未开发)软件应用程序套件。我们的目标是在架构阶段花费大量时间来为我们的软件打下坚实的基础。我想知道是否有人有任何建议,我们应该关注的任何事情,或者我们应该关注的领域以构建更好的套件。

我们现在正在关注的一些事情: 1. 会话状态要求——会话应该是粘性的还是我们应该考虑服务器集群会话迁移。 2. 用户登录认证——这个领域的主要关注点是什么——LDAP、AD、自定义 SQL 认证系统等。 3. DAL - ORM 与存储过程
4. 在单个软件套件中集成多个 ASP.NET 应用程序。它应该如何看/感觉。它应该如何架构,等等。

如果任何从头开始构建类似系统的架构师提供任何建议,我将不胜感激。

【问题讨论】:

    标签: asp.net architecture


    【解决方案1】:

    一些一般的想法。如果您希望我解释其中任何一个,请告诉我。

    • 从自定义子类继承 Page 而不是 Page 本身是一个 共享功能的好方法 在您的网站上。
    • 嵌套母版页很好。
    • 图表:我试过 DevExpress, Syncfusion 和 MSChart 控制和 都有自己的问题。
    • 内置表单身份验证是 非常好。建立一个网站 允许集成身份验证 并且表单身份验证很棘手 但可以做到。
    • 我尝试过使用跨页回发 我仍然不确定我是否喜欢 他们。
    • 本地化需要很长时间
    • 为您的 App_Themes 和 css 提供一个良好的结构。
    • 使用 Elmah 跟踪未处理的异常

    【讨论】:

      【解决方案2】:

      只是一些简短的笔记。自从我们在去年工作的地方进行了这个练习后,我不能说得太详细了 - 我不再在那里工作了!

      • 使用 Enterprise Library 从头开始​​,尤其是日志记录和异常处理应用程序块。我还发现他们的 Unity 依赖注入库非常有用。
      • 考虑使用 Visual Studio Team Foundation Server。它不仅用于源代码控制,还可以为您创建一个完整的持续集成解决方案,包括集成的错误跟踪、代码质量跟踪等。如果您有时间和人员,那么值得花一个人月来学习如何进行初始部署。
      • 您可能想要购买 Visual Studio Team System 版本之一的一个或多个许可证。您不需要这些版本即可使用 TFS,但它们可以很好地配合它。
      • 从一开始就考虑全球化。与定制相同,前提是您的套件将在客户场所运行并可由他们定制。
      • 您尚未说明您的团队有多大,或预计会有多大。如果它足够大,您将需要至少花一个人周的时间来了解一下 Visual Studio Extensibility 方面对您可用的内容。您的开发人员(也许还有您的 QA 人员)几乎都生活在 Visual Studio 中,因此能够自定义它以满足您的需求可能是一个巨大的胜利。无论只是一些宏,也可能是一些自定义的项目或项模板,或者您是否想做插件或更多,Visual Studio 都具有很强的可扩展性。
      • 请务必使用 WCF 进行任何网络服务工作。旧版 ASMX Web 服务技术现在被 Microsoft 视为“遗留软件”。
      • 最后,请务必确定您是否符合BizSpark“为软件初创公司提供软件、支持和可见性的计划”的资格。而且几乎是免费的。

      【讨论】:

        【解决方案3】:

        我昨晚在 PhillyDotNet 用户组看到了 Silverlight 3 的演示 - 哇。哇,适用于商业应用程序,而不是图形应用程序。有一个学习曲线,但你会得到很多。例如,演示显示了一个网格被绑定到一个表格,而无需编写任何代码。

        开箱即用,您可以进行排序、编辑、分页等操作。但这不是您通常得到然后必须返工的蹩脚的东西。例如,分页足够聪明,可以编写只带回页面所需的 20 行的 sql。

        演示继续,他在页面上放置了一个详细的表单以供编辑。再次没有代码,但它足够聪明,知道它与页面上的网格具有相同的数据源。因此,当您在网格上逐行移动时 - 详细信息表单正在显示当前行(而且速度非常快)。

        网格和详细信息表单都是可编辑的,并且当您更改一个字段时,另一个字段将反映新值。编辑足够聪明,可以自行验证该字段。因此,您不能在整数类型的字段中放置字母等。它还根据数据库中找到的列大小限制了可以输入的字符数。详细信息表单上的所有日期字段旁边都会自动有一个日历。你明白了 - 没有任何编码。

        如果这还不够,它可以用来构建偶尔连接的应用程序。所以他展示了他如何在几个不同的页面上更新了一些记录,可以选择稍后恢复一个字段(ctrl-Z),然后最后提交所有更改的记录以进行保存。

        此外,他们说它适用于 Linq2SQL 和实体框架。

        因此,如果我现在要构建一个新产品,我会真正将其视为区分我的产品的一种方式。而且我怀疑,如果你现在不使用 Silverlight,那么无论如何你将在几年后重写它。

        Here 是一个演示链接(不是我看到的那个。)

        【讨论】:

        【解决方案4】:

        我知道会话有很多解决方案,但是如果您可以创建无会话的框架,您将避免很多潜在的麻烦。 (有很多无会话选项,但很明显的一个是隐藏的表单字段,有点像 ViewState。)

        【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多