‘Silverlight’ 分类的存档
微软MSDN简体中文版、繁体中文版已经从MSDN上正式发布,有MSDN账号的网友可以直接下载,没有的网友可以从下面地址下载,由于刚出啦不久,目前只有电驴资源,大家可以用迅雷下载。 注:下面地址的版本已经包含序列号,这下大家省心了,呵呵 MSDN Visual Studio 2010 Professional简体中文版本: ed2k://|file|cn_visual_studio_2010_professional_x86_dvd_532145.iso|2591844352|6001253431AFE573E4344F5A0B1D9CAC|/ MSDN Visual Studio 2010 Ultimate简体中文版本: ed2k://|file|cn_visual_studio_2010_ultimate_x86_dvd_532347.iso|2685982720|4AE6228933DDE49D9BFA4C3467C831C2|/ MSDN Team Foundation Server简体中文版本: ed2k://|file|cn_visual_studio_team_foundation_server_2010_x86_x64_dvd_531909.iso|1963589632|C9C77B2707DF100621B3FB653C285524|/ MSDN Visual Studio 2010 Ultimate繁體中文版本: ed2k://|file|ct_visual_studio_2010_ultimate_x86_dvd_532348.iso|2691330048|BF50926EAB061C7D0D92580F4132F9EA|/ MSDN Team Foundation Server繁體中文版本: ed2k://|file|ct_visual_studio_team_foundation_server_2010_x86_x64_dvd_531915.iso|1966714880|D6BD12D5B693E7EDA545D52FB54CC8E5|/
在WPF应用程序中,如果长时间使用,我们会发现WPF应用程序内存占用往往会达到上百兆的数字,由此可见使用.Net Framework内置的回收机制,并不能很好的解决应用程序占用内存的弊端。 不过,还好,Win32 API给了我们新的思路。我们可以调用SetProcessWorkingSetSize,达到内存释放的目的。 API函数: 调用: MSDN对这个函数的解释: 使用这个函数来设置应用程序最小和最大的运行空间,只会保留需要的内存。当应用程序被闲置或系统内存太低时,操作系统会自动调用这个机制来设置应用程序的内存。应用程序也可以使用 VirtualLock 来锁住一定范围的内存不被系统释放。 当你加大运行空间给应用程序,你能够得到的物理内存取决于系统,这会造成其他应用程序降低性能或系统总体降低性能,这也可能导致请求物理内存的操作失败,例如:建立 进程,线程,内核池,就必须小心的使用该函数。 实际上,这个函数并不能真正的释放内存,而只是重新分配改程序的内存占用,将暂时不需要的内容放进虚拟内存,当应用程序重新激活时,会将虚拟内存的内容重新加载到内存。所以,我们不宜过度频繁的调用该方法,这样只会使性能变低。 实际使用中,我们只需要当窗口关闭时,或者最小化时调用此方法即可解决内存不能释放的问题,该方法同样适用于Silverlight和Winform。
发布vs2010正式旗舰版 序列号一枚 YCFHQ-9DWCY-DKV88-T2TMH-G7BHP 安装完试用版,添加/删除程序里面激活即可。。。已经测试通过,不知道能不能激活Professional和Premium版,没有测试过
Visual Studio 2010已于今天正式发布 一共三个版本 Visual Studio 2010 Professional Visual Studio 2010 Premium Visual Studio 2010 Ultimate 同时还发布了 Visual Studio Test Professional 2010 Visual Studio Team Foundation Server 2010 Visual Studio Lab Management 2010 需要注意的是这次发布,仍就没有中文版,希望使用中文版的朋友需要再等2周左右时间 根据微软的一贯策略,试用版跟正式版的区别仅在于序列号的区别,估计晚些时候会有可用的序列化出来,大家可以先用试用版,到时候替换即可。 下载地址: http://www.microsoft.com/visualstudio/en-us/download
上一篇我们实现了Silverlight MVVM模式的增删改查,大家不难发现如果Command过多的话,可能造成代码过于臃肿,今天,我们来解决这个问题,我们使用一个DelegateCommand来代替所有的Command,代码如下: 我们构造Command的时候可以这样写 因为,我们的DelegateCommand是带一个参数的,所以我们每次构造都要传入一个object,这样,我们每次调用的时候只要传一个方法的参数就可以了,是不是方便了很多呢? 代码下载
Silverlight中的MVVM设计模式,我们已经了解了,今天做一个Silverlight中的增删改查,非数据库的,目的在于让大家更深刻的认识MVVM设计模式,废话不说了,开始: 首先,我们建立一个Silverlight 3.0的项目,结构如下 接下来,我们建立用来模拟增删改查操作的数据层(Models)。 Person.cs是我们的实体类,为了保证属性修改通知,我们继承INotifyPropertyChanged类,代码如下 DataStore.cs是我们用来模拟数据存储的类,因为在Silverlight中我们采取绑定机制,数据对象修改要通知界面所以,数据集合采用了可通知的ObservableCollection集合类,同时实现了,增删改查方法,代码如下 接下来,我们建立视图层(Views),本项目一共分两个部分,一个是查询列表,一个修改、增加的界面效果如图: 我们建立两个文件PersonList.xaml(用户控件)和PersonInfo.xaml(Silverlight子窗口)。 PersonList.xaml PersonInfo.xaml 视图层建立好了,我们建立视图模块层(ViewModels),这个层的作用就是和视图层进行交流,达到视图层和业务层完全分离的部分。因为,我们有两个View,所以要建立两个ViewModel。 PersonListViewModel.cs PersonInfoViewModel.cs 接下来,我们建立Commands,视图层通过绑定机制执行命令,达到运行业务逻辑的目的。这里的命令是根据视图层的命令而定。 AddPersonCommand.cs DeletePersonCommand.cs ModifyPersonCommand.cs QueryPersonCommand.cs SavePersonCommand.cs SelectedPersonCommand.cs 接下来,我们在ViewModel里面加入这些命令 PersonListViewModel.cs PersonInfoViewModel.cs 最后,我们将ViewModel绑定到View。 PersonList.xaml.cs PersonList.xaml PersonInfo.xaml.cs PersonInfo.xaml 我们在MainPage.xaml加入代码,运行。。。 终于完了,MVVM设计模式实际上就是MVC的一种延伸,解决的目的就是视图层和业务层分离,能看完这篇文章的朋友,一定对MVVM有个深入的了解。 代码下载
Silverlight/WPF中有3个强大的布局控件,StackPanel、Canvas、Grid,从字面上理解,StackPanel是一种堆的布局,就是一个挨着一个的布局方式;Canvas是一种基于画板的布局方式,我们把控件放到面板上定义好坐标,这点跟Html中的Div布局类似,只是所有Div的Position都是相对定位的;Grid是一种表格方式的布局,这点很像是Html中的表格布局,把控件一个一个的放在表格里。 下面我们一一进行讲解: 1.StackPanel布局 StackPanel是一种堆的布局方式,其中Orientation属性,决定是水平排列,还是垂直排列,下面例子垂直排列 结果: 垂直排列改为: 结果: 2.Canvas布局 Canvas是一种基于面板的布局方式,我们需要设置好Canvas.Top,Canvas.Left,Canvas.ZIndex属性,即相对面板的顶端距离,左端距离和显示顺序,因为这种布局是绝对定位的,需要设置好Canvas面板的高度和宽度 结果: 3.Grid布局 Grid布局是一种基于表格的布局方式,这种方式更为灵活,可以处理复杂的布局方式,其中要先定义行和列,再设置Grid内控件的Grid.Row和Grid.Column属性,即该控件在表格的第几行,第几列,其中Grid.RowSpan和Grid.ColumnSpan属性分别为跨行和跨列,和Html相似。 结果: Silverlight/WPF给我们提供了非常强大灵活的布局方式,我们要灵活运用这三种布局方式实现更为复杂的布局。
Json是一种通用的数据格式,我们在数据交换的时候,经常会用到,下面介绍c#中的json序列化和反序列化,当然也可用在asp.net,silverlight,wpf中。我们在下面实例讲解如何进行Json的序列化和反序列化,本文介绍两种方案,.net 3.5原生Json操作和Json.net中的Json操作。 首先,我们先建立一个测试对象,用来序列化和反序列化。 第一种,利用.Net Framework 3.5中原生的Json操作类库,特点就是不需要导入第三方类库,比较方便,速度上一般,而且需要.Net Framework的支持,我们知道现在还有很多服务器没有升级到.Net Framework 3.5,就用不了这个了。 首先导入下面类库,并加入下面代码 System.ServiceModel System.ServiceModel.Web 输出结果 这个是.Net Framework 3.5原生的序列化方式,接着,我们介绍反序列化方式,还是同样的加入下面代码 输出结果 我们从.Net Framework 3.5原生的Json序列化及反序列化方式中,可以看出,还是相当麻烦的。很多网友也会问如果是.Net Framework 2.0该怎么办呢?下面,我们介绍一个第三方的Json序列化和反序列化类库,来完成上面操作,这个类库是有.Net Framework 2.0的版本的哦,而且这个类库还可以支持xml的序列化和反序列化操作(本文不做讲解)。下面看操作。 输出结果 这个是Json序列化方法,是不是简单了很多呢? 输出结果 这个是Json反序列化方法,简单吧,而且据说这个类库的速度比.Net原生的Json序列化和反序列化方法要快很多。下载地址http://json.codeplex.com/
上篇介绍了Silverlight代码方式添加动画,使用Storyboard对象完成。这种方式是Silverlight中最常见的添加动画的方式,下面介绍另外一种,这种方式是利用Silverlight的界面刷新机制,利用界面的刷新来进行属性设置,从而达到动画的效果。这种方式更适合做一些需要全局变化的项目,如射击游戏。 xaml代码 cs代码 运行就可以看到效果。。。举一反三我们可以用Timer实现同样的效果,(注Silverlight中的Timer并不在界面线程中,所以需要回调到主线程执行,或者直接用DispatcherTimer来完成定时执行的方法),隔几十毫秒执行这个方法,达到现在的效果。
Silverlight添加动画,我们做的就是让一个矩形移动。单击蓝色区域的的时候,矩形会移动到我们鼠标点击的位置 xaml添加如下代码 cs代码 完成了。。。这种方式相对于xaml的方式让人觉得更清爽,更适合coder。从上面我们可以看出Silverlight中的动画都是基于StoryBoard对象的,这个东西有点像flash中的时间线,在上面完成延时,变形,位置等操作。