090809周末散记

      本周末在公司听了一天半的微软技术培训,讲师是前微软的工程师,年龄三十五左右,思路很清晰,英文很地道,技术水平还行(应该是强于应用,这次培训没有涉及到底层开发内容)。主要是结合C#技术来讲述微软的一些新技术。周六下午开始听,开始讲的XmlHttp、AJAX这样的Web技术,还是理清了一些概念,原来AJAX中的每一个“A”(异步)是处理与服务端交互事情的不同步,对于页面中某个事件(比如说按钮的处理),浏览器会创建一个新的线程去处理,用户不须刷新和提交整个页面,服务器对事件的处理结果就会不声不响的呈现在WEB页面。映象中Google对AJAX应用得比较多,但这位MS讲师说AJAX技术是从微软的XmlHttp模块中发源,这个观点有待证实。

     周六下午还介绍了XAML和SilverLight技术,这两项技术主要用于WEB页面展现,也可以扩展到winForm程序界面的设计。XAML是微软近年推出的一种描述界面的XML描述语言,课上演示用Blender画出界面,写几行C#的响应代码,这些操作的结果都会生成一个XAML描述文档,XAML利用SilverLight技术呈现给用户一种全新的界面观感,2D的、3D的渲染做得都很有视觉冲击感。XAML技术让我感受最深的就是制作界面的方式,跟用PhotoShop处理图片的方式一样,软件的界面可以完全信手画出。想想在MFC中为了美化一个控件所做的工作,这种设计方式真是很大的进步。

     周六的培训很有收获,还蹭了一顿午餐,很划算,今天上午准时来到会议室。今天上午主要讲述微软的工作流技术。工作流可以分为面向人和面向规则的两种处理模式,对于这两种模式,微软基于BizTalk研发了WF工作流技术,这套技术包括了工作流过程描述、活动结点描述、事件消息描述、事件处理引擎。具体操作的过程,首先还是通过画图的方式,将工作流模型中各个活动的关系描述出来,对应于底层其实一份WcF(忘了名字了)格式的XML文档,对于这种格式的XML文档,微软提供了一系列API,工作流的活动结点之间的关系和事件处理方式通过调用这一系列API来完成。

     今天下午的内容是这次培训的重点和靓点,好东西总是留在最后讲。这位讲师开始讲用.net技术来实作一个系统架构。他把一个系统分为6个模块: 用户验证、用户权限管理、连接处理、数据映射、消息处理、日志。每个模块都讲述了几种技术方案,其中讲到兴致之处还信手拈来一段代码过来分析和鉴赏。

     用户验证的处理方式讲到了单点验证方式(SSO,好像是这样拼的),这种技术在BS模式下用到了HttpModule来将验证信息传给验证中心的URL。 用户权限管理和用户验证模块是紧密结合的,用户权限管理中提到了角色分配这种处理方式,实际上是通过角色作为一个中间层隔离了用户与模块操作。在系统中只需设计一系列典型的角色,用户的权限分配给某种角色,这样就可以避免操作权限分配的复杂性。  连接处理方式讲到了连接共享技术,不同于我们常用到的连接池技术,连接共享技术是在一个连接完成多个事务,这需要改写数据库API中Open、BeginTranc、Commit,具体做法就是在这些操作中添加计数器,使其不会重复操作,提高连接资源利用效率。讲到连接共享技术,这位讲师还秀了几段他的代码。数据映射模块中讲到LinQ和NHibernate技术,这一段讲述是本次培训中最精彩的,讲师结合实务,抽丝剥茧的讲述ORM(Object-Relation Mapping)技术的实现原理,最后对LinQ和NHibernate作了对比。消息处理和日志模块因为时间关系没作多讲,讲述日志模块时提及了微软的Enterprise  Lib。

      这次培训让我对微软的技术体系有了一个全面的了解,让我对微软技术有了一点点兴趣;讲师的专业与敬业也改变了我过去对IT培训的看法。刚刚在豆瓣发现一本新书<<观止>>,讲的NT内核的设计开发人员,似乎写得不错,有时间去买一本。Unix崇尚开放、自由的文化与MS重视界面交互的便捷性的文化也有需要合流的场景。

      这个周末过得很充实,不错。

 

  后记:培训的讲师最后没有提供他的部分DEMO代码,他说这些都是运行中的代码,虽然他现在不在微软工作,但为了安全的原因,还是不能公开。微软经常以安全为由不开放源代码,这样说来Linux是不安全的系统,Apache也不安全。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


