随笔-110  评论-453  文章-0  trackbacks-12
  2009年4月11日
一步一步学习ASP.NET MVC 1.0创建NerdDinner 范例程序(1-10
 
本文根据《Professional ASP.NET MVC 1.0》中微软牛人Scott Guthrie 提供免费下载的第一章,一步一步演示如何通过ASP.NET MVC 1.0 正式版创建NerdDinner 范例程序。对了解如何使用最新的ASP.NET MVC 1.0框架创建Web Application 非常有帮助。本文由http://forum.entlib.com/ 开源论坛小组提供。关于本文的一些资源,请参考文章最后的链接。
 
系列文章(1-10):
一步一步学习ASP.NET MVC 1.0创建NerdDinner 范例程序,Part 1
一步一步学习ASP.NET MVC 1.0创建NerdDinner 范例程序,Part 2
一步一步学习ASP.NET MVC 1.0创建NerdDinner 范例程序,Part 3
一步一步学习ASP.NET MVC 1.0创建NerdDinner 范例程序,Part 4
一步一步学习ASP.NET MVC 1.0创建NerdDinner 范例程序,Part 5
一步一步学习ASP.NET MVC 1.0创建NerdDinner 范例程序,Part 6
一步一步学习ASP.NET MVC 1.0创建NerdDinner 范例程序,Part 7
一步一步学习ASP.NET MVC 1.0创建NerdDinner 范例程序,Part 8
一步一步学习ASP.NET MVC 1.0创建NerdDinner 范例程序,Part 9
一步一步学习ASP.NET MVC 1.0创建NerdDinner 范例程序,Part 10
 
前面1-10篇介绍了如何创建控制器、Model和视图,实现了Dinner列表和详细信息的展示。

 

 

posted @ 2009-04-11 07:33 EntLib 阅读(130) | 评论 (0)编辑
  2009年3月31日
一步一步学习ASP.NET MVC 1.0创建NerdDinner 范例程序
 
本文根据《Professional ASP.NET MVC 1.0》中微软牛人Scott Guthrie 提供免费下载的第一章,一步一步演示如何通过ASP.NET MVC 1.0 正式版创建NerdDinner 范例程序。对了解如何使用最新的ASP.NET MVC 1.0框架创建Web Application 非常有帮助。本文由http://forum.entlib.com/ 开源论坛小组提供。关于本文的一些资源,请参考文章最后的链接。
 
系列文章:
一步一步学习ASP.NET MVC 1.0创建NerdDinner 范例程序,Part 1
一步一步学习ASP.NET MVC 1.0创建NerdDinner 范例程序,Part 2
一步一步学习ASP.NET MVC 1.0创建NerdDinner 范例程序,Part 3
一步一步学习ASP.NET MVC 1.0创建NerdDinner 范例程序,Part 4
一步一步学习ASP.NET MVC 1.0创建NerdDinner 范例程序,Part 5
一步一步学习ASP.NET MVC 1.0创建NerdDinner 范例程序,Part 6
一步一步学习ASP.NET MVC 1.0创建NerdDinner 范例程序,Part 7
一步一步学习ASP.NET MVC 1.0创建NerdDinner 范例程序,Part 8

 
相关资源下载链接:
1. ASP.NET MVC 1.0 正式版发布了!!!
http://forum.entlib.com/Default.aspx?g=posts&t=464
 
2. 免费ASP.NET MVC eBook 向导-电子书下载
http://blog.entlib.com/entlibforum/archive/2009/03/12/asp.net-mvc-ebook.aspx
 
posted @ 2009-03-31 08:38 EntLib 阅读(358) | 评论 (0)编辑
  2009年3月20日
在.NET 3.5 平台上使用LINQ to SQL创建三层/多层Web应用系统(源代码下载和PDF文档下载)

本文将演示如何在ASP.NET 3.5平台上,使用LINQ to SQL构建多层的Web应用程序。在当前的编程领域中,创建N-Tier应用程序成为一般的要求,且.NET Framework 提供了灵活的支持。一般而言,N-Tier应用程序有如下几个层:1. 表示层;2. 业务逻辑层;3. 数据访问层;4. 数据库层。每一层均完成特定的任务。本篇文章中介绍的架构和经典的N-Tier相似,不过数据库层替换新的DataLinq 层,使用LINQ to SQL 完成数据操作。
 
该主题的Part1- Part5系列文章已经陆续发表。为了感兴趣的朋友阅读方便,这里提供了PDF文档下载,同时也提供了整个示例项目的源代码

在.NET 3.5 平台上使用LINQ to SQL创建三层/多层Web应用系统 (Part 1)
在.NET 3.5 平台上使用LINQ to SQL创建三层/多层Web应用系统 (Part 2)
在.NET 3.5 平台上使用LINQ to SQL创建三层/多层Web应用系统 (Part 3)
在.NET 3.5 平台上使用LINQ to SQL创建三层/多层Web应用系统 (Part 4)
在.NET 3.5 平台上使用LINQ to SQL创建三层/多层Web应用系统 (Part 5)
  
 欢迎各位交流、探讨LINQ相关技术。

 示例项目源代码:
  

下载地址!

 

posted @ 2009-03-20 08:10 EntLib 阅读(323) | 评论 (0)编辑
  2009年3月17日
ADO.NET Entity Framework 深入分析系列文章
 
 
前面的Part 1-3的文章,介绍了Entity Data Model、Entity SQL、ObjectQuery、EntityCommand、LINQ to Entities等等及其代码演示。
Entity Data Model (EDM) 深入分析, Part 1
Entity Data Model (EDM) 深入分析, Part 2
Entity Data Model (EDM) 深入分析, Part 3
 
Part 4主要演示如何通过相关技术或Debug工具,如SQL Server Profiler、ToTraceString 方法、eSqlBlast 工具、LINQPad工具等等,来查看生成的T-SQL脚本。
ADO.NET Entity Framework 深入分析, Part 4 (提供示例程序下载)
 
Part 5 演示如何新增、更新和删除数据实体,并相应更新数据库。
ADO.NET Entity Framework 深入分析, Part 5
 
Part 6 演示如何处理并发更新。
ADO.NET Entity Framework 深入分析, Part 6 – 处理并发(Concurrency Handling)
 
Part 7 介绍对象状态管理器 ObjectStateManager 及MergeOption.NoTracking 选项的用法。
ADO.NET Entity Framework 深入分析, Part 7 – Change Tracking
 
ADO.NET Entity Framework 系列文章由EntLib.com 开源论坛、小组翻译、编写。欢迎交流、分享。

 

posted @ 2009-03-17 08:23 EntLib 阅读(414) | 评论 (0)编辑
SSRS 使用Report Builder 和Report Model创建Report
 
Report Builder(报表设计器)是一个简单的GUI工具,用户可以使用Report Builder创建自己需要的报表。在创建好Report Model(报表模型)并发布到Reporting Services站点后,用户就可以使用Report Model和Report Builder创建报表了。尽管通过Report Builder 创建Report比较简单,但预测用户需要什么报表以及创建Report Model可能需要一些时间。
 

 
如上图所示,显示了使用通过Report Model(报表模型)创建Report的流程。首先,开发人员创建一个Report Model,就像一个蓝图。其中,指定了数据源,表示将显示的数据。然而,就像你不能生活在一个房屋的图纸中,你不能通过Report Model来查看报表。但是,用户可以使用Report Model和Report Builder创建自己的报表(Report)。在通过Report Model创建好Report后,该Report也可以发布到SSRS报表服务器上。
 
首先,通过SQL Server Reporting Services 配置管理器验证Reporting Services是否有安装和启动。如下图所示:
 

 
SSRS报表服务默认以Native mode部署,在SQL Server 2008中,SSRS 不在依赖于IIS,通过IIS 并不能找到ReportServer的相关应用程序目录。Reporting Services的Web Server URL地址为:http://servername/ReportServer
Reporting Services的Report Manager URL地址为:http://servername/Reports
 
通过Report Builder 和Report Model创建Report,需要经历如下几个基本步骤:
1. 通过Business Intelligence Development Studio(BIDS)创建Report Model项目。
2. 向Report Model 项目中添加Data Source 和 Data Source View。
 
 
 
3. 在Report Model 项目中创建Report Model-报表模型。如上图所示,该项目中已经创建了Employees.smdl 报表模型。
4. 发布Report Model 到SQL Server Reporting Services 报表服务器上。
 

 
如在发布过程中碰到Microsoft.ReportingServices.RsProxy.AccessDeniedException异常,请参考如下文章:SQL Server 2008 - SSRS Report Model 发布到Report Server
该文章提供了对应的解决方案。
5. 访问Report Manager 站点,启动Report Builder。如下图所示:
 

 
其中,模型和数据源目录是上一步成功发布Report Model到Report Server上后,自动创建的目录。访问[模型]目录,就可以看到上一步成功发布的 Employees 报表模型了。
  
6. 通过Report Manager工具栏上的Report Builder(报表生成器),并使用上一步创建的Report Model创建Report。在创建好Report后,再发布到Reporting 服务上。
 

 
下面是已经创建好的报表,如下图所示:
 
 
具体详细的操作步骤,可以参考如下文章:
1. Microsoft SQL Server 2008 All-in-One Desk Reference For Dummies, Book V – Reporting Services, 第二章 – Creating Reports with Report Builder.
2. SSRS Tutorial: SQL Server 2008 Reporting Services Tutorial
http://www.accelebrate.com/sql_training/ssrs_2008_tutorial.htm
 

 

posted @ 2009-03-17 08:21 EntLib 阅读(158) | 评论 (0)编辑
  2009年3月16日
Microsoft SQL Server 2008 All-in-One Desk Reference For Dummies 读书笔记之六
 
SQL Server 2008是一个重大的产品版本,它推出了许多新的特性和关键的改进,使得它成为至今为止的最强大和最全面的 SQL Server 版本。《Microsoft SQL Server 2008 All-in-One Desk Reference For Dummies》包括了9本书,分别介绍了SQL Server 2008的一些特性和技术,内容图文并茂、非常直观、浅显易懂。本系列读书笔记分9篇,分别介绍每本书的一些值得关注的内容。
 
Book I – Essential Concepts 基本概念
Book II – Designing and Using Databases 设计和使用数据库
Book III – Interacting with Your Data 操作数据
Book IV – Database Programming 数据库编程
Book V – Reporting Services 报表服务
 
Book VI – Analysis Services 分析服务
Microsoft SQL Server 2005/2008 Analysis Services (SSAS) 为商业智能应用程序提供联机分析处理 (OLAP) 和数据挖掘功能。Analysis Services 允许您设计、创建和管理包含从其他数据源(如关系数据库)聚合的数据的多维结构,以实现对 OLAP 的支持。对于数据挖掘应用程序,Analysis Services 允许您设计、创建和可视化处理那些通过使用各种行业标准数据挖掘算法,并根据其他数据源构造出来的数据挖掘模型。
 
本节介绍了Analysis Services功能,包括OLAP和数据挖掘(Data Mining)功能。下面简要介绍一下创建SQL Server Analysis Project 项目的基本步骤:
1. 创建SQL Server Analysis Project 项目
新建项目,选择商业智能项目/Analysis Services 项目,如下图所示:
 
 
2. 定义数据源Data Source
在Solution面板中,右键点击数据源,选择“新增数据源…”,如下图所示:
 

 
安装新建数据源向导对话框,一步一步创建数据源,范例程序采用AdventureWorksDW2008。
 
3. 定义数据源视图 Data Source View
Data Source View 定义了Cube中的表和视图。创建Data Source View的步骤安装向导操作就可以了。
 
4. 创建Cube,使用Measures和Dimensions
一个Cube包含Measures和Dimensions。维度(dimension):多维立方体Cube的基本组成部分(a fundamental component),用以从用户兴趣的角度组织数据(以合乎逻辑的层次化的格式组织商业数据)。测度(measure):事实表(fact table)中的包含可计算、合计等的数值型数据的列。在一个立方体中,测度被事实表分组为测度组。测度组(measure groups):用以对事实表中包含的测度进行分组,并在维度和测度之间进行联系。
 
立方体设计器由九个选项卡组成:立方体结构(Cube Structure)、维度用途(Dimension Usage)、计算(Calculations)、关键性能指示器(KPIS, Key Performance Indicators)、行为(Actions)、分区(Partitions)、透视图(Perspectives)、转换(Translations)、浏览器(Browser)。
 
5. 部署Analysis Services项目
在"解决方案浏览器"中右键单击Analysis Services项目选择"部署(Deploy)"。部署之前,需要确认SQL Server Analysis Services 服务已经启动了。看看下面的部署进度界面:
 

 
详细的操作步骤,可以查询SQL Server 2005/2008 的帮助文档。部署成功后,也可以通过SQL Server Management Studio 登录到Analysis Services,查看刚刚部署的AdventureWorks数据库(注意:不同于数据库引擎中的AdventureWorks 数据库)。如下图所示:
 
 
 
欢迎访问http://blog.entlib.com/ 开源ASP.NET博客平台,了解更多的读书笔记。
 
posted @ 2009-03-16 08:10 EntLib 阅读(144) | 评论 (0)编辑
  2009年3月11日
Silverlight 2 数据绑定演示程序(附源代码下载)
 
数据绑定(Data Binding)是用户界面UI和业务对象或其它数据提供者(data provider)的连接。用户界面对象称为目标,数据提供者成为数据源。
 
数据绑定帮主隔离应用程序的用户界面层和其他层,如业务对象、数据等等。通过绑定对象,实现用户界面层和底层的隔离,其中有2种模式:one-way和two-way。one-way 绑定仅仅显示数据源的数据,two-way 绑定则在更新用户界面的数据时,会同步更新数据源。
 
下面创建一个Silverlight 2 应用程序,绑定到业务对象,其中Book.cs 文件表示业务层(Business Layer)。如果你希望业务对象改变时,自动更新UI,业务对象必须实现INotifyPropertyChanged 接口。这个接口需要类有一个类型为PropertyChangedEventHandler事件。当绑定到UI控件上的任何属性Property 被赋值或清除时,必须触发PropertyChanged事件。
 
下面看看Book.cs 文件的部分代码:
public class Book : INotifyPropertyChanged
Book类实现INotifyPropertyChanged 接口。
 
下面的代码是对Title属性的定义。在set中,会触发PropertyChanged事件。
 
        // implement the required event for the interface
        public event PropertyChangedEventHandler PropertyChanged;
 
        public string Title
        {
            get { return bookTitle; }
            set
            {
                bookTitle = value;
                NotifyPropertyChanged("Title");
            }
        }    
 
        // factoring out the call to the event
        public void NotifyPropertyChanged(string propertyName)
        {
            if (PropertyChanged != null)
            {
                PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
            }
 
        }
 
在xaml页面文件中,每一个绑定的字段均使用Binding语法,关键字Binding跟随一个公有属性(public property),且属性绑定到控件,同时设置Mode,默认为OneWay。示例代码如下:
        <TextBlock x:Name="AuthorURL"
            Text="{Binding AuthorURL, Mode=OneWay }"
            VerticalAlignment="Bottom"
            HorizontalAlignment="Left"
            Grid.Row="5" Grid.Column="1"
            Style="{StaticResource TextBlockStyle}"/>
 
DataContext
上面的实例代码表示AuthorURL控件绑定到AuthorURL属性,但是没有告诉它绑定到哪一个对象。DataContext 对象是一个特定的book实例,在运行时指定,并赋值给Grid的DataContext属性,这样,数据绑定控件就知道从book实例中获取AuthorURL属性值了。
 
DataContext对象可以沿着UI树继承,这样,当我们设置Grid对象的DataContext属性后,所有在Grid内的其他控件将可以访问DataContext(除非这些控件有自己的DataContext定义)。看看示例代码:
        void Page_Loaded(object sender, RoutedEventArgs e)
        {
 
            Book book = new Book();
            InitializeProgramming(book);
            LayoutRoot.DataContext = book;
        }
 
控件样式Styling Controls
在Silverlight中有2种方式设置控件的样式:(1)直接在控件中应用样式Applying Styles Inline。示例代码如下:
<TextBlock x:Name="TitlePrompt" Text="Title: " VerticalAlignment="Bottom"
HorizontalAlignment="Right" Grid.Row="0" Grid.Column="0"
FontFamily="Comic Sans MS"
FontSize="16"
FontWeight="Bold"
Foreground="Red" />
 
(2)创建并应用Style对象
Style对象是可以重用的资源,你可以应用到任何container,或者通过放置在App.xaml 的Resources节,应用到整个项目。
    <Application.Resources>
        <Style TargetType="TextBlock" x:Key="TextBlockStyle">
            <Setter Property="VerticalAlignment" Value="Bottom"/>
            <Setter Property="HorizontalAlignment" Value="Right" />
            <Setter Property="FontFamily" Value="宋体" />
            <Setter Property="FontSize" Value="16" />
            <Setter Property="Foreground" Value="Blue" />
        </Style>
    </Application.Resources>
 
范例程序运行界面:
 
 
本范例程序来自于《Programming .NET 3.5》,欢迎下载交流
 
 
posted @ 2009-03-11 08:21 EntLib 阅读(192) | 评论 (0)编辑
  2009年3月10日
SQL Server Service Broker – 消息队列
 
Service Broker 是集成在SQL Server 2005/2008内的消息服务,允许数据库应用程序单向(one-way)或双向(two-way)轻松交换消息。Service Broker 两个重要的优点是:
(1)异步消息(Asynchronous messages)
(2)确保到达目的地(Guaranteed delivery)
 
Service Broker 包含一些相关的组件,Contract、Service、Queue队列、Message Type消息类型、Service program or service application 服务应用程序(一般为存储过程)等等,如下图所示。
 
 
Service Broker 应用程序通过对话进行通信。在实际生活中,对话是两个人之间的沟通。一个人发送一条消息,另外一个人接收消息并回复。
在Service Broker中,一个对话是通过contract、队列、服务进行可靠的、异步的消息交换。简而言之,Service Broker 对话用来发送和接收消息。如下图所示,两个分离的数据库分别定义了一个Service Broker服务,相互之间进行发送和接收消息,进行双向对话。
 

 
Orders数据库发送一条消息给Shipping数据库,消息中说一个订单Order已经接收并确认了。Shipping数据库则发送一条确认消息,说订单正在被处理,随后当订单实际发货后,发送另一条消息给Orders数据库。
当有消息在进入队列时,可以配置Service Broker自动启动服务程序,或者配置程序定期检查消息队列(Message Queue)。Service Broker非常灵活,足以出来不同的业务需要。
 
关于Service Broker的实际开发,建议你参考如下一些文章:
Service Broker实现发布-订阅(Publish-Subscribe)框架(1) (中文)
http://forum.entlib.com/Default.aspx?g=posts&t=70
 
Service Broker实现发布-订阅(Publish-Subscribe)框架(2) (中文)
http://forum.entlib.com/Default.aspx?g=posts&t=71
 
Service Broker实现发布-订阅(Publish-Subscribe)框架(3) (中文)
http://forum.entlib.com/Default.aspx?g=posts&t=72
 
Introducing Distributed Messaging using Service Broker in SQL Server 2005 (英文)
http://www.codeproject.com/KB/database/IntroServiceBroker.aspx
 
posted @ 2009-03-10 08:23 EntLib 阅读(478) | 评论 (0)编辑
  2009年3月6日
Microsoft SQL Server 2008 All-in-One Desk Reference For Dummies 读书笔记之三
 
SQL Server 2008是一个重大的产品版本,它推出了许多新的特性和关键的改进,使得它成为至今为止的最强大和最全面的 SQL Server 版本。《Microsoft SQL Server 2008 All-in-One Desk Reference For Dummies》包括了9本书,分别介绍了SQL Server 2008的一些特性和技术,内容图文并茂、非常直观、浅显易懂。本系列读书笔记分9篇,分别介绍每本书的一些值得关注的内容。
 
Book I – Essential Concepts 基本概念
Book II – Designing and Using Databases 设计和使用数据库
 
Book III – Interacting with Your Data 操作数据
首先,本节第一步就介绍了数据库的范式,数据库的设计范式是数据库设计所需要满足的规范,避免数据库存储大量不需要的冗余信息。
第一范式(1NF,First Normal Form: No Repeating Groups)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。如果出现重复的属性,就可能需要定义一个新的实体,新的实体由重复的属性构成,新实体与原实体之间为一对多关系。
第二范式(2NF,Second Normal Form: Dependent on the Whole Key)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)。第二范式(2NF)要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性,如果存在,那么这个属性和主关键字的这一部分应该分离出来形成一个新的实体,新实体与原实体之间是一对多的关系。
满足第三范式(3NF)必须先满足第二范式(2NF)。简而言之,第三范式(3NF)要求每一个非主关键字段必须直接且仅依赖主关键字字段。换句换说,如果任何一个非主关键字段(non-primary column)是直接依赖于其他非主关键字段(non-primary column),则这个表的设计不符合第三范式。
第二范式和第三范式的最大区别是:第二范式强调非主关键字段必须依赖于整个主关键字段(组合关键字段列表,composite key),而不是部分关键字段列表。而第三范式强调的是:非主关键字段必须依赖于主关键字,而不是其他非主关键字段。也就是说,每一个字段或列必须依赖于整个主关键字段列(第二范式),且仅仅主关键字段列(第三范式)。
当然,我们为了提高系统的性能,必要时违反范式(Denomalizing your database),增加冗余数据到数据库。
 
