设计前的考虑和准备工作

 1 对业务需求的理解重要性远远胜于对技术架构的理解

2 架构包含技术架构和业务架构

3 没有万能和通用的架构,只有符合自身业务需求的架构

4 架构本身的复杂性要截至在架构设计阶段

5 扩展性和健壮性是架构设计要考虑的重要内容.

6 第三方工具,开源组件,EnterpriseLib都可借鉴,但绝对不是照单全收

架构设计前需求准备的相关知识

 1 对业务系统中业务的宏观和整体理解.

2 对DotNet分布式技术的相关知识储备

3 对Rational统一过程4+1视图的理解

4 对架构,组件,充用,设计模式,第三方工具组件的学习和借鉴.

业务层面对架构的影响

 1 能否画出全局的用例视图,用例驱动体现在哪里?到哪个粒度

2 逻辑视图是面向对象设计之本

3 逻辑视图在架构阶段要做到哪个层次系统/子系统/模块/单元

4 什么在决定部署视图?

5 实施视图和逻辑视图的关系,实施视图作用

技术层面对架构的影响

 1 技术层面重点体现在了实施视图和部署视图里面.

2 技术层面重点关注的是非功能性需求.

3 异常/日志/安全/性能/队列/缓存/离线/

4 系统管理/工作流/公用类/公用组件

5 技术架构的缺陷泄漏对应用系统是致命打击.

 分布式应用如何构建

 1 现有的分布式技术Remoting // Web Service

2 如何选择分布式技术:业务需求,性能,开发难易工作量

3 智能客户端与分布式应用的关系

4 出现前台展示既有WinUI又有WebUI的时候的统一考虑

5 选择Remoting+IIS Hosting与Web Service的优缺点对比

6 要尽早出原型对架构进行验证.

对于系统的异常和日志需求

 1 首先理解清楚业务或系统本身对异常和日志的需求

2 异常和日志一定要配合使用,一些不适合抛给用户的异常要通过后台日志记录下来

3 业务对日志有需求,如登录日志,操作日志

4 完善的异常日志功能方便后期系统的维护,出现问题后的跟踪和分析

5 微软的AppBlock和Log4Net都可以借鉴,但要分析利弊。

 对于系统的安全性的需求和考虑

 1 Remoting的安全性问题,远程暴露的服务接口是否安全

2 系统的登录和验证机制

3 数据传输的安全性问题

4 存储在数据库中的业务数据的安全性

5 部署到客户端的程序集的安全性

对于系统缓存的考虑

1 要好了系统性能大幅度提升,用不好比不用还糟糕

2 对于客户端缓存和服务器端缓存的选择问题

3 对于缓存引起的同步和并发问题的考虑和解决

4 扩展性和健壮性是设计时要考虑的重要内容

业务实体的选择问题

 1 没有使用O/R Mapping的时候千万别搞自定义类做实体

2 DataSet (虽对性能有影响,但开发简洁性和效率提升)

3 类型化和非类型化的优缺点一定要搞的很清楚.

4 再次强调-业务实体和数据库表间无一一对应关系.

5 与OO的一些区别:对象和对象操作分离开了?利弊在哪里?

