Cẩm nang dành cho người lập trình với WINDOWS Mobile

LA BÀN ĐỊNH HƯỚNG WINDOWS MOBILE SDK

navigation image map

Một số  đường link đến các thông tin hữu ích khác

http://msdn2.microsoft.com/en-us/library/bb158532.aspx

What's New in Windows Mobile 6

Lists the major new features in Windows Mobile 6.

Development Tools and Resources for Windows Mobile 6

Provides information about the tools required to develop, test, debug and deploy applications for Windows Mobile.

Getting Started in Developing Applications for Windows Mobile 6

Introduces software development for Windows Mobile powered devices.

Updating your Applications to Windows Mobile 6

Identifies new features and changes to consider when updating existing applications for Windows Mobile 6.

Programming Techniques for Windows Mobile

Provides links to information about tasks that are related to application development for Windows Mobile.

Windows Mobile Features (Native)

Provides a reference for the supported Windows Mobile APIs.

Windows Mobile Features (Managed)

Provides a reference for the supported Windows Mobile classes for managed code development.

Code Samples for Windows Mobile

Provides information about each code sample that is included in the Windows Mobile 6 Professional SDK and Windows Mobile 6 Standard SDK .

Links and Resources

Links to Windows Mobile-related resources, such as websites, web logs (blogs), and tutorials.

Posted by Le Thanh Hai | with no comments

Visual studio có gì mới cho lập trình với devices

Nhân trao đổi với Hiếu chuẩn bị làm workshop cho Embedded và VS2008, tặng Em mấy ý

image

Posted by Le Thanh Hai | with no comments

Đòan việt nam tham hội thảo WIndows Core của Microsoft Research

Window Core Workshop

Ngày 11/03/2009 – ngày 14/103/2009, Windows Core Workshop đã được tổ chức tại phòng thí nghiệm Châu Á (MSRA) của Microsoft tại Bắc Kinh, Trung Quốc. Tham gia vào Workshop là hơn 100 giảng viên và các nhà nghiên cứu đến từ các nước Châu Á – Thái Bình Dương như: Trung Quốc, Việt Nam, Úc, Nhật, Thái Lan…. Được sự giới thiệu của Microsoft Việt Nam, Việt Nam có 3 thành viên tham gia sự kiện này: Văn Ngọc An (ĐH Bách Khoa Hà Nội), Phạm Thi Vương (ĐH CNTT TPHCM), Phạm Tuấn Sơn (ĐH KHTN TPHCM). Mục đích của Workshop nhằm tạo điều kiện cho các giảng viên và các nhà nghiên cứu trao đổi, chia sẽ kinh nghiệm giảng dạy và nghiên cứu xoay quang công nghệ Windows Core, từ đó hợp tác với nhau để cùng nâng cao chất lượng của chương trình giảng dạy hệ điều hành.

Workshop giới thiệu chương trình Microsoft Windows Academic tới các giảng viên gồm mã nguồn của Windows kernel, các tài nguyên học tập, công cụ tạo môi trường cho việc học tập và nghiên cứu các nguyên lý của hệ điều hành. Chương trình nhằm vào 3 mục đích chính:

- Nâng cao tính đa dạng trong bài giảng của các giảng viên dạy môn Hệ điều hành thông qua case study là Windows NT

- Sử dụng Window làm nền tảng để giảng dạy hệ điều hành

- Tăng sự hứng thú của sinh viên đối với môn học.

Chương trình Microsoft Windows Academic bao gồm các tài nguyên:

- Windows Research Kernel (WRK): là source code của Windows NT(XP/2003), bao gồm các đoạn mã quản lý tiến trình, tiểu trình, các thiết bị I/O…

- Curriculum Resource Kit (CRK): tập hợp các bài giảng(slide), bài lab, câu hỏi trắc nghiệm, bài tập về nhà nhằm trình bày các nguyên lý của hệ điều hành dựa trên nên tảng hệt điều hành Windows XP.

- Project OZ: môi trường thực nghiệm giúp hiểu rõ các nguyên lý của hệ điều hành dựa trên NT API.

Phần chính của Workshop là các bài báo cáo về kinh nghiệm giảng dạy Hệ điều hành với sự hỗ trợ từ chương trình Microsoft Windows Academic của các giảng viên từ Đại học Thượng Hải, Đại học quốc gia Đài Loan và các kinh nghiệm trong việc thiết kế thêm các bài Lab cũng như nghiên cứu, nâng cấp tạo biên dịch nên các phiên bản hệ điều hành Windows từ Đại học Vũ Hán, Đại học Otago, Đại học Hàn Quốc… Bên cạnh đó, dành cho các giảnh viên mới lần đầu tham dự một workshop về Windows Core, ban tổ chức đã tốc chức các buổi Lab nhằm giúp cho các giảng viên nắm các biên dịch Windows Kernel. Trong các buổi báo cáo và trao đổi, không khí trao đổi diễn ra hết sức nhiệt tình và cởi mở.

Một điều bất ngờ đối với chúng tôi khi tham gia dự Workshop này biết được thông tin Việt Nam là nước đứng thứ 3 trong danh sách các nước có download chương trình này.

Về công tác tổ chức, ban tổ chức đã có nhiều nỗ lực để Workshop diễn ra tốt đẹp, các điều kiện về ăn ở đi lại đối với các thành viên tham gia đều rất tuyệt vời.

Các tài nguyên của chưong trình có thể download tại: http://www.microsoft.com/resources/sharedsource/windowsacademic/default.mspx

clip_image002clip_image004

clip_image006clip_image008

Posted by Le Thanh Hai | with no comments

Updated resources of Microsoft sharepoint

Recently i have got many question about microsoft office sharepoint . I also do love it , while i am too busy to help , every one can many interesting resource and information from below links. Hope it makes help for you.I have Hung , Trong who are MOSS specialist of Liveclub can Help. I hope that i will be able to host an MOSS PASSION soon to gather all MOSS fan.

SharePoint Developer Center

Find information about planning, coding, building, deploying, and migrating solutions for Microsoft Office SharePoint Server 2007.

http://msdn.microsoft.com/en-us/office/aa905503.aspx

Microsoft Office Interactive Developer Map

The Microsoft Office Interactive Developer Map is a Windows Presentation Foundation (WPF) application that helps developers visualize the different programs, servers, services, and tools that will help them build solutions. It allows them to drill down to each product and technology and learn about new features, objects, Web services, namespaces, and schemas required to extend Microsoft Office and build custom Office Business Applications (OBAs).

http://msdn.microsoft.com/en-us/office/bb497969.aspx

MSSharePointDeveloper.com

A great site that provides Virtual PC images, screencasts, webcasts, hands on labs, and demos to help existing .NET developers quickly learn about the 10 most common developer topics for SharePoint.

http://mssharepointdeveloper.com

MyRampUp.com

Focused training modules split into lecture, demonstration, and hands on labs material to help you learn SharePoint development.

http://myrampup.com

SharePoint Server TechCenter

The Microsoft Office SharePoint Server 2007 TechCenter provides comprehensive content management and enterprise search, accelerates shared business processes, and facilitates information-sharing.

SharePoint Server TechCenter

Video Demos and Training for Office SharePoint Server 2007 – End User

Contains links to many Microsoft Office SharePoint Server 2007 video demos that are intended for IT professionals.

http://technet.microsoft.com/en-us/library/cc262880.aspx

WSS 3.0 SDK Online

Online: http://msdn.microsoft.com/en-us/library/bb264594.aspx

Compiled help format: http://www.microsoft.com/downloads/details.aspx?familyid=C9D6C8C5-8A62-4961-8C1B-DF08B667B1C4&displaylang=en

SharePoint Server 2007 SDK Online

Online: http://msdn.microsoft.com/en-us/library/bb851473.aspx

Compiled help format: http://www.microsoft.com/downloads/details.aspx?FamilyID=BA006584-711D-4CE7-9E1F-181AEDF6434A&displaylang=en

SharePoint Server 2007 Visual How-Tos – Developer

This site provides links to many MSDN walkthroughs that contain both written steps as well as a short video demonstrating how to accomplish specific tasks.

http://msdn.microsoft.com/en-us/library/dd146863.aspx

WSS 3.0 Visual How-Tos – Developer

http://msdn.microsoft.com/en-us/library/bb892193.aspx

SharePoint Guidance – November 2008

This guidance helps architects and developers design, build, test, deploy, and upgrade SharePoint intranet applications. A reference implementation demonstrates solutions to common architectural, development, and application lifecycle management challenges.

http://www.microsoft.com/downloads/details.aspx?FamilyId=C3722DBA-6EE7-4E0E-82B5-FDAF3C5EC927&displaylang=en

Office SharePoint Designer 2007 Training

Install a program to your desktop to receive free training on how to use SharePoint Designer 2007.

http://www.microsoft.com/downloads/details.aspx?FamilyId=5B10F061-41D4-48CE-85CB-01D46772240D&displaylang=en

SILVERLIGHT CHO MỌI NGƯỜI (tiếp theo và hết)

Một số phần tài liệu tiếng việt về Silverlight dạng PDF file xin vui lòng tải về từ các đường LINK dưới đây

Phần 3 : Các Control

Phần 4 Kỹ thuật đồ họa với SILVERLIGHT tại đây

Phần 5 MEDIA and Animation tại đây

Phần 6 Làm việc với dữ liệu từ SILVERLIGHT

Tôi hy vọng mọi người sẽ tiếp thu được những thông tin cơ bản nhất về Silverlight và kỹ thuật lập trình với Silverlight

SILVERLIGHT DÀNH CHO MỌI NGƯỜI (Phần 3)

CONTROL VÀ USER CONTROL TRONG SILVERLIGHT

1 Giới thiệu về các control phổ biến của Silverlight SDK tích hợp trong VS2008

Các Control trong silverlight cho phép bạn lưu trữ nội dung hoặc các control khác, bạn có thể tạo hoặc tự thiết kế được các control này để chúng hiển thị được những thay đổi trạng thái tới người dùng.

Trong công cụ phát triển Visual studio 2008 đã tích hợp các công cụ silverlight (Cài đặt Siverlight tool, đã hướng dẫn ở chương một) có rất nhiều các control có sẵn để bạn tạo, thay đổi hoặc xử lý các sự kiện theo chúng

Dưới đây là hình ảnh danh sách các công cụ đã có trong Silverlight tool

clip_image001

Ở Chương II chúng ta đã tìm hiểu về các cách trình bày control theo Layout (Grid, StackPanel, Canvas). Trong chương này chúng ta sẽ xem và tìm hiểu các control phổ biến trong silverlight 2 và cách trình bày chúng theo Layout đã học.

Các control phổ biến trong Silverlight 2

1.1 Border

o Mổ tả

Border cung cấp một background , khu vực cho phép bạn nhúng vào đó một thành phần duy nhất nhằm tạo ra hiệu quả về đồ hoạ.

o Ví dụ

<Border Background="Coral" Width="300" Padding="10" CornerRadius="20">

<TextBlock FontSize="16">Text Surrounded by a Border</TextBlock>

</Border>

clip_image003

1.2 Button

o Mô tả

Button kiểm soát các phản ứng của người dùng qua các thiết bị đầu vào, bao gồm các sự kiện, style

o Ví dụ

<Grid x:Name="LayoutRoot" Background="White">

<Button Name="Button" Content="Click Me !" Background="Blue" Margin="20,60,200,200" MouseLeftButtonDown="Button_MouseLeftButtonDown"/>

</Grid>

clip_image005

1.3 Calendar

o Mô tả

Calendar cho phép người sử dụng chọn ngày, tháng, năm. Ta có thể sử dụng các style khác nhau thông qua Mode

o Ví dụ

<Grid x:Name="LayoutRoot" Background="White">

<basics:Calendar Height="300" Width="300"IsTodayHighlighted="True" >

</basics:Calendar>

</Grid>

clip_image007

1.4 CheckBox

o Mô tả

Cho phép người dùng lựa chọn ba trạng thái dánh dấu ,bỏ dánh dấu và trạng thái trung gian

o Ví dụ

<CheckBox Name="CheckBox1" ClickMode="Release" IsThreeState="False" Content="CheckBox two states" Margin="10,50,0,0"></CheckBox>

<CheckBox Name="CheckBox2" ClickMode="Release" IsThreeState="True" Content="CheckBox three states" Margin="10,100,0,0"></CheckBox>

clip_image009

1.5 ComboBox

o Mô tả

ComboBox cho phép chọn lựa một Item từ một danh sách Item từ ComboBox

o Ví dụ

<Grid x:Name="LayoutRoot" Background="White">

<ComboBox Name="ComboBox1" BorderThickness="2" IsDropDownOpen="True" SelectedIndex="0" Width="200" Height="30">

<ComboBoxItem x:Name="ComboBoxItem1" Content="Item1"></ComboBoxItem>

<ComboBoxItem x:Name="ComboBoxItem2" Content="Item2"></ComboBoxItem>

<ComboBoxItem x:Name="ComboBoxItem3" Content="Item3"></ComboBoxItem>

</ComboBox>

</Grid>

clip_image011

1.6 ContentControl

o Mô tả

ContentControl có các dẫn xuất như Button, Panel. Ta có thể tuỳ chỉnh ContentControl thông qua các template

o Ví dụ

Sau đây là việc cài đặt một vài control được thừa kế từ ContentControl

<StackPanel Name="root" Width="200" HorizontalAlignment="Center" VerticalAlignment="Center">

<! —Tạo một button với nội dung gán từ Content.-->

<Button Margin="10" Content="This is string content of a Button"/>

<! —Tạo một button với một UIElement gán từ content.-->

<Button Margin="10">

<Rectangle Height="40" Width="40" Fill="Blue"/>

</Button>

<! —Tạo một button với một panel chứa nhiều đối tượng gán từ content.-->

<CheckBox Margin="10">

<StackPanel Margin="3,0,0,0" Orientation="Horizontal">