接下来第二章介绍了SQL Server的优化,包括使用执行计划、创建和维护统计信息等。介绍的比较简单,值得看一下。
 
后面的章节介绍了查询设计器(Query Designer)、更新数据、视图等等,比较简单,可以很快跳过去。
 
最后一部分,介绍了高级查询主题,包括事务、全文检索(Full-text Search)、Outer Joins和查询XML数据等等。
Microsoft 在最近的SQL Server的版本中增加了对XML 的重大支持,XML 数据可以存放在XML数据类型的列中,或者nvarchar(MAX) 数据类型中。在SQL Server 2008中,提供了如下的XML 方法,用来查询和更新XML数据。
Query – 该方法用来从XML文档中查询单一节点。
Value – 该方法用来从XML文档中检索单一值。
Exist – 该方法用来检查一个特定的值是否存在于XML文档中。
Nodes – 该方法用来从XML文档中检索多个值,通常用来以table的格式显示XML数据。
Modify – 该方法更新XML文档的数据。
 
关于XML数据的查询,这里简单演示其中相关的SQL脚本:
--Declare the variable for the XML instance
DECLARE @myXML xml
--Create the XML instance
SET @myXML = '
<Root>
<Contact ContactID=''101'' ContactName=''Homer Simpson''>
<ContactInformation>
<email>Homer@springfield.com</email>
<Cell>1-123-555-1234</Cell>
</ContactInformation>
</Contact>
<Contact ContactID=''102'' ContactName=''Marge Simpson''>
<ContactInformation>
<email>Marge@springfield.com</email>
<Cell>1-123-555-5678</Cell>
</ContactInformation>
</Contact>
</Root>'
--Use the query method to query the XML instance
SELECT @myXML.query('/Root/Contact/ContactInformation/email/text()')
 
