2011年12月12日

摘要: 议题现在有一个很大的列表(例如,图书列表),想找到某一项是非常难的。如果针对列表中的某一项进行排序,应该会对查找有所帮助。解决方案将书籍清单列表的列标题更新为链接,当链接被点击的时候,将通过Linq针对选中列的内容进行排序(通过再次点击标题链接来切换升序还是降序)。讨论与我之前使用过的框架相比添加排序、自动生成视图的过程让我感到有些惊讶。希望在外来的MVC版本中,他可以成为整体框架的一部分。参考ASP.NET MVC的网站首页上示例,我们需要定义一个Switch语句,每一列排序情况都需要复制一个Case来实现。还好我们的这个案例当中只有五个项需要排序,情况还不算太坏。如果以后需要针对比如作者或 阅读全文
posted @ 2011-12-12 13:50 O2DS 阅读(2743) 评论(0) 推荐(0) 编辑

2011年12月10日

摘要: 议题您或者在您网站的注册的某个用户,无法想起自己的密码了,需要有一种方法能找回它。解决方案在AccountController控制器中添加一个新的动作和视图,以便用户可以找回他们的密码。利用Membership类搜索和匹配用户,并发送一个包含密码的电子邮件。讨论默认情况下,MVC Internet应用程序使用的是无法逆向转换的单向哈希算法。在下面的例子中,默认是双向散列加密方式。这种方式并不是很安全,但是在用户忘记密码时可以避免强迫用户修改密码。先在Web.config文件中调整Membership节点的设置:<?xml version="1.0"?><c 阅读全文
posted @ 2011-12-10 20:00 O2DS 阅读(2264) 评论(0) 推荐(0) 编辑

2011年12月9日

摘要: 议题许多网站在访问内容或者发表评论的时候 要求用户注册或登录。这样的网站越来越多,用户非常难以记住每个他注册过的站点以及信息。而在用户提交注册信息的时候,网站可以发送邮件,提醒用户他们刚刚签署过注册信息,方便他们稍后访问时查询。解决方案实现SmtpClient类和MailMessage类在用户注册后发送欢迎邮件。讨论发送一份电子邮件,你需要配置SMTP服务器地址、端口、用户名和密码。为了让配置更加简单,建议将这些信息存储到Web.config的AppSettings节点里。 <appSettings> <add key="webpages:Version" 阅读全文
posted @ 2011-12-09 09:32 O2DS 阅读(3015) 评论(9) 推荐(3) 编辑

2011年12月7日

摘要: 议题互联网上有数以百万计来自数百个国家的人,同时也存在数百种不同的语言,甚至英国、美国、加拿大和英国之间也有多个不同的方言。不要让你的网站因为只提供一种语言而被限制浏览。解决方案创建资源文件,并添加Key/Value类型的静态文本,并实现CurrentUICulture以提供更改当前现实语言的能力。讨论资源文件是XML文件,可以为网站存储多国语言。当你创建一个资源文件时会包含当前默认语言。在资源中创建一个键/值对文本后,你就可以在控制器、模型和视图中随处使用了。如图例 1-3 资源文件示例。图例 1-3,资源文件示例右键单击应用程序,选择“添加”->“新建文件夹”,将新文件命名为“Res 阅读全文
posted @ 2011-12-07 11:19 O2DS 阅读(2555) 评论(4) 推荐(3) 编辑

2011年12月6日

摘要: 议题 在设计的时候要添加验证以保证表单中输入的内容与数据库和模型设计的类型相符。解决方案在.NET 4.0的MVC 3中包含新的命名空间DataAnnotations提供了许多有用的元数据属性。为了验证表单的输入,以下的属性类可以提供多种验证方式:RequireAttribute,RegularExpressionAttribute和DataTypeAttribute。当需要定义必须输入的内容时 ,MVC 3支持开发人员通过改进的ValidationAttribute类对验证进行定义。讨论在先前代码优先的秘诀中我们创建Book模型,我们将进行以下更新:输入书名;输入并验证ISBD;输入书籍摘要 阅读全文
posted @ 2011-12-06 22:16 O2DS 阅读(2913) 评论(2) 推荐(1) 编辑

2011年12月3日

