Welcome to MSDN Blogs Sign in | Join | Help

Chung kết Imagine cup Vietnam 2009 , những hình ảnh

Windowscore Workshop HCM June2009 015 Windowscore Workshop HCM June2009 018 Windowscore Workshop HCM June2009 044
Windowscore Workshop HCM June2009 043  Windowscore Workshop HCM June2009 202 Windowscore Workshop HCM June2009 050
Windowscore Workshop HCM June2009 207 Windowscore Workshop HCM June2009 122  
     
     
     
Posted by haile | 0 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 haile | 1 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 haile | 1 Comments

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)

Posted by haile | 4 Comments

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 haile | 3 Comments

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

Posted by haile | 1 Comments

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

Posted by haile | 1 Comments

MSDNVietnam và TechnetVietnam chính thức được giới thiệu

Hôm nay tại TP Hồ CHí Minh, Microsoft phối hợp cùng hội tin học Việt Nam, chính thức giới thiệu 2 cổng thông tin công nghệ dành cho cộng đồng lập trình viên và cộng đồng hệ thống thông tin vớ sự chứng kiến của :

  • · Mr Christophe , Microsoft Vietnam country manager
  • · MR Marcos Pinedo, SEA Regional DPE director
  • · Mr Nguyen Long ,Tổng thư ký hội tin học Việt Nam
  • · Lãnh đạo, chuyên gia các đối tác của Microsoft như HPT, CMC, SSP, GCS,NhatNghe…
  • và hơn 250 dại bỉeu là cán bộ, giảng viên, sinh viên của 10 trường đại học, Cao Đẳng ở TP HCM


clip_image001clip_image002


Http://msdnvietnam.net the portal for vietnam’s Developers community

Http://msdnvietnam.net the portal for vietnam’s Developers community

Silverlight Videos , Blogs, Forums,Group, Media resources,News


clip_image007clip_image008

250 attendees

clip_image009

clip_image010
MVPs, Microsoft student partners and Microsoft , Partners


Microsoft community round table with S+S technical sessions (in the day of launch event)

1. Silverligh application development

2. Rich interactive application development with WPF 3.5

3. Microsoft ROBOTICS Studio

4. Microsoft Visual studio 2008

5. Data mining with SQL Server 2008

6. Windows Core

7. ASP.NET MVC

8. Funtional programming F#

9. Microsoft Photosynth


Lời cảm ơn

Bantổ chức xin cảm ơn :

· Mr Nguyen Long, VAIP General secretary

· Mr Ngo Vi Dong , Chairmain of HPT

· Mr Phi Anh Tuan , CMC HCM branch Director

· Mr Duong Anh Duc , Vice rector of Universities of science and Mr Tuan , Vice rector of FPT universities

· Pham Thien Vuong , Universty lecture , MVP candidate

· Phd Tran Minh Triet , University of Science, MVP Candidate

· Tran Van Hue, MVP

· Huynh Cong Nghia, MSP lead

· Pham Hoai Vu

· Duong Cong Phuc

· Duy Nghia and U Nhu Hieu

· Than Ba Hung , MVP Candidate

· Ta Ngoc Thuan, HPT Microsoft solution center

· Hoang Hoai Thuong

· Pham Thanh Lam

· Nguyen Bao Duy

Posted by haile | 1 Comments

Tech passion 2 and free training labs for Microsoft students

Click here to download the files which contains full of information.

image

Posted by haile | 1 Comments

New tool for MS .NET developer

NP .NET Profiler was released last week to microsoft.com. This tool can troubleshoot both performance and memory issues in any .NET application. It can also capture callstacks for first chance exception and memory allocations. There is no setup or reboot required, so it can be used on the production machines. It can be configured to capture events from only the selected namespace so that the overhead is minimum. It can generate various reports like top hits, top execution time, top allocated objects etc. NP .NET Profiler supports all platforms (x86,x64 & ia64) and all OS. It can troubleshoot all types of .NET applications (azure clouds service, wcf, wpf, wf, asp.net, nt service, com+).

NP .NET Profiler also works in a virtual machine.

Please visit and download to try it.

http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=5eaeb8e7-24cc-4006-aeb7-ac830460fe3d

Posted by haile | 5 Comments

The way you can better express your love with the school you are studying

Please join Blog of QUAN, http://quanvo.spaces.live.com/  and see the way he expressed his love with University of Science where he is studying. I do like and enjoy this .

Posted by haile | 1 Comments

ROBOTICS presentation for Tech Passion 2

image Please join our tech passion 2 in which you will have opportunity to see Lam’s presentation of ROBOTICS STUDIO Overview,he is from HoChiminh University of IT .Click here to get the overview presentation
image
Posted by haile | 1 Comments
More Posts Next page »
 
Page view tracker