<Ellipse Height="10" Width="10" Fill="Blue"/>

<TextBlock TextAlignment="Center" Text="A string of text"></TextBlock>

</StackPanel>

</CheckBox>

</StackPanel>

clip_image013

1.7 DatePicker

o Mô tả

DatePicker cho phép người dùng sử dụng để lựa chọn ngày, hoặc gõ trực tiếp vào textbox hoặc sử dụng lịch thả xuống.

DatePicker cung cấp một loạt các sự kiện hỗ trợ việc kiểm soát lịch thả xuống.

o Ví dụ

<!-- A basic Calendar. -->

<swc:Calendar x:Name="cal" Canvas.Left="20" Canvas.Top="100" />

<!-- A Calendar does not highlight today's date. -->

<swc:Calendar x:Name="cal2" Canvas.Left="270" Canvas.Top="100"

IsTodayHighlighted="false" />

<!-- Two DatePicker controls, one using the default Short date format -->

<!-- and the other using the Long date format. -->

<swc:DatePicker x:Name="dp1" Canvas.Left="20" Canvas.Top="390" />

<swc:DatePicker x:Name="dp2" Canvas.Left="20" Canvas.Top="480"

SelectedDateFormat="Long"/>

<!-- A Calendar to demonstrate multiple selection. -->

<swc:Calendar x:Name="cal3" Canvas.Left="20" Canvas.Top="540" />

clip_image015

1.8 GridSplitter

o Mô tả

GridSplitter cho phép người dùng phân phối lại không gian giữa các hàng hoặc cột. Nó là yếu tố đồ hoạ tượng trưng cho một thành phần gắn vào nó mà thành phần đó có thể tương tác

o Ví dụ

<Grid ShowGridLines="True" Canvas.Top="60" Canvas.Left="20" Width="400" Height="400">

<Grid.RowDefinitions>

<RowDefinition />

<RowDefinition />

<RowDefinition />

<RowDefinition />

</Grid.RowDefinitions>

<Grid.ColumnDefinitions>

<ColumnDefinition />

<ColumnDefinition />

<ColumnDefinition />

<ColumnDefinition />

</Grid.ColumnDefinitions>

<TextBlock Text="One!" Grid.Row="0" Grid.Column="0" />

<TextBlock Text="Two!" Grid.Row="1" Grid.Column="1" />

<TextBlock Text="Three!" Grid.Row="2" Grid.Column="2" />

<TextBlock Text="Four!" Grid.Row="3" Grid.Column="3" />

<swc:GridSplitter Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="4"

Height="5" HorizontalAlignment="Stretch" VerticalAlignment="Top"

ShowsPreview="True"

/>

<swc:GridSplitter Grid.Row="2" Grid.Column="1" Grid.RowSpan="2"

Width="5" HorizontalAlignment="Left" VerticalAlignment="Stretch"

/>

</Grid>

 clip_image017

1.9 HyperlinkButton

o Mô tả

HyperlinkButton hiển thị một siêu liên kết. Khi bấm vào HyperlinkButton sẽ cho phép người dùng truy cập vào một trang web, địa chỉ URI đích được xác định với các NavigateUri.

Bạn có thể chỉ định cửa sổ hoặc một khung trong những điểm đến trang web bằng cách sử dụng TargetName

o Ví dụ

<TextBlock Text="HyperlinkButton Demonstration" Margin="0,20,10,20"

FontFamily="Verdana" FontSize="18" FontWeight="Bold"

Foreground="#FF5C9AC9" />

<HyperlinkButton Content="Click here to learn about Silverlight"

    NavigateUri="http://www.silverlight.net" TargetName="_blank" Margin="10,60,0,0"/>

clip_image019

1.10 Image

o Mô tả

Image hiển thị hình ảnh trong định dạng JPEG hoặc PNG.

Hình ảnh hiển thị ở 1, 4 hoặc 8 bit màu, hình ảnh thực với 24 hoặc 32 bit

o Ví dụ

Mã XAML:

<Image Source="myPicture.png" />

Mã C#:

Image myImage = new Image();

myImage.Source = new BitmapImage(new Uri("myPicture.jpg", UriKind.RelativeOrAbsolute));

LayoutRoot.Children.Add(myImage);

1.11 InkPresenter

o Mô tả

InkPresenter cung cấp các bản vẽ mặt để hỗ trợ tính năng Tablet PC. InkPresenter được dẫn xuất từ canvas nên có thể hiển thị một hoặc nhiều đối tượng và UIElement strokes.

o Ví dụ

Mã XAML:

<Canvas>

<TextBlock Text="InkPresenter Control" FontWeight="Bold" Margin="50,30,0,0" />

<Rectangle Height="500" Width="500" Margin="50,50,0,0" Stroke="Black" />

<InkPresenter x:Name="MyIP" Height="500" Width="500"

Margin="50,50,0,0"

MouseLeftButtonDown="MyIP_MouseLeftButtonDown"

LostMouseCapture="MyIP_LostMouseCapture"

MouseMove="MyIP_MouseMove"

Background="Transparent" Opacity="1" />

</Canvas>

Mã C#

private void MyIP_MouseLeftButtonDown(object sender, MouseEventArgs e)

{

MyIP.CaptureMouse();

StylusPointCollection MyStylusPointCollection = new StylusPointCollection();

MyStylusPointCollection.Add(e.StylusDevice.GetStylusPoints(MyIP));

NewStroke = new Stroke(MyStylusPointCollection);

MyIP.Strokes.Add(NewStroke);

}

//StylusPoint objects are collected from the MouseEventArgs and added to MyStroke.

private void MyIP_MouseMove(object sender, MouseEventArgs e)

{

if (NewStroke != null)

NewStroke.StylusPoints.Add(e.StylusDevice.GetStylusPoints(MyIP));

}

//MyStroke is completed

private void MyIP_LostMouseCapture(object sender, MouseEventArgs e)

{

NewStroke = null;

}

 
clip_image021

1.12 ListBox

o Mô tả

ListBox chứa một danh sách các Item, Item có thể là một doạn văn bản hay một Control.

o Ví dụ

<TextBlock Text="ListBox Demonstration" Margin="0,20,10,20"

FontFamily="Verdana" FontSize="18" FontWeight="Bold"

Foreground="#FF5C9AC9" />

<TextBlock Text="ListBox with unbound data:" />

<ListBox Width="350" Margin="0,5,0,10">

<TextBlock Text="TextBlock" />

<TextBox Text="TextBox" />

<Button Content="Button" />

<Rectangle Fill="LightBlue" Height="20" Width="150" Margin="2,2,2,2"/>

<Ellipse Fill="Coral" Height="20" Width="150" Margin="2,2,2,2"/>

</ListBox>

clip_image023

1.13 MediaElement

o Mô tả

Các MediaElement kiểm soát nội dung Audio hoặc Video.

MediaElement cung cấp một vùng chữa nhật có thể hiển thị Video trên đó, hoặc Audio

o Ví dụ

<MediaElement

x:Name="media"

Source="xbox.wmv"

CurrentStateChanged="media_state_changed"

Width="300" Height="300"/>

1.14 MultiScaleImage

o Mô tả

MultiScaleImage cho phép người dùng mở một hình ảnh cho phép phóng to thu nhỏ thông qua công nghệ Deep Zoom.

o Ví dụ
Mã XAML:

<MultiScaleImage x:Name="deepZoomObject" Source="source/items.bin"

 MouseEnter="DeepZoomObject_MouseEnter" />
Mã C#:

private void DeepZoomObject_MouseEnter(object sender, MouseEventArgs e)

{

if (deepZoomObject.UseSprings = false)

{

deepZoomObject.UseSprings = true;

}

this.deepZoomObject.ZoomAboutLogicalPoint(3, .5, .5);

}

clip_image025

1.15 PasswordBox

o Mô tả

PasswordBox được sử dụng để nhập vào thông tin mật khẩu ký tự hiển thị chỉ là ký tự đại diện.

o Ví du

Mã XAML:

<TextBlock Margin="20,10,0,0" Text="PasswordBox Demonstration" FontWeight="bold"/>

<TextBlock Text="Type password here" Margin="20,10,0,0"/>

<PasswordBox x:Name="MyPWBox1" Margin="20,10,0,0" PasswordChanged="MyPWBox1_PasswordChanged" MaxLength="8" Height="35" Width="200" HorizontalAlignment="Left" />

Mã C#:

public Page()

{

InitializeComponent();

}

private void MyPWBox1_PasswordChanged(object sender, RoutedEventArgs e)

{

ReadOnlyTB.Text = MyPWBox1.Password;

}

clip_image027

1.16 Popup

o Mô tả

Popup luôn luôn xuất hiện lên trên cùng cửa sổ ứng dụng hữu ích cho việc hiện thị thông báo cho một nhiệm vụ

o Ví dụ
Mã XAML:

<Button Width="100" Height="50" x:Name="showPopup" Click="showPopup_Click" Content="Show Popup" />

Mã C#

// Create the popup object.

Popup p = new Popup();

private void showPopup_Click(object sender, RoutedEventArgs e)

{

Border border = new Border();

border.BorderBrush = new SolidColorBrush(Colors.Black);

border.BorderThickness = new Thickness(5.0);

}

1.17 ProgressBar

o Mô tả

ProgressBar hiển thị cho biết tiến trình đang hoạt động bằng việc thay đổi giá trị thay đổi.

o Ví dụ

<StackPanel x:Name="LayoutRoot" Background="White">

<Border BorderThickness="5" BorderBrush="Black">

<StackPanel Background="LightGray">

<TextBlock HorizontalAlignment="Center" Margin="10"

Text="Value-Based Progress Bar" />

<ProgressBar x:Name="pg1" Value="100" Margin="10" Maximum="200"

Height="15" IsIndeterminate="False" />

</StackPanel>

</Border>

<Border BorderThickness="5" BorderBrush="Black">

<StackPanel Background="LightGray">

<TextBlock HorizontalAlignment="Center"

Margin="10" Text="Indeterminate Progress Bar" />

<ProgressBar x:Name="pg2" Margin="10" Height="15"

IsIndeterminate="True" />

</StackPanel>

</Border>

</StackPanel>

clip_image029

1.18 RadioButton

o Mô tả

RadioButton cho phép người dùng chọn một tùy chọn từ một nhóm các tùy chọn. Các RadioButton tổ chức trong cùng một nhóm bằng cách đặt các GroupName chung cho mỗi RadioButton. Các RadioButton là một ContentControl

o Ví dụ

Mã XAML:

<Grid.RowDefinitions>

<RowDefinition Height="Auto"/>

<RowDefinition Height="Auto"/>

<RowDefinition Height="Auto"/>

<RowDefinition Height="Auto"/>

<RowDefinition Height="Auto"/>

<RowDefinition Height="Auto"/>

</Grid.RowDefinitions>

<Grid.ColumnDefinitions>

<ColumnDefinition Width="Auto" />

<ColumnDefinition Width="Auto" />

</Grid.ColumnDefinitions>

<TextBlock Text="RadioButton Demonstration" Margin="0,20,10,20"

FontFamily="Verdana" FontSize="18" FontWeight="Bold"

Foreground="#FF5C9AC9" Grid.Row="0" Grid.ColumnSpan="2"/>

<TextBlock Text="First Group:" Grid.Row="1" />

<RadioButton x:Name="TopButton" Margin="5,0,0,0" Checked="HandleCheck"

GroupName="First Group" Content="First Choice" Grid.Row="1" Grid.Column="1"/>

<RadioButton x:Name="MiddleButton" Margin="5,0,0,0" Checked="HandleCheck"

GroupName="First Group" Content="Second Choice" Grid.Row="3" Grid.Column="1"/>

<TextBlock Text="Ungrouped:" Grid.Row="4" />

<RadioButton x:Name="LowerButton" Margin="5,0,0,0" Checked="HandleCheck"

Content="Third Choice" Grid.Row="4" Grid.Column="1"/>

<TextBlock Grid.Row="5" x:Name="choiceTextBlock" Margin="0,10,0,0" Grid.ColumnSpan="2"/>

 

Mã C#:

private void HandleCheck(object sender, RoutedEventArgs e)

{

RadioButton rb = sender as RadioButton;

choiceTextBlock.Text = "You chose: " + rb.GroupName + ": " + rb.Name;

}

clip_image031

1.19 RepeatButton

o Mô tả

RepeatButton là một nút kiểm soát các sự kiện tác động vào nút như Mouse Click và thời gian giữa hai lần click liên tiếp

o Ví dụ

Mã XAML:

RepeatButton Content="click and hold for multiple Click events"

Click="RepeatButton_Click" Width="250" Margin="0,0,0,5"

HorizontalAlignment="Left"/><TextBlock x:Name="clickTextBlock" Text="Number of Clicks:" />

 Mã C#:

static int Clicks = 0;

private void RepeatButton_Click(object sender, RoutedEventArgs e)

{

Clicks += 1;

clickTextBlock.Text = "Number of Clicks: " + Clicks;

}

clip_image033

1.20 ScrollBar

o Mô tả

ScrollBar cung cấp một thanh trượt có khả năng di chuyển định hướng theo chiều ngang hoặc chiều dọc

1.21 ScrollViewer

o Mô tả

ScrollViewer kiểm soát một mảng content, cung cấp hai ScrollBar để kiểm soát việc di chuyển mảng content .

ScrollViewer cho phép bạn thiết lập kích cỡ của khoảng View liên quan đến Content theo chiều ngang và chiều dọc.

o Ví dụ

<ScrollViewer Height="200" Width="200" HorizontalScrollBarVisibility="Auto" Canvas.Top="60" Canvas.Left="340">

<TextBlock Width="300" TextWrapping="Wrap" Text="I am the very model of a modern Major-General,." />

</ScrollViewer>

clip_image035

1.22 Slider

o Mô tả

Slider cho phép người dùng lựa chọn từ một loạt các giá trị bằng cách di chuyển dọc theo một thanh ngang.

o Ví dụ

