0% found this document useful (0 votes)
13 views

ﻰﻧﺎﺜﻟا ﻞﺼﻔﻟا: مﺪﺨﺘﺴﻤﻟا ﻊﻣ ﺔﯿﻟﺎﻌﻟا ﮫﯿﻠﻋﺎﻔﺘﻟا و ﺐﯾﻮﻟا ءاﺰﺟأ - Web Parts, and rich user interface

Uploaded by

tech4a
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views

ﻰﻧﺎﺜﻟا ﻞﺼﻔﻟا: مﺪﺨﺘﺴﻤﻟا ﻊﻣ ﺔﯿﻟﺎﻌﻟا ﮫﯿﻠﻋﺎﻔﺘﻟا و ﺐﯾﻮﻟا ءاﺰﺟأ - Web Parts, and rich user interface

Uploaded by

tech4a
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 45

‫اﻟﻔﺼﻞ اﻟﺜﺎﻧﻰ ‪ :‬أﺟﺰاء اﻟﻮﯾﺐ و اﻟﺘﻔﺎﻋﻠﯿﮫ اﻟﻌﺎﻟﯿﺔ ﻣﻊ اﻟﻤﺴﺘﺨﺪم‪.

‬‬
‫‪Web Parts, and rich user interface‬‬

‫‪١ -٣‬‬
‫ﻓﻰ ھﺬا اﻟﻔﺼﻞ ﺳﻮف ﻧﺮى ﻣﻨﻄﻖ ﺟﺪﯾﺪ ﯾﺴﮭﻞ و ﯾﻮﻓﺮ ﻋﻠﻰ اﻟﻤﻄﻮر اﻟﻜﺜﯿﺮ ﻣﻦ اﻟﻮﻗﺖ ﻟﻌﻤﻞ ﺷﺊ ﻣﺸﺎﺑﮫ‪ ،‬و ﻟﺘﻮﺿﯿﺢ ﻓﻜﺮة‬
‫أﺟﺰاء اﻟﻮﯾﺐ‪ ،‬ﻛﻞ ﻣﺎ ﻋﻠﯿﻚ ھﻮ اﻟﺪﺧﻮل ﻋﻠﻰ ﻣﻮﻗﻊ ‪ http://www.msn.com‬و ﺗﻘﻮم ﺑﻌﻤﻞ ‪ Sign in‬و ﺑﻌﺪ ذﻟﻚ ﺳﻮف‬
‫ﺗﺠﺪ أﻧﮫ ﻣﻦ اﻟﻤﻤﻜﻦ ﺗﺤﺮﯾﻚ ﻣﻜﻮﻧﺎت اﻟﺼﻔﺤﺔ و ﺗﻌﺪﯾﻠﮭﺎ ﻛﻤﺎ ﺗﺮﯾﺪ و ﺳﻮف ﺗﻼﺣﻆ أﻧﮫ ﯾﻤﻜﻨﻚ ﺗﻐﯿﯿﺮ و ﺗﻌﺪﯾﻞ ﻛﻞ ﺷﺊ و ﻛﻤﺎ‬
‫ﻧﻼﺣﻆ ﻓﻰ اﻟﺸﻜﻞ اﻟﺘﺎﻟﻰ أﻧﮫ ﯾﻤﻜﻨﻚ ﻧﻘﻞ اﻟﻤﻜﻮﻧﺎت ﻣﻦ ﻣﻜﺎن اﻟﻰ أﺧﺮ ﺑﺎﻷﺿﺎﻓﺔ اﻟﻰ أﻣﻜﺎﻧﯿﺔ ﺗﻐﯿﯿﺮ اﻷﻟﻮان‪.‬‬

‫اﻟﺸﻜﻞ ‪1‬‬

‫ﻓﻰ اﻟﺸﻜﻞ اﻟﺘﺎﻟﻰ ﻣﻮﺿﻮح ﻣﺠﻤﻮﻋﺔ اﻷدوات اﻟﺠﺪﯾﺪة اﻟﺨﺎﺻﺔ ﺑﮭﺬا اﻟﻤﻮﺿﻮع‪ ،‬ھﺬه اﻷدوات ﻟﮭﺎ ﻃﺮﯾﻘﺔ ﻣﻌﯿﻨﺔ ﻟﻠﺘﻌﺎﻣﻞ ﻟﯿﺲ‬
‫ﻣﺠﺮد ﺳﺤﺐ و أﻓﻼت ﻟﻠﻌﻨﺎﺻﺮ ﻋﻠﻰ اﻟﺼﻔﺤﺔ و ﻟﻜﻦ اﻟﻤﻮﺿﻮع‪ ،‬ﻟﯿﺲ ﺑﺴﯿﻂ و ﻟﻠﯿﺲ ﻣﻌﻘﺪ ﯾﻤﻜﻨﻨﺎ أن ﻧﻘﻮل "اﻟﺴﮭﻞ اﻟﻤﻤﺘﻨﻊ"‪،‬‬
‫ﻟﻜﻦ ﻻ ﺗﻘﻠﻖ ﻓﺎﻟﻤﻮﺿﻮع أذا ﺗﻢ أﺧﺰه ﺑﺘﺴﻠﺴﻠﺔ اﻟﻄﺒﯿﻌﻲ ﺳﻮف ﻧﺼﻞ اﻟﻰ ﻧﺘﺎﺋﺞ ﻣﻤﺘﺎزة ﺟﺪا أﻛﺜﺮ ﻣﻤﺎ ﻛﻨﺖ ﺗﺘﻮﻗﻊ‪.‬‬

‫‪٢ -٣‬‬

‫‪PDF created with pdfFactory Pro trial version www.softwarelabs.com‬‬


‫اﻟﺸﻜﻞ ‪٢‬‬

‫و اﻷن ﻻﺑﺪ ﻣﻦ ﻣﻌﺮﻓﺔ ﺑﻌﺾ اﻟﻨﻘﺎط و اﻟﺨﻄﻮات اﻟﻤﮭﻢ ﻟﻠﺘﻌﺎﻣﻞ ﻣﻊ ھﺬه اﻷدوات و ﺳﻮف ﯾﺘﻢ ﺷﺮح اﻷدوات واﺣﺪة ﺗﻠﻮ اﻷﺧﺮة‬
‫ﺑﻜﻞ ﻣﺘﻄﻠﺒﺎﺗﮭﺎ و ﺳﻮف ﯾﻜﻮن ھﻨﺎك ﻣﺜﺎل واﺿﺢ ﻟﻜﻞ أداة ﻣﻦ اﻷدوات‪.‬‬
‫واﻷن ﺳﻮف ﺳﻮف ﻧﺒﺪأ ﺑﻤﺜﺎل ﺻﻐﯿﺮ و ﺳﻮف ﻧﺴﺘﻌﻤﻞ ﻓﯿﮫ ﻛﻼ ﻣﻦ اﻷدوات ‪ WebPartManager‬و‬
‫‪ WebPartZone‬و ﻻ ﺑﺪ ﻣﻦ ﺗﻮﺿﯿﺢ ﺷﻲ ﺑﺎﻟﻨﺴﺒﺔ ﻟﻜﻞ ﻣﻦ اﻷداﺗﯿﻦ ‪:‬‬
‫‪ : WebPartManager‬ﺗﻘﻮم ھﺬه اﻷداة ﺑﺄدارة اﻟﺘﻌﺎﻣﻞ ﻣﻊ أﺟﺰاء اﻟﻮﯾﺐ اﻟﻤﻮﺟﻮدة ﻋﻠﻰ اﻟﺼﻔﺤﺔ‪.‬‬ ‫•‬
‫‪ : WebPartZone‬ﺗﻘﻮم ھﺬه اﻷداة ﺑﺄﺣﺘﻮاء اﻷوادت اﻟﺘﻰ ﺳﯿﺘﻢ اﻟﺘﺤﻜﻢ ﻓﯿﮭﺎ‪.‬‬ ‫•‬
‫ﯾﺒﺪو اﻟﺘﻌﺮﯾﻒ اﻟﺴﺎﺑﻖ اﻟﻰ ﺣﺪ ﻣﺎ و ﻟﻜﻦ ﻻﺗﻘﻠﻖ ﻓﺎﻟﻤﺜﺎل ﺧﯿﺮ دﻟﯿﻞ ﻟﺘﻮﺿﯿﺢ اﻷﻣﻮر و اﻷن ﺳﻮف ﻧﻘﻮم ﺑﺘﻄﺒﯿﻖ ﻣﺜﺎل و ﺳﻮف‬
‫ﻧﺮى ﻣﺎ ﯾﻤﻜﻨﻦ ﻋﻤﻠﮫ ﻣﻊ أﺟﺰاء اﻟﻮﯾﺐ‪.‬‬

‫اﻟﺸﻜﻞ ‪ ٣‬ﻗﻢ ﺑﺄﺿﺎﻓﺔ اﻟﻤﻠﻔﺎت ﻛﻤﺎ ھﻮ ﻣﻮﺿﺢ ﻓﻰ اﻟﺸﻜﻞ‪.‬‬

‫‪٣ -٣‬‬

‫‪PDF created with pdfFactory Pro trial version www.softwarelabs.com‬‬


"‫ ﻧﻘﻮم ﺑﻌﻤﻞ اﻟﺸﻜﻞ اﻟﺘﺎﻟﻰ "وﻇﯿﻔﺔ اﻷداة ھﻮ اﻟﺒﺤﺚ ﺑﻮاﺳﻄﺔ ﺟﻮل‬User Control‫ ﻓﻰ اﻟـ‬٤ ‫اﻟﺸﻜﻞ‬

protected void btnSearch_Click(object sender, EventArgs e)


