.NET应用架构

Kalyan Bandarupalli著,hystar翻译

这个系列文章将帮助.NET开发人员与架构师使用最新的.NET技术设计高效的.NET应用。关于应用架构这方面虽然已有很多文章与书籍,但是对于设计人员理解应用设计的最佳的原则与实践仍然是具有挑战性的。这篇文章阐述了应用架构的基本概念与原则。

介绍

这个系列文章将帮助.NET开发人员与架构师使用最新的.NET技术设计高效的.NET应用。关于应用架构这方面虽然已有很多文章与书籍,但是对于设计人员理解应用设计的最佳的原则与实践仍然是具有挑战性的。

这篇文章阐述了应用架构的基本概念与原则。

什么是应用架构?

通过优化性能,安全及可管理性来定义一个满足技术及可选需求的解决方案。

为什么要进行架构?

软件必须构建在严密的考虑之上,没能满足关键场景或没能理解设计问题将导致一个较长的设计周期。应用需要实现以下目标:

  • 最终用户怎样使用你的程序?
  • 与安全,性能,并发,全球化与配置相关的质量指标。
  • 什么样的架构适合你现在的这个程序及其将来部署后的情况。

架构的目标

应用架构建立了商业需求与技术需求之间的桥梁。好的架构可以解决与解决方案相关的业务风险。

  • 系统的结构而不是实现的细节
  • 用例场景
  • 关注基础支持层
  • 功能及质量需求

设计架构的途径

你必须决定你正在构建的应用的类型以及将要被用于横切技术等用途的架构风格。

  • 识别应用的类型
  • 应用应该怎样部署?
  • 快速评审架构样式与技术
  • 考虑质量特性及横切关注点

应用类型

架构与设计的关键部分是识别应用的类型。应用的类型可以是

  • 被设计用于运行在客户端PC上的富客户端应用
  • 富Inernet应用
  • 被设计用于支持松耦合组件之间通信的SOA应用。
  • 智能客户端应用

部署策略

当你设计你的应用时,你必须规划基础架构以满足应用的部署要求。你的应用必须可以适应环境中存在的任何限制。在设计过程的早期就要识别基础架构。

架构样式

架构样式是一套我们应该在组件设计以及后期的应用中使用的策略与方针。

架构样式的例子包括:

1. 客户端-服务器

2. 分层架构

3. MVC

4. SOA

横切点

这些关注点是你设计过程中非常核心的问题,它们往往不仅关系应用的某一层。当你设计你的应用时你必须考虑一下关注点。

验证:决定怎样验证用户以及怎样在多层之间传递身份信息。

授权:确保在每一个信任区域内有且恰当的授权。

缓存:识别缓存什么以及缓存在哪里来提高应用的性能及相应性。

通信:选择适当的协议来保护敏感数据在网络的传输。

异常管理:在边界捕获异常,并提示给终端用户充足的信息。

统计与记录:统计所有的业务及系统核心事件并记录详细的信息。不要记录敏感信息。

结论

这篇文章解释了应用架构的基础,在本系列下一篇中我将解释架构与设计的原则。

本人才疏学浅,难免出现翻译错误,请不吝赐教。

出处:https://www.cnblogs.com/lsxqw2004/archive/2009/09/23/1572664.html

