(翻译).NET应用架构
.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应用架构的更多相关文章
- 如何在国产龙芯架构平台上运行c/c++、java、nodejs等编程语言
高能预警:本文内容过于硬核,涉及编译器原理.cpu指令集.机器码.编程语言原理.跨平台原理等计算机专业基础知识,建议具有c.c++.java.nodejs等多种编程语言开发能力,且实战经验丰富的资深开 ...
- Hadoop、Pig、Hive、Storm、NOSQL 学习资源收集
(一)hadoop 相关安装部署 1.hadoop在windows cygwin下的部署: http://lib.open-open.com/view/1333428291655 http://blo ...
- android技术牛人的博客[转]
Android+JNI调用–文件操作 开发环境:Windows xp sp3 +MyEclipse 8.6+android2.3.3+jdk1.6+android-ndk-r6b JNI概述: ...
- LLVM小结
随笔- 5 文章- 0 评论- 10 LLVM小结 如果说gcc是FSF的传奇,llvm就是Chris Lattner的小清新.当然啦,想具体看看这位四处游山玩水还GPA 4.0的大神和他的 ...
- Qemu 简述
Qemu 架构 Qemu 是纯软件实现的虚拟化模拟器,几乎可以模拟任何硬件设备,我们最熟悉的就是能够模拟一台能够独立运行操作系统的虚拟机,虚拟机认为自己和硬件打交道,但其实是和 Qemu 模拟出来的硬 ...
- [转帖]Qemu 简述
Qemu 简述 记得KVM 就是 底层用的qemu https://www.cnblogs.com/bakari/p/7858029.html 本文首发于我的公众号 Linux云计算网络(id: cl ...
- 神经机器翻译 - NEURAL MACHINE TRANSLATION BY JOINTLY LEARNING TO ALIGN AND TRANSLATE
论文:NEURAL MACHINE TRANSLATION BY JOINTLY LEARNING TO ALIGN AND TRANSLATE 综述 背景及问题 背景: 翻译: 翻译模型学习条件分布 ...
- 几本不错的数据仓库和Hadoop书籍
<<Pentaho Kettle解决方案:使用PDI构建开源ETL解决方案>>, Matt Casters等著,初建军翻译<<Hadoop应用架构>> ...
- webassembly
为什么需要 WebAssembly 自从 JavaScript 诞生起到现在已经变成最流行的编程语言,这背后正是 Web 的发展所推动的.Web 应用变得更多更复杂,但这也渐渐暴露出了 JavaScr ...
随机推荐
- Asp.net core 学习笔记 ( Smtp and Razor template 电子邮件和 Razor 模板 )
refer : https://dotnetcoretutorials.com/2017/08/20/sending-email-net-core-2-0/ https://ppolyzos.com/ ...
- TensorFlow 官方文档中文版 --技术文档
1.文档预览 2.文档下载 TensorFlow官方文档中文版-v1.2.pdf 提取码:pt7p
- spoj1433 KPSUM
题意:略: 首先知道10,20,......100,200,1000的前面的符号都是负号. 举具体例子:221时,计算过程为 000-009, 010-019, 020-029...... ...
- 如何分析java内存泄漏问题
java中的内存泄漏首先需要dump文件出来,主要包括内存dump.线程dump: 内存dump是指通过jmap -dump <pid>输出的文件,而线程dump是指通过jstack &l ...
- 数据结构与算法之PHP排序算法(插入排序)
一.基本思想 插入排序算法是每一步将一个待排序的数据插入到前面已经排好序的有序序列中,直到所有元素插入完毕为止. 二.算法过程 1)将第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是未 ...
- sql语句查询结果合并union all用法
整理别人的sql 大概的思想是用union 和union all --合并重复行select * from Aunion select * from B --不合并重复行select * from A ...
- inline元素、block元素、inline-block元素
inline 内联元素:是不可以控制宽和高.margin等:并且在同一行显示,不换行,直到该行排满. block 块级元素:是可以控制宽和高.margin等,并且会换行.块级对象元素会单独占一行显示, ...
- IE9下table th不显示边框解决方法
添加下面两行样式即可 th, td{ background-clip: padding-box; /*背景被裁剪到内边距框*/ position:relative; }
- python四
三元运算 name = "张三" if 1 == 2 else "李四" print(name) name1 = "张三" if 1 == ...
- C++设计模式之-代理模式
根据程洁的大话模式: // Proxy.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<iostream> # ...