{
Response.Redirect(string.Format(
"http://www.google.com/search?q={0}",txtQuery.Text));
}
C#‫اﻟﻜﻮد ﺑﺎﻟـ‬
Protected Sub btnSearch_Click(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles btnSearch.Click
Response.Redirect(String.Format( _
"http://www.google.com/search?q={0}", txtQuery.Text))
End Sub
VB.net‫اﻟﻜﻮد ﺑﺎﻟـ‬

٤ -٣

PDF created with pdfFactory Pro trial version www.softwarelabs.com


‫ ﻧﻘﻮم ﺑﺄﺿﺎﻓﺔ ﺟﺪول ﺻﻔﺤﺔ‬٥ ‫اﻟﺸﻜﻞ‬

WebPartZone‫ و اﻟـ‬WebPartManager ‫ و ﻧﻘﻮم ﺑﺄﺿﺎﻓﺔ ﻛﻼ ﻣﻦ اﻷدة‬6 ‫اﻟﺸﻜﻞ‬

٥ -٣

PDF created with pdfFactory Pro trial version www.softwarelabs.com


‫اﻟﺸﻜﻞ ‪ 7‬ﻧﻘﻮم ﺑﺄﺿﺎة اﻷدوات اﻟﻤﺮاد أﺿﺎﻓﺘﮭﺎ داﺧﻞ اﻟـ‪ WebPartZone‬ﻧﻘﻮم ﺑﺄﺿﺎﻓﺔ أدات اﻟﻨﺘﯿﺠﺔ ﺛﻢ اﻟـ‪.UserControl‬‬

‫اﻟﺸﻜﻞ ‪ .8‬ھﺬا ھﻮ اﻟﺸﻜﻞ ﻋﻦ ﺗﺸﻐﯿﻞ اﻟﻤﺜﺎل و ﻟﻜﻦ ﻛﻤﺎ ﻧﻼﺣﻆ أن اﻟﻌﻨﻮان ﻣﻜﺘﻮب ‪ Untiltled‬و ﻟﺘﻐﯿﯿﺮة أدﺧﻞ ﻋﻠﻰ اﻟـ‪source view‬‬

‫"ﺟﺠﺠﺠﺠﻮﺟﻞ ﻣﻊ ﲝﺚ"=‪<uc1:GoogleSearch_CS ID="GoogleSearch_CS1" title‬‬


‫>‪runat="server" /‬‬

‫‪٦ -٣‬‬

‫‪PDF created with pdfFactory Pro trial version www.softwarelabs.com‬‬


‫اﻟﺸﻜﻞ ‪ 9‬أﺿﻒ اﻟﺘﻮﺻﯿﻒ ‪ Title‬ﺳﻮف ﺗﻼﺣﻆ رﻓﺾ ال‪ VS‬اﻟﺘﻌﺪﯾﻞ اﻟﺬي ﻗﻤﺖ ﺑﮫ و ﻟﻜﻦ ﻻ ﺗﻘﻠﻖ ﺳﻮف ﺗﻮﺿﺢ ﻛﻞ ﺷﺊ ﻻﺣﻘﺎً‬

‫اﻟﺸﻜﻞ ‪١٠‬‬

‫اﻟﺸﻜﻞ ‪ 11‬ھﺬا ھﻮ اﻟﺸﻜﻞ اﻟﺠﺪﯾﺪ ﺑﻌﺪ ﺗﻌﺪﯾﻞ اﻟﻌﻨﻮان – و ﻟﻜﻦ ﺣﺘﻰ اﻷن ﻟﻢ ﻧﺴﺘﻔﯿﺪ ﻣﻦ ﻣﻤﯿﺰات اﻟـ‪ WebParts‬و اﻷن ﺳﻮف ﻧﻮﺿﺢ ﻛﯿﻔﯿﺔ‬
‫اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻟـ‪ WebParts‬و اﻷﺳﺘﻔﺎدة ﻣﻦ ﻣﻤﯿﺰاﺗﮭﺎ اﻟﺠﺒﺎرة ﻓﻰ اﻟـ‪Personalisation‬‬

‫‪٧ -٣‬‬

‫‪PDF created with pdfFactory Pro trial version www.softwarelabs.com‬‬


‫اﻟﺸﻜﻞ ‪ 12‬ﻗﻢ ﺑﺘﻨﺸﯿﻂ ال‪ Personalization‬اﻟﻰ ‪ – True‬ﺳﻮف ﯾﺘﻄﻠﺐ ﺗﻔﻌﯿﻞ ھﺬه اﻟﺨﺎﺻﯿﺔ اﻟﻰ وﺟﻮد ﻗﺎﻋﺪة ﺑﯿﺎﻧﺎت‬
‫اﻟـ‪ MemberShip and personalization‬ﻛﻤﺎ ھﻮ ﻣﻮﺿﺢ ﻓﻰ اﻟﺸﻜﻞ اﻟﺘﺎﻟﻰ‪.‬‬

‫اﻟﺸﻜﻞ ‪ ١٣‬ھﺬه ھﻰ ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت اﻟﺘﻰ ﺗﻘﻮم ﺑﺄدارة ﻛﻞ أﻣﻜﺎﻧﯿﺎت اﻟـ‪ Personalization‬و ال‪Membership‬‬

‫‪٨ -٣‬‬

‫‪PDF created with pdfFactory Pro trial version www.softwarelabs.com‬‬


SQL server‫ ﺳﻮف ﺗﻼﺣﻆ أﻣﻜﺎﻧﯿﺎت ﻛﺜﯿﺮة و ﻣﻨﮭﺎ أن ﻣﻌﻈﻢ أﻣﻜﺎﻧﯿﺎت اﻟـ‬MS-SQL Server‫ ﯾﺘﻜﺎﻣﻞ ﻣﻊ اﻟـ‬VS‫ ﺑﻤﺎ أن اﻟـ‬14 ‫اﻟﺸﻜﻞ‬
VS.net‫ﻣﻮﺟﻮدة ﻓﻰ اﻟـ‬

٩ -٣

PDF created with pdfFactory Pro trial version www.softwarelabs.com


Autopostback ‫ ( و ﻗﻢ ﺑﺘﻨﺸﯿﻂ‬١= ‫ ﺗﺼﻤﯿﻢ‬/ ٠ = ‫ ﻗﻢ ﺑﺄﺿﺎﻓﺔ ﻗﺄﻣﺔ ﻣﻨﺰﻟﻘﺔ و أﺿﻒ ﻓﯿﮭﺎ ﻋﻨﺼﺮان ﻛﻤﺎ ھﻮ ﻣﻮﺿﺢ ) أﺳﺘﻌﺮاض‬١٥ ‫اﻟﺸﻜﻞ‬
.‫ ﺛﻢ أﺿﻒ اﻟﻜﻮد اﻟﺘﺎﻟﻰ‬،‫ ﻟﻠﻘﺎﺋﻤﺔ اﻟﻤﻨﺰﻟﻘﺔ‬True ‫اﻟﻰ‬
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
switch (int.Parse(ddl_ShowType.SelectedValue))
{
case 0:
WebPartManager1.DisplayMode = WebPartManager.BrowseDisplayMode;
break;
case 1:
WebPartManager1.DisplayMode = WebPartManager.DesignDisplayMode;
break;
default:
WebPartManager1.DisplayMode = WebPartManager.BrowseDisplayMode;
break;
}
}

C#‫اﻟﻜﻮد ﺑﺎﻟـ‬

١٠ - ٣

PDF created with pdfFactory Pro trial version www.softwarelabs.com


Protected Sub DropDownList1_SelectedIndexChanged(ByVal sender As Object,
ByVal e As System.EventArgs) Handles ddl_ShowType.SelectedIndexChanged
Select Case Val(ddl_ShowType.SelectedValue)
Case 0
WebPartManager1.DisplayMode =
WebPartManager.BrowseDisplayMode
Case 1
WebPartManager1.DisplayMode =
WebPartManager.DesignDisplayMode
Case Else
WebPartManager1.DisplayMode =
WebPartManager.BrowseDisplayMode
End Select

End Sub

VB.net‫اﻟﻜﻮد ﺑﺎﻟـ‬

WebPartZone‫ ھﺬا ھﻮ اﻟﺸﻜﻞ ﻋﻨﺪ اﻷﻧﺘﮭﺎء ﻣﻦ اﻟﻤﺜﺎل ﯾﻤﻜﻨﻚ اﻷن أن ﺗﻘﻮم ﺑﺄﻋﻼق أو ﺗﺼﻐﯿﺮ ﻣﺤﺘﻮﯾﺎت اﻟـ‬، 16 ‫اﻟﺸﻜﻞ‬

١١ - ٣

PDF created with pdfFactory Pro trial version www.softwarelabs.com


.‫ ﺑﺎﻷﺿﺎﻓﺔ اﻟﻰ أﻣﻜﺎﻧﯿﺔ ﺗﺤﺮﯾﻚ اﻟﻌﻨﺎﺻﺮ‬17 ‫اﻟﺸﻜﻞ‬

١٢ - ٣

PDF created with pdfFactory Pro trial version www.softwarelabs.com


.‫ اﻟﻰ اﻷﺧﺮى دون ﻣﺸﺎﻛﻞ‬WebPartZone ‫ ﺑﻜﻞ ﺷﮭﻮﻟﺔ ﯾﻤﻜﻨﻚ ﻧﻘﻞ اﻟﻌﻨﺎﺻﺮ ﻣﻦ‬18 ‫اﻟﺸﻜﻞ‬

١٣ - ٣

PDF created with pdfFactory Pro trial version www.softwarelabs.com


‫اﻟﺸﻜﻞ ‪ 19‬ﺑﺎﻷﺿﺎﻓﺔ اﻟﻰ أن اﻟﺘﻄﺒﯿﻖ ﯾﻘﻮم ﺑﺤﻔﻆ أﻋﺪادات اﻟﻤﺴﺘﺨﺪم‪ ،‬ﻗﻢ ﺑﺄﻏﻼق اﻟﻌﻨﺎﺻﺮ اﻟﻤﻮﺟﻮدة‪.‬‬

‫‪١٤ - ٣‬‬

‫‪PDF created with pdfFactory Pro trial version www.softwarelabs.com‬‬


‫اﻟﺸﻜﻞ ‪ 20‬ھﻨﺎك ﻣﺸﻜﻠﺔ و ھﻰ ﻛﯿﻒ ﯾﻤﻜﻨﻨﺎ أن ﻧﻈﮭﺮ اﻟﻤﻜﻮﻧﺎت ﻣﺮة أﺧﺮى‪.‬‬