如何在Silverlight4(XAML)中绑定IsEnabled属性?我试过简单的IsEnabled=“{BindingABC}”,但这不起作用–MenuItem总是启用.提前感谢您的线索!干杯编辑:有趣的是,当设置Mode=TwoWay时,绑定似乎有效.但是,在菜单项上移动鼠标后,将更新上下文菜单的外观.这是异步工作吗?右键
我正在编写我的第一个vb.net应用程序(但我也会在这里标记c#,因为我确信即使是一个c#人也可以使用类似的.net实现来回答这个问题).我申请的简短说明:我的桌面应用程序将仅在win平台上运行,使用vb.net,它是一个简单的网吧管理软件,在服务器上运行服务器gui,在工作站上运行客户端gui,
ProcessFile()是在UIThread上运行还是在单独的线程上运行.如果它在UIThread上,如何将文件请求和ProcessFile()移动到单独的线程?varxClient=newServiceReference1.Service1SoapClient();xClient.Retrieve_File_Completed+=newEventHandler<ServiceReference1.Retrieve_Fi
我从同行那里听说,对sharepoint的了解对职业生涯有益.我们不在办公室使用sharepoint.所以不知道如何开始.这些是我的新手问题>学习共享点值得努力吗?>学习sharepoint的资源在哪里?>我是否应该考虑开发哪些参考项目?感谢您的意见.解决方法:SharePoint以如此积极的方式改变了我的职业
我正在尝试保存一个类我的类对象的集合.我收到一个错误说明:Thecollectiondatacontracttype‘System.Collections.Generic.Listcannotbedeserializedbecauseitdoesnothaveapublicparameterlessconstructor.Addingapublicparameterlessconstructorwillf
我需要根据Silverlight中的某些配置值设置给定控件的Style.我想有可能从两种可用的样式(静态资源)中选择一个控件样式.我试图做一些像:<TextBoxStyle="{BindingABC}"/>哪里publicstringABC{get{return"{StaticResourceMyStyle}";}}不幸的是,这不起作用.你有
我刚买了第一台Android设备,我喜欢它…我也很喜欢你可以创建自己的应用程序并随意分发它们.我已经阅读了一些关于Monodroid的内容,而且显然微软希望将Silverlight放在这些设备上,尽管没有太多关于它们的信息……但是Moonlight呢?如果Monodroid就像Mono……为什么我们需要它呢?相反
我们的ASP.NET网站允许用户执行各种查询,并根据从数据库查询的结果显示网络图(如UML图).目前,我们正在生成一个位图并显示它.但由于我们需要支持允许用户以交互方式显示/隐藏某些块的功能,因此我们计划使用Silverlight来渲染图形.我们还计划在未来添加更多互动.我有两个问题:>ASP
我正在开发一个Silverlight4应用程序,我已经创建了一个自定义的启动画面.乍一看,自定义启动画面运行良好–非常好.几天后,我开始注意到闪屏不再显示,屏幕仍然是空白.这似乎只发生在我打开多个指向同一个应用程序的IE选项卡/窗口时.前几个将加载正常,而以下选项卡/窗口将保持“白
这是我的XAML:<ImageVerticalAlignment="Center"HorizontalAlignment="Center"Source="{BindingInput,Converter={StaticResourceByteArrayToBitmapConverter}}"><Image.Rend
问候,我有一个ItemsControl,我更改了模板,为绑定的ItemsSource中的每个对象显示一个RadioButton.但是ItemsSource可以为空,当它为空时我想显示默认值.像“绑定列表中没有可供您选择的项目”……我想到的一种方法是将ItemsControl.Visibility设置为Collapsed,并将TextBlock.Vsibi
堆栈溢出的第一个问题……我是C#的新手,但在学习它时却非常直接.几分钟前我才看到这个tutorial.通过各种c#技术阅读WCF,WPF,Silverlight,c#和asp.net,这是很多技术都可以用c#来实现.我将创建一个Web应用程序c#.我认为SilverLight似乎是我最好的选择.该应用程序将拥有一个数
我正在使用MVVM(Model-View-ViewModel)模式编写应用程序,并利用MicrosoftP&P团队的Prism和Unity位.我有一个包含项目列表的视图.这些项包含在ViewModel中的ObservableCollection中,View中的列表框是数据绑定的(ViewModel设置为View的DataContext).在ViewModel中,我有一个运行的
我有一个应用程序,它在首次运行时显示免责声明页面.选择“接受”或“拒绝”后,您再也看不到该页面了.但是,当您在第一次运行后按后退键尝试关闭应用程序时,您将返回免责声明页面,然后再次点击该页面,返回主页面,然后再次退出.这仅在应用程序第一次运行时发生,但我希望应用程序在
我正在尝试在SilverlightforWindowsPhone中使用异步HttpWebRequest.一切都很完美,直到我到达我应该打电话的地方privatestaticManualResetEventallDone=newManualResetEvent(false);...request.BeginGetResponse(newAsyncCallback(GetResponseCallback),request);a
嗨,我有两个Writablebitmap,一个来自jpg,另一个来自png,并使用此方法在循环中混合颜色:privatestaticColorMix(Colorfrom,Colorto,floatpercent){floatamountFrom=1.0f-percent;returnColor.FromArgb((byte)(from.A*amountFrom+to.A*perc
我需要开发一个程序,它包含一个图像(png),中心有一个洞.在这个图像下将有一个框架,我想点击图像的透明孔我可以点击框架内的按钮.我不知道是否有一种方法可以通过图像或其他方式传播点击.谢谢你的帮助解决方法:你在图像上将IsHitTestVisible设置为false,然后点击浏览.
我正在研究一个silverlight应用程序,我发现List没有Find扩展方法说,List<Something>list=newList<Something>(something);list.Remove(list.Find(e=>e.id==10));没有查找扩展方法我错过了什么?解决方法:它不包括在内以减小运行时的大小.建议您使用LINQ扩展,例如First
我试图弄清楚如何设置Path元素的Data属性来获得此类型的软角:alttexthttp://i42.tinypic.com/1rzu6w.jpg现在我只有这样的尖角:alttexthttp://i42.tinypic.com/2eeleah.jpg我尝试用椭圆玩,但我无法得到我想要的东西.谢谢最佳答案:路径的段具有IsSmoothJoin属性,默认为false.
问题我有一个在远程服务器上运行的restfulWeb服务.我已经制作了一个使用它的WP7应用程序,所以我知道它有效.我正在将应用程序移植到SilverlightWeb应用程序并遇到问题.我已经包含了代码的简化版本以及引发的错误.EndGetResponse方法抛出错误.随意询问更多信息.我一直在寻找解