Oslo پلتفرم جديد مدلسازي مايكروسافت است كه در سالهاي آتي مورد استفاده قرار خواهد گرفت و همچنين اين روزها در مجامع توسعه و طراحي برنامهها به شدت مورد بحث و توجه است. به همين جهت در طي مقالاتي با اين پلتفرم جديد بيشتر آشنا خواهيم شد.
دريافت Oslo
Oslo از سه قسمت عمده تشكيل شده است:
- الف) زبان مدل سازي M
- ب) ابزار مدل سازي Quadrant
- ج) استفاده از SQL Server به عنوان مخزن
زبان مدل سازي M از سه قسمت به نامهاي MGraph ، MGrammer و MSchema تشكيل ميشود.
MGrammer : گرامر مورد استفاده در SDL را تعريف ميكند. Syntax Directed Translation
MSchema : طرح مدل را تعريف خواهد كرد.
MGraph : اگر MSchema بيانگر انواع باشد، MGraph بيانگر وهلهها خواهد بود.
يك مثال:
برنامهي Intellipad را اجرا كنيد (فرض بر اين است كه SDK فوق را نصب كردهايد)
در اينجا حالت را بر روي M Mode قرار دهيد (مطابق تصوير) و همچنين از منوي ظاهر شدهي M Mode ، گزينهي Generic T-SQL preview را هم انتخاب كنيد.
اولين ماژول ما به صورت زير است:
module Test1
{
type ApplicationUser
{
UserID : Integer64=AutoNumber();
FirstName :Text#15;
LastName : Text#25;
Password : Text#10;
} where identity UserID;
}
در اين مثال شناسهي كاربري از نوع Integer64 خود افزايش يابنده تعريف شده است (نوع identity در اس كيوال سرور).
فيلدهاي نام ، نام خانوادگي و كلمهي عبور از نوع متني با اندازههاي مشخص 15 ، 25 و 10 كاراكتر تعريف شدهاند. اگر اندازه مشخص نبود نوع را تنها Text تعريف كنيد.
نكته:
1-اگر پس از Text علامت ? قرار گيرد، به معناي فيلدي از نوع nullable خواهد بود و برعكس. زيبايي Intellipad هم در اينجا است كه بلافاصله پس از تايپ شما، عبارت T-SQL معادل را توليد ميكند.
2-در اينجا UserID به صورت identity معرفي شده است. در زبان ام ، identity همانند primary key در عبارات T-SQL عمل ميكند و نبايد اشتباه گرفته شود.
تا اينجا فقط يك type تعريف شده است. براي تبديل آن به يك جدول بايد آنرا توسعه داد.
ApplicationUserCollection : ApplicationUser*;
اكنون قصد داريم گروهي از كاربرها را به صورت نمونه ايجاد كنيم:
ApplicationUserCollection
{
//using a named instance
User1 {
FirstName="user1",
LastName="name1",
Password="1@34"
},
User2 {
FirstName="user2",
LastName="name2",
Password="123@4"
},
User3 {
FirstName="user3",
LastName="name3",
Password="56#2"
},
User4 {
FirstName="user4",
LastName="name4",
Password="789@5"
}
}
ادامه دارد ...