‫اﻟﺸﻜﻞ ‪ ٢١‬ﻻ داﻋﻰ ﻟﻠﻘﻠﻖ اﻟﻤﻮﺿﻮع ﺑﺴﯿﻂ ﻟﻠﻐﺎﯾﺔ ھﻨﺎك ﻃﺮﯾﻘﺎن ﻟﺤﻞ ھﺬه اﻟﻤﺸﻜﻠﺔ أول وھﻰ اﻟﻐﺎء اﻟﺴﻄﺮ اﻟﺨﺎص ﺑﺎﻟﻤﺴﺘﺨﺪم ﻣﻦ ﻗﺎﻋﺪة اﻟﺒﯿﺎﻧﺎت ) ﻻ‬
‫أﺣﺒﺬ ھﺬا اﻟﺤﻞ( و اﻟﺤﻞ اﻷﺧﺮ ھﻮ أﺳﺘﻌﻤﺎل ﻣﻜﻮﻧﺎت أﺿﺎﻓﯿﺔ ﻣﻦ اﻟـ‪ Toolbar‬ﻟﺤﻞ ھﺬه اﻟﻤﺸﻜﻠﺔ‪.‬‬

‫و اﻷن ﻟﻨﺸﺮح ﻣﺎذا ﯾﺤﺪث ﺑﺎﻟﻀﺒﻂ ﻓﻰ ھﺬه اﻟﻌﻤﻠﯿﮫ ‪،‬‬

‫اﻟﺸﻜﻞ ‪ ٢٢‬ﻛﻤﺎ ھﻮ ﻣﻮﺿﺢ ﻓﻰ اﻟﺸﻜﻞ أن ﻋﻤﻠﯿﮫ أدارة اﻟﻤﺤﺘﻮى ) اﻟﻤﺤﺘﻮى ھﻨﺎ ﺗﻌﻨﻰ اﻷدوات اﻟﻤﻮﺟﻮدة ﺑﺪاﺧﻞ اﻟﻠـ‪ ( WebPart Zone‬ﺗﺘﻢ ﺑﻮاﺳﻄﺔ‬
‫اﻟـ‪.WebPart Manager‬‬

‫‪١٥ - ٣‬‬

‫‪PDF created with pdfFactory Pro trial version www.softwarelabs.com‬‬


‫ﻻﺣﻈﻨﺎ أﻧﻨﺎ ﻗﻤﻨﺎ ﺑﺄﺿﺔ ﻣﻌﺮف ﺑﺎﻷﺳﻢ ‪ Title‬ﻟﺘﻐﯿﯿﺮ أﺳﻢ اﻟـ‪ WebPart Zone‬ﻻﺑﺪ و أن ﺗﻌﻠﻢ ﺷﺊ ﺑﺴﯿﻂ ﺟﺪا اﻻ وھﻮ ان‬
‫اﻟـ‪ WebPart Zone‬ﺗﻜﺴﺐ ﻣﺎ ﺑﺪاﺧﻠﮭﺎ ﻣﻦ أدوات ﺑﻌﺾ اﻟﺼﻔﺎت اﻟﺠﺪﯾﺪة و اﻟﺘﻰ ھﻰ ﻓﻰ اﻷﺻﻞ ﻣﻮروﺛﺔ ﻣﻦ ‪WebPart‬‬
‫‪.Generic‬‬
‫واﻷن ﻟﻨﺒﺪأ ﺑﻌﻤﻞ ﺑﻌﺾ اﻷﺿﺎﻓﺎت اﻟﺠﺪﯾﺪة ﻋﻠﻰ اﻟﻤﺜﺎل و ھﻰ أن ﻧﻘﻮم ﺑﻮراﺛﺔ ﺻﻔﺎت اﻟﻤﻜﺘﺒﺔ ‪ WebPart‬ﻟﻨﻜﺴﺐ ﺑﻌﺾ‬
‫اﻷﻣﻜﺎﻧﺒﺎت اﻟﺘﻰ ﯾﻤﻜﻨﻨﺎ أﺿﺎﻓﺘﮭﺎ ﻟﺼﻔﺤﺎت اﻟﺘﻄﺒﯿﻖ‪.‬‬
‫و اﻷن اﻟﻰ اﻟﻤﺜﺎل و اﻟﻤﺜﺎل اﻷﺗﻰ ﻋﺒﺎرة ﻋﻦ ‪ Custom control‬ﯾﻘﻮم ﺑﻮراﺛﺔ اﻟﻤﻜﺘﺒﺔ ‪ WebPart‬و اﻷن ﻟﻨﺒﺪأ اﻟﻌﻤﻞ‪.‬‬

‫اﻟﺸﻜﻞ ‪ 23‬ﺳﻮف ﻧﻘﻮم ﺑﺄﺿﺎﻓﺔ ﻣﺸﺮوع ﺟﺪﯾﺪ ﻣﻦ اﻟﻘﺎﺋﻤﺔ ‪. File à Project‬‬

‫اﻟﺸﻜﻞ ‪ 24‬أﺧﺘﺮ اﻟﻠﻐﺔ ﻣﺮاد اﻟﺘﻌﺎﻣﻞ ﻣﻌﮭﺎ ھﺬا اﻟﺸﻜﻞ ﻟﻤﺒﺮﻣﺠﻰ اﻟـ‪ VB‬و ﺑﻌﺪ ذﻟﻚ ﻧﻘﻮم ﺑﺄﺧﺘﯿﺎر ﻧﻮع اﻟﻤﺸﺮوع وھﻮ ‪Web Control library‬‬

‫‪١٦ - ٣‬‬

‫‪PDF created with pdfFactory Pro trial version www.softwarelabs.com‬‬


‫اﻟﺸﻜﻞ ‪ 25‬ھﺬا اﻟﺸﻜﻞ ﻟﻤﺒﺮﻣﺠﻲ اﻟـ‪C#‬‬

‫اﻟﺸﻜﻞ ‪ 26‬اﻟﻤﺜﺎل اﻟﺬى ﺳﻮف ﻧﻄﺒﻘﺔ ھﻮ ﻋﺒﺎرة ﻋﻦ ﻣﺘﺮﺟﻢ ﻣﻦ اﻟﻠﻐﺔ اﻷﻧﺠﻠﯿﺰﯾﺔ اﻟﻰ اﻟﯿﺎﺑﺎﻧﯿﺔ ﺑﺄﺳﺘﺨﺪام ﺧﺪﻣﺎت اﻟﻮﯾﺐ ‪ WebService‬ﻟﮭﺬا ﺳﻮف‬
‫ﻧﺤﺘﺎج اﻟﻰ ﻣﺮﺟﻊ وﯾﺐ ‪ Web Reference‬ﻟﻤﺰود اﻟﺨﺪﻣﺔ و ﻛﺎﻟﻌﺎدة ﺳﻮف ﯾﻘﻮم اﻟـ‪ Visual stdio‬ﺑﺄﻧﺸﺎء اﻟﻤﻜﺘﺒﺔ اﻟﻮﺳﯿﻄﺔ ) ‪Proxy‬‬
‫‪ ( class‬اﻟﺘﻰ ﺗﺴﮭﻞ اﻟﺘﻌﺎﻣﻞ ﻣﻊ ﺧﺪﻣﺔ اﻟﻮﯾﺐ ‪ WebService‬اﻟﻤﺮاد اﻟﺘﻌﺎﻣﻞ ﻣﻌﮭﺎ و أول ﺧﻄﻮة ﻓﻰ ھﺬا اﻟﻤﻮﺿﻮع ھﻮ ﻧﻘﺮ ﺑﺎﻟﺰر اﻷﯾﻤﻦ ﻟﻠﻤﺎوس‬
‫و أﺧﺘﯿﺎر ‪Add Web Reference‬‬

‫‪١٧ - ٣‬‬

‫‪PDF created with pdfFactory Pro trial version www.softwarelabs.com‬‬


‫ و ﺳﻮف ﻧﻀﻊ ﻋﻨﻮان اﻟﺨﺪﻣﺔ اﻟﻤﺮاد اﻟﺘﻌﺎﻣﻞ ﻣﻌﮭﺎ و ھﻰ‬Add Web Reference ‫ ﺳﻮف ﺗﻈﮭﺮ ھﺬه اﻟﻨﺎﻓﺬة‬27 ‫اﻟﺸﻜﻞ‬
http://www.webservicex.com/translateservice.asmx?WSDL

١٨ - ٣

PDF created with pdfFactory Pro trial version www.softwarelabs.com


‫اﻟﺸﻜﻞ ‪ 28‬ﻋﻨﺪ ﺗﺤﻤﺒﻞ اﻟﺨﺪﻣﺔ ﺳﻮف ﯾﻈﮭﺮ ﻟﻚ ﻧﺒﺬه ﻋﻦ اﻟﺨﺪﻣﺔ و اﻟﻤﺘﻐﯿﺮات اﻟﺘﻰ ﺗﺤﺘﺎﺟﮭﺎ و ﻛﻞ ﻣﺎ ﯾﺨﺺ ھﺬه اﻟﺨﺪﻣﺔ‪.‬‬

‫‪١٩ - ٣‬‬

‫‪PDF created with pdfFactory Pro trial version www.softwarelabs.com‬‬


Web Service ‫ھﺬا ھﻮ اﻟﺸﻜﻞ ﺑﻌﺪ أﺿﺎﻓﺔ اﻟﺨﺪﻣﺔ‬٢٩ ‫اﻟﺸﻜﻞ‬
Imports System
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Text
Imports System.Web
Imports System.Web.UI.WebControls.WebParts
Imports System.Web.UI
Imports System.Web.UI.WebControls

<DefaultProperty("Text")> _
Public Class Translator_VB
Inherits WebPart
WebPart ‫ﻓﻰ ھﺬا اﻟﺴﻄﺮ ﻧﻘﻮم ﺑﻮراﺛﺔ اﻟﻤﻜﺘﺒﮫ‬
Private pStrText As String = Nothing
‫ﻣﺘﻐﯿﺮ ﻣﻦ ﻧﻮع ﺳﻠﺴﻠﺔ ﺣﺮﻓﯿﮫ و اﻟﺘﻰ ﺳﻮف ﺗﺤﻤﻞ اﻟﻜﻠﻤﺔ اﻟﻤﺮاد ﺗﺮﺟﻤﺘﮭﺎ‬
Private txtStringToTranslate As TextBox

٢٠ - ٣

PDF created with pdfFactory Pro trial version www.softwarelabs.com


‫ﻣﺘﻐﯿﺮ ﻣﻦ ﻧﻮع ﺣﻘﻞ و اﻟﺬي ﺳﻮف ﻧﻘﻮم ﺑﻌﺮﺿﮫ و اﻟﺬي ﺳﻮف ﯾﻜﻮن ﻣﺪﺧﻞ اﻟﻜﻼﻣﺎت اﻟﻤﺮاد ﺗﺮﺟﻤﺘﮭﺎ‬
Private lblTranslatedString As Label
‫ و اﻟﺬي ﺳﯿﺘﻢ ﺑﮫ ﻋﺮض اﻟﻨﺘﯿﺠﺔ‬Label ‫ﻋﺎرض ﻧﺺ‬
Public Sub New()
‫ و ھﻨﺎ ﯾﺘﻢ ﺗﻔﻌﯿﻞ ﺧﺎﺻﯿﺔ اﻟﻘﺎﺑﻠﯿﺔ ﻟﻸﻏﻼق‬Constructor ‫داﻟﺔ اﻟﻤﻨﺸﺊ‬
Me.AllowClose = True
End Sub

<Personalizable(), WebBrowsable()> _
WebBrowsable‫ و اﻟﻘﺎﺑﻠﯿﺔ ﻟﻸﺳﺘﻌﺮاض‬Peronalization ‫ھﻨﺎ ﯾﺘﻢ ﻣﻨﺢ و أﺗﺎﺣﺔ اﻟﺨﺎﺻﯿﺘﯿﻦ اﻟﻘﺎﺑﻠﯿﮫ ﻟﺘﺨﺼﯿﺺ اﻟﺸﺨﺼﻲ‬
Public Property strToTranslate() As String
‫أﺿﺎﻓﺔ ﺧﺎﺻﯿﺔ ﻟﻠﻤﻜﺘﺒﮫ و ھﻰ اﻟﻜﻠﻤﺔ اﻟﺘﻰ ﺳﻮف ﯾﺘﻢ ﺗﺮﺟﻤﺘﮭﺎ أھﻤﯿﺔ ھﺬه اﻟﺨﺎﺻﯿﺔ ﻟﻜﻲ ﺗﺘﯿﺢ واﺟﮭﮫ ﺑﺮﻣﺠﯿﺔ ﻟﻠﺘﻌﺎﻣﻞ ﻣﻊ اﻟﻤﻜﺘﺒﮫ ﺣﯿﺚ أﻧﮫ ﻛﻤﺎ ﻧﻼﺣﻆ ﻻ‬
‫ﯾﻤﻜﻦ اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻟﻨﺺ أو ﺣﻘﻞ اﻟﻨﺺ ﻣﺒﺎﺷﺮة‬
Get
Return pStrText
End Get
Set(ByVal value As String)
pStrText = value
End Set
End Property

Protected Overrides Sub CreateChildControls()


Controls.Clear()
ً‫ﻣﺴﺢ ﻛﻞ اﻟﺪوات اﻟﻤﻮﺟﻮدة ﻣﺴﺒﻘﺎ‬
txtStringToTranslate = New TextBox()
‫أﻧﺸﺎء ﻧﺴﺨﺔ ﺟﺪﯾﺪة ﻣﻦ ﺣﻘﻞ اﻟﻨﺺ ﻓﺎرﻏﺔ‬
txtStringToTranslate.Text = Me.strToTranslate
‫ اﻟﻰ ﺣﻘﻞ اﻟﻨﺺ ﻛﺎﻗﯿﻤﺔ أﺑﺘﺪاﯾﺔ‬strToTranslate ‫ﻧﺴﺦ ﻣﺤﺘﻮﯾﺎت اﻟﺨﺎﺻﯿﺔ‬
Me.Controls.Add(txtStringToTranslate)
‫ﺗﺜﺒﯿﺖ ﺣﻘﻞ اﻟﻨﺺ ﻋﻠﻰ اﻟﺼﻔﺤﺔ‬

Dim btnTranslate As New Button()


‫أﻧﺸﺎء زر ﺟﺪﯾﺪ و اﻟﺬي ﺳﯿﺘﻮﻟﻰ اﻟﺘﺮﺟﻤﺔ ﻋﻦ اﻟﻀﻐﻂ ﻋﻠﯿﮫ‬
btnTranslate.Text = "‫"ﺗﺮﺟﻢ‬
‫ﺗﻐﯿﯿﺮ ﻧﺺ اﻟﺰر اﻟﻰ أﺳﻢ ﻣﻼﺋﻢ‬
AddHandler btnTranslate.Click, AddressOf Me.btnTranslate_Click
‫ ( و ھﺬا ﻋﻨﺪ‬btnTranslate_click ‫ ﻟﻜﻲ ﯾﻘﻮم ﺑﺘﻨﻔﯿﺬ ﻣﮭﻤﮫ ﻣﻌﯿﻨﺔ ) اﻟﺘﻌﻠﯿﻤﺎت اﻟﻤﻮﺟﻮدة ﻓﻰ اﻟﺪاﻟﺔ‬Event Handler ‫أﻧﺸﺎء ﻣﻨﺎول اﻟﺤﺪث‬
‫اﻟﻀﻐﻂ ﻋﻠﻰ اﻟﺰر‬
Me.Controls.Add(btnTranslate)

٢١ - ٣

PDF created with pdfFactory Pro trial version www.softwarelabs.com


‫ﺗﺜﺒﯿﺖ اﻟﺰر ﻋﻠﻰ اﻟﻨﺎﻓﺬة‬
lblTranslatedString = New Label()
‫أﻧﺸﺎء أداة ﻧﺺ‬
lblTranslatedString.BackColor = System.Drawing.Color.Yellow
‫ﺗﻐﯿﯿﺮ ﻟﻮن اﻟﺨﻠﻔﯿﮫ اﻟﻰ اﻟﻮن اﻷﺻﻔﺮ‬
Me.Controls.Add(lblTranslatedString)
‫ﺗﺜﺒﯿﺖ أداة اﻟﻨﺺ ﻋﻠﻰ اﻟﺼﻔﺤﺔ‬
ChildControlsCreated = True
‫ﺗﺄﻛﯿﺪ أﻧﺸﺎء اﻷدوات‬
End Sub

Private Sub btnTranslate_Click(ByVal sender As Object, _


ByVal e As EventArgs)
‫أﻧﺸﺎء داﻟﮫ اﻟﺘﻰ ﺳﻮف ﺗﻨﻔﺬ ﻋﻨﺪ ﺿﻐﻂ اﻟﻤﺴﺘﺨﺪم ﻋﻠﻰ اﻟﺰر‬
If txtStringToTranslate.Text <> String.Empty Then
‫اﻟﺘﺄﻛﺪ ﻣﻦ ﻋﺪم ﺣﻠﻮ اﻟﻨﺺ ﻣﻦ أى ﻛﻠﻤﮫ‬
Me.strToTranslate = txtStringToTranslate.Text
‫ ﺑﻘﯿﻤﺔ ﺣﻘﻞ اﻟﻨﺺ‬strToTranslate ‫أﺣﻼل ﻗﯿﻤﺔ اﻟﺨﺎﺻﯿﺔ‬
txtStringToTranslate.Text = String.Empty
‫ﺗﻔﺮﯾﻎ ﺣﻘﻞ اﻟﻨﺺ‬
Dim ws As New TranslatorWebService.TranslateService
Web Service ‫أﻧﺸﺎء ﻣﺘﻐﯿﺮ ﻣﻦ ﻧﻮع اﻟﺨﺪﻣﺔ‬
lblTranslatedString.Text = "<br/>" & Me.strToTranslate & "-->"& _
ws.Translate(TranslatorWebService.Language.EnglishTOJapanese, _
Me.strToTranslate)
‫ﺗﺤﺪﯾﺪ اﻟﻠﻐﺔ اﻟﻤﺮدا اﻟﺘﺮﺟﻤﺔ ﻣﻨﮭﺎ و اﻟﯿﮭﺎ و ﺗﺤﺪﯾﺪ اﻟﻜﻠﻤﺔ اﻟﻤﺮاد ﺗﺮﺟﻤﺘﮭﺎ‬
End If
End Sub

End Class

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

٢٢ - ٣

PDF created with pdfFactory Pro trial version www.softwarelabs.com


using System.Web.UI.WebControls.WebParts;

namespace Translator_CS
{
[DefaultProperty("Text")]
public class Translator_CS :WebPart
WebPart ‫ﻓﻰ ھﺬا اﻟﺴﻄﺮ ﻧﻘﻮم ﺑﻮراﺛﺔ اﻟﻤﻜﺘﺒﮫ‬
{
private string pStrText = "";
‫ﻣﺘﻐﯿﺮ ﻣﻦ ﻧﻮع ﺳﻠﺴﻠﺔ ﺣﺮﻓﯿﮫ و اﻟﺘﻰ ﺳﻮف ﺗﺤﻤﻞ اﻟﻜﻠﻤﺔ اﻟﻤﺮاد ﺗﺮﺟﻤﺘﮭﺎ‬
private TextBox txtStringToTranslate;
‫ﻣﺘﻐﯿﺮ ﻣﻦ ﻧﻮع ﺣﻘﻞ و اﻟﺬي ﺳﻮف ﻧﻘﻮم ﺑﻌﺮﺿﮫ و اﻟﺬي ﺳﻮف ﯾﻜﻮن ﻣﺪﺧﻞ اﻟﻜﻼﻣﺎت اﻟﻤﺮاد ﺗﺮﺟﻤﺘﮭﺎ‬
private Label lblTranslatedString;
‫ و اﻟﺬي ﺳﯿﺘﻢ ﺑﮫ ﻋﺮض اﻟﻨﺘﯿﺠﺔ‬Label ‫ﻋﺎرض ﻧﺺ‬
public Translator_CS()
{
this.AllowClose = true;
‫ و ھﻨﺎ ﯾﺘﻢ ﺗﻔﻌﯿﻞ ﺧﺎﺻﯿﺔ اﻟﻘﺎﺑﻠﯿﺔ ﻟﻸﻏﻼق‬Constructor ‫داﻟﺔ اﻟﻤﻨﺸﺊ‬
}
[Personalizable(), WebBrowsable()]
WebBrowsable ‫ و اﻟﻘﺎﺑﻠﯿﺔ ﻟﻸﺳﺘﻌﺮاض‬Peronalization ‫ھﻨﺎ ﯾﺘﻢ ﻣﻨﺢ و أﺗﺎﺣﺔ اﻟﺨﺎﺻﯿﺘﯿﻦ اﻟﻘﺎﺑﻠﯿﮫ ﻟﺘﺨﺼﯿﺺ اﻟﺸﺨﺼﻲ‬
public string strToTranslate
‫أﺿﺎﻓﺔ ﺧﺎﺻﯿﺔ ﻟﻠﻤﻜﺘﺒﮫ و ھﻰ اﻟﻜﻠﻤﺔ اﻟﺘﻰ ﺳﻮف ﯾﺘﻢ ﺗﺮﺟﻤﺘﮭﺎ أھﻤﯿﺔ ھﺬه اﻟﺨﺎﺻﯿﺔ ﻟﻜﻲ ﺗﺘﯿﺢ واﺟﮭﮫ ﺑﺮﻣﺠﯿﺔ ﻟﻠﺘﻌﺎﻣﻞ ﻣﻊ اﻟﻤﻜﺘﺒﮫ ﺣﯿﺚ أﻧﮫ ﻛﻤﺎ ﻧﻼﺣﻆ ﻻ‬
‫ﯾﻤﻜﻦ اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻟﻨﺺ أو ﺣﻘﻞ اﻟﻨﺺ ﻣﺒﺎﺷﺮة‬
{
get
{
return pStrText;
}
set
{
pStrText = value;
}
}

protected override void CreateChildControls()


{
Controls.Clear();
ً‫ﻣﺴﺢ ﻛﻞ اﻟﺪوات اﻟﻤﻮﺟﻮدة ﻣﺴﺒﻘﺎ‬

٢٣ - ٣

PDF created with pdfFactory Pro trial version www.softwarelabs.com


txtStringToTranslate = new TextBox();
‫أﻧﺸﺎء ﻧﺴﺨﺔ ﺟﺪﯾﺪة ﻣﻦ ﺣﻘﻞ اﻟﻨﺺ ﻓﺎرﻏﺔ‬
txtStringToTranslate.Text = this.strToTranslate;
‫ اﻟﻰ ﺣﻘﻞ اﻟﻨﺺ ﻛﺎﻗﯿﻤﺔ أﺑﺘﺪاﯾﺔ‬strToTranslate ‫ﻧﺴﺦ ﻣﺤﺘﻮﯾﺎت اﻟﺨﺎﺻﯿﺔ‬
this.Controls.Add(txtStringToTranslate);
‫ﺗﺜﺒﯿﺖ ﺣﻘﻞ اﻟﻨﺺ ﻋﻠﻰ اﻟﺼﻔﺤﺔ‬

Button btnTranslate = new Button();


‫أﻧﺸﺎء زر ﺟﺪﯾﺪ و اﻟﺬي ﺳﯿﺘﻮﻟﻰ اﻟﺘﺮﺟﻤﺔ ﻋﻦ اﻟﻀﻐﻂ ﻋﻠﯿﮫ‬
btnTranslate.Text = "Translate";
‫ﺗﻐﯿﯿﺮ ﻧﺺ اﻟﺰر اﻟﻰ أﺳﻢ ﻣﻼﺋﻢ‬
btnTranslate.Click += new EventHandler(btnTranslate_Click);
‫ ( و ھﺬا ﻋﻨﺪ‬btnTranslate_click ‫ ﻟﻜﻲ ﯾﻘﻮم ﺑﺘﻨﻔﯿﺬ ﻣﮭﻤﮫ ﻣﻌﯿﻨﺔ ) اﻟﺘﻌﻠﯿﻤﺎت اﻟﻤﻮﺟﻮدة ﻓﻰ اﻟﺪاﻟﺔ‬Event Handler ‫أﻧﺸﺎء ﻣﻨﺎول اﻟﺤﺪث‬
‫اﻟﻀﻐﻂ ﻋﻠﻰ اﻟﺰر‬
this.Controls.Add(btnTranslate);
‫ﺗﺜﺒﯿﺖ اﻟﺰر ﻋﻠﻰ اﻟﻨﺎﻓﺬة‬

lblTranslatedString = new Label();


‫أﻧﺸﺎء أداة ﻧﺺ‬
lblTranslatedString.BackColor = System.Drawing.Color.Yellow;
‫ﺗﻐﯿﯿﺮ ﻟﻮن اﻟﺨﻠﻔﯿﮫ اﻟﻰ اﻟﻮن اﻷﺻﻔﺮ‬
this.Controls.Add(lblTranslatedString);
‫ﺗﺜﺒﯿﺖ أداة اﻟﻨﺺ ﻋﻠﻰ اﻟﺼﻔﺤﺔ‬
ChildControlsCreated = true;
‫ﺗﺄﻛﯿﺪ أﻧﺸﺎء اﻷدوات‬
}

private void btnTranslate_Click(Object sender, EventArgs e)


‫أﻧﺸﺎء داﻟﮫ اﻟﺘﻰ ﺳﻮف ﺗﻨﻔﺬ ﻋﻨﺪ ﺿﻐﻂ اﻟﻤﺴﺘﺨﺪم ﻋﻠﻰ اﻟﺰر‬
{
if (txtStringToTranslate.Text != String.Empty )
‫اﻟﺘﺄﻛﺪ ﻣﻦ ﻋﺪم ﺣﻠﻮ اﻟﻨﺺ ﻣﻦ أى ﻛﻠﻤﮫ‬
{
this.strToTranslate = txtStringToTranslate.Text;
‫ ﺑﻘﯿﻤﺔ ﺣﻘﻞ اﻟﻨﺺ‬strToTranslate ‫أﺣﻼل ﻗﯿﻤﺔ اﻟﺨﺎﺻﯿﺔ‬
txtStringToTranslate.Text = String.Empty;
‫ﺗﻔﺮﯾﻎ ﺣﻘﻞ اﻟﻨﺺ‬
LangaugeTranslator.TranslateService Trans = new
global::Translator_CS.LangaugeTranslator.TranslateService();

٢٤ - ٣

PDF created with pdfFactory Pro trial version www.softwarelabs.com


Web Service ‫أﻧﺸﺎء ﻣﺘﻐﯿﺮ ﻣﻦ ﻧﻮع اﻟﺨﺪﻣﺔ‬
lblTranslatedString.Text = "<br/>" + this.strToTranslate + "-->"
+

Trans.Translate(global::Translator_CS.LangaugeTranslator.Language.EnglishTOJa
panese,this.strToTranslate);
‫ﺗﺤﺪﯾﺪ اﻟﻠﻐﺔ اﻟﻤﺮدا اﻟﺘﺮﺟﻤﺔ ﻣﻨﮭﺎ و اﻟﯿﮭﺎ و ﺗﺤﺪﯾﺪ اﻟﻜﻠﻤﺔ اﻟﻤﺮاد ﺗﺮﺟﻤﺘﮭﺎ‬
}
}

}
}

‫ و اﻷن و ﺑﻌﺪ ﻛﺘﺎﺑﺔ اﻟﻜﻮد و اﻷﻧﺘﮭﺎء ﻣﻦ ﻛﻞ اﻟﻤﻄﻠﻮب ﺑﺎﻟﻨﺴﺒﺔ ﻟﻸداة ﻧﻘﻮم ﺑﺘﺮﺟﻤﺘﮭﺎ‬30 ‫اﻟﺸﻜﻞ‬

٢٥ - ٣

PDF created with pdfFactory Pro trial version www.softwarelabs.com


‫اﻟﺸﻜﻞ ‪ 31‬ﺑﻌﺪ ذﻟﻚ ﻧﻌﻮد ﻟﻠﻤﺸﺮوع ﻣﺮة أﺧﺮى و ﻧﻘﻮم ﺑﺄﺿﺎﻓﺔ اﻷداة اﻟﺘﻰ ﻗﻤﻨﺎ ﺑﺘﺼﻤﯿﻤﮭﺎ اﻷن‬

‫اﻟﺸﻜﻞ ‪ 32‬و اﻷن ﻧﺨﺘﺎر ﻣﻠﻒ اﻟﺬي ﯾﺤﺘﻮي ﻋﻠﻰ اﻷداة و ھﻮ ﻣﻮﺟﻮد ﻓﻰ ﻣﺠﻠﺪ ‪ bin\debug‬داﺧﻞ ﻣﺠﻠﺪ ﻣﺸﺮوع اﻟﻤﻜﺘﺒﺔ اﻟﺬي أﻧﺸﺎﺋﻨﺎھﺎ‬

‫‪٢٦ - ٣‬‬

‫‪PDF created with pdfFactory Pro trial version www.softwarelabs.com‬‬


‫اﻟﺸﻜﻞ ‪ 33‬ﺳﻮف ﺗﻈﮭﺮ ﻛﻤﺎ ﻧﺮى ھﻨﺎ ﻧﻘﻮم ﺑﺎﻷﺧﺘﯿﺎر ﺛﻢ ﺿﻐﻂ ‪OK‬‬

‫اﻟﺸﻜﻞ ‪ ٣٤‬ھﺬا ھﻮ ﺷﻜﻞ اﻷدوات ﺑﻌﺪ أﺿﺎﻓﺘﮭﺎ اﻟﻰ ﺻﻨﺪوق اﻷدوات ‪Tool Box‬‬

‫‪٢٧ - ٣‬‬

‫‪PDF created with pdfFactory Pro trial version www.softwarelabs.com‬‬


‫اﻟﺸﻜﻞ ‪ 35‬و اﻻن و ﺑﻌﺪ أﺿﺎﻓﺖ ‪ WebZone‬ﺟﺪﯾﺪﯾﮫ ﺗﺤﺘﻮى ﻋﻠﻰ اﻷداة اﻟﺨﺎﺻﺔ ﺑﻨﺎ ھﺬا ھﻮ اﻟﺸﻜﻞ ﻓﻰ اﻟﺘﺼﻤﯿﻢ‬

‫اﻟﺸﻜﻞ ‪ 36‬وھﺬا ھﻮ اﻟﺸﻜﻞ ﻋﻨﺪ اﻟﺘﻨﻔﯿﺬ‪.‬‬


‫ھﻨﺎك ﺧﺎﺻﻲ ﺟﺪﯾﺪة و ﻣﻤﯿﺰة ) ﻣﻦ وﺟﮭﺔ ﻧﻈﺮي ( وھﻰ أﻣﻜﺎﻧﯿﺔ ﺗﻤﻜﻨﯿﻦ اﻟﻤﺴﺘﺨﺪم ﻣﻦ أﺳﺘﯿﺮاد و ﺗﺼﺪﯾﺮ ﺧﺼﺎﺋﺺ اﻷداة و‬
‫ﻟﻨﺮى ﻛﯿﻔﯿﺔ ﺗﺸﻐﯿﻞ ھﺬه اﻷﻣﻜﺎﻧﯿﮫ ﻛﻤﺎ ھﻮ ﻓﻰ اﻟﺸﻜﻞ اﻟﺘﺎﻟﻰ‬

‫اﻟﺸﻜﻞ ‪37‬‬

‫‪٢٨ - ٣‬‬

‫‪PDF created with pdfFactory Pro trial version www.softwarelabs.com‬‬


‫و اﻷن ﺳﻮف ﻧﻼﺣﻆ وﺟﻮد ﺛﻼث ﺧﯿﺎرات و ھﻢ ‪ None‬و ھﺬا ﻣﻌﻨﺎه ﻋﺪم أﻇﮭﺎر اﻟﺨﺎﺻﯿﺔ ﻋﻨﺪ اﻟﻤﺴﺘﺨﺪم و اﻟﺜﺎﻧﯿﮫ ‪ ALL‬و‬
‫ﻣﻌﻨﺎھﺎ أﺳﺘﯿﺮاد و ﺗﺼﺪﯾﺮ ﻛﻞ اﻟﺨﺼﺎﺋﺺ و ﻟﻜﻦ ﻣﺎذا ﻟﻮ ﻛﺎﻧﺖ اﻷداة ﺗﺤﻤﻞ ﺑﯿﺎﻧﺎت ﺳﺮﯾﮫ و ﺧﺎﺻﺔ ﻋﻦ اﻟﻤﺴﺘﺨﺪم ھﻨﺎ ﯾﺄﺗﻰ‬
‫اﻟﺨﯿﺎر ‪ NonSensitiveData‬ﻟﯿﻜﻦ اﻟﺨﯿﺮ اﻷﻣﺜﻞ ﻟﻨﺎ ﻓﻰ ھﺬه اﻟﺤﺎﻟﺔ ھﻨﺎك ﺷﺊ أﺧﺮ وھﻮ ﯾﺠﯿﺐ أن ﯾﺘﻢ ﺗﻔﻌﯿﻞ ھﺬه‬
‫اﻟﺨﺎﺻﯿﺔ ﻋﻠﻰ ﻣﺴﺘﻮى اﻟﺘﻄﺒﯿﻖ ﻣﻦ ﺧﻼل ﺗﻔﻌﯿﻞ اﻟﺨﺎﺻﯿﻰ ‪ EnableExport‬ﻓﻰ ‪ WebPart‬ﻓﻰ ﻣﻠﻒ ‪Web.config‬‬

‫اﻟﺸﻜﻞ ‪38‬‬

‫و اﻷن ﻟﻨﺮى ﻛﯿﻒ ﺳﯿﺘﻌﺎﻣﻞ اﻟﻤﺴﺘﺨﺪم ﻣﻊ ھﺬه اﻟﺨﺎﺻﯿﺔ و ﻛﯿﻒ ﯾﺴﺘﻔﯿﺪ ﻣﻨﮭﺎ‬

‫اﻟﺸﻜﻞ ‪ ٣٩‬أول ﺧﻄﻮة ھﻰ ﻣﻦ ﻓﻰ ﻗﺄﻣﺔ اﻟـ‪ WebPart Zone‬ﺳﻮف ﻧﻼﺣﻆ ﻇﮭﻮر اﻟﺨﯿﺎر ‪Export‬‬

‫اﻟﺸﻜﻞ ‪ 40‬رﺳﺎﻟﺔ ﺗﺤﺬﯾﺮﯾﺔ ﻟﻮﺟﻮد ﺑﯿﺎﻧﺎت ﻣﮭﻤﺔ و ﺣﺴﺎﺳﺔ و ﻛﯿﻔﯿﺔ أﻣﻜﺎﻧﯿﺔ ﻋﺮض اﻟﻤﻠﻒ‬

‫اﻟﺸﻜﻞ ‪ 41‬اﻷن ﻧﻘﻮم ﺑﺤﻔﻆ ﻣﻠﻒ اﻻﻋﺪادات اﻟﺘﻰ ﺗﻢ ﺗﺼﺪﯾﺮھﺎ ﻣﻦ اﻷداة‬


‫>?"‪<?xml version="1.0" encoding="utf-8‬‬

‫‪٢٩ - ٣‬‬

‫‪PDF created with pdfFactory Pro trial version www.softwarelabs.com‬‬


<webParts>
<webPart xmlns="http://schemas.microsoft.com/WebPart/v3">
<metaData>
<type name="Translator_CS.Translator_CS" />
<importErrorMessage>Cannot import this Web Part.</importErrorMessage>
</metaData>
<data>
<properties>
<property name="AllowClose" type="bool">True</property>
<property name="Width" type="unit" />
<property name="strToTranslate" type="string">me</property>
<property name="AllowMinimize" type="bool">True</property>
<property name="AllowConnect" type="bool">True</property>
<property name="ChromeType" type="chrometype">Default</property>
<property name="TitleIconImageUrl" type="string" />
<property name="Description" type="string" />
<property name="Hidden" type="bool">False</property>
<property name="TitleUrl" type="string" />
<property name="AllowEdit" type="bool">True</property>
<property name="Height" type="unit" />
<property name="HelpUrl" type="string" />
<property name="Title" type="string">‫<ﯾﺎﺑﺎﻧﻲ أﳒﻠﯿﺰي ﻣﱰﺟﻢ‬/property>
<property name="CatalogIconImageUrl" type="string" />
<property name="Direction" type="direction">NotSet</property>
<property name="ChromeState" type="chromestate">Normal</property>
<property name="AllowZoneChange" type="bool">True</property>
<property name="AllowHide" type="bool">True</property>
<property name="HelpMode" type="helpmode">Navigate</property>
<property name="ExportMode" type="exportmode">All</property>
</properties>
</data>
</webPart>
</webParts>

‫ و ﺑﮫ اﻟﺨﻮاص‬XML ‫ھﺬه ھﻰ ﻣﺤﺘﻮﯾﺎت اﻟﻤﻠﻒ و ﻛﻤﺎ ﻧﻼﺣﻆ اﻧﮭﺎ ﻋﺒﺎرة ﻋﻦ ﻣﻠﻒ‬

‫ ھﻨﺎك أﯾﻀﺎ أﺟﺰاء ﻛﺜﯿﺮة‬،‫راﺋﻊ ﺟﺪا و ﻟﻜﻦ ﻛﯿﻒ ﯾﻤﻜﻨﻨﺎ أﺳﺘﯿﺮاد ﺧﻮاص ﻟﻸداة اﻟﺨﺎﺻﮫ ﺑﻨﺎ ھﺬا ﻣﺎ ﺳﻮف ﻧﺘﺤﺪث ﻋﻨﮫ ﻻﺣﻘﺎ‬
.‫ﻧﺤﺘﺎج اﻟﻰ ﻣﻌﺮﻓﺘﮭﺎ ﻟﻜﻲ ﻣﻜﺴﺐ أﻣﻜﺎﻧﯿﺎت أﻛﺜﺮ‬
‫ﻋﻨﺪ ﺗﻨﻔﯿﺬ ھﺬا اﻟﻤﺜﺎل ﺳﻮف ﺗﻼﺣﻈﻮن أﻧﮫ ھﻨﺎك ﺷﺊ رﺑﻤﺎ ﯾﻜﻮن ﻧﺎﻗﺼﺎ اﻻ وھﻮ أﻧﮫ ﻋﻨﺪ اﻟﺒﺤﺚ ﺗﺨﺘﻔﻰ ﻛﻠﻤﺔ اﻟﺒﺤﺚ ﻣﺎذا ﻟﻮ‬
‫ ﺑﺸﻜﻞ ﻗﻮى ﺟﺪا و ھﻨﺎ‬Personalization‫أردﻧﺎ أن ﺗﻜﻮن ھﺬه اﻟﻜﻠﻤﺔ ﺗﻈﮭﺮ ﻣﻊ اﻟﻤﺴﺘﺨﺪم و ھﻨﺎ ﺳﻮف ﻧﻌﺘﻤﺪ ﻋﻠﻰ اﻟـ‬

٣٠ - ٣

PDF created with pdfFactory Pro trial version www.softwarelabs.com


‫ﺳﻮف ﻣﺤﺘﺎج اﻟﻰ ﺗﻌﺪﯾﻞ ﻛﻮد ﺑﺴﯿﻂ ﻓﻰ ﻣﻜﺘﺒﺔ اﻷداة اﻟﺨﺎﺻﺔ ﺑﺎﻟﺘﺮﺟﻤﺔ ﻟﺘﻘﻮم ﺑﺘﻮﻓﯿﮫ ھﺬا اﻟﻐﺮض وھﻰ أﻧﻨﺎ ﺳﻮف ﻧﺤﺪد ﻧﻄﺎق‬
‫اﻟﺘﺨﺼﯿﺺ ‪ Personalization Scope‬و ﻛﻤﺎ ﻧﺮى ﻓﻰ اﻟﺸﻜﻞ اﻟﺘﺎﻟﻰ ﻛﯿﻒ ﯾﻤﻜﻨﻨﺎ ذﻟﻚ‬

‫اﻟﺸﻜﻞ ‪٤٢‬‬
‫وﺻﻮف ﻧﻼﺣﻆ وﺟﻮد ﻧﻮﻋﺎن ﻣﻨﮭﺎ و ھﻮ ﻣﺸﺘﺮك ‪ Shared‬و ﻣﺨﺼﺺ ﻟﻤﺴﺘﺨﺪم ‪ User‬و اﻟﻔﺮق ﺑﯿﻨﮭﻢ أن اﻷول ﻋﻨﺪ‬
‫أﺳﺘﺨﺪاﻣﮫ ﯾﺘﻢ ﺣﻔﻆ أﺧﺮ ﻛﻠﻤﺔ ﻟﻜﻞ اﻟﺘﻄﺒﯿﻖ ﺑﻤﻌﻨﻰ أذا دﺧﻞ ﻣﺴﺘﺨﺪم ) أ( و ﻗﺎم ﺑﻜﺘﺎﺑﺔ ﻛﻠﻤﺔ و دﺧﻞ ﻣﺴﺘﺨﺪم )ب( ﻓﺴﻮف ﯾﺠﺪ‬
‫اﻟﻜﻠﻤﺔ اﻟﺘﻰ ﻛﺘﺒﮭﺎ اﻟﻤﺴﺘﺨﺪم )أ( و ﻃﺒﻌﺎ ھﺬا ﻏﯿﺮ ﺻﺤﯿﺢ ﺑﺎﻟﻨﺴﺒﺔ ﻟﻠﺤﻔﺎظ ﻋﻠﻰ ﺧﺼﻮﺻﯿﺔ اﻟﻤﺴﺘﺨﺪﻣﯿﻦ ﻟﺬﻟﻚ ﺳﻮف ﻧﺴﺘﺨﺪم‬
‫‪ User‬ﻷﻧﮫ ﻣﺨﺼﺼﺔ ﻟﻠﻤﺴﺘﺨﺪم ﺑﺤﺪ ذاﺗﮫ و ﻟﻜﻦ ﻛﯿﻒ ﺳﯿﻔﺮق اﻟﺘﻄﺒﯿﻖ ﺑﯿﻦ اﻟﻤﺴﺘﺨﺪﻣﯿﻦ ھﺬا ﻣﺎ ﺳﻮف ﯾﺘﻢ ﺷﺮﺣﺔ ﻗﺮﯾﺒﺎ ﻓﻰ‬
‫اﻟﻔﺼﻞ اﻟﺨﺎص ﺑﺎﻷﻣﺎن و اﻟﻤﺴﺘﺨﺪﻣﯿﻦ ﻟﻨﻌﺪ ﻣﺮة أﺧﺮ اﻟﻰ ﻣﻮﺿﻮﻋﻨﺎ‪ ،‬ﺑﻌﺪ ھﺬا اﻟﻤﺜﺎل اﻟﻄﻮﯾﻞ ﺳﻮف ﻧﺒﺪأ رﺣﻠﺔ ﺟﺪﯾﺪة ﻣﻊ‬
‫أدوات ﺟﺪﯾﺪة و ﻃﺒﻌﺎ ﻛﻠﮭﺎ ﻟﮭﺎ ﻋﻼﻗﺔ ﺑﺎﻟـ‪.WebParts‬‬
‫و اﻷن ﻟﻨﻀﯿﻒ ﺑﻌﺾ اﻷدوات و اﻟﺘﻰ ﺳﻮف ﺗﻌﻄﻲ ﻟﻠﻤﺴﺘﺨﺪم أﻣﻜﺎﻧﯿﺎت ﺟﺪﯾﺪة و ﺑﺎﻟﻄﺒﻊ ﺳﻮف ﯾﻜﻮن ھﺬا ﺑﺄﻗﻞ ﺟﮭﺪ ﻣﻤﻜﻦ و‬
‫اﻷدوات اﻟﺘﻰ ﺳﻮف ﻧﻀﯿﻔﮭﺎ ھﻤﺎ ﻛﺎﻷﺗﻰ‬
‫•‬ ‫‪CatalogZone‬‬
‫ھﺬه اﻷداه ﺗﺤﺘﻮى ﺑﻌﺾ اﻷدوات )‪/ PageCatalogPart / DeclarativeCatalogPart‬‬
‫‪ ( ImportCatalogPart‬ھﺬه اﻷداة ﺗﻘﻮم ﺑﻌﻤﻞ ﻗﺎﺋﻤﺔ ﺑﺎﻷدوات اﻟﻤﺘﺎﺣﺔ و أﺗﺎﺣﺔ أﻣﻜﺎﻧﯿﺎت اﻷدوات اﻟﻰ ھﺬه‬
‫اﻷداوات ﻋﻠﻰ ﺳﺒﯿﻞ ﯾﻤﻜﻦ ﻟﻠﻤﺴﺘﺨﺪم أﻇﮭﺎر و أﺧﻔﺎء ﻣﺎ ﯾﺮي ﻣﻦ أﺟﺰاء وﯾﺐ ﺑﺎﻷﺿﺎﻓﺔ ﻻى أﺳﺘﯿﺮاد ﺧﺼﺎﺋﺺ اﻷدوات‬
‫اﻟﺘﻌﺮﯾﻒ ﯾﺒﺪو ﻏﯿﺮ واﺿﺢ وﻟﻜﻦ ﺳﻮف ﯾﺘﻀﺢ أﻛﺜﺮ ﻣﻊ اﻟﻤﺜﺎل‪.‬‬
‫•‬ ‫‪DeclarativeCatalogPart‬‬
‫ﺗﺘﯿﺢ ﻟﻠﻤﻄﻮر ﻋﺎرض ﻗﺎﺋﻤﺔ ﺑﺎﻷدوات اﻟﺘﻰ ﯾﻤﻜﻦ اﻟﺘﻌﺎﻣﻞ ﻣﻌﮭﺎ ) أﺿﺎﻓﺔ و ﺣﺬف ﻓﻰ أﺟﺰاء اﻟﻮﯾﺐ ‪(WebPart zone‬‬
‫•‬ ‫‪PageCatalogPart‬‬
‫ﻋﺮض ﺻﻔﺤﺔ ﺑﺎﻻدوات اﻟﺘﻰ ﺗﻌﺎﻣﻞ ﻣﻌﮭﺎ اﻟﻤﺴﺘﺨﺪم و ﻗﺎم ﺑﺄﻏﻼﻗﮭﺎ ﻟﻠﺘﯿﺢ ﻟﮫ ﻣﻦ ﺟﺪﯾﺪ أﺿﺎﻓﺔ ھﺬه اﻷدوات‪.‬‬
‫•‬ ‫‪ImportCatalogPart‬‬
‫ھﺬه اﻷداة ﺗﻘﻮم ﺑﺄﺳﺘﯿﺮاد ﺧﺼﺎﺋﺺ اﻷداة ﻋﻦ ﻃﺮﯾﻖ ﻣﻠﻒ اﻟﺬى ﻗﻤﻨﺎ ﺑﺤﻔﻈﮫ ﻣﻦ ﻗﺒﻞ‪.‬‬

‫‪٣١ - ٣‬‬

‫‪PDF created with pdfFactory Pro trial version www.softwarelabs.com‬‬


‫اﻟﺸﻜﻞ ‪ 43‬ﻛﻤﺎ ﻧﺮى أن اﻻداة ‪ CatalogZone‬ﺗﺤﺘﻮى ﻋﻠﻰ ﺑﻘﯿﺔ اﻷدوات – أذا ﺣﺎوﻟﺖ وﺿﻊ ھﺬه اﻷدوات ﺧﺎرج ‪ CatalogZone‬ﻟﻦ ﺗﻌﻤﻞ ھﺬه‬
‫اﻷدات‪.‬‬

‫اﻟﺸﻜﻞ ‪ 44‬ﻓﻘﻂ ﻟﻠﺘﺬﻛﯿﺮ أن ﺗﻐﯿﯿﺮ اﻟﺸﻜﻞ ﻗﺪ ﯾﻜﻮن ﻣﮭﻢ و ﻣﺮﯾﺢ ﻧﻔﺴﯿﺎ ‪J‬‬

‫‪٣٢ - ٣‬‬

‫‪PDF created with pdfFactory Pro trial version www.softwarelabs.com‬‬


‫اﻟﺸﻜﻞ ‪ 45‬ھﺬه ھﻮ اﻟﺸﻜﻞ ﺑﻌﺪ ﺗﻐﯿﯿﺮ ‪Style‬‬
‫و اﻷن ﻟﻨﺮى ﻛﯿﻒ ﺗﻌﻤﻞ ھﺬه اﻷدوات ﺳﻮﯾﺎً‬
‫أول ﺧﻄﻮة ﻧﻘﻢ ﺑﺄﺿﺎﻓﺔ ﻋﻨﺼﺮ ﺟﺪﯾﺪ ﻟﻠﻘﺎﺋﻤﺔ اﻟﻤﻨﺰﻟﻘﺔ ‪ Drop down list‬ﻛﻤﺎ ﻧﺮى‬

‫‪٣٣ - ٣‬‬

‫‪PDF created with pdfFactory Pro trial version www.softwarelabs.com‬‬


٤٦ ‫اﻟﺸﻜﻞ‬
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
switch (int.Parse(ddl_ShowType.SelectedValue))
{
case 0:
WebPartManager1.DisplayMode = WebPartManager.BrowseDisplayMode;
break;
case 1:
WebPartManager1.DisplayMode = WebPartManager.DesignDisplayMode;
break;
case 2:
WebPartManager1.DisplayMode = WebPartManager. CatalogDisplayMode;
break;
default:
WebPartManager1.DisplayMode = WebPartManager.BrowseDisplayMode;
break;
}
}
C# ‫اﻟﻜﻮد ﺑﺼﯿﻐﺔ‬
Protected Sub DropDownList1_SelectedIndexChanged(ByVal sender As Object,
ByVal e As System.EventArgs) Handles ddl_ShowType.SelectedIndexChanged
Select Case Val(ddl_ShowType.SelectedValue)

