28/4/09

Thắc mắc về SilverLight

1: Silverlight là gì?

A: Silverlight là một công nghệ của hãng Microsoft cho phép xây dựng các ứng dụng chạy trên trình duyệt, về ý nghĩa, nó cũng tương tự như Flash của hãng Adobe.

image_2

2: Học Silverlight để làm gì?

A: Bạn có thể tạo được các ứng dụng chạy trên nền trình duyệt với giao diện xuất sắc, khả năng hỗ trợ video chất lượng cao, bạn sẽ dùng một công nghệ mà Microsoft - hãng phần mềm số một thế giới đang xây dựng, và sẽ sử dụng nó trên các website của mình.

3: Silverlight có khó học hay không?

A: Học Silverlight không khó hơn học Java, C#, VB, cũng không khó hơn học PHP, JavaScript, vậy nên nếu bạn đã có một số kiến thức cơ bản về lập trình, bạn hoàn toàn có thể nắm bắt Silverlight một cách dễ dàng.

4: Tôi có thể chạy các ứng dụng Silverlight trên những trình duyệt và hệ điều hành nào?

A: Hiện tại, bạn có thể chạy các ứng dụng Silverlight trên các trình duyệt IE, FireFox và Safari. Các trình duyệt được hỗ trợ là Windows và MacOS, phiên bản cho Linux đang được Microsoft và Novell hợp tác phát triển.

5: Tôi phải dùng máy chủ web nào để chứa các ứng dụng Silverlight?

A: Các ứng dụng Silverlight chỉ được tải về như những file bình thường để chạy bởi trình duyệt, do vậy không có yêu cầu bắt buộc nào về máy chủ, bạn hoàn toàn có thể đặt một ứng dụng Silverlight trên một máy chủ web Apache chạy trên nền Linux.

6: Hiện có những phiên bản nào của Silverlight?

A: Có 2 phiên bản chính: phiên bản 1.0 đã ra đời từ năm 2007, và phiên bản Silverlight 2 beta 1. Phiên bản 1.0 mạnh về các tính năng multimedia, phiên bản 2 thêm vào khá nhiều tính năng: hỗ trợ lập trình bằng các ngôn ngữ trên .NET như C# và VB, các công nghệ như LINQ, lập trình socket và các giao thức kết nối mạng dựa trên HTTP…

7: XAML là gì?

A: XAML là một ngôn ngữ dựa trên XML, ngôn ngữ này cho phép bạn có thể xây dựng giao diện của các ứng dụng rất dễ dàng và nhanh chóng, bạn chỉ cần khai báo các thành phần có trên giao diện của ứng dụng cùng với các thuộc tính của nó, khi chạy chương trình sẽ hiển thị giống như bạn đã khai báo. Điều này cho phép tách bạch được giữa việc thiết kế giao diện và việc hiện thực hóa các tính năng.
XAML có trong Silverlight là một tập con của XAML trên .NET 3.0, trong đó đã bị hạn chế một số tính năng như đồ họa 3D nhằm giữ tính tương thích trên nhiều nền tảng và trình duyệt khác nhau.

8: Tôi nên học Silverlight 1.0 hay 2.0?

A: Nếu đang định xây dựng ứng dụng trên Silverlight, lời khuyên là nên dùng Silverlight 2.0, tuy nhiên, nếu bạn chưa từng làm việc với Silverlight, bạn hãy bắt đầu với bản 1.0.(bài học).

9: Silverlight có cho phép truy cập server theo kiểu cross-domain không?

A: Có, mặc nhiên các ứng dụng Silverlight có thể truy cập ngược lại vào máy chủ mà nó được tải xuống, nếu muốn truy cập vào các máy chủ khác, trên máy chủ đó phải có file crossdomain.xml được cấu hình phù hợp.

10: Tôi chưa từng biết về lập trình, liệu tôi có thể học Silverlight hay không?

