首先,从纯技术角度对Web型项目做一个计划,涉及技术难度,环境要求,处理难点,高性能,可扩展性,数据库移植性,安全性等等,分别进行描述:
l          逻辑结构分层
微软针对DotNet提供了4个经典的案例有Duwamish、PetShop、Fitch and Mather 和 DotNetFurom.Duwamish和PetShop都给出了完整,可运行的代码.Duwamish是一个外表简单,内部极复杂的程序,相反PetShop比较简单,而且是传统的三层应用,比较轻巧,而且在例子中给出同时支持SQL server和Oracle数据库的功能.所以,选择PetShop3.0的分层作为样版.
l          技术环境
环境:Win2k Server + IIS + SQL Server2k
技术:ASP.NET + ADO.NET + C# + 企业级模板
开发工具: VS.NET2003
l          数据访问策略
a.      只用 SQL 语句,好处是支持多版本数据库时,不用分别维护各版本的存储过程,缺点是损失一部分性能.
b.      支持多种数据库,采用工厂模式,运行时根据配置动态绑定
c.       调用DAAB库,目前DAAB版本是3.0,Petshop3.0使用的是1.0版本.
d.      配置合适的连接池
l          错误处理
a.      合理的结构化异常处理,并且给出友好的提示
b.      错误信息保存到日志
c.       微软的企业库提供了EHAB3.0,可以参考
l          事务处理
.NET中的事务处理分为两种:自动事务处理和手动事务处理,自动事务处理调用COM+中的企业服务部件实现异构数据库事务处理,性能不高.手动事务处理分为ADO.NET上的事务处理和存储过程中的事务处理.一般没涉及异构数据库支持,并且没有用存储过程的话,采用ADO.NET的事务处理就可以了.
l          安全性
a.      如果是分布式部署,要考虑网络欺骗,如果单机部署就不用考虑
b.      对受限资源采用Form方式进行授权,原理是根据Cookie,如果要求更高,可以采用基于Windows的身份验证,或者Passport的方式.一般网站采用的都是Form方式.
c.       配置文件加密,微软企业库提供了Configuration Application Block,提供了现成的加密方式,可以参考.也可以自己编写对称加密算法.
d.      用户密码经过单向加密存入数据库,Duwamish的SHA1+SALT加密很好,可以参考.
e.      严禁数据库访问采用SA用户,并且连接字符串可以采用信任方式访问,不要放入用户名和密码
f.        业务权限划分,涉及具体业务.微软的企业库提供了Security Application Block可以参考.
l          性能
a.      多用Cache,分为页面输出缓存和数据缓存.
b.      CacheAPI中要注意名字唯一性
c.       少用Session,一般使用InProc类型的session效率最高
d.      页面上显示设置Session类型: True,False,ReadOnly
e.      页面和控件的ViewState属性
f.        数据查询使用视图
l          编码风格
a.      保持代码的相似度,提高可度性
b.      遵守命名规范
c.       调用方式模仿PetShop3.0
d.      控件使用规范
e.      美工+报表
l          验证
a.      数据验证,比如格式,用code behide结合Validate控件实现
b.      采用客户端JavaScript时,注意安全性和浏览器支持性
c.       业务验证,比如重复记录,在BLL层验证,返回错误类型,用Validate控件显示给用户
l          并发性
a.      并发性的测试工具MACT
b.      涉及事务处理采用ADO.NET类型的手动事务处理
c.       数据库查询时注意锁的等级,尽量不要用游标,Select时可以采用nolock等等
l          全球化,本地化支持
a.      程序全球化+数据库全球化
b.      程序全球化包括使用资源和编码设定
c.       数据库字段支持Unicode
 
功能方面的考虑待续