DECLARE @ContactID int
--Retrieve value of ContactID for the 2nd row [2]
SET @ContactID = @myXML.value('(/Root/Contact/@ContactID)[2]', 'int')
--Display the value
SELECT @ContactID
 
DECLARE @dataExists bit
--See if Homer Simpson exists in the XML instance
SET @dataExists = @myXML.exist('/Root = (''Homer Simpson'')')
SELECT @dataExists
 
--Retrieve the nodes
SELECT
MyTable.cols.value('@ContactName', 'varchar(35)') AS Name,
MyTable.cols.query('ContactInformation/email') AS [Email],
MyTable.cols.query('ContactInformation/Cell') AS [CellPhone]
FROM @myXML.nodes('/Root/Contact') MyTable(cols)
 
欢迎访问http://blog.entlib.com/ 开源ASP.NET博客平台,了解更多的读书笔记。

posted @ 2009-03-06 08:11 EntLib 阅读(142) | 评论 (2)编辑
  2009年3月2日
OREILLY Programming .NET 3.5 读书笔记之三
 
《Programming .NET 3.5》是OREILLY 2008.08出版的.NET 3.5 开发书籍,作者是Jesse Liberty 和 Alex Horovitz,比较全面地介绍.NET 3.5的一些新技术,如XAML、AJAX、WPF、WCF、WF、LINQ、CardSpace、N-tier架构设计等等。这里,记录我的一些读书笔记,希望对学习《Programming .NET 3.5》的朋友有些帮助。欢迎到http://forum.entlib.com/ 开源论坛交流.NET 3.5的一些知识。
 