٣٤ - ٣

PDF created with pdfFactory Pro trial version www.softwarelabs.com


Case 0
WebPartManager1.DisplayMode = WebPartManager.BrowseDisplayMode
Case 1
WebPartManager1.DisplayMode = WebPartManager.DesignDisplayMode
Case 2
WebPartManager1.DisplayMode = WebPartManager.CatalogDisplayMode
Case Else
WebPartManager1.DisplayMode = WebPartManager.BrowseDisplayMode
End Select

End Sub

VB.net ‫اﻟﻜﻮد ﺑﺼﯿﻐﺔ‬

‫ ھﺬا ھﻮ اﻟﺸﻜﻞ ﻋﻨﺪ ﺗﻨﻔﯿﺬ اﻟﺘﻄﺒﯿﻖ ﻛﻤﺎ ﻧﻼﺣﻆ أﻧﮫ ﻻ ﯾﻮﺟﺪ أدوات ﻓﻰ ﻗﺎﺋﻤﺔ اﻷدوات و ﻓﻰ ﻣﻨﺎﻃﻖ اﻟﻌﺮض ﯾﻮﺟﺪ أداة‬: 47 ‫اﻟﺸﻜﻞ‬

٣٥ - ٣

PDF created with pdfFactory Pro trial version www.softwarelabs.com