<Slider Margin="0,5,0,20"

x:Name="slider1"

Minimum="0"

Maximum="10" />

clip_image037

1.23 TabControl

o Mô tả

TabControl cung cấp một giao diện hiển thị cho các thành phần.

Các thành phần con của TabControl là các TabItem.

o Ví dụ

<UserControl xmlns:swc="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls" x:Class="TabControlExample.Page"

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

FontFamily="Trebuchet MS" FontSize="11"

Width="400" Height="300">

<Canvas x:Name="LayoutRoot" Background="White">

<!-- Create a simple TabControl in XAML. -->

<swc:TabControl x:Name="tab1" Canvas.Top="20" Canvas.Left="20" Height="200" Width="300" />

<swc:TabControl x:Name="tab2" Canvas.Top="240" Canvas.Left="20" Height="200" Width="300" />

</Canvas>

</UserControl>

clip_image039

1.24 TextBlock

o Mô tả

TextBlock hiển thị nội dung văn bản. bạn có thể gán các nội dung của một TextBlock bằng cách sử dụng nguồn text. Ngoài ra cũng có thể gán TextBlock bằng một tập hợp các đối tượng text.

o Ví dụ
<TextBlock>Hello, world!</TextBlock>

clip_image041

1.25 TextBox

o Mô tả

TextBox được sử dụng nhập dữ liệu dạng text từ người dùng hoặc hiển thị văn bản.

TextBox thường được dùng để chỉnh sửa văn bản đôi khi cũng được dùng ở chế độ chỉ đọc. TextBox có thể hiển thị nhiều dòng văn bản.

o Ví dụ
<TextBox x:Name="ReadWriteTB" TextChanged="ReadWriteTB_TextChanged"  IsReadOnly="False" HorizontalAlignment="Left"
 Margin="20,5,0,0" Height="35" Width="200" />

clip_image043

1.26 ToolTip

o Mô tả

Tooltip cung cấp thông tin về một đối tượng đồ họa bằng cách sử dụng một cửa sổ pupup.

o Ví dụ

<!-- A TextBlock with an offset ToolTip. -->

<TextBlock Text="TextBlock with an offset ToolTip."

Canvas.Top="110" Canvas.Left="20" >

<ToolTipService.ToolTip >

<ToolTip Content="Offset ToolTip."

HorizontalOffset="20" VerticalOffset="30"/>

</ToolTipService.ToolTip>

</TextBlock>

</Canvas>

</UserControl>

clip_image045

1.27 DataGrid

o Mô tả

DataGrid cung cấp một cách linh hoạt để hiển thị một tập hợp các dữ liệu trong các hàng và cột.

Data Grid hỗ trợ nhiều style hiển thị dữ liệu trong các cột hoặc hàng.

Data Grid hỗ trợ các bảng tùy chọn định dạng và khả năng hiển thị hoặc ẩn các tiêu đề, các thanh trượt di chuyển .

Ngoài ra Data Grid còn cung cấp một số kiểu mẫu mà bạn có thể thay đổi hình thức thể hiện dữ liệu hàng, cột và tiêu đề.

o Ví dụ

<UserControl x:Class="DataGridSnippets.Page"

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

xmlns:data="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data"

Width="500" Height="Auto">

<ScrollViewer VerticalScrollBarVisibility="Auto" BorderThickness="0">

<StackPanel Margin="10,10,10,10">

<TextBlock Text="DataGrid Demonstration" Margin="0,20,10,20"

FontFamily="Verdana" FontSize="18" FontWeight="Bold"

Foreground="#FF5C9AC9" />

<TextBlock Text="DataGrid with autogenerated columns:"/>

<data:DataGrid x:Name="dataGrid1"

Height="140" Margin="0,5,0,10"

AutoGenerateColumns="True" />

<TextBlock Text="DataGrid with row details sections:"/>

<data:DataGrid x:Name="dataGrid3"

Height="140" Margin="0,5,0,10"

RowDetailsVisibilityMode="VisibleWhenSelected" >

<data:DataGrid.RowDetailsTemplate>

<DataTemplate>

<StackPanel Orientation="Horizontal">

<TextBlock FontSize="12" Text="Address: " />

<TextBlock FontSize="12" Text="{Binding Address}"/>

</StackPanel>

</DataTemplate>

</data:DataGrid.RowDetailsTemplate>

</data:DataGrid>

<TextBlock Text="DataGrid with configured columns:"/>

<data:DataGrid x:Name="dataGrid4"

Height="160" Margin="0,5,0,10"

RowHeight="40" AutoGenerateColumns="False" >

<data:DataGrid.Columns>

<data:DataGridTextColumn

Header="First Name"

Width="SizeToHeader"

Binding="{Binding FirstName}"

FontSize="20" />

<data:DataGridTextColumn

Header="Last Name"

Width="SizeToCells"

Binding="{Binding LastName}"

FontSize="20" />

<data:DataGridTextColumn

Header="Address"

Width="150"

Binding="{Binding Address}" >

<data:DataGridTextColumn.ElementStyle>

<Style TargetType="TextBlock">

<Setter Property="TextWrapping" Value="Wrap"/>

</Style>

</data:DataGridTextColumn.ElementStyle>

<data:DataGridTextColumn.EditingElementStyle>

<Style TargetType="TextBox">

<Setter Property="Foreground" Value="Blue"/>

</Style>

</data:DataGridTextColumn.EditingElementStyle>

</data:DataGridTextColumn>

<data:DataGridCheckBoxColumn

Header="New?"

Width="40"

Binding="{Binding IsNew}" />

<data:DataGridCheckBoxColumn

Header="Subscribed?"

Width="Auto"

Binding="{Binding IsSubscribed}"

IsThreeState="True" />

</data:DataGrid.Columns>

</data:DataGrid>

<TextBlock Text="DataGrid with template column and custom alternating row backgrounds:"/>

<data:DataGrid x:Name="dataGrid5"

Height="125" Margin="0,5,0,10"

AutoGenerateColumns="False"

RowBackground="Azure"

AlternatingRowBackground="LightSteelBlue">

<data:DataGrid.Columns>

<!-- Name Column -->

<data:DataGridTemplateColumn Header="Name">

<data:DataGridTemplateColumn.CellTemplate>

<DataTemplate>

<StackPanel Orientation="Horizontal">

<TextBlock Padding="5,0,5,0"

Text="{Binding FirstName}"/>

<TextBlock Text="{Binding LastName}"/>

</StackPanel>

</DataTemplate>

</data:DataGridTemplateColumn.CellTemplate>

<data:DataGridTemplateColumn.CellEditingTemplate>

<DataTemplate>

<StackPanel Orientation="Horizontal">

<TextBox Padding="5,0,5,0"

Text="{Binding FirstName}"/>

<TextBox Text="{Binding LastName}"/>

</StackPanel>

</DataTemplate>

</data:DataGridTemplateColumn.CellEditingTemplate>

</data:DataGridTemplateColumn>

<!-- Address Column -->

<data:DataGridTextColumn

Header="Address" Width="300"

Binding="{Binding Address}" />

</data:DataGrid.Columns>

</data:DataGrid>

</StackPanel>

</ScrollViewer>

</UserControl>

Mã C#:

using System;

using System.Collections.Generic;

using System.Windows.Controls;

namespace DataGridSnippets

{

public partial class Page : UserControl

{

public Page()

{

InitializeComponent();

// Thiết lập ItemsSource để tự tạo các cột.

dataGrid1.ItemsSource = Customer.GetSampleCustomerList();

dataGrid3.ItemsSource = Customer.GetSampleCustomerList();

dataGrid4.ItemsSource = Customer.GetSampleCustomerList();

dataGrid5.ItemsSource = Customer.GetSampleCustomerList();

}

}

public class Customer

{

public String FirstName { get; set; }

public String LastName { get; set; }

public String Address { get; set; }

public Boolean IsNew { get; set; }

public Boolean? IsSubscribed { get; set; }

public Customer(String firstName, String lastName,

String address, Boolean isNew, Boolean? isSubscribed)

{

this.FirstName = firstName;

this.LastName = lastName;

this.Address = address;

this.IsNew = isNew;

this.IsSubscribed = isSubscribed;

}

public static List<Customer> GetSampleCustomerList()

{

return new List<Customer>(new Customer[4] {

new Customer("A.", "Zero",

"12 North Third Street, Apartment 45",

false, true),

new Customer("B.", "One",

"34 West Fifth Street, Apartment 67",

false, false),

new Customer("C.", "Two",

"56 East Seventh Street, Apartment 89",

true, null),

new Customer("D.", "Three",

"78 South Ninth Street, Apartment 10",

true, true)

});

}

}

}

 clip_image047

3 User Control trong Visual Studio 2008

Trong ví dụ được trình bày dưới đây chúng ta tìm hiểu cách tạo một User Control và sử dụng nó như thế nào trong Visual Studio 2008

1. Trong Project Silverlight đã có chúng ta làm thao tác tạo New Item theo hình vẽ dưới đây

clip_image049

2. Chọn Silverlight User Control trong Templates và đặt tên control này là FormContactUserControl.xaml

clip_image051

3. Chúng ta sẽ có 2 file sau được tạo ra
- FormContactUserControl.xaml

- FormContactUserControl.xaml.cs

Trong FormContactUserControl.xaml chúng ta sẽ có đoạn mã sau

<UserControl x:Class="Chapter2.FromContactUserControl"

xmlns="http://schemas.microsoft.com/client/2007"

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

>

</UserControl>

4. Bây giờ chúng ta sẽ thêm đoạn mã dưới đây vào bên trong thẻ <Usercontrol>

<Canvas Grid.Column="0" Grid.Row="1" Background="WhiteSmoke">

<TextBlock Text="Họ và tên: " Margin="5,22,0,0" />

<TextBox x:Name="txtName" Margin="65,15,0,0" Width="180" Height="20"/>

<TextBlock Text="Địa chỉ: " Margin="5,47,0,0"/>

<TextBox x:Name="txtAddress" Margin="65,40,0,0" Width="180" Height="20"/>

<TextBlock Text="ĐT: " Margin="5,72,0,0"/>

<TextBox x:Name="txtPhone" Margin="65,65,0,0" Width="180" Height="20"/>

<TextBlock Text="Mobile: " Margin="5,97,0,0"/>

<TextBox x:Name="txtMobile" Margin="65,90,0,0" Width="180" Height="20"/>

<TextBlock Text="Email: " Margin="5,122,0,0"/>

<TextBox x:Name="txtEmail" Margin="65,115,0,0" Width="180" Height="20"/>

<Button x:Name="btnSubmit" Content="Lưu lại" Margin="140,150,0,0" Width="55"

<Button x:Name="btnReset" Content="Xóa" Margin="200,150,0,0" Width="45"/>

</Canvas>

5. Thêm sự kiện vào nut bấm “btnSubmit’.

clip_image053

Chúng ta sẽ xử lý sự kiện btnSubmit_Click vào trong mã c# như sau

private void btnSubmit_Click(object sender, RoutedEventArgs e)

{

// Phe duyet du lieu dau vao

if (txtName.Text == "")

{

MessageBox.Show("Họ và tên không được bỏ trống");

txtName.Focus();

}

else

{

//Tiep tuc xu ly luu contact

//...

}

}

6. Làm thao tác Build Sulution, chúng ta đã tạo xong control FormContactUserControl. Bây giờ chúng ta mở file Page.xaml để sử dụng lại control đó. Chúng ta thêm mới đoạn mã sau: xmlns:inf="clr-namespace:Chapter2" vào bên trong thẻ <UserControl>
clip_image055

7. Để hiển thị được User control: FormContactUserControl trong Page.xaml ta tiếp tục thêm đoạn mã sau
<inf:FromContactUserControl x:Name="From1"></inf:FromContactUserControl>

8. Bấm F5 để chạy chương trình bạn sẽ được kết quả như hình ảnh sau
clip_image057

Posted by Le Thanh Hai | with no comments

XAML - Extensible Application Markup Language (phần 1)

1 Tổng quan về XAML

1.1 XAML là gì

XAML được viết tắt bởi cụm từ: Extensible Application Markup Language là một ngôn ngữ dạng khai báo. Bạn có thể tạo ra các phần tử đồ họa(UI) với những khai báo thông qua thẻ trong XAML. Sau đó bạn có thể dùng file mã lệnh tách biệt của nó(code-behind) để trả về những sự kiện và điều khiển những đối tượng mà bạn đã định nghĩa trong XAML. Nó là một ngôn ngữ mô tả dựa trên XML là rất trực quan để xây dựng giao diện từ những bước phác thảo cho tới sản xuất sản phẩm, đặc biệt hữu ích cho đối tượng có kinh nghiệm thiết kế website và kỹ thuật.

1.2 Khai báo đối tượng

Có hai cách để khai báo đối tượng trong XAML:

1.2.1 Khai bao trực tiếp:

Sử dụng thẻ đóng mở để khai báo một đối tượng giống như là một phần tử XML. Bạn cũng có thể sử dụng cú pháp này để khai báo đối tượng gốc (root object) hoặc để xét các giá trị các thuộc tính.

1.2.2 Khai báo gián tiếp:

Sử dụng giá trị trực tiếp để khai báo một đối tượng. Bạn có thể sử dụng cú pháp này để thiết lập giá trị của thuộc tính.Thông thường, điều này có nghĩa là chỉ những thuộc tính mà được hỗ trợ bởi đối tượng mới có thể sử dụng được phương pháp này.

1.3 Thiết lập đặc tính cho đối tượng

Có những cách sau để khai báo đặc tính cho đối tượng:

1.3.1 Sử dụng cú pháp theo thuộc tính

Dưới đây là ví dụ xét giá trị cho các thuộc tính: Width, Height, Fill của đối tượng Rectangle:
<Rectangle Width="100" Height="100" Fill="Blue" />

1.3.2 Sử dụng cú pháp theo đặc tính của thành phần(element):

