Phần mềm Autocad
AutoCAD 2008: Nâng Cấp Từ AutoCAD 2007 32-bit và Những Điều Cần Biết
Sau nhiều tháng thảo luận với các thành viên ADN theo thỏa thuận bảo mật, Autodesk đã chính thức công bố bộ sản phẩm 2008 của mình. Tuần này, chúng ta sẽ tập trung vào AutoCAD 2008, những tính năng mới và các API liên quan, đặc biệt là những ảnh hưởng đến người dùng và nhà phát triển đã quen thuộc với Autocad 2007 32-bit.
Một trong những câu hỏi cơ bản nhất mà người dùng và nhà phát triển quan tâm là về việc di chuyển ứng dụng. Tin vui là AutoCAD 2008 là một bản phát hành tương thích nhị phân. Điều này có nghĩa là các ứng dụng được xây dựng cho AutoCAD 2007, đặc biệt là trên nền tảng 32-bit (Autocad 2007 32), về cơ bản sẽ hoạt động với AutoCAD 2008. Chỉ cần cập nhật trình cài đặt để xử lý vị trí Registry mới (dưới “R17.1”) cho các khóa tải theo yêu cầu. Điều này giúp giảm thiểu đáng kể công sức chuyển đổi cho các dự án đã phát triển trên autocad 2007 32.
Một điểm mới quan trọng đối với nhiều người dùng AutoCAD là sự xuất hiện của phiên bản 64-bit của sản phẩm. AutoCAD 2008 64-bit sẽ hoạt động gần như giống hệt phiên bản 32-bit, nhưng cho phép người dùng làm việc với các tập dữ liệu lớn hơn nhiều. Đây là một bước tiến lớn so với môi trường 32-bit truyền thống của autocad 2007 32. Autodesk có kế hoạch phát hành một DVD duy nhất có thể cài đặt AutoCAD 2008 32-bit trên các hệ điều hành 32-bit được hỗ trợ và AutoCAD 2008 64-bit trên các hệ điều hành 64-bit được hỗ trợ.
Trong quá trình phát triển, một vấn đề đã nảy sinh liên quan đến việc sử dụng VBA, vốn không có sẵn dưới dạng thành phần 64-bit. AutoCAD 64-bit chạy VBA trong một tiến trình 32-bit riêng biệt, điều này có thể ảnh hưởng đến hiệu suất của các ứng dụng VBA. Các nhà phát triển quen thuộc với VBA trên autocad 2007 32 cần lưu ý điểm này khi chuyển đổi sang môi trường 64-bit.
Chắc hẳn nhiều nhà phát triển đang quan tâm đến tác động của việc hỗ trợ nền tảng 64-bit đối với mã nguồn của họ. Dưới đây là tóm tắt ngắn gọn:
- LISP: Không có tác động – cả đối với tệp LSP và FAS.
- .NET: Không có tác động – các assembly độc lập với nền tảng.
- VBA: Có một số tác động – thay đổi nhỏ về mã nguồn và hiệu suất.
- ObjectARX: Có một số tác động – thay đổi nhỏ về mã nguồn.
Hãy cùng xem xét kỹ hơn những thay đổi đối với ObjectARX. Một trong những việc đầu tiên khi xem xét một phiên bản AutoCAD mới là thực hiện “diff” trên các tệp tiêu đề API và các mẫu trong ObjectARX SDK. Công cụ WinMerge được sử dụng trong nhiều năm qua để thực hiện điều này.
Quá trình này mang lại cái nhìn sâu sắc về một số điều:
- So sánh các tệp tiêu đề API chỉ ra các API mới và cả những API đã được cập nhật – hoặc yêu cầu thay đổi di chuyển – trong bản phát hành mới.
- So sánh các mẫu cung cấp cái nhìn định tính về các loại thay đổi cụ thể cần thực hiện đối với mã nguồn thực từ bản phát hành này sang bản phát hành tiếp theo. Chẳng hạn, khi xem xét sự khác biệt giữa SDK 2006 và 2007, rõ ràng là phần lớn công việc yêu cầu là xung quanh việc chuyển sang UNICODE (và ở một mức độ nào đó sang Visual Studio 2005). Với 2008, đó là về 64-bit (vì tất cả các mẫu đều được viết để có thể xây dựng cho cả nền tảng Win32 và Win64).
Tin tốt là những thay đổi cần thiết trong mã ObjectARX để hỗ trợ 64-bit thực sự rất nhỏ. Một số kiểu dữ liệu đã thay đổi để trở thành “polymorphic”, có nghĩa là kiểu dữ liệu cơ bản của chúng phụ thuộc vào nền tảng.
Thông tin này được trích từ Hướng dẫn Di chuyển 64-Bit đi kèm với ObjectARX SDK 64-bit:
Trong nhiều trường hợp, các chữ ký hàm ObjectARX đã được thay đổi để sử dụng các kiểu đa hình. Ví dụ, các kiểu long lưu trữ con trỏ đã được thay đổi thành kiểu độ chính xác con trỏ LONG_PTR. LONG_PTR vẫn là long cho việc sử dụng API 32-bit và trở thành __int64 trong các bản dựng 64-bit. Tương tự, các kiểu đại diện cho ID đối tượng cũ (hoặc “old”) thay đổi từ LONG_PTR thành Adesk::Int-DbId. Các dấu hiệu hệ thống đồ họa (GS) và lựa chọn đã thay đổi từ int thành Adesk::GsMarker.
Danh sách sau đây tóm tắt các thay đổi bổ sung từ các kiểu 32-bit sang các kiểu đa hình trong chữ ký hàm ObjectARX:
- Adesk::Int32 thay đổi thành Adesk::LongPtr
- Adesk::UInt32 thay đổi thành Adesk::ULongPtr
- DWORD thay đổi thành DWORD_PTR
- unsigned long thay đổi thành ULONG_PTR
- unsigned int thay đổi thành UINT_PTR
Hướng dẫn này khá toàn diện, nhưng điều đó không có nghĩa là quá trình di chuyển lên 64-bit quá phức tạp. Hầu hết các nhà phát triển đã thực hiện việc chuyển đổi ứng dụng ObjectARX của họ lên 64-bit đều thấy đây là một quá trình tương đối đơn giản, đặc biệt khi so sánh với việc duy trì tính tương thích từ autocad 2007 32 lên 2008 32-bit, hoặc nâng cấp toàn diện lên 64-bit.
Hướng dẫn di chuyển ObjectARX lên nền tảng 64-bit, minh họa các thay đổi kiểu dữ liệu quan trọng từ AutoCAD 2007 32-bit sang 2008 64-bit.
Để bạn hình dung rõ hơn về một số thay đổi, đây là một số ảnh chụp màn hình (được chọn ngẫu nhiên nhưng khá đại diện) về sự khác biệt giữa các mẫu trong SDK 2007 và 2008. Chúng cung cấp cái nhìn trực quan về những điều mà các nhà phát triển autocad 2007 32 có thể gặp phải.
So sánh mã nguồn ObjectARX giữa các phiên bản AutoCAD bằng WinMerge, thể hiện sự khác biệt khi nâng cấp từ AutoCAD 2007 32-bit lên 2008.
Các thay đổi này chủ yếu liên quan đến việc điều chỉnh các kiểu dữ liệu để phù hợp với kiến trúc 64-bit, đảm bảo rằng mã nguồn hoạt động chính xác và hiệu quả trên cả hai nền tảng.
Chi tiết các thay đổi trong mã nguồn ObjectARX được phát hiện qua WinMerge, giúp lập trình viên AutoCAD 2007 32-bit dễ dàng chuyển đổi.
Việc nắm rõ các điểm khác biệt này là chìa khóa để đảm bảo quá trình nâng cấp từ các ứng dụng phát triển trên autocad 2007 32 diễn ra suôn sẻ và ít lỗi nhất.
Ví dụ về sự khác biệt mã lệnh trong ObjectARX SDK 2007 và 2008, hữu ích cho việc tối ưu hóa ứng dụng AutoCAD 2007 32-bit cho phiên bản mới.
Để có cái nhìn toàn diện hơn về các yêu cầu di chuyển liên quan đến 64-bit – bao gồm thông tin về VBA và ObjectARX – bạn có thể xem bài thuyết trình: AutoCAD 2008 – 64-bit Porting Considerations. Các slide trong bản ghi thuyết trình bao gồm một số thông báo bảo mật mà giờ đây có thể bỏ qua. Nếu bạn muốn xem ngoại tuyến, đây là bản tải xuống của bài thuyết trình (khoảng 26 MB).
Trong bài viết tiếp theo, chúng ta sẽ xem xét một số API mới có sẵn trong AutoCAD 2008 và các mẫu tương ứng có trong ObjectARX SDK mới.





















