‫ ﺗﺤﺪﯾﺪ اﻷدة و ﻣﻜﺎن اﻟﻌﺮض‬48 ‫اﻟﺸﻜﻞ‬

٣٦ - ٣

PDF created with pdfFactory Pro trial version www.softwarelabs.com


Personalization‫ ﺑﻌﺪ ذﻟﻚ ﺑﻤﺠﺮد اﻟﻌﻮدة اﻟﻰ ﻧﻤﻂ اﻷﺳﺘﻌﺮاض ﯾﺘﻢ ﺣﻔﻆ ﻛﻞ ﺷﺊ ﻓﻰ ﻗﺎﻋﺪة ﺑﯿﺎﻧﺎت اﻟـ‬49 ‫اﻟﺸﻜﻞ‬

٣٧ - ٣

PDF created with pdfFactory Pro trial version www.softwarelabs.com


‫اﻟﺸﻜﻞ ‪ : 50‬ﺗﺤﻜﻢ ﻛﺎﻣﻞ ﻓﻰ ﻣﺤﺘﻮﯾﺎت اﻟﺼﻔﺤﺔ و ﺑﺄﻗﻞ ﻛﻤﯿﺔ ﻛﻮد‬

‫ھﻨﺎك ﻣﺎ ھﻮ أﻗﻮى ﻣﻦ ذﻟﻚ وھﻮ أن ﻧﻌﻄﻲ اﻟﻤﺴﺘﺨﺪم اﻟﻘﺪرة ﻋﻠﻰ ﺗﻌﺪﯾﻞ اﻷدوات اﻟﻤﻮﺟﻮدة ﻓﻰ اﻟﺼﻔﺤﺔ و ﻛﺄن اﻟﻤﺴﺘﺨﺪم ﯾﻌﻤﻞ‬
‫ﻋﻠﻰ اﻟـ‪ VS‬ﺑﻤﻌﻨﻰ أن اﻟﻤﺴﺘﺨﺪم ﺳﻮف ﯾﻜﻮن ﻗﺎدر ﻋﻠﻰ ﺗﻐﯿﯿﺮ ﻛﻞ ﺧﺼﺎﺋﺺ اﻟﻌﻨﺎﺻﺮ اﻟﻤﻮﺟﻮدة ﻓﻰ اﻟﺼﻔﺤﺔ ﻛﺎﻟﻌﺎدة ﯾﺒﺪو‬
‫اﻟﻜﻼم ﻏﯿﺮ واﺿﺢ ‪ J‬و ﻟﻜﻦ ﻻداﻋﻲ ﻟﻠﻘﻠﻖ ﻻﻧﮫ ھﻨﺎك ﻣﺜﺎل ﻟﺘﻮﺿﯿﺢ ھﺬه اﻟﻨﻘﻄﺔ و اﻷن ﻟﻨﻜﻤﻞ ﻋﻠﻰ اﻟﻤﺜﺎل‪.‬‬
‫ﺳﻮف ﻧﻀﯿﻒ ﺑﻌﺾ اﻷدوات ﻟﻠﻤﺜﺎل‬
‫•‬ ‫‪EditorZone‬‬
‫ھﺬه اﻷداة ھﻰ اﻟﺘﻰ ﺳﻮف ﺗﺤﺘﻮى ﻋﻠﻰ ﻛﻞ أدوات اﻟﺘﻌﺪﯾﻞ و ﺳﻮف ﺗﻜﻮن ﺑﻤﺜﺎﺑﺔ ‪ Interface‬ﺑﯿﻦ‬
‫اﻟـ ‪ WebPartMAnager‬و اﻷدوات اﻟﺘﻌﺪﯾﻞ‬