本书主要分为三个部分:
Part 1 – Presentation Options(表现层选项)
介绍了.NET 3.5 提供的多种表现层设计技术,如XAML、WPF、AJAX、Silverlight等等。
其中第一章简单介绍了.NET 3.5的优点和新技术;第二、三章介绍并演示了XAML和WPF基本编程要素,具体细节请参考如下文章:
XAML 实例演示之一
XAML 实例演示之二
XAML 实例演示之三 – Grid 控件的使用
XAML 实例演示之四 – StackPanelFlowDocumentReader控件的使用
XAML 实例演示之五 – CanvasViewBox控件的使用
XAML 实例演示之六控件嵌套Nesting
XAML 实例演示之七 – ResourcesTransformations
XAML 实例演示之八动画:缓慢旋转的按钮
XAML 实例演示之九 – Hello Kitty 专卖店产品演示
 
第四章综合运用前面章节的XAML/WPF技术,一步一步演示如何创建一个具体的WPF应用程序,具体参考如下文章:
WPF 范例程序之一数据绑定(Data Binding) – 附源代码下载
WPF 范例程序之二构建Hello Kitty 专卖店产品演示附源代码下载
 
第五章简单介绍了AJAX概念及入门向导,非常简单。
 
第六章运用AJAX Control Toolkit – ReorderList 控件,创建一个To-Do 任务列表的实际Web Application 应用程序,具体参考如下文章:
基于AJAX Control Toolkit - ReorderList 构建ToDo 任务列表
基于AJAX Control Toolkit - ReorderList 构建ToDo 任务列表之二
 