摘要: 议题通过您的网站管理动态内容。解决方案使用实体框架与数据库绑定,通过Controller以及自动生成的多个视图界面,允许用户创建、读取、更新以及删除(也称为:CRUD)数据。讨论在定义控制器和视图之前,需要预先创建模型和DbContext以及数据收集规则(代码优先方法)。在接下来的例子中,将会创建两个类,并实现一个图书列表管理的功能。第一个类包含书籍信息在SQL Express数据库中存储的数据定义。第二个类将是一个包含Book类型的DbSet对象的DbContext类。创建模型,右键单击Models文件夹,并选择添加 -> 类。在类的文件名写:Book.cs,用下面的代码替换生成的代码 阅读全文
posted @ 2011-12-03 23:31 O2DS 阅读(3659) 评论(2) 推荐(1) 编辑

2011年11月29日

摘要: 议题创建用户必须注册并通过用户名和密码登录才能访问的网站的特定页面。创建具有权限控制的特定页面,用户必须通过注册并使用用户名和密码登录才能访问。解决方案AccountController和AccountModels以及几个验证视图通过Membership和FormsAuthentication来实现创建和验证用户的功能。在ASP.NET中通过AuthorizeAttribute控制访问权限。讨论微软的ASP.NET MVC团队针对AccountController做出很多改进,更新了FormsAuthentication类,通过Membership对象创建新用户、验证现有的用户创建Cookie 阅读全文
posted @ 2011-11-29 12:04 O2DS 阅读(6601) 评论(8) 推荐(7) 编辑

2011年10月12日

摘要: [注]发现自己好久没有翻看MSDN Magazine了,昨天打开看到这期有篇关于设计与开发的专题文章《Don't Get Me Started:Development Is Design》,与我最近遇到的一系列问题息息相关,颇有同感,而MSDN的机器翻译越来越让人呢无法忍受,所以抽了点时间在机器的基础上进行了一点点人工干预,阅读感觉可能会好一些,由于功力问题很多地方我都是根据自我理解进行复述的,有什么不准确,有歧义的地方,希望有看客可以不吝赐教。大多数的开发者或者管理者认为,用户体验(UX)不过是选择使用的颜色、字体或者是按钮的圆角之类的修饰,并不是那么重要。而窗口的圆角或者柔美的动画 阅读全文
posted @ 2011-10-12 16:11 O2DS 阅读(1131) 评论(2) 推荐(0) 编辑

2011年8月5日

摘要: 应用程序页的安全性 接下来我们将开始考虑应用程序页的安全问题。你可能会有疑问,为什么需要开发者来考虑SharePoint的安全问题?因为很多开发人员在编写代码的时候经常规避SharePoint本身继承的安全逻辑代码,由脆弱的应用程序页使得SharePoint站点暴露在危险之中。在我们上面的示例中,默认是SharePoint网站的每个用户都可以访问应用程序页查看网站运行状况。然而,在实际情况中,大多数用户是不允许看到这些信息的,这时,好的处理方法就是限制只让网站集管理员来访问这些信息。 有几种方法可以控制执行应用程序页的权限。在这一章中,我们将着眼于三种最常见的。第一种方法是通过验证权限级别安全 阅读全文
posted @ 2011-08-05 08:49 O2DS 阅读(1314) 评论(0) 推荐(1) 编辑

2011年8月4日

摘要: 创建应用程序页 表面上看,应用程序页和网站页面相同,它就是向SharePoint用户提供功能的,但是,应用程序页时可以在SharePoint中认识网站或网站集都可以访问到的页面。此外,应用程序页因为不能进行定制,所以不需要在内容数据库中存储多个副本,而应用程序页的代码可以编译成DLL程序集,这样无论是在存取性能还是在执行性能上都会优于网站页面。从开发人员的角度看,应用程序页和网站页面最大的区别在于,应用程序页允许在页面上使用内联代码。 现在,我们就来定制一个应用程序页文件。以管理员权限打开Visual Studio,并选择新建项目。应用程序页项目不能单独被创建,只能先创建空SharePoint 阅读全文
posted @ 2011-08-04 17:17 O2DS 阅读(1255) 评论(8) 推荐(1) 编辑

导航