‫‪٣٨ - ٣‬‬

‫‪PDF created with pdfFactory Pro trial version www.softwarelabs.com‬‬


‫•‬ ‫‪PropertyGridEditorPart‬‬
‫ﺳﻮف ﺗﻌﻄﻲ ھﺬه اﻷداة اﻟﻘﺪرة ﻋﻠﻰ ﺗﻌﺪﯾﻞ اﻟﺨﺼﺎﺋﺺ اﻟﻤﻀﺎﻓﺔ اﻟﻰ اﻷداة ‪ Custom Property‬اﻟﺘﻰ ﯾﻘﻮم ﺑﻜﺘﺎﺑﺘﮭﺎ‬
‫اﻟﻤﻄﻮر‪.‬‬
‫•‬ ‫‪LayoutEditorPart‬‬
‫ﺗﻌﻄﻲ اﻟﻤﺴﺘﺨﺪم اﻟﻘﺪرة ﻋﻠﻰ ﺗﺤﺪﯾﺪ ﻣﻜﺎن ﻋﺮض اﻷداة ﺑﺎﻷﺿﺎﻓﺔ اﻟﻰ ﺑﻌﺾ ﺧﺼﺎﺋﺺ اﻟﻌﺮض‪.‬‬
‫•‬ ‫‪AppearanceEditorPart‬‬
‫ھﺬه اﻷداة اﻟﻘﺪرة ﻋﻠﻰ ﺗﻌﺪﯾﻞ اﻷدة ﺑﺸﻜﻞ راﺋﻊ ﻣﻊ اﻟﻘﺪرة ﻋﻠﻰ ﺗﺤﺪﯾﺪ اﻟﺘﻔﺎﺻﯿﻞ ﺑﺪﻗﺔ‬
‫•‬ ‫‪BehaviorEditorPart‬‬
‫ﺗﻌﻄﻲ ﺳﯿﻄﺮة ﻋﻠﻰ ﺧﺼﺎﺋﺺ أﻛﺜﺮ دﻗﮫ و ﺳﻮف ﯾﺘﻀﺢ ﻓﻰ اﻟﻤﺜﺎل‬