Dưới đây là ví dụ xét đặc tính Fill theo cách này cho đối tượng Rectangle:

<Rectangle Width="100" Height="100">

<Rectangle.Fill>

<SolidColorBrush Color="Blue"/>

</Rectangle.Fill>

</Rectangle>

 
1.3.3 Sử dụng cú pháp theo nội dung

Dưới đây là ví dụ xét đặc tính Text cho đối tượng TextBlock(Giống như đối tượng Label trong Winform, Webform):

<TextBlock>

Hello!

</TextBlock>

1.3.4 Sử dụng theo một tập hợp

Đây là một trường hợp khá thú vị trong XAML, bởi có những cách khác nhau để thể hiện tập hợp này. Hơn nữa nó có thể xuất hiện ở phần đầu tiên của XAML cho phép bạn xét những đặc tính chỉ đọc (read-only) của đối tượng.

Dưới đây là ví dụ xét đặc tính theo những cách khác nhau sử dụng theo kiểu tập hợp.

Cách 1:

<LinearGradientBrush>

<LinearGradientBrush.GradientStops>

<!-- Ở đây thẻ GradientStopCollection được chỉ rõ. -->

<GradientStopCollection>

<GradientStop Offset="0.0" Color="Red" />

<GradientStop Offset="1.0" Color="Blue" />

</GradientStopCollection>

</LinearGradientBrush.GradientStops>

</LinearGradientBrush>

Cách 2:

<LinearGradientBrush>

<LinearGradientBrush.GradientStops>

<! —Không cần khai báo GradientStopCollection, bộ phân tích sẽ hiểu và tạo ra nó -->

<GradientStop Offset="0.0" Color="Red" />

<GradientStop Offset="1.0" Color="Blue" />

</LinearGradientBrush.GradientStops>

</LinearGradientBrush>

Cách 3:

Ngoài ra, có những đặc tính mà chúng có những tập hợp đặc tính nhưng chúng được xác định như là đặc tính nội dung của lớp. Trong trường hợp này ta xét đến đặc tính GradientStops được xử dụng ở trên. Bạn có thể loại bỏ đặc tính này và sẽ có kết quả như sau:

<LinearGradientBrush>

<GradientStop Offset="0.0" Color="Red" />

<GradientStop Offset="1.0" Color="Blue" />

</LinearGradientBrush>

1.4 Root elements và namespace trong XAML

Một file XAML chỉ được có duy nhật một Root element và phải thỏa mãn cả hai tiêu chí sau: well-formed XML(có mở và đóng thẻ) và valid XML(tuân thủ theo Document Type Definition(DTD)). Ví dụ dưới đây cho Root element điển hình của XAML cho Silverlight với Root element là thành phần UserControl.

<UserControl x:Class="MySilverlight.Page"

xmlns="http://schemas.microsoft.com/client/2007"

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

>

<Grid>

</Grid>

</UserControl>

1.5 Sự kiện

XAML là một ngôn ngữ khai báo cho đối tượng và những đặc tính của chúng, nhưng nó cũng bao gồm những cú pháp cho sự kết hợp sự kiện cho đối tượng trong những thẻ đánh dấu. Bạn chỉ rõ tên của sự kiện như là một thuộc tính tên trên đối tượng mà sự kiện được nghe. Về giá trị của thuộc tính, bạn chỉ rõ tên của hàm nghe sự kiện mà bạn định nghĩa ở phần code-behind hoặc ở phần javascript.

Việc có khai bao hay không đặc tính x:Class ở thẻ root trong XAML có ảnh hưởng đến việc xử lý sự kiện. Nếu bạn khai báo x:Class tức là việc xử lý sự kiện của bạn sẽ được thực hiện trong code-behind, trường hợp này thường xuất hiện trong kiểu lập trình Managed API (chứa trong silverlight 2.0). Còn ngược lại thì việc xử lý sự kiện của bạn được thực hiện ngay trong thẻ Javascript chứa trong HTML, trường hợp này thường xuất hiện trong kiểu lập trình JavaScript API (chứa trong Silverlight 1.0).

- Ví dụ dưới đấy chỉ rõ cho bạn thấy cách tạo một sự kiện trong trường hợp kiểu lập trình Manged API

<UserControl x:Class="Chapter2.Page"

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

Width="400" Height="300">

<Grid x:Name="LayoutRoot" Background="White">

<Button Click="Button_Click" Content="Click me"></Button>

</Grid>

</UserControl>

Doạn mã trên, trong thẻ root <UserControl> chúng ta đã khai báo đặc tính x:Class=" Chapter2.Page", điều này có nghĩa trong chương trình của chúng ta có một file chứa class Chapter2.Page. Class này sẽ đảm nhiệm việc xử lý các sự kiện đã khai báo ở file XAML (Page.xaml).

Trong thẻ <Grid> chúng ta tạo thêm một nút <Button> và khai báo trong nút đó một sự kiện

Click="Button_Click".Sự kiện này sẽ được xử lý ở trong code-behind như sau

namespace Chapter2

{

public partial class Page : UserControl

{

public Page()

{

InitializeComponent();

}

private void Button_Click(object sender, RoutedEventArgs e)

{

//Xu ly su kien Button click o day

MessageBox.Show("Xin chao!");

}

}

}

- Còn ví dụ dưới đây sẽ chỉ rõ cho bạn thấy cách tạo một sự kiện trong trường hợp kiểu lập trình JavaScript API

<UserControl

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

Width="400" Height="300">

<Grid x:Name="LayoutRoot" Background="White">

<Button x:Name="button1" Click="Button_Click" Content="Button 1"></Button>

</Grid>

</UserControl>

Doạn mã trên, trong thẻ root <UserControl> chúng ta không khai báo đặc tính x:Class. Việc xử lý sự kiện sẽ được thực hiện ngay trong trang HTML có chứa chương trình silverlight này.

<script type="text/javascript">

function Button_Click() {

alert("Xin chao!");

}

</script>

2 Các namescope trong XAML

Trong Silverlight, một XAML namescope lưu trữ quan hệ giữa những tên từ khóa của XAML đã được định nghĩa của đối tượng và những khởi tạo tương đương của nó. Điều này cũng tương tự như ý nghĩa của “namescope” trong các ngôn ngữ lập trình và công nghệ khác. XAML namescope được tạo ra trong quá trình dịch mã XAML và trong quá trình tạo hình đối tượng. Những tên mà được tạo trong namescope sau đó được sử dụng ở code-behind thao tác lúc chạy chương trình để truy cập tới đối tượng được tạo bởi quá trình dịch file XAML. Để biết thêm chi tiết các bạn có thể tham khảo tại địa chỉ: http://msdn.microsoft.com/en-us/library/cc189026(VS.95).aspx

3 Sử dụng XAMLReader.Load

Sử dụng JavaScript API cho Silverlight, để tạo đối tượng trong lúc thực thi ứng dụng bắt buộc phải sử dụng qua phương thức CreateFromXaml. Sử dụng manged API những class hoặc cấu trúc (structure) cho phép có thêm các thành phần bên trong thực sự được khởi tạo nếu nó có trong cây thành phần của Silverlight. Trong hầu hết các trường hợp mà bạn muốn khởi tạo đối tượng trong lúc thực thi, bạn có thể đơn giản triệu gọi constructor của class liên quan tới nó.

Tuy vậy, Bạn vẫn có thể tạo đối tượng thông qua đầu vào là XAML thông qua managed API, qua việc sử dụng phương thức XamlReader.Load.

Phương thức Load trong managed API là tương ứng với CreateFromXaml trong JavaScript API, cũng giống như CreateFromXaml, đầu vào cho phương thức Load là những chuỗi và đầu ra là những đối tượng mà có thể thêm vào mạng đối dạng cây của Silverlight.

XamlReader đơn giản được thiết kể để đọc xml “XmlReader” có trong Silverlight cũng như trong các công nghệ khác của Microsoft . XamlReader là lớp được xây dựng theo kiểu static với những phương thức tạo đối tượng; nó tạo đối tượng song song với việc xử lý XAML để sinh ra trong lúc thực thi(run-time) những cây đối tượng từ XAML trong Silverlight

Các bạn cần lưu ý những điểm sau khi sử dụng phương thức Load:

- Nội dung chuỗi XAML phải định nghĩa một phần tử gốc (root element)

- Nội dung chuỗi XAML phải là well-formed XML, và valid XML

4 XAML và các Custom class

XAML hỗ trợ khả năng có thể định nghĩa tùy chỉnh lớp(custom class) hoặc cấu trúc(structure) trong bất kỳ ngôn ngữ runtime nào (CLR), và sau đó truy cập vào class thông qua thẻ đánh dấu của XAML(XAML markup), bao gồm cách sử dụng hỗn hợp của những thẻ Silverlight đã định nghĩa trong XAML và những thẻ XAML mà tham chiếu tới custom class tương ứng của nó (Mỗi custom class chứa tương ứng 2 file .cs và .xaml, ví dụ: myclass.xaml và myclass.xaml.cs)

4.1 Custom class trong ứng dụng hoặc Assemblies

Custom class dùng trong XAML có thể định nghĩa theo cách riêng biệt:

- Trong code-behind được đóng gói trong ứng dụng Silverlight

- Như là một class được định nghĩa trong một assembly tách biệt, như là một thư viện thực thi hoặc DLL

Mỗi cách trên đều có những ưu và nhược điểm như sau:

- Ưu điểm của việc tạo class và đóng gói riêng biệt là khả năng có thể chia sẻ và dùng được trong nhiều ứng dụng Silverlight khác. Đồng thời là khả năng quản lý phiên bản của control dễ dàng hơn và nó làm cho nó có khả năng tạo ra class mà bạn dự dịnh sử dụng như là một root element trong trang XAML.

- Ưu điểm của việc tạo custom class trong ứng dụng là về mặt kỹ thuật tương đối đơn giản và giảm thiểu kích cỡ và kiểm tra khi bạn gặp vấn đề trong dự án Silverlight dựa trên code-behind. Tuy nhiên có điểm hạn chế là bạn không thể dùng custom class như là một root element. Bạn phải tham chiếu custom class của bạn qua một assembly khác hoặc là giới hạn subclass sử dụng User Control hỗ trợ code-behind trong dự án Silverlight của bạn.

- Dù là định nghĩa trong cùng một assembly hay assembly khác nhau, custom class phải được ánh xạ qua CLR namespace và XML namespace để được tham chiếu trong XAML

4.2 Ràng buộc để Custom Class trở thành thành phần đối tượng trong XAML

Để được tạo đối tượng như là một thành phần đối tượng của XAML, custom class của bạn phải đáp ứng các yếu tố sau đây:

- Custom class phải để public và hỗ trợ khởi tạo mặc định không có tham số truyền vào (default constructure ‘parameterless’).