第七章简单介绍了Silverlight 2技术,并在最后演示如何创建一个数据绑定的范例程序。
Silverlight 2 数据绑定演示程序(附源代码下载)
 
Part 2 – Interlude on Design Patterns(.NET 3.5设计模式)
第八章简单介绍了3-Tier和N-Tier架构,MVC模式(内容过时),Observer设计模式,Factory Method 工厂方法设计模式,Chain-of-Command和Singleton设计模式。这部分内容在很多书上都有介绍,可根据需要选择阅读,与.NET 3.5 关系不大。
 
Part 3 – The Business Layer(业务层)
第九章简单介绍了.NET 3.5 引入的LINQ,包括LINQ 的基本语法、LINQ to SQL、LINQ to XML、扩展方法(Extension Method)、Lambda Expression等等。内容比较简单,比较适合LINQ初学者。
 
第十章介绍了WCF/SOA基本概念,如SOAP/WSDL/UDDI、EndPoint等等,其中关于Contract的定义需要注意的几点:
1. Stability is job one! Don’t publish a contract for others until you are sure the service is stable and not likely to change.
2. Say what you mean and mean what you say. Be explicit in your contracts to ensure that people understand both the explicit and intended usages.
3. Make sure the public data schema is abstract; don’t expose internal representations.
4. If you break it, you version it. Even the best-designed service might need to change; use versioning to help insulate your consumers from these changes.
 