‫اﻟﺸﻜﻞ ‪51‬‬

‫اﻟﺸﻜﻞ ‪٥٢‬‬

‫‪٣٩ - ٣‬‬

‫‪PDF created with pdfFactory Pro trial version www.softwarelabs.com‬‬


٥٣ ‫اﻟﺸﻜﻞ‬

٤٠ - ٣

PDF created with pdfFactory Pro trial version www.softwarelabs.com


٥٤ ‫اﻟﺸﻜﻞ‬

‫ ﻧﻀﯿﻒ ﻋﻨﺼﺮ ﺟﺪﯾﺪ ﻟﻠﻘﺎﺋﻤﺔ اﻟﻤﻨﺰﻟﻘﺔ‬: ٥٥ ‫اﻟﺸﻜﻞ‬

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)


{
switch (int.Parse(ddl_ShowType.SelectedValue))
{
case 0:
WebPartManager1.DisplayMode = WebPartManager.BrowseDisplayMode;

٤١ - ٣

PDF created with pdfFactory Pro trial version www.softwarelabs.com


break;
case 1:
WebPartManager1.DisplayMode = WebPartManager.DesignDisplayMode;
break;
case 2:
WebPartManager1.DisplayMode = WebPartManager. CatalogDisplayMode;
break;
case 3:
WebPartManager1.DisplayMode = WebPartManager. EditDisplayMode;
break;
default:
WebPartManager1.DisplayMode = WebPartManager.BrowseDisplayMode;
break;
}
}