(转)对DotNet分布式应用搭建的考虑的更多相关文章

  1. 对DotNet分布式应用搭建的考虑

    设计前的考虑和准备工作 1 对业务需求的理解重要性远远胜于对技术架构的理解 2 架构包含技术架构和业务架构 3 没有万能和通用的架构,只有符合自身业务需求的架构 4 架构本身的复杂性要截至在架构设计阶 ...

  2. 手把手教你使用spring cloud+dotnet core搭建微服务架构:服务治理(-)

    背景 公司去年开始使用dotnet core开发项目.公司的总体架构采用的是微服务,那时候由于对微服务的理解并不是太深,加上各种组件的不成熟,只是把项目的各个功能通过业务层面拆分,然后通过nginx代 ...

  3. spring cloud+dotnet core搭建微服务架构:服务发现(二)

    前言 上篇文章实际上只讲了服务治理中的服务注册,服务与服务之间如何调用呢?传统的方式,服务A调用服务B,那么服务A访问的是服务B的负载均衡地址,通过负载均衡来指向到服务B的真实地址,上篇文章已经说了这 ...

  4. spring cloud+dotnet core搭建微服务架构:Api网关(三)

    前言 国庆假期,一直没有时间更新. 根据群里面的同学的提问,强烈推荐大家先熟悉下spring cloud.文章下面有纯洁大神的spring cloud系列. 上一章最后说了,因为服务是不对外暴露的,所 ...

  5. spring cloud+dotnet core搭建微服务架构:配置中心(四)

    前言 我们项目中有很多需要配置的地方,最常见的就是各种服务URL地址,这些地址针对不同的运行环境还不一样,不管和打包还是部署都麻烦,需要非常的小心.一般配置都是存储到配置文件里面,不管多小的配置变动, ...

  6. spring cloud+dotnet core搭建微服务架构:配置中心续(五)

    前言 上一章最后讲了,更新配置以后需要重启客户端才能生效,这在实际的场景中是不可取的.由于目前Steeltoe配置的重载只能由客户端发起,没有实现处理程序侦听服务器更改事件,所以还没办法实现彻底实现这 ...

  7. spring cloud+dotnet core搭建微服务架构:Api授权认证(六)

    前言 这篇文章拖太久了,因为最近实在太忙了,加上这篇文章也非常长,所以花了不少时间,给大家说句抱歉.好,进入正题.目前的项目基本都是前后端分离了,前端分Web,Ios,Android...,后端也基本 ...

  8. 用dotnet core搭建web服务器(三)ORM访问数据库

    访问传统sql数据库,大家以前都是用sql语句去查询.这些年流行orm方法 ORM是对象关系映射的简拼,就是用一个对象(class)去表示数据的一行,用对象的成员去表述数据的列 dotnet 官方很早 ...

  9. 用dotnet core搭建web服务器(二)路由表与封装

    https://gitee.com/lightsever/netcore_study/tree/master/server02_path 先上代码,首先我们把httpserver封装一下,以后用起来方 ...

随机推荐

  1. Android 开发之异常处理篇(一):SDK Manager 闪退的解决方法

    这个问题困扰了我很久,之前没解决,就放一放.后来我又专门拿了一个下午来找解决方法,终于搞定! 我的解决方法是修改 android.bat,直接指定java.exe所在位置,不用去调用find_java ...

  2. Vs2008几个快捷键

    CTRL+M 收缩 格式化cs代码:Ctrl+k+f    格式化aspx代码:Ctrl+k+d 5. 怎样快速切换不同的窗口? Ctrl+Tab   7. 怎样快速添加代码段? 输入prop然后按两 ...

  3. [AngularJS] Hijacking Existing HTML Attributes with Angular Directives

    Angular overrides quite a few existing HTML elements and attributes. This can be a useful technique ...

  4. Php-SPL库中的迭代器类详解(转)

    SPL提供了多个迭代器类,分别提供了迭代访问.过滤数据.缓存结果.控制分页等功能.,因为php总是在不断壮大,我尽可能列出SPL中所有的迭代类.下面其中一些迭代器类是需要php5.4,另外一些如Sea ...

  5. mysql常用知识点

    --存储过程及常用流程控制语法 /*该代码是创建了一个名叫"p4"的存储过程并设置了s1,s2,s3两个int型一个varchar型参数,还可以是其他数据类型,内部创建了x1,x2 ...

  6. 调用百度地图Api实现的查看地图功能的小插件

    1. 功能 bMap.js 可根据地理位置调用出百度地图,采用弹出框形式 2.用法 var city = '青岛市'; var address = '香港中路'; bMap.init({ city : ...

  7. 为VS2010默认模板添加版权信息 .

    通过以下方式可以自定义CS类文件代码模板(以下为VS2010,VS2008类似): 1,打开VS的安装目录,例如 D:\Program Files\Microsoft Visual Studio 10 ...

  8. 浅谈 qmake 之 pro、pri、prf、prl文件

    尽管每次和cmake对比起来,我们总是说 qmake 简单.功能少.但是qmake仍然是一个非常复杂的东西,我想大多人应该和我一样吧: 不是太清楚CONFIG等变量到底如何起作用的 用过的qmake内 ...

  9. Docker 1.12.0将要发布的新功能

    Docker 1.12.0将要发布的新功能 导读 按计划,6/14 是1.12.0版本的 feature冻结 的日子,再有两个星期Docker 1.12.0也该发布了.这里列出来的新功能,都是已经合并 ...

  10. phpstorm一个窗口打开多个项目

    phpstorm默认一个窗口只显示一个项目,入股拟新建一个项目,他会给你个选项卡,问你是在新窗口打开新项目还是在本窗口打开. 能不能在一个窗口打开多个项目呢?就像sublime text那样,其实是可 ...