2009年9月驻站专家桂素伟老师简介
目前成都创新互联公司已为1000多家的企业提供了网站建设、域名、网页空间、网站改版维护、企业网站设计、太和网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
桂素伟,微软MVP,专家堂成员。微软中文技术论坛Visual C#、IT职业规划谈两个版块版主,微软WebCast讲师。精通C#,WinForm,ASP.NET,WPF,Windows Mobile等开发技术。山西DotNet俱乐部创始人之一,曾组织多次与微软合作组织活动,并多次组织山西DotNet俱乐部线上线下活动。
点击进入活动原帖
经典问题一
我想请问题asp.net中如何使用数据控件来处理操作复杂对象(即包对象包含子对象)。例如
此为订单管理的简要类图实现订单的CRUD我目前的做法是,指定OrderRegister为ObjectDataSource,然后使用FormView绑定到它上面。在FormView里面放入一些TextBox可以呈现出Order的简单类型的属性如Date,再在FormView里面放入GridView并绑定GridView的DataSource到Order的Items上,Items是IList 类型。对于查看订单信息来说,一切都没有问题。问题在于新增和修改订单时在FromView中嵌套GridView就不行了。我想请问基于这种复杂对象设计,怎么实现主对象与子对象的新增和修改操作。
驻站专家桂素伟老师的精彩回答:
这样的话,那你就得从这些对象属性中把数据得到,灵果你用的是ADO.NET,那么就分别把这些属性的数据分离出来,用SQL语句提交到SQL Server来执行。如果是LINQ To SQL,那就把整个实体类整合成LINQ To SQL所需要的实体类,进行Submit就可以。
后续提问:
OrderRegister是用来对Order进行CRUD的,它封装了对数据库的操作,至于OrderRegister的实现是Ado.net还是linqtosql都无所谓啊。问题的关键是在复杂对象结构的情况下,表示层采用什么样的控件如何与OrderRegister连接。
由于我希望代码量尽可能的少,所以在新增Order的时候也使用FormView,问题是FormView只能处理简单属性,而不能处理对象
总而言之,就是使用FormView绑定对象数据源来进行订单的新增,页面上无法对订单里面的OrderItem进行处理。
桂素伟老师回答
是的,你在添加Order的列表时,没有办法实现。如果每个字段都是简单类型就好处理,现在关键是你的GridView没有法与Order列表对应,并且你在Order对象中,一个Date字段可对应一个OrderItem列表,这个列表的记录多少都不确定,所以没办法在FormVIews中实现。只用放出来单独处理了。
经典问题二
我在写C#语言传送文件的程序,可是在对文件操作中出现了问题。
1,服务端
定义了一个和文件大小的缓冲区,但是在以下的while循环中
- while (!feof(fp))
- {
用fread函数,并且获得返回值iCount = fread(pTmp,1, flen, fp);//pTmp是缓冲区,flen是文件大小
而后通过
- send( m_server, pTmp, iCount , 0);发送数据
- }
2,客户端
定义了接收指针char recvbuf[1024] = "";
以下也用了死循环
- while(true)
- {
- memset(recvbuf, 0, 1024);
- bytesRecv = recv( m_socket, recvbuf, 1024, 0 );
- fwrite(recvbuf, 1, bytesRecv, fp1);
- }
可是我在文件fp1中打印的并不是完整,希望高手指点。 并且我想如果服务端不一次性全部传送,而是分大小传,比如每次只传1024字节,又该如何处理?我尝试了一些方法,但是都没达到目的。
驻站专家桂素伟老师的精彩回答
你的大文件,可以一次读进来,放在一个byte的数组中,然后你再批量分步处理这些元素就可以的。发送的时侯你考虑是多线程还是单线程,同时要考虑服务端。
经典问题三
我想请问如果想从事socket开发,那么使用。net的哪方面的控件呢,是不是也有很多托管的自动生成代码可以省掉手写的麻烦呀,我现在考虑从事网络服务器相关软件的开发,但是不知道什么开发环境是理想的选择,望桂老师给予回答。
驻站专家桂素伟老师的精彩回答
这些通用的软件开发平台都支持socket 开发,有的IDE是封装成控件,有的是封装成类。.net 的socket 有好几个类支持。常用的是TcpListener和TcpClient。同时还要使用到多线程的一些知识,也得熟悉一下。做成类的话,个人理解应该要灵活的多,想要什么方式的通迅,是一对多,还是一对一,还是多对多,都由自己写代码来完成。
【编辑推荐】
分享标题:2009年9月51CTO驻站专家桂素伟老师.NET精彩问答
当前地址:http://www.shufengxianlan.com/qtweb/news24/77274.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联