- Custom class không phải là class lồng(class lồng và dấu chấm ‘.’ ở cú pháp của nó ảnh hưởng tới những đặc điểm của Silverlight như là các property kèm theo.

Ngoài ra để đối tượng của bạn như là một thành phần đối tượng của XAML, bạn có thể cho phép sử dụng những property cho các public property của Custom class của bạn điều này làm cho Custom class của bạn như là một kiểu property. Điều này bởi vì bây giờ đối tượng có thể được khởi tạo giống như một thành phần đối tượng và có thể xét thuộc tính cho nó như là một property

4.3 Yêu cầu đối với sự kiện trong XAML đối với Custom class

Để sử dụng cú pháp theo kiểu thuộc tính để tương tác với sự kiện trong XAML, sự kiện phải được public trong class mà hỗ trợ constructure mặc định, hoặc sự kiện phải được định nghĩa trong class trừu tượng và sau đó sự kiện có thể truy cập được qua những class kế thừa.

5 XAML và Type Converter

6 Layout

Khi bạn xây dựng ứng dụng Silverlight, một trong những điều bạn cần làm đầu tiên đó là việc sẽ bố trí giao diện đồ họa của bạn như thế nào. Silverlight cung cấp cho bạn 3 kiểu bố trí khác nhau, đó là: Canvas, StackPanelGrid.

6.1 Canvas

Định nghĩa một khu vực mà trong đó bạn có thể chỉ ra vị trí của từng đối tượng thành phần bằng cách sử dụng các tọa độ tham chiếu. Bạn có thể sử dụng lồng các Canvas với nhau và những thành phần bên trong của Canvas phải là một UIElement. Trong nhiều trường hợp thì Canvas chỉ đóng vai trò như một đối tượng để chứa đựng những đối tượng khác và không có một thuộc tính hiển thị nào. Một Canvas sẽ không được hiển thị nếu nó có một trong những thuộc tính sau đây:

- Thuộc tính Height xét giá trị 0

- Thuộc tính Width xét giá trị 0

- Background bằng null hoặc là Nothing ở VS Basic

- Opacity xét giá trị 0

- Visibility bằng Visibility.Collapsed

- Một trong những Canvas ở mức độ cao hơn (parrent) của nó không được hiển thị.

Ví dụ dưới đây chỉ ra là hình chữ nhật được cách trái 30pixel và cách trên 30pixel

<Canvas Width="640" Height="480" Background="White">

<Rectangle Canvas.Left="30" Canvas.Top="30" Fill="red" Width="200" Height="200" />

</Canvas>

clip_image002

6.2 StackPanel

Sắp xếp những thành phần bên trong nó thành một dòng và có thể hiển thị theo hai kiểu ngang hoặc là dọc. Giá trị mặc định được gán chọ thuộc tính Orientation là chiều dọc (Vertical) và giá mặc định được xét cho hai thuộc tính HorizontalAlignmentVerticalAlignmentStretch

Ví dụ dưới đây hướng dẫn cách tạo những những đối tượng trong StackPanel

<StackPanel Margin="20">

<Rectangle Fill="Red" Width="50" Height="50" Margin="5" />

<Rectangle Fill="Blue" Width="50" Height="50" Margin="5" />

<Rectangle Fill="Green" Width="50" Height="50" Margin="5" />

<Rectangle Fill="Purple" Width="50" Height="50" Margin="5" />

</StackPanel>

clip_image003

6.3 Grid

Định nghĩa dạng lưới phức tạp bao gồm những dòng và cột. Mặc định Grid chứa một cột và một dòng. Để định nghĩa nhiều cột hoặc dòng chúng ta dùng ColumnDefinitionsRowDefinitions. Mỗi ColumnDefinitionRowDefinition trong ColumnDefinitionsRowDefinitions xác định một dòng hoặc cột. ColumnDefinitionRowDefinition cũng định nghĩa kích thước của mỗi cột và dòng sử dụng đối tượng GridLength

Ví dụ: Dưới đây là ví dụ dùng Grid để lên một thiết kế giao diện cơ bản.

<Grid x:Name="LayoutRoot" Background="#DCDCDC" Width="400" Height="300" ShowGridLines="True">

<Grid.ColumnDefinitions>

<ColumnDefinition Width="250" />

<ColumnDefinition Width="150" />

</Grid.ColumnDefinitions>

<Grid.RowDefinitions>

<RowDefinition Height="Auto" />

<RowDefinition Height="2*" />

<RowDefinition Height="*"/>

</Grid.RowDefinitions>

<TextBlock Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" Margin="10" FontWeight="Bold" Text="Contoso Corporation" HorizontalAlignment="Center" VerticalAlignment="Center" />

<Grid x:Name="FormLayoutGrid" Grid.Row="1" Grid.Column="0" ShowGridLines="True">

<Grid.ColumnDefinitions>

<ColumnDefinition Width="Auto" />

<ColumnDefinition />

</Grid.ColumnDefinitions>

<Grid.RowDefinitions>

<RowDefinition Height="*" />

<RowDefinition Height="*" />

<RowDefinition Height="*" />

</Grid.RowDefinitions>

<TextBlock Grid.Row="0" Grid.Column="0" Text="First Name" Margin="10" HorizontalAlignment="Left" VerticalAlignment="Center" />

<TextBox Grid.Row="0" Grid.Column="1" Margin="10" />

<TextBlock Grid.Row="1" Grid.Column="0" Text="Last Name" Margin="10" HorizontalAlignment="Left" VerticalAlignment="Center" />

<TextBox Grid.Row="1" Grid.Column="1" Margin="10" />

<TextBlock Grid.Row="2" Grid.Column="0" Text="Address" Margin="10" HorizontalAlignment="Left" VerticalAlignment="Center" />

<TextBox Grid.Row="2" Grid.Column="1" Margin="10" />

</Grid>

</Grid>

Thêm vào một vài đối tượng qua code-behind C#

  public Page()
    {
        InitializeComponent();
        LayoutDesign();
    }
 
    private void LayoutDesign()
    {
        //Tạo  Stackpanel cho ListBox Control
        StackPanel DeptStackPanel = new StackPanel();
        DeptStackPanel.Margin = new Thickness(10);
 
        LayoutRoot.Children.Add(DeptStackPanel);
        Grid.SetColumn(DeptStackPanel, 1);
        Grid.SetRow(DeptStackPanel, 1);
 
        TextBlock DeptListHeading = new TextBlock();
        DeptListHeading.Text = "Department";
 
        ListBox DeptList = new ListBox();
        DeptList.Items.Add("Finance");
        DeptList.Items.Add("Marketing");
        DeptList.Items.Add("Human Resources");
        DeptList.Items.Add("Payroll");
 
        DeptStackPanel.Children.Add(DeptListHeading);
        DeptStackPanel.Children.Add(DeptList);
 
        //Tạo StackPanel cho các nút
        StackPanel ButtonsStackPanel = new StackPanel();
        ButtonsStackPanel.Margin = new Thickness(10);
        ButtonsStackPanel.Orientation = Orientation.Horizontal;
        ButtonsStackPanel.HorizontalAlignment = HorizontalAlignment.Center;
 
        LayoutRoot.Children.Add(ButtonsStackPanel);
        Grid.SetColumn(ButtonsStackPanel, 0);
        Grid.SetRow(ButtonsStackPanel, 2);
        Grid.SetColumnSpan(ButtonsStackPanel, 2);
 
        Button BackButton = new Button();
        BackButton.Content = "Back";
        BackButton.Height = 30;
        BackButton.Width = 100;
 
        Button CancelButton = new Button();
        CancelButton.Content = "Cancel";
        CancelButton.Height = 30;
        CancelButton.Width = 100;
 
        Button NextButton = new Button();
        NextButton.Content = "Next";
        NextButton.Height = 30;
        NextButton.Width = 100;
 
        ButtonsStackPanel.Children.Add(BackButton);
        ButtonsStackPanel.Children.Add(CancelButton);
        ButtonsStackPanel.Children.Add(NextButton);
 
        BackButton.Margin = new Thickness(10);
        CancelButton.Margin = new Thickness(10);
        NextButton.Margin = new Thickness(10);
    }
}

clip_image004

Đây là tài liệu được biên sọan theo chương trình hợp tác của Microsoft vietnam và đối tác trong chương trình LSE nhằm hỗ trợ phát triển CNTT  

Posted by Le Thanh Hai | with no comments
Filed under:

Tài liệu giảng dạy công cụ lập trình Visual studio 2008

clip_image002

TÀI LIỆU HƯỚNG DẪN GIẢNG DẠY VISUAL STUDIO 2008

DÀNH CHO GIẢNG VIÊN ĐẠI HỌC-CĐ

Giới thiệu :

Nhóm tác giả xây dựng và biên sọan bộ tài liệu và giáo trình giảng dạy gồm

  • Cố vấn :
    • Lê Thanh Hải :  Cố vấn công nghệ Công ty Microsoft 
    • và PGS Tiến Sĩ Hùynh Quyết Thắng, Trưởng khoa CNTT Đại học BK
  • Các giảng viên tham gia biên sọan :
    • Ths Đỗ Tuấn Anh
  • Chúng tôi sẵn sàng cung cấp miễn phí cho các khoa CNTT để nghiên cứu phục vụ giảng dạy cho sinh viên
  • Vui lòng liên hệ : Mr Lê Thanh Hải, Microsoft việt Nam

Thông tin và mục tiêu khóa học

Bộ giáo trình này được biên soạn dựa trên những tài liệu mới nhất về Visual Studio 2008 (tham khảo phần dưới) nhằm cung cấp cho sinh viên công nghệ thông tin những kiến thức cơ bản và nâng cao trong việc xây dựng ứng dụng với Visual Studio 2008.

Những mục tiêu chính mà giáo trình cố gắng đạt được:

  1. Cung cấp cho sinh viên kiến thức nền tảng, mô hình và các kiểu ứng dụng có thể xây dựng với Visual Studio 2008.
  2. Hướng dẫn cho sinh viên làm quen với các mô hình ứng dụng mới, các công cụ mới mà Visual Studio 2008 cung cấp.

Giáo trình này giới thiệu về công cụ Visual Studio 2008 như một môi trường để phát triển ứng dụng nhanh và hiệu quả, giáo trình này đòi hỏi sinh viên phải có kiến thức về công nghệ .Net của Microsoft. Mục tiêu của giáo trình là cung cấp cho sinh viên những thong tin về thành phần và khả năng mới của Visual Studio 2008, bên cạnh đó trong quá trình giới thiệu cũng so sánh với các phiên bản trước để sinh viên có thể nhận biết và so sánh. Nhưng với một công cụ đa dạng và phong phú về tính năng và khả năng hỗ trợ phát triển phần mềm như Visual Studio 2008 thì trong giáo trình xin lựa chọn ra một số thành phần nổi bật so với phiên bản trước. Qua đó sinh viên có thể có cái nhìn tổng quan về các mô hình ứng dụng được công cụ hỗ trợ từ đó có thể làm chủ được bộ Visual Studio 2008.

Bộ giáo trình được biên soạn và tổng hợp bao gồm: slide bài giảng, bài exercise, bài thực hành lab và các Video tự học. Ở đây, toàn bộ giáo trình đều được trình bày bằng tiếng Anh, nhằm mục đích nâng cao khả năng tiếp thu và phát triển các kỹ năng học và nghiên cứu bằng tiếng Anh – các kỹ năng vô cùng quan trọng đối với người học công nghệ thông tin.

Giáo trình có thể dùng tham khảo cho các ngành Công nghệ thông tin, điện tử, viễn thông.

Phương pháp giảng dạy

Khóa học này yêu cầu sinh viên phải được thực hành nhiều bằng các ví dụ, project thực tế để có khả năng làm thật thay vì chỉ nghe lý thuyết. Giáo viên nên tổ chức các buổi học lý thuyết và buổi học làm lab đan xen nhau, lý thuyết mà sinh viên mới học có thể được thể hiện ngay bằng các bài thực hành. Điều này giúp cho sinh viên nhớ và hiểu kỹ hơn những gì giáo viên truyền đạt, và cũng tăng sự hứng thú trong việc học. Trong quá trình thực hiện giảng dạy giáo viên nên chuẩn bị kỹ phần Demo đối với những bài giảng có phần này ngay trong phần lý thuyết, giúp cho sinh viên có thể nhìn nhận ngay được các tính năng mới của bộ công cụ Visual Studio 2008.

Một ví dụ về việc tổ chức các buổi học đã được áp dụng:

Tổ chức tuần 1 tiết học lý thuyết và 1 buổi thực hành:

¦ Lý thuyết

- Số lượng tiết: 3 ( có thể thay đổi)

- Thời gian giảng slide: từ 2 đến 2.5 tiết tùy vào chương và điều kiện.

- Thời gian còn lại tiến hành thảo luận.

¦ Thực hanh

- Chuẩn bị kỹ môi trường thực hanh và hướng dẫn sinh viên vị trí lấy tài nguyên để thực hành.

- Sinh viên thực hành các bài lab của giáo trình.

- Giáo viên tìm một ví dụ, tốt nhất là một project thực tế để làm thông qua các bài lab, hướng dẫn từng bước để sinh viên hiểu được quá trình làm thực tế.

Kết thúc khóa học, giáo viên nên yêu cầu sinh viên thực hiện những project tổng thể bằng việc đưa ra danh sách các mẫu project để sinh viên lựa chọn, hoặc sinh viên tự đăng ký, mỗi một mẫu project có thể là các loại ứng dụng được phát triển trên Visual Studio 2008. Việc yêu cầu này có thể được thực hiện vào giữa học kỳ hoặc vào cuối kỳ.

Để rèn luyện kỹ năng làm việc nhóm cho sinh viên, giáo viên có thể yêu cầu lớp phân chia thành các nhóm sinh viên để làm các project. Tùy vào độ lớn của project mà quy định số lượng thành viên của một nhóm, số lượng có thể giao động từ 2 đến 4 sinh viên. Khi bắt đầu thực hiện và trong quá trình thực hiện project, giáo viên cần có mặt để tham gia cùng sinh viên, hướng dẫn để sinh viên đi đúng hướng và hiểu vấn đề một cách chính xác.

Đề cương môn học

Giáo trình được biên soạn để giảng dạy trong 15 tuần, với thời lượng 3 tiết một tuần cho phần lý thuyết và một buổi thực hành Lab. Trong đó có những bài có nhiều bài Lab thì cần tổ chức them buổi Lab vào tuần sau đó. Trong thời gian học lý thuyết, việc đan xen cho sinh viên xem các bài Demo có thể tốn khá nhiều thời gian. Do đó giáo viên nên chuẩn bị kỹ và cân đối việc chia thời gian, chọn lọc các bài demo để cho sinh viên nghe và thảo luận trên lớp, còn những phần khác có thể giao cho sinh viên về nhà tự thực hiện rồi trả lời câu hỏi của giáo viên để buổi sau lên lớp trao đổi.

Đề cương:

Chapter 1

1. Introduction to Visual Studio 2008

 

1.1 Introduction to .Net Framwork 3.5

 

1.2 Visual Studio design goals
1.3 Visual Studio design goals

 

1.3 Visual Studio Enhancements

 

1.4 Language INtegrated Query (LINQ)

 

1.5 Developing Windows Application

 

1.6 Developing Web Application

 

1.7 Developing Office Application

 

1.8 Developing Mobile Application

 

Sumary

Demo

1. Demo IDE

 

2. Demo LinQ

   

Chapter 2

Introduction to Ajax.net

 

2.1 Introduction to Asp.net Ajax

 

2.2 Using Update Table Control

 

2.3 Microsoft Ajax library

 

2.4 Working with Webservices

 

Sumary

   

Chapter 3

Building Web Apps with Visual Studio 2008

 

3.1 HTML Designer

 

3.2 CSS Designer

 

3.3 Understand LINQ Data Source

 

3.4 Working with ListView

 

3.5 Working with Datapager

 

Summary

Demo

 
 

HTML Designer Improvements

 

Nested Master Pages Support

 

Advanced CSS Support

 

LinqDataSource, DataPager, and ListView

 

ASP.NET AJAX Support

Labs

 
   

Chapter 4

Building Windows Workflow Foundation Application

 

4.1 Introduction to Windows Workflow Foundation

 

4.3 Workflow Types

 

4.4 Workflow Basics

 

4.5 Workflow Activities

 

4.6 Workflow Runtime

 

4.7 Workflow Events

 

4.2 Workflow Service

 

Summary

Demo

 
 

Getting started with WWF

   

Labs

Getting started with WWF

 

Creating custom Activities

 

Hosting Workflow

 

Creating State Machine Workflow

Exercises

 
   

Chapter 5

Customizing the Office UI using Visual Studio Tools for Office

 

5.1 Extend the Office Ribbon

 

5.2 Create Custom Task & Actions Panes

 

5.3 Create Outlook Form Regions

 

Summary

Demo

 
 

Ribbon Customization

 

Task Pane Customization

 

Outlook Form Regions

Labs

 

Exercises

 
   

Chapter 6

Building Mobile Application

 

