我ASP开发新手,问一些问题
在下接受一个ASP的开发的任务,从无到有,学习了一下,马上开始动工,先问一些比较令我迷惑的问题,请高手指点迷津,谢谢
1.ASP.NET的架构是否为标准的MVC三层架构,不断的数据绑定让我感觉这个架构很模糊。
2.对于数据库的操作,什么时候适合数据源直接绑定,什么时候适合使用ADO.NET进行操作。
3.各种数据处理方法,比如BULK,BATCH,怎么判断其使用时机?
4.在页面中使用回调函数(不刷新页面)进行数据的更新,抑或使用提交,两种方法有何优劣
5.在使用CUSTOM验证时,如果客户端进行了验证,服务器端是否还会进行一次验证
6.在使用数据时,使用BO,使用ADO的时机应该如何把握
7.为何登录控件不推荐使用自动的数据连接,而要自己手写?
8.所谓优雅的数据操作方法MARS,优雅在何处?
9.使用数据库操作,还是使用XML,两者优劣,使用的时机?
10.对于一个XML的格式,是否有必要在每次使用前进行VALIDATE?
11.对于保存某些数据,是使用SESSION,还是使用PERSONALIZATION中的PROFILE?
12.对于多个用户同时登录,后者的Personalization属性是否会覆盖前者,还是每个用户都在客户端保存副本?
13.如何将SSL和相关的验证配合使用?
14.配置高效的数据库访问需要注意哪些方面?
15.如何处理COOKIE的安全性
16.如何配置高效的XML数据访问?
17.使用SESSION,是否必须有COOKIE存在?
18.对于缓存的处理,怎样做才能高效?
19.如何配置高效的页面间数据处理?
20.待续。。。
以上是我刚看完一遍书后,所提出的一些比较愚蠢的问题,我已经把全部家当拿出来了,恳请各位高手给以指点,如果再能告诉我一些开发的经验,我将感激不尽
[解决办法]
1.ASP.NET的架构是否为标准的MVC三层架构,不断的数据绑定让我感觉这个架构很模糊。
你中了MVC的毒了.
MVC只是应用程序表示层或者界面组件的一种设计模式.
我们所说有三层架构指的是表示层,业务层,数据访问层.
不能混为一谈.
数据绑定这种机制类似于JSF的做好.绝对要比老式ASP或者JSP来得先进.
你所说的架构模糊指的是什么呢.
[解决办法]
17.使用SESSION,是否必须有COOKIE存在?
从传统的WEB技术的角度来看,是这样的.
但是后来为了考虑客户端不支持cookie或禁用cookie的问题,牛人们又提出了URLRewrite的作法.
即把SessionID夹在URL地址中在请求和响应中来回传递.
于是就有了无cookie会话这一说了.即cookieless= "true "
[解决办法]
1.ASP.NET的架构是否为标准的MVC三层架构,不断的数据绑定让我感觉这个架构很模糊。
=====
何为标准 MVC?
2.对于数据库的操作,什么时候适合数据源直接绑定,什么时候适合使用ADO.NET进行操作。
=====
数据源控件优点是快速开发,缺点是难以保证灵活后期维护
故适合小型项目,
3.各种数据处理方法,比如BULK,BATCH,怎么判断其使用时机?
=====
事实上,对于常规业务,批处理,批更新操作似乎很少,
一般用这些功能的时候,目标都是为了较好的解决性能瓶颈问题
4.在页面中使用回调函数(不刷新页面)进行数据的更新,抑或使用提交,两种方法有何优劣
=====
对于业务处理来说,并不宜进行大量的 AJAX 方式操作,
常规 GET/POST 请求如果很很好完成任务,且用户操作友好性无苛求还是,我会选择后者。
5.在使用CUSTOM验证时,如果客户端进行了验证,服务器端是否还会进行一次验证
=====
客户端验证都是不可信任的,真正的业务系统,需要服务端的高强度数据验证。
但前者,通常又是需要的,因为它可提高用户交互友好性。
6.在使用数据时,使用BO,使用ADO的时机应该如何把握
=====
BO ? PO?
...
[解决办法]
7.为何登录控件不推荐使用自动的数据连接,而要自己手写?
====
不晓得,不熟悉
实际项目中,我连登录控件都没用
8.所谓优雅的数据操作方法MARS,优雅在何处?
====
what 's MARS? ZhanShen ^_^
9.使用数据库操作,还是使用XML,两者优劣,使用的时机?
====
两者都用过,就有体会,目前,还是使用关系数据库作为数据源,操作起来方便,SQL 语言为集合处理提供了强大的、成熟的支持
XML 在我们的系统中也无处不在,更常用于配置文件、数据交互
10.对于一个XML的格式,是否有必要在每次使用前进行VALIDATE?
====
不清楚,没体会,
或许,你对此xml 的 schema 要求甚高就需要了吧,然而需要耗性能,所以需要各种 validate 策略的设计上考虑
11.对于保存某些数据,是使用SESSION,还是使用PERSONALIZATION中的PROFILE?
====
似乎这两者没有直接关系,
Session 作为会话数据的容器,古有之,
Profile ? 这是什么?个人档案、个性化配置信息?
那么你的网站将我的选择的颜色风格保存在 Session 中,那么我下次登录的时候,还会保留迈?
Profile 数据应该存储在持久数据源中,如 db
12.对于多个用户同时登录,后者的Personalization属性是否会覆盖前者,还是每个用户都在客户端保存副本?
====
事实上,没有 ASP.NET 2.0 内置 membership 的实践体会,不发布评论
13.如何将SSL和相关的验证配合使用?
====
哪些相关?
14.配置高效的数据库访问需要注意哪些方面?
====
这是可以配置的?
高效的前提是数据库设计的是否合理,针对不同的业务模型,采取不同的设计策略
比如,常听人家吹的,索引、非规范化设计 ...
15.如何处理COOKIE的安全性
====
敏感信息需要加密
cookie不存储敏感信息的明文
16.如何配置高效的XML数据访问?
====
不会
17.使用SESSION,是否必须有COOKIE存在?
====
不是,
ASP.NET 中,假如 client 启用 cookie,那么 SessionID 作为可作为 cookie 存储,这是默认配置
否则配置 cookieless,将 sessionid 作为 url查询字符串 传输
18.对于缓存的处理,怎样做才能高效?
====
无多少经验,说不来,
只知此主题太大,且与具体系统设计紧密相关
19.如何配置高效的页面间数据处理?
====
同上
20.待续。。。
====
RT
...
[解决办法]
1.Asp.net isn 't a standard mvc architecture.But asp.net can map to the mvc.
MVC is just a design pattern called observer.
2.when you need to build complicate datasource, you can use the latter method.
3.I am not verry clear about your problem.
For bulk data, your can use datareader to deal it directly and save the server memory.
For batch, you may can use datareader for performance or use dataset for simplicity.
4. I am not familiar about the callback function.
You can use ajax to lessen the client request and only need to refresh parts of page.
Also you use cache mechanism to reduce the round-trips.
5.if the client custom validation is valid, then the server side don 't need to validate again.
6.the problem maybe isn 't contained in asp.net domain.
7.I am not familiar to the login control.Maybe for security reason.
Always we need to implement the module ourselves.
8.Multiple Active Result Set feature is new for asp.net.
The feature can improve performance and reduce the code, and let the code easy to be read.
9.Xml is base for the .net frame. Xml is a great file format to store data and can have a specified
struct. It is easy to be parsed and some other merits.
10.for the robustness, you should validate the input when needed.
11. session can use to store other info. but you should use it carefully in some certain condition.
for the session may lessen your site 's performance.
12. i am not very clear.maybe every clinet has a new instance. you can see the document about this issue.
13. ssl is to use https security validation. It protects the request/response process safe.
14. add the needed constraints and index to the table.
It 's better to improve performance using stored procedure. and optimize the sql statement to avoid the performance lost.
15.encrypts the cookie and avoid to use cookie mechanism.
16. construct the xml file perfectly and parse the file using quick way.
17.no need.you can use sql server and other way to store the session.
18.use the cache correctly and expired cost should ben 't too heavy.
19.you can use server object to save two round-trips.
[解决办法]
2.对于数据库的操作,什么时候适合数据源直接绑定,什么时候适合使用ADO.NET进行操作。
实时性高时适合数据源直接绑定,
5.在使用CUSTOM验证时,如果客户端进行了验证,服务器端是否还会进行一次验证
会
9.使用数据库操作,还是使用XML,两者优劣,使用的时机?
数据库
14.配置高效的数据库访问需要注意哪些方面?
CACHE
15.如何处理COOKIE的安全性
不存储敏感信息
17.使用SESSION,是否必须有COOKIE存在?
不是
[解决办法]
那么如何配置,才能使得通过了客户端验证,然后服务器端就不进行验证呢?
这是没有道理的.
永远不要相信客户端传来的数据.
服务器端验证是必须的,
客户端验证是为了对用户友好,以及避免一些无谓的请求,拖累服务器.