A: Tùy thuộc bạn học để làm gì, nếu bạn là một người thiết kế giao diện thì bạn có thể bắt đầu học Silverlight, nếu bạn muốn học lập trình với Silverlight, lời khuyên là bạn nên bắt đầu với một ngôn ngữ nào khác như Java, C# hay VB.

11: Tôi có thể tải về bộ cài đặt Silverlight ở đâu?

A: Nếu bạn chỉ muốn dùng Silverlight để xem những ứng dụng do người khác làm:
- Silverlight 1.0
- Silverlight 2 Beta 1
Ngoài ra, nếu muốn tạo ra các ứng dụng Silverlight, bạn cần có thêm:
- Microsoft® Silverlight™ 2 Software Development Kit Beta 1
- Microsoft® Silverlight™ 1.0 Software Development Kit
Các công cụ sau sẽ hỗ trợ bạn trong việc tạo ứng dụng:
- Microsoft Silverlight Tools Beta 1 for Visual Studio 2008
- Microsoft Expression Studio 2 Beta
- Visual Studio 2008

12: Tôi có nghe về WPF/E nhưng không biết nó là gì?

A: Đó là tên ban đầu của Silverlight, nó có nghĩa là: Windows Presentation Foundation/Everywhere.

13: Tôi cũng đã đọc thấy nói về Silverlight 1.1 nhưng không thấy nhắc đến?

A: Silverlight 1.1 là mã phiên bản cũ của Silverlight 2.0.

14: Tôi phải dùng máy chủ web nào để có thể chạy các ứng dụng Silverlight?

A: Vì Silverlight là công nghệ chạy trên trình duyệt, do vậy bạn có thể dùng bất kỳ máy chủ nào, chạy trên bất kỳ hệ điều hành nào để chứa các ứng dụng Silverlight.

15: Làm sao để chạy chương trình Silverlight nhưng không cho chúng truy cập ngược lại trang HTML và gọi các hàm JavaScript trên đó?

A: Bạn hãy thêm một thuộc tính có tên enableHTMLAccess vào nơi khai báo đối tượng Silverlight plug-in và đặt giá trị cho nó là false. Hãy xem ví dụ sau:


type="application/x-silverlight-2-b1" width="100%" height="100%">
style="text-decoration: none;">

alt="Get Microsoft Silverlight" style="border-style: none"/>

Nếu dùng đối tượng Silverlight trong ASP.NET, bạn có thể viết:


Source="/ClientBin/SilverlightApplication1.xap" Version="2.0"
Width="100%" Height="100%" EnableHtmlAccess="true" />

Thuộc tính này chỉ tồn tại trong Silverlight 2 plug-in, plug-in 1.0 luôn cho phép đối tượng Silverlight truy cập lại trang HTML. Tuy nhiên các Silverlight 2 plug-in vẫn chạy được các chương trình Silverlight 1.0.

16: Có cần phải cài .NET Framework để chạy các ứng dụng Silverlight không?

A: Không, thứ duy nhất bạn cần là Silverlight plug-in, bạn chỉ cần cài .NET Framework nếu muốn dùng các công cụ phát triển (các công cụ này được phát triển trên .NET) như Visual Studio.

17: Tôi muốn truy cập vào đối tượng window hoặc document như trong javascript có được không?

A: Được, bạn hãy dùng lớp System.Windows.Browser.HtmlPage, trong đó có 2 thuộc tính là Document và Window, ví dụ như bạn muốn trình duyệt chuyển sang một trang mới:

System.Windows.Browser.HtmlPage.Window.Navigate(new Uri(”http://www.SilverLight.net”))

hoặc

System.Windows.Browser.HtmlPage.Window.Navigate(new Uri(”http://www.SilverLight.net
“), “_blank”)

18: Lập trình với Silverlight 2.0 có thể đọc được file nhị phân không?

Bạn không thể truy cập vào hệ thống file trên máy tính của người dùng,
do vậy bạn không thể đọc được file. Tuy nhiên có thể yêu cầu của bạn là
đọc các file trên server, trong trường hợp này bạn có thể viết một dịch
vụ (một web service chẳng hạn) và cho phép ứng dụng Silverlight truy
cập thông qua dịch vụ này.
Trong Silverlight vẫn có hỗ trợ namespace
System.IO, và bạn vẫn thấy các lớp cho phép truy cập file trong đó, tuy
vậy các lớp này chỉ được dùng để truy cập vào một hệ thống file ảo được
gọi là IsolatedStorage.
Nếu vẫn cố truy cập vào một file trên máy người dùng, bạn sẽ nhận được
thông báo lỗi sau: Attempt to access the method failed:
System.IO.StreamReader..ctor(System.String)

19: Cho em hỏi trong VS2008, khi chưa cài SL Tools Beta 1 For VS2008, em
thấy có thể tạo được WPF Application. Vậy cái này có phải là SL không
(vì em đọc phía trên thấy WPF/E là tên cũ của SL)? Nếu phải thì giống
và khác gì so với tạo SL Application (sau khi đã cài tools)?

Tuy Silverlight có tên cũ là WPF/E nhưng nó chỉ giống, chứ không phải là WPF.

thể coi API và XAML trong SL là tập con trong WPF, nhưng nền tảng thực
thi lại hoàn toàn khác nhau, một bên chạy trên plug-in gắn vào trình
duyệt, một bên chạy trên nền .NET Framework 3.0.

20: khi chạy project trong expression thì nó lại báo lỗi: The name “Canvas” does not exist in the namespace “http://schemas.microsoft.com/winfx/2006/xam/presentation.The name “Image” does not exist in the namespace “http://schemas.microsoft.com/winfx/2006/xam/presentation “)

Trường hợp của bạn mình cũng chưa gặp nhưng có thể là do khai báo namespace không phù hợp. Bạn thử thêm một chữ l (xam –> xaml) như sau xem:
http://schemas.microsoft.com/winfx/2006/xaml/presentation
Nếu vẫn chưa được, bạn hãy thay dòng schema trên bằng http://schemas.microsoft.com/client/2007

21: tai sao khi tao project silverlight moi lại bị báo loi reference
agclr
system.silverlight
system.xml.core

Có lẽ chưa cài/hoặc quá trình cài Silverlight 2 SDK không thành công, em kiểm tra lại xem.
Vào trong phần Control Panel -> Add/Remove Programs xem có Microsoft Silverlight Tools Beta for Visual Studio 2008 trong đó chưa, và có thể kiểm tra xem trong thư mục C:\Program Files\Silverlight\2.0.30226.2 có các file mà máy báo thiếu hay không

Simon Lieu

Vài link demo silverlight của 24hit.net:
carousel
3DSlider
Slide Image

SilverLight

25/4/09

Một số vấn đề về Hatch trong AutoCAD

Một số vấn đề về Hatch trong AutoCAD


Hatch là một phần không thể thiếu được đối với bản vẽ kỹ thuật thể hiện trong AutoCAD. Chính vì sự đa dạng và phức tạp của nó mà có rất nhiều vấn đề nảy sinh xung quanh HATCH. Xin nêu một số vấn đề được chọn lọc từ diễn đàn CADViet.

Vấn đề 1: Khi xóa một đối tượng hatch, đối tượng chặn biên của hatch (line, arc, pline) cũng lập tức bị xóa. Làm sao để miềng xóa được đối tượng Hatch mà không xóa đối tượng nằm ở biên của nó. Mặc dù hatch và đối tượng biên không nằm trong cùng một block hay group.
Kiểm tra biến hệ thống PICKSTYLE của bản vẽ này là bao nhiêu? Mặc định của CAD là 0. Mối quan hệ giữa đối tượng hatch và đối tượng chặn biên của nó phụ thuộc vào biến hệ thống PICKSTYLE. Để chọn đối tượng hatch mà không chọn đối tượng chặn biên của nó thì đặt PICKSTYLE bằng 0 hoặc 1. Để chọn đối tượng Hatch và chọn luôn đối tượng chặn biên của nó thì đặt PICKSTYLE bằng 2 hoặc 3. Như vậy, và file mà bạn đang vẽ có thể đang đặt biến PICKSTYLE = 2 hoặc 3. Để giải quyết vấn đề bạn nêu ra, bạn thử đặt lại biến PICKSTYLE = 0 hoặc 1.

Vấn đề 2: Một số file CAD đối tượng hatch bị vỡ trông rất xấu và còn sai nữa. Tại sao vậy, cách sửa như thế nào.
Hiện tượng này xảy ra khi sử dụng các mẫu hatch như GRAVEL (SỎI) hay AR-CONC (bê tông gạch vỡ) tại những tọa độ có giá trị X, Y lớn (thường là lớn hơn 1 triệu). Để xử lý vấn đề này, cơ bản là phải giảm khoảng cách tương đối giữa gốc (origin) của Hatch và đối tượng Hatch.
Có 3 cách để tránh hiện tượng này:
1. Đặt biến SNAPBASE về tọa độ gần với tọa độ của đối tượng hatch đang vẽ.
2. Dùng lệnh UCS, đặt lại hệ tọa độ sao cho gốc tọa độ gần với đối tượng hatch.
3. Tạm thời di chuyển biên đường hatch về gần gốc tọa độ. Sau khi hatch xong thì lại di chuyển đối tượng hatch về vị trí mong muốn

Vấn đề 3: Một bản vẽ, trong đó bạn tô mặt cắt tường bằng đối tượng solid. Bây giờ muốn thay tất cả solid này thành hatch để có thể đổi kiểu hatch sang nét kẻ chéo.
Dùng lệnh Region để biến đối tượng solid thành Region, sau đó dùng lệnh Bhatch để biến đối tượng Region thành đối tượng Hatch.

Vấn đề 4: Nhiều khi phải sử dụng mẫu hatch chập nhau. Ví dụ như khi sử dụng hatch bê tông cốt thép, bạn phải sử dụng nét chéo (LINE) và nét gạch vỡ (AR-CONC). Làm sao để bạn nối 2 mẫu hatch này lại thành 1 mẫu mới.
Tạo 1 file mới có tên trùng với tên mẫu hatch mà bạn đặt với đuôi là .pat. Ví dụ: BE_TONG.PAT. Mở file Acad.pat trong thư mục support ra, tìm đoạn mà cad mô tả về gạch vỡ, copy vào file mới này, tìm đoạn cad mô tả về Line, copy vào tiếp. Save lại, sử dụng lệnh hatch là ok. Chú ý: cuối file BE_TONG.PAT này phải có một dòng trống

Vấn đề 5: Sử dụng hatch đặc biệt cho bản vẽ. Khi copy bản vẽ đến máy khác thì bản vẽ vẫn như vậy, nhưng muốn hatch thêm thì lại không được. Muốn tìm cái mẫu hatch đó thì phải làm thế nào.
ACAD chứa mẫu Hatch của nó trong file Acad.pat tại thư mục support.
Để lấy mẫu hatch đó sang máy khác, có 3 cách:
1. Copy đè file Acad.pat của máy chủ sang máy khách.
2. Mở file Acad.pat của máy chủ, tìm đoạn text nói về mẫu hatch cần cho bản vẽ rồi copy nó. Mở file Acad.pat của máy khách, paste nó vào cuối cùng.
3. Mở file Acad.pat của máy chủ, tìm đoạn text nói về mẫu hatch cần cho bản vẽ rồi copy nó. Tạo một file có tên trùng với tên của mẫu hatch có đuôi là pat và paste nội dung vừa copy (nhớ là cuối file phải có 1 dòng trống). Copy file mới này vào thư mục support. Khi dùng lệnh Hatch, vào mục custom sẽ thấy mẫu hatch vừa tạo.

Vấn đề 6: Khi muốn lấy biên của một hatch đã bị mất biên để hiệu chỉnh nó hay hiệu chỉnh các đối tượng liên quan, làm cách nào?
AutoCAD có 1 chức năng mới là recreat boundary để lấy biên của bản vẽ:

Vấn đề 7: Khi làm việc trên môt bản vẽ nặng, dùng lệnh hatch sẽ mất nhiều thời gian. Đôi lúc không hatch được, đôi lúc CAD thông báo: 1234 selected, DELETED? trả lời Y thì mới tiếp tục được và phải ngồi chờ thêm một lúc nữa để CAD tính toán.Để khắc phục điều này phải làm sao?
Khi lệnh Hatch được dùng, ACAD sẽ tính toán đường biên của đối tượng hatch mới được tạo nên bởi biên của các đối tượng đang hiển thị trên màn hình. Các đối tượng nằm trong layer ẩn hay đóng băng sẽ bị bỏ qua, các đối tượng nằm khuất ngoài khung nhìn (viewport) cũng bị bỏ qua không đưa vào tính toán.
Để lệnh hatch được nhanh, cần làm sao để số đối tượng tính toán của ACAD là tối thiểu (tăng tối đa số đối tượng bị bỏ qua tối đa). Có 2 thao tác cần làm: thứ nhất là ẩn đi các đối tượng không ảnh hưởng tới đường biên của Hatch mà chúng ta sẽ tạo, thứ hai là zoom càng to càng tốt nhưng vẫn đủ để hiển thị phần hatch sắp được tạo ra (để loại bỏ những đối tượng không tham gia vào đường biên của Hatch mới). Với hai thao tác làm giảm khối lượng tính toán này, dễ dàng thấy được hiệu quả của thời gian hatch.

Vấn đề 8: Để tạo một đối tượng hatch mà không cần đường boundary?
dùng lệnh -hatch (not hatch), chọn option W (draw)
hatchnotboundary

Vấn đề 9: Khi đối tượng chuẩn bị tạo hatch không tạo nên một đường biên kín. Làm thế nào để hatch vào miền hở này?
Với CAD 2007, Tại bảng lệnh Hatch click vào phím More Options (Alt + >) để hiện ra đầy đủ bảng lệnh.
hatchmain
Tại bảng lệnh, bạn nhập vào khoảng hở lớn nhất.
hatchgap
sau đó sử dụng lệnh hatch như bình thường, mọi khoảng hở nhỏ hơn giá trị Gap sẽ bị bỏ qua (xem như liền)
Khoảng hở trước khi hatch

hatchbefore hatchafter
Khoảng hở trước khi hatch Sau khi hatch

12/4/09

Web công “chết”, vì đâu?

ICTnews - "Các cơ quan chính quyền của Hà Nội đã mở 28 trang Web, nhưng chỉ có 2 trang là "sống" được", ông Phạm Quốc Bản, Giám đốc Sở TT &TT Hà Nội kể lại.

Như vậy, nếu xét tiêu chí hiệu quả là "sự sống" của các Website (có người truy cập, nội dung thông tin luôn đổi mới và hữu ích), thì tỷ lệ hiệu quả của các website Hà Nội chỉ đạt vỏn vẹn 0,07%! Chuyện về những trang web "chết" - nội dung tĩnh, không cập nhật, không cung cấp dịch vụ, ít người truy cập... không phải là chuyện mới. Chỉ cần tra từ "Web chết” trên cỗ máy tìm kiếm Google cũng đã ra được vô số những bài báo nói về câu chuyện này.

Song đặt trong bối cảnh lợi ích và hiệu quả thực sự mang lại cho người dân và doanh nghiệp, rộng ra là cả nền kinh tế, xã hội thì câu chuyện trên vẫn còn khá nhiều chuyện đáng bàn.

Theo số liệu thống kê chưa đầy đủ, hiện hầu hết các tỉnh, thành trên cả nước và nhiều bộ ngành đã mở website (và "hoành tráng" hơn là cổng thông tin điện tử). Đây là sản phẩm của một phong trào tin học hóa rầm rộ diễn ra trong mấy năm vừa qua nhờ tinh thần lên cao từ Đề án tin học hóa quản lý hành chính Nhà nước (Đề án 112), khiến nhiều người đã phải thốt lên rằng đó thực sự là một "phong trào xây cổng (điện tử)".

Nhưng xây cổng xong, khi khách bước vào thì phần nhiều vẫn là cảnh "vườn không, nhà trống". Cái mà đa số người dân và doanh nghiệp cần đằng sau những chiếc cổng điện tử hoành tráng đó là thông tin (và phải là thông tin hữu ích) thì rất hiếm có, dịch vụ công cung cấp cho người dân lại càng hiếm hơn. ở những đơn vị, tổ chức nào có lãnh đạo am hiểu và say mê với ứng dụng CNTT thì ở đó phong trào còn khá, tức là còn có thông tin và dịch vụ công được cung cấp. Còn ở những nơi khác lãnh đạo theo đúng tinh thần "phong trào" thì ở đó chỉ có thông tin"ươn".

Chưa có ai thống kê được rằng trong 5 - 7 năm qua, với phong trào dựng website và xây cổng như thế, ngân sách và tiền bạc của Nhà nước đã được đổ vào đó là bao nhiêu. Nhưng cứ thử nhẩm tính một cách đơn giản rằng dự án xây dựng một website chắc chắn chi phí được tính bằng hàng chục triệu đồng, còn với mô hình cổng thông tin điện tử, con số chi phí hẳn không thể tính dưới con số hàng tỉ đồng, thì hẳn sẽ tạm hình dung ra được rằng chi phí xây web, dựng cổng là lớn đến chừng nào. Và nếu chỉ cần nhìn ở mức hiệu quả 0,07% như ở Thủ đô, chắc chắn nhiều người trong số chúng ta không khỏi giật mình. Giật mình về sự lãng phí, về sự kém hiệu quả.

Với mỗi một sự yếu kém, đặc biệt là yếu kém trong các cơ quan Nhà nước, bao giờ ai đó cũng đưa ra được một, hoặc một vài lý do nào đó để biện minh. Chẳng hạn như trong câu chuyện này, lý do thường được nhắc đến là thiếu cơ chế chi phí cho xây dựng và phát triển nội dung trên web, rồi những người làm trang web đa phần là "dân công nghệ" chứ không phải là người làm báo chí, thông tin, rồi thiếu động lực để làm nội dung... Nhưng một điều mà người ta thường hay quên, đó là cơ chế gì thì cũng xuất phát từ con người mà ra, chứ chẳng hề từ trên trời rơi xuống.

Khi một doanh nghiệp mở website, hẳn là họ đã nhìn thấy ở đó lợi ích và hiệu quả của Internet giúp doanh nghiệp quảng bá hình ảnh, thương hiệu hay kinh doanh điện tử. Còn khi một cơ quan nhà nước mở website, quả thực không dễ để nhìn ra động lực ở đằng sau một dự án ứng dụng CNTT tiêu tiền Nhà nước. Động lực đó chỉ có thể đến khi những cơ quan hành chính đặt mục tiêu phục vụ người dân và doanh nghiệp lên hàng đầu, đặt lợi ích quốc gia là tối thượng. Nhưng rõ ràng, động lực đó không phải xuất phát từ những người làm CNTT.

Lê Minh(14/01/2009 01:00:53 AM)