(翻译).NET应用架构的更多相关文章

  1. 如何在国产龙芯架构平台上运行c/c++、java、nodejs等编程语言

    高能预警:本文内容过于硬核,涉及编译器原理.cpu指令集.机器码.编程语言原理.跨平台原理等计算机专业基础知识,建议具有c.c++.java.nodejs等多种编程语言开发能力,且实战经验丰富的资深开 ...

  2. Hadoop、Pig、Hive、Storm、NOSQL 学习资源收集

    (一)hadoop 相关安装部署 1.hadoop在windows cygwin下的部署: http://lib.open-open.com/view/1333428291655 http://blo ...

  3. android技术牛人的博客[转]

    Android+JNI调用–文件操作 开发环境:Windows xp sp3 +MyEclipse 8.6+android2.3.3+jdk1.6+android-ndk-r6b JNI概述:     ...

  4. LLVM小结

    随笔- 5  文章- 0  评论- 10  LLVM小结   如果说gcc是FSF的传奇,llvm就是Chris Lattner的小清新.当然啦,想具体看看这位四处游山玩水还GPA 4.0的大神和他的 ...

  5. Qemu 简述

    Qemu 架构 Qemu 是纯软件实现的虚拟化模拟器,几乎可以模拟任何硬件设备,我们最熟悉的就是能够模拟一台能够独立运行操作系统的虚拟机,虚拟机认为自己和硬件打交道,但其实是和 Qemu 模拟出来的硬 ...

  6. [转帖]Qemu 简述

    Qemu 简述 记得KVM 就是 底层用的qemu https://www.cnblogs.com/bakari/p/7858029.html 本文首发于我的公众号 Linux云计算网络(id: cl ...

  7. 神经机器翻译 - NEURAL MACHINE TRANSLATION BY JOINTLY LEARNING TO ALIGN AND TRANSLATE

    论文:NEURAL MACHINE TRANSLATION BY JOINTLY LEARNING TO ALIGN AND TRANSLATE 综述 背景及问题 背景: 翻译: 翻译模型学习条件分布 ...

  8. 几本不错的数据仓库和Hadoop书籍

    <<Pentaho Kettle解决方案:使用PDI构建开源ETL解决方案>>, Matt Casters等著,初建军翻译<<Hadoop应用架构>> ...

  9. webassembly

    为什么需要 WebAssembly 自从 JavaScript 诞生起到现在已经变成最流行的编程语言,这背后正是 Web 的发展所推动的.Web 应用变得更多更复杂,但这也渐渐暴露出了 JavaScr ...

随机推荐

  1. sublime设置html在浏览器打开

    1.快捷键 Ctrl+Shift+P输入:pcip选择第一个 2.输入:View In Browser安装此插件 3.菜单栏Preferences->Key Bindings  输入:[{ &q ...

  2. SDWebImage 的简单使用方法

    第一步,下载SDWebImage,导入工程 第二步,在需要的地方导入头文件:#import   "UIImageView+WebCache.h" 第三步,调用sd_setImage ...

  3. Expression的烦恼

    var tar = Expression.Label(typeof(int)); var p1=Expression.Parameter(typeof(int), "a"); va ...

  4. HihoCoder - 1142 ,三分入门

    先来说说三分的思想: 从三分法的名字中我们可以猜到,三分法是对于需要逼近的区间做三等分: 我们发现lm这个点比rm要低,那么我们要找的最小点一定在[left,rm]之间.如果最低点在[rm,right ...

  5. android -------- OkGo (让网络请求更简单的框架)

    项目地址:https://github.com/jeasonlzy 该库是封装了okhttp的网络框架,可以与RxJava完美结合,比Retrofit更简单易用.支持大文件上传下载,上传进度回调,下载 ...

  6. postman设置token关联参数,其他接口直接读取token变量

    问题描述:有一个登录接口获取token,其他接口再次访问时都要带上token 解决方案: 步骤一:在登录接口访问后设置postman的环境变量,例如设置环境变量名:token,值为登录接口访问成功后, ...

  7. SQL注入理解与防御

    一.说明 sql注入可能是很多学习渗透测试的人接触的第一类漏洞,这很正常因为sql注入可能是web最经典的漏洞.但在很多教程中有的只讲‘或and 1=1.and 1=2有的可能会进一步讲union s ...

  8. PS切图采坑

    博客记录我的各种采坑,有的坑很水,比如下面这个 谨记录自己的坑,以后作为入门笑料. 拿到设计师的psd设计图,理清事件逻辑,接下来就要切图啦.结果PS老是crash!检查了PS版本,也不低啊2017. ...

  9. unity中实现场景之间加载进度条

    using UnityEngine; using System.Collections; using UnityEngine.SceneManagement; using UnityEngine.UI ...

  10. 50个常用的Linux命令(三)基础实例

    ls ls -als -l == llls -Aldrwxrwxrwx.  2 root   root       6 Dec 21 20:38 Videos-rwxrwxrwx   1 root   ...