6.1 Tools for Device Developers

 

6.2 Visual Studio “Orcas” Enhancements

 

6.3 Unit Testing for Devices

 

6.4 Managed CoreConnectivity Wrapper

 

6.5 Device Emulator

 

6.6 SDK Tools

 

Summary

Demo

 
   

Exercises

 

Labs

 

Chapter 7

Introduction to Application Lifecycle Management

 

7.1 Software Development Lifecycle

 

7.2 Process for Introducing ALM

 

7.3 Supporting ALM with VSTS

 

7.4 Work Item Tracking

 

7.5 Detailed Reporting

 

Summary

Demo

VSTS Process Templates

Exercises

 

Labs

 
 

Creating and executing UnitTest

Tài liệu phục vụ giảng dạy ngôn ngữ lập trình CSHARP

clip_image002

TÀI LIỆU HƯỚNG DẪN GIẢNG DẠY CSHARP 2008

DÀNH CHO GIẢNG VIÊN ĐẠI HỌC-CĐ

Giới thiệu :

Nhóm tác giả xây dựng và biên sọan bộ tài liệu và giáo trình giảng dạy gồm

  • Cố vấn :
    • Lê Thanh Hải, Cố vấn công nghệ Công ty Microsoft 
    • và PGS Tiến Sĩ Hùynh Quyết Thắng, Trưởng khoa CNTT Đại học BK Hà nội
  • Các giảng viên tham gia biên sọan :
    • Ths Hòang Anh Việt
  • Chúng tôi sẵn sàng cung cấp miễn phí cho các khoa CNTT để nghiên cứu phục vụ giảng dạy cho sinh viên
  • Vui lòng liên hệ : Mr Lê Thanh Hải, Microsoft việt Nam

Thông tin và mục tiêu khóa học

Bộ giáo trình này được biên soạn dựa trên những tài liệu mới nhất về C# 2008 (tham khảo phần dưới) nhằm cung cấp cho sinh viên công nghệ thông tin những kiến thức cơ bản và nâng cao trong lập trình hướng đối tượng (Object Oriented- Programming), đặc biệt là để làm chủ được C# - một công cụ lập trình mạnh mẽ và phổ biến nhất hiện nay.

Những mục tiêu chính mà giáo trình cố gắng đạt được:

  1. Cung cấp nội dung từ cơ bản đến nâng cao cho sinh viên mới bắt đầu học về lập trình hướng đối tượng.
  2. Hướng dẫn cho sinh viên cách thức để bước đầu làm việc được với C# thông qua lập trình OOP.
  3. Nâng cao kiến thức và trình độ của sinh viên để cuối cùng có thể làm chủ được những tính năng mới, nổi bật của C# 2008.

Giáo trình này giới thiệu ngôn ngữ C# như một ngôn ngữ lập tình hướng đối tượng, khá đơn giản ở một số chương đã quen thuộc với những sinh viên đã được học và làm quen với kiến thức OOP trước đó. Nhưng để đảm bảo cho những sinh viên chưa được làm quen với khái niệm lập trình này (trước đây mới chỉ làm quen với C hay pascal) thì giáo trình này vẫn đi từ những kiến thức cơ bản nhất, có sự đối sánh với những phiên bản trước để cho sinh viên có một cái nhìn tổng quát nhất về C#, và làm chủ được phiên bản mới nhất của bộ công cụ này.

Bộ giáo trình được biên soạn và tổng hợp bao gồm: slide bài giảng, bài exercise, bài thực hành lab và các Video tự học. Ở đây, toàn bộ giáo trình đều được trình bày bằng tiếng Anh, nhằm mục đích nâng cao khả năng tiếp thu và phát triển các kỹ năng học và nghiên cứu bằng tiếng Anh – các kỹ năng vô cùng quan trọng đối với người học công nghệ thông tin.

Video tự học là các đoạn phim training do Microsoft biên soạn, các video này bao gồm cả phần lý thuyết lẫn thực hành được các chuyên gia trình bày bằng Tiếng Anh. Việc cho sinh viên học theo và tham khảo các video này đảm bảo được cho sinh viên:

1. Nâng cao khả năng nghe, hiểu và học được bằng tiếng Anh.

2. Nắm được các keyword thông dụng của C#, từ đó có thể tự tìm hiểu thêm được.

3. Tiếp thu rất nhanh nội dung bài giảng qua việc theo dõi các chuyên gia thao tác từng bước của các ví dụ.

Giáo trình có thể dùng tham khảo cho các ngành Công nghệ thông tin, điện tử, viễn thông.

 

Phương pháp giảng dạy

Khóa học này yêu cầu sinh viên phải được thực hành nhiều bằng các ví dụ, project thực tế để có khả năng làm thật thay vì chỉ nghe lý thuyết suông. Giáo viên nên tổ chức các buổi học lý thuyết và buổi học làm lab đan xen nhau, lý thuyết mà sinh viên mới học có thể được thể hiện ngay bằng các bài thực hành. Điều này giúp cho sinh viên nhớ và hiểu kỹ hơn những gì giáo viên truyền đạt, và cũng tăng sự hứng thú trong việc học.

Một ví dụ về việc tổ chức các buổi học đã được áp dụng:

Tổ chức tuần 3 tiết học lý thuyết và 1 buổi thực hành:

¦ Lý thuyết

- Số lượng tiết: 3 ( có thể thay đổi)

- Thời gian giảng slide: từ 2 đến 2.5 tiết tùy vào chương và điều kiện.

- Thời gian còn lại cho sinh viên nghe các Training Video và tiến hành thảo luận.

¦ Thực hành

- Sinh viên thực hành các bài lab của giáo trình.

- Giáo viên tìm một ví dụ, tốt nhất là một project thực tế để làm thông qua các bài lab, hướng dẫn từng bước để sinh viên hiểu được quá trình làm thực tế.

Kết thúc khóa học, giáo viên nên yêu cầu sinh viên thực hiện những project tổng thể bằng việc đưa ra danh sách các mẫu project để sinh viên lựa chọn, hoặc sinh viên tự đăng ký. Việc yêu cầu này có thể được thực hiện vào giữa học kỳ hoặc vào cuối kỳ.

Để rèn luyện kỹ năng làm việc nhóm cho sinh viên, giáo viên có thể yêu cầu lớp phân chia thành các nhóm sinh viên để làm các project. Tùy vào độ lớn của project mà quy địn số lượng thành viên của một nhóm, số lượng có thể giao động từ 2 đến 4 sinh viên. Khi bắt đầu thực hiện và trong quá trình thực hiện project, giáo viên cần có mặt để tham gia cùng sinh viên, hướng dẫn để sinh viên đi đúng hướng và hiểu vấn đề một cách chính xác.

Đề cương môn học

Giáo trình được biên soạn để giảng dạy trong 15 tuần, với thời lượng 3 tiếng một tuần cho phần lý thuyết và một buổi thực hành Lab (xem mẫu ở phụ lục A). Trong thời gian học lý thuyết, việc đan xen cho sinh viên nghe các bài Trainning Video có thể tốn khá nhiều thời gian. Do đó giáo viên nên cân đối việc chia thời gian và chọn lọc các bài Video để cho sinh viên nghe và thảo luận trên lớp, còn những phần khác có thể giao cho sinh viên về nhà tự nghe rồi trả lời câu hỏi của giáo viên để buổi sau lên lớp trao đổi.

Bài giảng : Chapter 1- Introduction to C# Programming

Nội dung :

1.1 Differences Between C# and C++

1.2 Example of a C# Program

1.3 Overview of Features Added in C# 2.0

1.4 Overview of What’s New in C# 3.0

Summary

Bài tập : Week 1

Bài Lab :

Video training

Bài giảng : Chapter 2: Core C# Programming Constructs

Nội dung :

2.1 C# Is a Strongly Typed Language

2.2 Expressions

2.3 Statements and Expressions

2.4 Types and Variables

2.5 Namespaces

2.6 Control Flow

Summary

Bài tập : Week 2

Bài Lab : Lab 2

Video training

Bài giảng : Chapter 3: Object-Based Programming

Nội dung :

3.1 Introduction

3.2 Implementing a Time Abstract Data Type with a Class

3.3 Class Scope

3.4 Controlling Access to Members

3.5 Initializing Class Objects: Constructors

3.6 Using Overloaded Constructors

3.7 Properties

3.8 Composition: Objects References as Instance Variables of Other Classes

3.9 Using the this Reference

3.10 Garbage Collection

3.11 static Class Members

3.12 const and readonly Members

3.13 Indexers

3.14 Data Abstraction and Information Hiding

3.15 Software Reusability

3.16 Namespaces and Assemblies

Summary

Bài tập : Week 3

Bài Lab : Lab 3

Video training

Bài giảng: Chapter4: Understanding Object-Oriented Programming: Inheritance

Nội dung :

4.1 Introduction

4.2 Base Classes and Derived Classes

4.3 protected and internal Members

4.4 Relationship between Base Classes and Derived Classes

4.5 Case Study: Three-Level Inheritance Hierarchy

4.6 Constructors and Destructors in Derived Classes

4.7 Software Engineering with Inheritance

Summary

Bài tập : Week 4

Bài Lab : Lab 4

Video training

Bài giảng: Chapter 5: Understanding Object-Oriented Programming: Polymorphism

Nội dung :

5.1 Introduction

5.2 Derived-Class-Object to Base-Class-Object Conversion

5.3 Type Fields and switch Statements

5.4 Polymorphism Examples

5.5 Abstract Classes and Methods

5.6 Case Study: Inheriting Interface and Implementation

5.7 sealed Classes and Methods

5.8 Case Study: Payroll System Using Polymorphism

5.9 Case Study: Creating and Using Interfaces

5.10 Delegates

5.11 Operator Overloading

Summary

Bài tập : Week 5

Bài Lab : Lab 5

Video training

Bài giảng : Chapter 6: Arrays, Collection Types, and Iterators

Nội dung :

6.1 Introduction to Arrays

6.2 Multidimensional Rectangular Arrays

6.3 Multidimensional Jagged Arrays

6.4 Collection Types

6.5 Iterators

6.6 Collection Initializers

Summary

Bài tập : Week 6

Bài Lab : Lab 6

Video training

Bài giảng: Chapter 7: Working with Interfaces

Nội dung :

7.1 Interfaces Define Types

7.1 Defining Interfaces

7.1 Implementing Interfaces

7.1 Interface Member Matching Rules

7.1 Explicit Interface Implementation with Value Types

7.1 Versioning Considerations

7.1 Contracts

7.1 Choosing Between Interfaces and Classes

Summary

Bài tập : Week 7

Bài Lab : Lab 7

Video training

Bài giảng: Chapter 8: Understanding Structured Exception Handling

Nội dung :

8.1 Introduction

8.2 Exception Handling Overview

8.3 Example: DivideByZeroException

8.4 .NET Exception Hierarchy

8.5 finally Block

8.6 Exception Properties

8.7 Programmer-Defined Exception Classes

8.8 Handling Overflows with Operators checked and unchecked

Summary

Bài tập : Week 8

Bài Lab : Lab 8

Video training

Bài giảng: Chapter 9: Generics

Nội dung :

9.1 Difference Between Generics and C++ Templates

9.2 Efficiency and Type Safety of Generics

9.3 Generic Type Definitions and Constructed Types

9.4 Generic Classes and Structs

9.5 Generic Interfaces

9.6 Generic Methods

9.7 Generic Delegates

9.8 Generic Type Conversion

9.9 Default Value Expression

9.10 Nullable Types

9.11 Constructed Types Control Accessibility

9.12 Generics and Inheritance

9.13 Constraints

9.14 Constraints on Nonclass Types

9.15 Generic System Collections

9.16 Generic System Interfaces

9.17 Select Problems and Solutions

9.18 Conversion and Operators Within Generic Types

9.19 Creating Constructed Types Dynamically

Summary

Bài tập : Week 9

Bài Lab : Lab 9

Video training

Bài giảng: Chapter 10: Delegates, Events, and Lambdas

Nội dung :

10.1 Understanding the .NET Delegate Type

10.2 Defining a Delegate in C#

10.3 The System.MulticastDelegate and System.Delegate Base Classes

10.4 The Simplest Possible Delegate Example

10.5 Retrofitting the Car Type with Delegates

10.6 A More Elaborate Delegate Example

10.7 Understanding Delegate Covariance

10.8 Creating Generic Delegates

10.9 Understanding C# Events

10.10 The Generic EventHandler<T> Delegate

10.11 Understanding C# Anonymous Methods

10.12 Understanding Method Group Conversions

10.13 The C# 2008 Lambda Operato

Summary

Bài tập : Week 10

Bài Lab : Lab 10

Video training

Bài giảng: Chapter 11: Threading in C#

Nội dung :

11.1 Threading in C# and .NET

11.2 Synchronizing Work Between Threads

11.3 Using ThreadPool

Summary

Bài tập : Week 11

Bài Lab : Lab 11

Video training

Bài giảng: Chapter 12: Working with Strings

Nội dung :

12.1 String Overview

12.2 String Literals

12.3 Format Specifiers and Globalization

12.4 Working with Strings from Outside Sources

12.5 StringBuilder

12.6 Searching Strings with Regular Expressions

Summary

Bài tập : Week 12

Bài Lab : Lab 12

Video training

Bài giảng: Chapter 13: File I/O and Isolated Storage

Nội dung :

13.1 Introduction

13.2 Data Hierarchy

13.3 Files and Streams

13.4 Classes File and Directory

13.5 Creating a Sequential-Access File

13.6 Reading Data from a Sequential-Access File

13.7 Random-Access Files

13.8 Creating a Random-Access File

13.9 Writing Data Randomly to a Random-Access File

13.10 Reading Data Sequentially from a Random-Access File

13.11 Case Study: A Transaction-Processing Program

Summary

Bài tập : Week 13

Bài Lab : Lab 13

Video training

Bài giảng: Chapter 14: C# 2008 Language Features