C#‫اﻟﻜﻮد ﺑﺼﯿﻐﺔ اﻟـ‬


Protected Sub DropDownList1_SelectedIndexChanged(ByVal sender As Object,
ByVal e As System.EventArgs) Handles ddl_ShowType.SelectedIndexChanged
Select Case Val(ddl_ShowType.SelectedValue)
Case 0
WebPartManager1.DisplayMode = WebPartManager.BrowseDisplayMode
Case 1
WebPartManager1.DisplayMode = WebPartManager.DesignDisplayMode
Case 2
WebPartManager1.DisplayMode = WebPartManager.CatalogDisplayMode
Case 3
WebPartManager1.DisplayMode = WebPartManager.EditDisplayMode
Case Else
WebPartManager1.DisplayMode = WebPartManager.BrowseDisplayMode
End Select

End Sub
VB‫اﻟﻜﻮد ﺑﺼﯿﻐﺔ اﻟـ‬

٤٢ - ٣

PDF created with pdfFactory Pro trial version www.softwarelabs.com


‫اﻟﺸﻜﻞ ‪ : ٥٦‬ﻟﻠﺘﻌﺎﻣﻞ ﻣﻊ أﻣﻜﺎﻧﯿﺔ اﻟﺘﻌﺪﯾﻞ ﻻﺑﺪ ﻣﻦ أﺧﺘﯿﺎر ‪ Edit‬ﻣﻦ ﻗﺎﺋﻤﺔ ﻛﻞ أداه ﺳﻮف ﺗﻈﮭﺮ اﻟﻘﺎﺋﻤﺔ ‪ Edit‬ﻟﻜﻞ أداة ﺑﻌﺪ ﺗﻐﯿﯿﺮ ﻧﻤﻂ اﻟﻌﺮض اﻟﻰ‬
‫"اﻟﺘﺤﻜﻢ اﻟﻜﺎﻣﻞ ﻓﻰ اﻟﺘﻌﺪﯾﻞ"‬

‫‪٤٣ - ٣‬‬

‫‪PDF created with pdfFactory Pro trial version www.softwarelabs.com‬‬


‫اﻟﺸﻜﻞ ‪ 57‬ﻛﻤﺎ ﺗﻼﺣﻆ أﻧﮫ ﯾﻤﻜﻦ ﺗﻐﯿﺮ أى ﺧﺎﺻﯿﺔ ﻷي أداة ﻛﻞ ﻣﺎ ﻋﻠﯿﻚ ﺑﻌﺪ ﺗﻌﺪﯾﻞ أﺿﻐﻂ ‪OK‬‬
‫ھﻨﺎك ﻣﻌﻠﻮﻣﺔ ﺻﻐﯿﺮة و ھﻰ أﻧﮫ ﯾﻤﻜﻨﻚ ﺗﺮﺟﻤﺔ ﻛﻞ اﻟﻜﻠﻤﺎت اﻟﻤﻮﺟﻮدة ﻓﻰ اﻷدوات و ﻛﻞ ھﺬا ﻣﻦ ﻧﺎﻓﺬة اﻟﺨﺼﺎﺋﺺ ‪Properies‬‬
‫‪window‬‬

‫‪٤٤ - ٣‬‬

‫‪PDF created with pdfFactory Pro trial version www.softwarelabs.com‬‬


‫اﻟﺸﻜﻞ ‪ 58‬ھﺬا ھﻮ اﻟﺸﻜﻞ اﻟﻨﮭﺎﺋﻲ‪.‬‬

‫و ﻓﻰ اﻟﻨﮭﺎﯾﺔ ھﺬا اﻟﻔﺼﻞ أود أن ﻧﺬﻛﺮ ﺳﻮﯾﺎ ﻣﻠﺨﺼﺎ ﻟﻤﺎ ﺗﻌﻠﻤﻨﺎه ﻓﻰ ھﺬا اﻟﻔﺼﻞ‪:‬‬
‫‪ .١‬اﻟﺘﻌﺎﻣﻞ ﻣﻊ أدوات اﻟﻌﺮض و اﻟﺘﻨﺴﯿﻖ اﻟـ‪WebParts‬‬
‫‪ .٢‬أﻧﺸﺎء أداة ﻣﻦ ﻧﻮع أﺟﺰاء وﯾﺐ ‪Creating web library control that inherits from WebPart‬‬
‫‪ .٣‬اﻟﺘﻌﺎﻣﻞ ﻣﻊ أدوات ﺗﺤﺮﯾﻚ اﻟـ‪WebParts‬‬
‫‪ .٤‬اﻟﺘﻌﺎﻣﻞ ﻣﻊ أدوات اﻟﺘﻌﺪﯾﻞ و ﺗﻐﯿﯿﺮ ﺧﺼﺎﺋﺺ اﻟـ‪WebPart‬‬

‫‪٤٥ - ٣‬‬

You might also like