View Full Version : آموزش: اموزش سیلور لایت و خاندن اطلاعات از بانک اطلاعاتی با استفاده از WCF RIA
sunn789
پنج شنبه 28 مهر 1390, 09:47 صبح
سلام
راستش یه کم نامید شدم دیدم به جای اینکه این تاپیک مشتری بیشترب پیدا کنه داره کم بیننده تر میشه ، گفتیم دست به کار شیم یه اموزش در حد سواد ناقصمون اینجا گذاشته باشیم
اول اینکه اگه بد توضیح در جایی دادم شرمند و خواهشاً اگه سوالی بود که من بتونم کمک کنم توی یک تاپیک جداگانه بگذارید تا جواب بدیم
مرحله اول روشی که خود من خیلی از کار با اون لذت میبرم خواندن اطلاعات با استفاده از RIA است پس تو مرحله اول این فایل (http://code.msdn.microsoft.com/silverlight/Getting-Started-WCF-RIA-1469cbe2/file/19246/1/RIA_Services_Walkthrough_MIX_2010.doc)که به زبان انگلیسی است رو براتون میگذارم لطفاً سعی کنید همینجوری مطالعه کنید اگه جایی بتونم کمک کنم خوشحال خواهم شد و اینکه سعی خواهم کرد همین مطالب رو به فارسی ترجمه کنم و نو همین تاپیک بگذارم
امیدوارم بتونم انجامش بدم
دانلود فایل (http://code.msdn.microsoft.com/silverlight/Getting-Started-WCF-RIA-1469cbe2/file/19246/1/RIA_Services_Walkthrough_MIX_2010.doc)حجم فایل 6654 KB
sunn789
پنج شنبه 28 مهر 1390, 13:09 عصر
در مرحله اول از شما خواسته شده که نرم افزار های زیر را با استفاده از کنترل پنل ویندوز حذف نماید (اگه قبلاً روی سیستم تون نصب کردین)
a. Microsoft Silverlight (any version prior to Silverlight 3 RTW)
b. Microsoft Silverlight SDK
c. Microsoft Silverlight Tools for Visual Studio 2008
سپس ویژال استادیو 2010 رو بر روی کامپیوتر نصب نمایید و
a. Silverlight 4 RC
b. Silverlight 4 RC SDK
را از سایت silverlight.net دانلود و نصب نمایید
ویژال استادیو را اجرا کنید
از منوی فایل new و سپس Project را انتخاب نمایید
در پنجره ای که باز میشود بسته به زبانی که تمایل به برنامه نویسی با آن را دارید میتوانید Visual Basic و یا #C را انتخاب نمایید
از زیر مجموعه Silverlight گزینه Silverlight Business Application را انتخاب و نام پروژه خود را بنویسید و ok را بزنید76847
اگر دقت نمایید یک زوج در پروژه شما ایجاد گردیده است یک فایل که جهت طراحی است و به Silverlight client project مشهور است و یک فایل asp.net با پسوند ProjectName.web
- به صورت پیش فرض قدرت ناوبری (navigation) ورورد کاربر , خروج کاربر (login/logout) ثبت نام کاربر جدید و ورود کاربر در پروژه شما وجود دارد
میتوانید پروژه را یک بار با فشار دادن کلید F5 اجرا نمایید.
نکته که متذکر شده : برای ثبت کاربر جدید لازم است که نرم افزار SQL EXPRESS بر روی سیستم شما نصب شده باشد.
76848
sunn789
جمعه 29 مهر 1390, 11:12 صبح
حالا اگه توی قسمت کدهای xaml در صفحه mainPage.xaml نگاه کنید ممکنه یه نما از کدها دستتون بیاد
اگه برنامه رو اجرا کرده باشید میبینید که در بالای برنامه میبینید نوشته شده Application Name که این نام رو TextBlock بااستفاده از کد زیر نمایش میدهد
<TextBlock x:Name="ApplicationNameTextBlock"
Style="{StaticResource ApplicationNameStyle}"
Text="{Binding ApplicationStrings.ApplicationName, Source={StaticResource ResourceWrapper}}"/>
در قسمت client project و یا همون پروژه Xaml نه asp.net میتوانید پوشه Assets رو باز کنید و در داخل پوشه Resources میتوانید ApplicationStrings.resx رو ببینید و با کلیلک بر روی آن ،آن را باز کنید.
و نام پروژه -که در بالای برنامه اجرا شده نمایش داده میشه -را تغییر دهید
(لطفاً کدها رو ببینید اگه در این مورد سوالی بود که بتونم کمک کنم خوشحال خواهم شد تا در خدمت باشم)
خوب حال چگونه یک صفحه جدید silverlight به پروژه اضافه کنیم
روی Clent Project در قسمت Sulotion راست کلیک کنید و اون وقت از گزینه Add میتوانید new item را انتخاب کنید و از زیر مجموعه silverligh ،
Silverlight Page رو انتخاب کنید و نامش را به نحوی انتخاب نمایید که متناسب با اطلاعات خودتان باشد ""
76879
sh.shad
جمعه 29 مهر 1390, 22:57 عصر
مشتاقانه منتظر ادامه آموزش شما هستم.
mehran_sh_t
جمعه 29 مهر 1390, 23:43 عصر
سلام
مرسی
این RIA چیه؟
sunn789
شنبه 30 مهر 1390, 19:47 عصر
خوب سلام دوباره،
حالا که تونستید یک صفحه به پروژه سیلور لایت اضافه کنید و یک اسم برای اون صفحه انتخاب نمایید(طبق توسیه فایل ماکروسافت EmployeeList.xaml ) و کد زیر رو بین تگ های grid قرار دهید
<!-- XAML -->
<ScrollViewer BorderThickness="0" VerticalScrollBarVisibility="Auto" Padding="12,0,12,0" Margin="-12">
<StackPanel Margin="0,12,0,12" Orientation="Vertical" >
<TextBlock Text="Employee List" Style="{StaticResource HeaderTextStyle}"/>
</StackPanel>
</ScrollViewer>
این تگها کمک میکنه که اگر مطالب صفحه زیاد شد صفحه سکرول بخوره اگر این کد اضافه نشه در صورتی که اطلاعات زیاد باشند به زیر صفحه میرن
در مورد ایجاد صفحات بهتره که صفحات رو در پوشه view ایجاد کنید و یا در خارج پوشه view ایجاد کنید و به داخل پوشه View بکشید و رها کنید
اگر از ویژوال بیسیک برای برنامه نویسی استفاده میکنید کد زیر رو در قسمت کد صفحه استفاده نمایید
Imports System.Windows.Controls
حالا نوبت به این میرسه که کد لینک اتصال رو در لینکهای main page اضافه کنید کد زیر رو در صفحه main page در بین دو تا از لینکهایی که کدشون شبیه به همین کد هست قرار دهید.
<!-- XAML -->
<HyperlinkButton x:Name="Link3" Style="{StaticResource LinkStyle}" NavigateUri="/EmployeeList" TargetName="ContentFrame" Content="Employee List"/>
<Rectangle x:Name="Divider2" Style="{StaticResource DividerStyle}"/>
توضیح کد: این لینک style خودش رو از پوشه Assets استفاده خواهد کرد و Rectangle یه خط کوچک به عنوان جدا کننده ایجاد خواهد کرد که تمامی مشخصات در همان پوشه assets وجود دارد(این اطلاعات فقط جهت اطلاع بود)
حلال اگر برنامه رو اجرا کنید میتونید شکل زیر رو ببینید
76935
ali_kolahdoozan
جمعه 09 دی 1390, 13:42 عصر
حالا فرض کنید رکوردها بره روی 10 هزار تا . میترکه . آنجا چه باید کرد ؟
خودم paging رو سرم میشه ها . منظورم load یک حجم بزرگ از داده است .
in_chand_nafar
جمعه 09 دی 1390, 20:57 عصر
ساده ترين راه براي راه اندازي paging در سيلورلايت (منظورم Paging واقعي است كه عملا مثلا 10 تا ركورد را به ازاي هر صفحه از بانك اطلاعاتي انتخاب كنه)
استفاده از DomainDataSource مي باشد در قسمت toolbox مي توانيد ابزار اون را مشاهده كنيد اون رو روي User Controlتون بياندازيد
حالا ادامه كار رو از اين لينك پيگري كنيد
http://msmvps.com/blogs/theproblemsolver/archive/2009/04/27/paging-with-the-silverlight-ria-services-domaindatasource.aspx
http://www.aspfree.com/c/a/Silverlight/Silverlight-40-Paging-Through-data-using-DomainDataSource/
در ضمن يادتون باشه كه در ريا سرويس هم متدي كه ديتاي شما رو بر مي گردوند بايد بر اساس يكي از فيلدها مرتب شده باشد
اگر به مشكلي بر خوردي بگو تا راهنمايي كنيم
ali_kolahdoozan
شنبه 10 دی 1390, 14:12 عصر
سلام
با paging رو بلدم . راهی میخام که حجم بالا رو بدون paging بتونم load کنم
in_chand_nafar
شنبه 10 دی 1390, 20:45 عصر
دوست عزيز معمولا هيچ كس حجم عظيمي از داده اون هم در يه برنامه تحت وب از سمت سرور به كلاينت لود نمي كنه سيلورلايت داده ها را سمت سرويس به شكل Asynchronous لود مي كند (مكانيزم داخلي WCF RIA Services است) ولي در هر حالت اين كار منطقي نيست
حتي حرفه اي ترين ابزارهاي نمايش داده هنگام نمايش تعداد زيادي ركورد از تكنيك صفحه بندي استفاده مي كنند اين سناريوي كه در زير مي نويسم رو برو خوب برسي كن
ابزار Devexpress رو آشنا هستي مجموعه سيلورلايت اون (نسخه 2011.2.7 ساپورت RTL داره ) گريدش با Domain Data Source مچ شده توي يه مثالش حجم بالايي از ركوردها (بالاي 70 هزار ركورد) رو داره لود مي كنه متنها در UI اثري Pagingنيست يه تكنيك داخلي به كار بردن كه هر موقع اسكرول ميكني به نسبت اسكرول كمي از داده ها از سمت سرور به كلاينت لود ميشه و كاملا Asynchronous است شما هم بهتر سراغ اين نوع تكنيك ها بريد
در مورد Devexpress به لينك هاي زير مراجعه كنيد (در ضمن نسخه جديد Devexpress بر پايه سيلورلايت 5 مي باشد Performance بالايي نسبت به Telerik داره مثل اون حافظه نمي خوره)
http://www.nikamooz.com/index.php?option=com_content&view=article&id=126:devexpress-2011-vol2&catid=50:devexpress&Itemid=119
http://www.devexpress.com/Products/NET/Controls/Silverlight/Grid_Pro/
حالا اگر حجم عظيم رو براي پردازش (مثلاً گزارش مي خواهيد) مي توانيد از ابزارهاي گزارش گيري سيلورلايتي با ساپورت RTLاستفاده كنيد جهت اطلاعات بيشتر به اين لينك مراجعه كنيد
http://www.nikamooz.com/index.php?option=com_content&view=article&id=125:-silverlight-righttoleft&catid=47:reporting-tools&Itemid=116
موفق باشيد
ali_kolahdoozan
یک شنبه 11 دی 1390, 10:17 صبح
من مشکلم اصلا تعداد رکورد نیست . شاید یک جایی تعداد ستون ها زیاد باشه . مسئله من محدودیت سرویس است نه UI و ابزارهاش
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.