Nội dung :

14.1 Understanding Implicitly Typed Local Variables

14.2 Understanding Automatic Properties

14.3 Understanding Extension Methods

14.4 Understanding Partial Methods

14.5 Understanding Object Initializer Syntax

14.6 Understanding Anonymous Types

Summary

Bài tập : Week 14

Bài Lab : Lab 14

Video training

Bài giảng: Chapter 15: An Introduction to LINQ

Nội dung :

15.1 Understanding the Role of LINQ

15.2 A First Look at LINQ Query Expressions

15.3 LINQ and Generic Collections

15.4 LINQ and Nongeneric Collections

15.5 The Internal Representation of LINQ Query Operators

15.6 Investigating the C# LINQ Query Operators.

Summary

Bài tập : Week 15

Bài Lab : Lab 15

Video training

Tài liệu giảng dạy .NẺT FRAMEWORK dành cho các trường Đại học Cao Đẳng

 

clip_image006

TÀI LIỆU HƯỚNG DẪN GIẢNG DẠY

DÀNH CHO GIẢNG VIÊN ĐẠI HỌC-CĐ

Giới thiệu :

Nhóm tác giả xây dựng và biên sọan bộ tài liệu và giáo trình giảng dạy

  • Cố vấn công nghệ và chuyên môn : Lê Thanh Hải. Công ty Microsoft  và PGS Tiến Sĩ Hùynh Quyết Thắng, Trưởng khoa CNTT Đại học BK Hà nội
  • Các giảng viên tham gia biên sọan :
    • TS Vũ Tuyết Trinh
    • Ths Hòang Anh Việt
    • Ths Đõ Tuấn Anh
    • Kỹ Sư Nguyễn Thị Ngọc Quỳnh.
  • Chúng tôi sẵn sàng cung cấp miễn phí cho các khoa CNTT để nghiên cứu phục vụ giảng dạy cho sinh viên
  • Vui lòng liên hệ : Mr Lê Thanh Hải, Microsoft việt Nam

Thông tin và mục tiêu của tài lịêu giảng dạy khóa học

Bộ giáo trình này được biên soạn dựa trên những tài liệu mới nhất về .NET framework 3.5 nhằm cung cấp cho sinh viên công nghệ thông tin những kiến thức cơ bản nhất về .NET framework. Nội dung bao gồm kiến trúc .NET framework, sự phát triển của .NET framework qua các phiên bản, kiến trúc phiên bản 3.5, các nội dung cơ bản trong phiên bản 3.5... Đặc biệt, giáo trình đi sâu vào Language Integrated Query (LINQ), Windows Presentation Foundation (WPF) là các công nghệ mới rất tiêu biểu của Microsoft .NET nhằm cung cấp cho sinh viên những kĩ năng cơ bản nhất để phát triển các ứng dụng trên nền .NET framework 3.5.

Những mục tiêu chính mà giáo trình cố gắng đạt được:

  1. Cung cấp cho sinh viên một cái nhìn tổng quan về kiến trúc .NET framework, nắm được sự phát triển qua từng phiên bản của .NET framework, so sánh các phiên bản.
  2. Giúp sinh viên nắm được một số nội dung cơ bản trong .NET framework 3.5, sự khác biệt của nó so với các phiên bản trước.
  3. Hướng dẫn cho sinh viên các kỹ thuật lập trình cơ bản với 2 công nghệ quan trọng là LINQ và WPF.

Vì được bố cục trong 45 tiết dạy nên giáo trình không thể đi sâu vào chi tiết từng nội dung trong .NET framework mà chỉ dừng ở mức giới thiệu các khái niệm cơ bản nhất. Đối với phiên bản 3.5, giáo trình xoáy sâu vào 2 nội dung cơ bản là LINQ và WPF là các công nghệ thường gặp nhất đối với người lập trình trên .NET framework 3.5.

Bộ giáo trình được biên soạn và tổng hợp bao gồm: slide bài giảng, bài exercise, bài thực hành lab và các Video tự học. Ở đây, toàn bộ giáo trình đều được trình bày bằng tiếng Anh, nhằm mục đích nâng cao khả năng tiếp thu và phát triển các kỹ năng học và nghiên cứu bằng tiếng Anh – các kỹ năng vô cùng quan trọng đối với người học công nghệ thông tin.

Giáo trình có thể dùng tham khảo cho các ngành Công nghệ thông tin, điện tử, viễn thông.

Phương pháp giảng dạy

Khóa học này yêu cầu sinh viên phải được thực hành nhiều bằng các ví dụ, project thực tế để có khả năng làm thật thay vì chỉ nghe lý thuyết suông. Giáo viên nên tổ chức các buổi học lý thuyết và buổi học làm lab đan xen nhau, lý thuyết mà sinh viên mới học có thể được thể hiện ngay bằng các bài thực hành. Điều này giúp cho sinh viên nhớ và hiểu kỹ hơn những gì giáo viên truyền đạt, và cũng tăng sự hứng thú trong việc học.

Một ví dụ về việc tổ chức các buổi học đã được áp dụng:

Tổ chức tuần 3 tiết học lý thuyết và 1 buổi thực hành:

¦ Lý thuyết

- Số lượng tiết: 3 ( có thể thay đổi)

- Thời gian giảng slide: từ 2 đến 2.5 tiết tùy vào chương và điều kiện.

- Thời gian còn lại cho sinh viên nghe các Training Video và tiến hành thảo luận.

¦ Thực hành

- Sinh viên thực hành các bài lab của giáo trình.

- Giáo viên tìm một ví dụ, tốt nhất là một project thực tế để làm thông qua các bài lab, hướng dẫn từng bước để sinh viên hiểu được quá trình làm thực tế.

Kết thúc khóa học, giáo viên nên yêu cầu sinh viên thực hiện những project tổng thể bằng việc đưa ra danh sách các mẫu project để sinh viên lựa chọn, hoặc sinh viên tự đăng ký. Việc yêu cầu này có thể được thực hiện vào giữa học kỳ hoặc vào cuối kỳ.

Để rèn luyện kỹ năng làm việc nhóm cho sinh viên, giáo viên có thể yêu cầu lớp phân chia thành các nhóm sinh viên để làm các project. Tùy vào độ lớn của project mà quy định số lượng thành viên của một nhóm, số lượng có thể giao động từ 2 đến 4 sinh viên. Khi bắt đầu thực hiện và trong quá trình thực hiện project, giáo viên cần có mặt để tham gia cùng sinh viên, hướng dẫn để sinh viên đi đúng hướng và hiểu vấn đề một cách chính xác.

Đề cương môn học

Giáo trình được biên soạn để giảng dạy trong 15 tuần, với thời lượng 3 tiếng một tuần cho phần lý thuyết và một buổi thực hành Lab. Trong thời gian học lý thuyết, việc đan xen cho sinh viên nghe các bài Trainning Video có thể tốn khá nhiều thời gian. Do đó giáo viên nên cân đối việc chia thời gian và chọn lọc các bài Video để cho sinh viên nghe và thảo luận trên lớp, còn những phần khác có thể giao cho sinh viên về nhà tự nghe rồi trả lời câu hỏi của giáo viên để buổi sau lên lớp trao đổi.

Bài giảng : Chapter 1- .NET Overview

Thời gian: 1 buổi

Nội dung :

1.1 Introduction

1.2 Overview of the .Net flatform

1.3 Overview of the .Net Framework

Summary

Bài tập : Exercise 1

Bài giảng : Chapter 2: Common Language runtime

Thời gian: 1 buổi

Nội dung :

2.1 Introduction

2.2 CLR Executables

2.3 CLR in .Net framework 3.5

Summary

Bài tập : Exercise 2

Bài Lab : Lab 2

Bài giảng : Chapter 3: .NET framework 3.5

Thời gian: 1 buổi

Nội dung :

3.1 Previous Versions

3.2 .Net framework 3.5

Summary

Bài giảng : Chapter 4: Microsoft Language Integrated Query

Thời gian: 4 buổi

Nội dung :

4.1 Introduction LINQ

4.2 C# and VB.NET language enhancements

4.3 LINQ building blocks

4.4 Querying objects in memory

4.5 Querying relational data

4.6 Manipulating XML

4.7 Extending LINQ

4.8 A look to futureSummary

Bài tập : Exercise 4

Bài Lab : Lab 4

Video training

Bài giảng: Chapter 5: Windows Presentation Foundation

Thời gian: 4 buổi

Nội dung :

5.1 WPF Introduction

5.2 XAML

5.3 Programming WPF Applications

5.4 Building Your First WPF Application

5.5 Exploring the Layout Controls

5.6 Working with XAML Controls

5.7 Working with Graphics, Media and Animations

5.8 New in WPF 3.5

5.9 Future Directions of WPFSummary

Bài tập : Exercise 5

Bài Lab : Lab 5

Video training

Windows Communication Foundation

Bài giảng: Chapter 6: Windows Communication Foundation

Thời gian: 2 buổi

Nội dung :

6.1 Introduction

6.2 Programming Model

6.3 New in .NET framework 3.5

6.4 WCF Web Programming Model

Summary

Bài tập : Exercise 6

Bài Lab : Lab 6

Video training

Bài giảng: Chapter 7: ASP.NET AJAX

Thời gian: 2 buổi

Nội dung :

7.1 Introducing ASP.NET AJAX

7.2 Microsoft AJAX Library

7.3 Working with Web Services

7.4 ASP.NET AJAX Control Toolkit

7.5 Building Web Application Summary

Summary

Bài tập : Exercise 7

Bài Lab : Lab 7

Video training

Useful Silverlight learning resource in MSDN

Để tìm hiểu thêm về lập trình SILERLIGHT bạn có thể vào BLOG của tôi ở MICROSOFT và xem chọn LINK phù hợp

http://blogs.msdn.com/hale/archive/2009/02/24/silverlight-learning-resource-in-msdn.aspx

SILVERLIGHT CHO MỌI NGƯỜI (PHẦN 2)

Hướng dẫn cài đặt và sử dụng công cụ Silverlight 2 trên Visual studio 2008

 

1. Tải file Silverlight_Tools.exe có trên trang: http://www.microsoft.com/downloads/details.aspx?familyid=C22D6A7B-546F-4407-8EF6-D60C8EE221ED&displaylang=en

2. Bạn phải chắc chắn rằng máy tính của bạn đã cài đặt Visual Studio 2008 SP1

3. Chạy file Silverlight_Tools.exe, chờ khoảng 1 phút để hiện thị Silverlight tools installation Winzard
clip_image002

4. Bấm next để đến bước 2, tích chọn “I have read an accept the license terms”.

5. Bấm Next để hệ thống tự động kiểm tra tương thích( lưu ý: phải đóng hết các trình duyệt web)

6. Để hệ thống cài đặt và hoàn thành
clip_image004

Các ví dụ thực hành

1. Chương trình đầu tiên “Hello World”

7. Tạo mới một Project: chọn File -> New -> Proeject
clip_image006

8. Một cửa sổ mới “New Project” hiển ra. Chọn Visual C# (hoặc Visual basic) trong Project types, chọn Silverlight. Phía bên phải cửa sổ cho phép bạn chọn các Templale

clip_image008

9. Chún ta chọn Silverlight Application trong Templates

10. Đặt tên chương trình đầu tiên là “HelloWorld”, tùy chọn Location, bấm OK

11. Bạn có thể chọn Project Type theo mặc định trong hội thoại Add Silverlight application, bấm OK

12. Solution mới được tạo ra với 2 project: Silverlight project và web project( dùng để nhúng silverlight tạo bởi silverlight project)
clip_image010
Trong thư mục ClientBin của web project (HelloWorld.Web) chứa ứng dụng silverlight được đóng gói dưới dạng file HelloWorld.xap của project silverlight (HelloWorld)

clip_image012
Toàn bộ màn hình ứng dụng đầu tiên của bạn được nhìn thấy như sau

13. Chúng ta làm 2 phương pháp một là viết code C# trong code ứng dụng, hai là viết trực tiếp trong XAML

1. Viết chương trình bằng Code C#

14. Trong file Page.xaml.cs chúng ta bắt đầu với việc tạo một nút theo những dòng lệnh dưới đây

// Khai bao button

Button myButton;

public Page()