中文意思:
1. 稳定性是第一项工作。不要发布contract给其他人,直到你确信Service已经基本稳定,不会改变了。
2. 准确表达你想说的。contract需要清楚描述,确保其他人可以准确理解显式和隐式的用法。
3. 确保公有的数据schema是抽象的,不要暴露内部表示。
4. 如果你想改变contract,你需要定义新的版本好。因为即使设计最好的服务,都可能需要改变,通过使用版本号来帮助你隔离现有的使用者远离这些变化。
 
第十一章应用WCF技术,演示如何创建YahooQuotes WCF 服务,并创建WPF Client应用程序调用该WCF服务。示例程序比较简单,如果你对WCF 还不了解,建议你参考如下文章:WCF 开发示例向导 --- 经典推荐!
 
第十二章简单介绍了WF,并简单演示了如何创建Sequential Workflow应用程序,适合于WF新手。
 
第十三章应用WF技术演示如何创建一个状态机( State Machine),本章演示了前一章的所有概念,创建了一个完整的工作流应用程序。
 
第十四章介绍并应用CardSpace。CardSpace是基于身份识别,允许用户提交用户身份信息到一个网站。当用户登录到一个支持CardSpace网站,将显示CardSpace服务,用户可以选择一个身份卡片(Identity card)传送到该网站,就像你使用普通的ID卡、身份证或信用卡一样。CardSpace是.NET 3.5引用的新技术,目前支持CardSpace的网站还不多。
 
《Programming .NET 3.5》系列读书笔记到此技术,感谢Jesse Liberty 和 Alex Horovitz提供的这本书。本书对.NET 3.5的新技术基本都有涉及,遗漏了ADO.NET Entity Framework这部分的内容(.NET 3.5 SP1引入的新技术)。
 
关于ADO.NET Entity Framework 的内容,可以参考如下文章:
ADO.NET Entity Framework 深入分析系列文章
 
 
共享电子书版块有该书的下载地址:
http://forum.entlib.com/Default.aspx?g=topics&f=11
 
posted @ 2009-03-02 21:15 EntLib 阅读(162) | 评论 (0)编辑