{

InitializeComponent();

// Khởi tạo button

myButton = new Button();

//Xác định các thuộc tính cho myButton

myButton.Content = "Click Me";

myButton.Height = 25;

myButton.Width = 100;

myButton.Margin = new Thickness(10, 10, 0, 0);

//Đưa myButton vào LayoutRoot

LayoutRoot.Children.Add(myButton);

15. Để tạo sự kiện cho một nút chúng ta cần thêm những dòng lệnh sau vào

//thêm phương thức xử lý sự kiện cho myButton
myButton.Click += new RoutedEventHandler(myButton_Click);

void myButton_Click(object sender, RoutedEventArgs e)

{

//Hiển thị thông điệp trên trình duyệt

System.Windows.Browser.HtmlPage.Window.Alert("Hello Silverlight World!");

}

16. Bấm F5 để chạy chương trình

1. Viết chương trình bằng XAML

Lưu ý, với cùng project trên, muốn viết đặc tả bằng XAML tương đương ta cần xóa bỏ phần mã trình C# cũ đi, vì C# và XAML không thể cùng sinh một đối tượng.

Trong file Page.xaml ta thêm đoạn mã sau
<UserControl x:Class="HelloWorld.Page"

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

Width="400" Height="300">

<Grid x:Name="LayoutRoot" Background="White">

<Button Name="myButton" Content="Click me" Width="100"Height="25"></Button>

</Grid>

</UserControl>

17. Gán sự kiện xử lý khi click
clip_image014

18. Bấm F5 để chạy ứng dụng. Cả hai phương thức viết trên đều cho ra một kết quả như hình vẽ sau
clip_image016

Tài liệu tham khảo

19. Silverlight Deverloper center: http://msdn.microsoft.com/en-us/library/bb404708(VS.95).aspx

20. Website chính của Silverlight: http://silverlight.net/

 

Đây là tài liệu của chúng tôi hợp tác cùng đối tác trong chương trình hỗ trợ phát triển phần mềm tại việt nam

(Còn nữa)

SILVERLIGHT CHO MỌI NGƯỜI (tài liệu tiếng Việt phần 1)

TỔNG QUAN

Vì sao lại có Silverlight?

Sự khó khăn của các doanh nghiệp khi xây dựng chiến lược Web

Ngày nay khi phát triển các ứng dụng trên web các doanh nghiệp phần mềm thường đau đầu với những khó khăn về sự hỗ trợ trên trình duyệt và hệ điều hành. Điều họ muốn là với những ngôn ngữ và công cụ phát triển đã vốn quen thuộc từ trước đến giờ đều có thể làm cho họ những ứng dụng chạy tốt trên mọi nền tảng, mọi trình duyệt. Silverlight ra đời như một công nghệ phù hợp cho phép họ làm được những việc như thế. Nếu bạn đã quen thuộc với công nghệ .Net Framework thì khi tiếp cận với Silverlight bạn sẽ tích kiện được rất nhiều thời gian và chi phí cho công nghệ web mới

Nhu cầu cần thiết của thế giới đa phương tiện

Các công nghệ plug-in trên web trước đây không cho phép bạn truyền tải những dữ liệu hình ảnh chất lượng cao như 720p HDTV, Trong khi chất lượng đường truyền mạng ngày nay đang ngày càng tốt hơn và nhu cầu được xem những video chất lượng cao cũng tăng lên thì sự ra đời của Silverlight đã đem đến cho người đam mê thế giới đa phương tiện một sự thỏa mãn thật sự.

SILVERLIGHT LÀ GÌ

Silverlight là một dạng plug-in dựa trên công nghệ của Microsoft .Net, nó độc lập với đa nền tảng và đa trình duyệt, nó cho phép phát triển các ứng dụng đa phương tiện đặc biệt là các ứng dụng trên web. Silverlight cung cấp một mô hình lập trình lập trình mềm dẻo và đồng nhất, nó hỗ trợ Ajax, Python, Ruby và các ngôn ngữ lập trình .Net như Visual basic, C#.
Khả năng đa phương tiện của silverlight thể hiện ở mức độ truyền tải âm thanh và hình ảnh chất lượng cao một cách nhanh chóng và hiệu quả trên tất cả các trình duyệt chính như Internet Explorer, Firefox, Safari.

Với việc sử dụng Expression Studio và Visual Studio, các nhà thiết kế và phát triển có thể hợp tác một cách hiệu quả hơn bằng cách sử dụng chính kỹ năng của họ có hiện nay để làm phát triển các sản phẩm web tương lai “Light up the web”.

Các đặc tính của Silverlight

Silverlight kết hợp nhiều công nghệ vào một nền tảng phát triển, nó cho phép bạn được lựa chọn nhiều công cụ và ngôn ngữ lập trình thích hợp để giải quyết bài toán của bạn. Silverlight cung cấp các tính năng sau:

1. Sự kết hợp của WPF và XAML.

Silverlight là một gói nhỏ của công nghệ Windows Presentation Foundation (WPF). Nó được mở rộng nhiều hơn các Element trong trình duyệt để tạo giao diện người dùng. PWF cho phép bạn tạo ra đồ họa 3 chiều, hình ảnh động, đa phương tiện và nhiều tính năng phong phú khác trên máy khách. XAML (Extensible Application Markup Language) cung cấp các cú pháp đánh dấu đặc trưng cho việc tạo các Element.

2. Mở rộng cho ngôn ngữ kịch bản

Silverlight cung cấp việc mở rộng cho các ngôn ngữ kịch bản (Javascript) ở một số các trình duyệt phổ biến để thể hiện việc trình bày giao diện và thao tác người dùng một cách phong phú hơn.

3. Sự tích hợp với các ứng dụng đã có

Silverlight tích hợp liền mạch với ngôn ngữ javascript và mã Ajax của ASP.Net để bổ sung các chức năng bạn đã xây dựng được. Bạn có thể tạo những tài nguyên trên nền máy chủ có trong ASP.NET và sử dụng các khả năng của Ajax trong ASP.NET để tương tác với tài nguyên trên nền máy chủ đó mà không làm gián đoạn người dùng.

4. Sử dụng mô hình ngôn ngữ lập trình trên nền tảng .Net Framework và các công cụ để kết hợp.

Bạn có thể tạo các ứng dụng trên nền tảng Silverlight và sử dụng các ngôn ngữ động như InronPython cũng như là các ngôn ngữ C# và Visual Basic. Bạn cũng có thể sử dụng các công cụ phát triển như Visual Studio để tạo ứng dụng trên nền tảng Silverlight

5. Hỗ trợ mạng

Silverlight bao gồm các hỗ trợ cho HTTP qua TCP. Bạn có thể kết nối tới các dịch vụ của WCF, SOAP, hoặc ASP.NET AJAX và nhận về các định dạng theo cấu trúc XML, JSON hay dữ liệu RSS.

6. Hỗ trợ ngôn ngữ tích hợp truy vấn (LINQ)

Điều này cho phép bạn truy cập dữ liệu bằng cách sử dụng cú pháp trực quan tự nhiên và mạnh mẽ, được gõ bởi các đối tượng có trong các ngôn ngữ .Net Framework.

Kiến trúc tổng thể và các mô hình lập trình của Silverlight

7. Kiến trúc và các thành phần

Về cơ bản Silverlight là một nền tảng thống nhất của nhiều thành phần khác nhau. Tuy nhiên chúng tôi nhóm lại các thành phần chính của silverlight vào bảng dưới đây.

Thành phần

Diển tả

Nền tảng trình bày cơ sở

Các thành phần và dịch vụ hướng tới giao diện người dùng và tương tác người dùng, bao gồm các control cho dữ liệu cho người dùng nhập, thiết bị đa phương tiện, quản lý phân quyền số, trình bày dữ liệu, đồ họa vector, chữ, hình ảnh động. cũng bao gồm XAML để đặc tả việc bố trí giao diện

.Net Framework cho silverlight

Là một gói nhỏ trong .Net Framework, bao gồm các thành phần và cá thư viện, kể cả tương việc tương tác dữ liệu, khả năng mở rộng các control, mạng, garbage collection, và CLR

Cài đặt và cập nhật

Là thành phần để sử lý các tiến trình cài đặt làm sao để đơn giản hóa cho lần cài đặt đầu tiên, tiếp sau đó chỉ cung cấp cơ chế tự động cập nhật và tương tác ở mức thấp.

Dưới đây là hình ảnh mô tả những thành phần trong kiến trúc của Silverlight cùng với các thành phần và dịch vụ liên quan khác.

clip_image003

Core Presentation Components:

Tính năng

Mô tả

Dữ liệu vào (input)

Xử lý dữ liệu đầu vào từ các thiết bị phần cứng như bàn phím, chuột, bảng vẽ hoặc các thiết bị đầu vào khác

Trình bày giao diện người dùng (UI Rendering)

Trình bày vector và các đồ hoạ ảnh bitmap, ảnh động, và văn bản

Thiết bị nghe nhìn (Media)

Các tính năng phát và quản lý một vài thể loại file âm thanh và hình ảnh như .WMP và .MP3

Controls

Hỗ trợ mở rộng cho các control để có khả năng tùy chỉnh về kiểu dáng và khuôn mẫu

Xếp đặt Layout

Cho phép khả năng xếp đặt vị trí động các thành phần giao diện người dùng

Trình bày dữ liệu

(Data Binding)

Cho phép việc kết nối dữ liệu của các đối tượng và các thành phần giao diện người dùng

DRM

Khả năng Quản lý phân quyền số

XAML

Cung cấp trình phân tách cho XAML

Các lập trình viên có thể tương tác với thành phần nền tảng trình bày cơ sở trên đây bằng cách sử dụng XAML để đặc tả. XAML là một yếu tố quan trọng nhất trong việc tương tác giữa .Net Framwork và các kiểu trình bày Layout, ngoài ra các lập trình viên cũng có thể sử dụng cơ chế quản lý code bên trong để thao tác với lớp trình bày

.Net Frame work for Silverlight:

Tính năng

Mô tả

Data

Hỗ trợ ngôn ngữ truy vấn tích hợp (LINQ) và LINQ với đặc tả XML, dễ dang xử lý việc tích hợp và làm việc với dữ liệu từ nhiều nguồn khác nhau. Hỗ trợ việc sử dụng XML và các lớp biên đổi hóa (serialization) để xử lý dữ liệu

Base class library

Thuộc thư viện của .Net Framework, nó cung cấp các chức năng lập trình chủ yếu như việc xử lý chuỗi, biểu thức chính quy, đầu vào và đầu ra, ánh xạ, tập hợp và toàn cục hóa.

Window Communication Foundation

(WCF)

Cung cấp các tính năng để đơn giản hóa việc truy cập dữ liệu từ xa. Cơ chế này bao gồm một đối tượng trình duyệt, HTTP request và HTTP Response, RSS, JSON, POX, và các SOAP

Common language runtime
(CLR)

Cung cấp việc quản lý bộ nhớ, dọn dẹp bộ nhớ thừa, xử lý ngoại lệ…

Windows Presentation Foundation controls

(WPF)

Cung cấp các control giầu tính năng như Button, Calendar, CheckBox, DataGrid, DatePicker, HyperlinkButton, ListBox, RadioButton, and ScrollViewer.

Dynamic language runtime

(DLR)

Hỗ trợ việc biên dịch và thi hành với tính năng động của các ngôn ngữ kịch bản như Javascript và IronPython cho các chương trình trên nền tảng Silverlight.

8. Các mô hình lập trình của silverlight

Ở phiên bản Silverlight 1.0 cung cấp cho bạn duy nhất một mô hình lập trình là Javascript API, cho đến phiên bản Silverlight 2.0 đã cung cấp cả hai mô hình lập trình là Managed API và Javascript API. Trong khi Javascipt API chỉ cho phép bạn gõ mã lệnh Javascript để tương tác với trình duyệt thì Managed API đã sử dụng được cơ chế làm việc của Common Language Runtime (CLR) và kể cả Dynamic Language Runtime (DLR) để biên dịch và thi chương trình code (C#, VB…) của bạn.

1. Javascript API

Trong một chương trình silverlight nhúng theo kiểu Javascript API, nó tải chỉ một trang XAML đơn lẻ thay vì tải một gói ứng dụng. Trang XAML này có thể bao gồm các tham chiều URI từ những nguồn bên máy chủ khác như là các đoạn video và hình ảnh. Silverlight nhúng sử dụng XAML để tạo một cây đối tượng cái mà bạn có thể thao tác lập trình với javascript lưu trữ bên trong một trang HTML
Javascript API không cung cấp một mô hình ứng dụng có khả năng hỗ trợ các ứng dụng tổ hợp với sự điều hướng bên trong. Tuy nhiên nó cho phép làm những kịch bản theo kiểu Splash screan. Bạn cũng có thể làm các sự điều hướng trong Javascript API bằng cách tải lại trang XAML mới hoặc tải lại cả trang web đó trong trình duyệt.

1. Managed API

Trong lập trình silverlight theo kiểu Managed API, bạn có thể thao tác lập trình với cả file XAML và file code bên trong. Khi một Silverlight nhúng tải file XAML, nó sẽ tạo một cây mô hình cái mà bạn cũng có thể gõ bằng các mã lệnh bên trong ( thường là C#, Visual basic…).

Khả năng hỗ trợ trình duyệt, hệ điều hành và các công nghệ liên quan

9. Hỗ trợ của hệ điều hành và trình duyệt được mô tả ở bảng dưới đây

Operating system

Internet Explorer 7 ,8

Internet Explorer 6

Firefox 1.5, 2.x, and 3.x

Safari 2.x and 3.x

Windows Vista

Windows XP SP2

Windows XP SP3

Windows 2000

Windows Server 2003 (excluding IA-64)

Mac OS 10.4.8+ (PowerPC)

Mac OS 10.4.8+ (Intel-based)

10. Các công nghệ và công cụ liên quan của silverlight.

Microsoft Expression Blend: Sử dụng công cụ này bạn bạn có thể tạo và thay đổi cách xắp xếp trình bày Layer của ứng dụng bằng cách thao tác đến canvas và control trong XAML, làm việc với các chức năng đồ họa, Lập trình với ngôn ngữ Javascript.

Visual Studio 2008: Visual Studio cung cấp các công cụ hiệu quả cho việc phát triển các ứng dụng có hỗ trợ thao tác code bên tron. Tất cả các phiên bản đã có của Visual Studio đều có khả năng hỗ trợ Silverlight,Tuy nhiên ở phiên bản mới này nó còn hỗ trợ các tính năng đặc biệt hơn như bao gồm khả năng IntelliSense, debugging và các template cho việc tạo mới một ứng dụng Silverlight.

ASP.NET AJAX: Bao gồm tập các Control, Service, và các thư viện cần thiết cho việc tạo và tương tác với nền ứng dụng web

Microsoft ASP.NET 3.5 Extensions Preview: Công nghệ này cung cấp chức năng thêm để việc tăng cường các ứng dụng ASP.NET AJAX. Nó bao gồm 2 control sử dụng hữu ích cho việc xây dựng ứng dụng nền tảng silverlight cũng như là một phần của ứng dụng ASP.NET:

1. ASP.NET MediaPlayer Server Control

2. ASP.NET Silverlight Server Control

Internet servers: Bao gồm IIS (Microsoft Internet Information Services), và Apache Web server

Microsoft Windows Communication Foundation (WCF) services.

Đây là tài liệu của chúng tôi hợp tác cùng đối tác trong chương trình hỗ trợ phát triển phần mềm tại việt nam

(Còn nữa)

Posted by Le Thanh Hai | with no comments
More Posts Next page »