tag:blogger.com,1999:blog-268274882024-03-14T04:27:51.971-06:00ALI AL-MOSAWI BlogAli Al-Mosawihttp://www.blogger.com/profile/07148606862152114693noreply@blogger.comBlogger66125tag:blogger.com,1999:blog-26827488.post-83679104103788556372016-08-12T12:25:00.001-06:002016-08-12T12:25:42.189-06:00Windows IOT - Blink Dual DiodeAfter checking out the blinky app with Windows IOT on Raspberry Pi3.<br />
<br />
so lets make a simple dual blinky app.<br />
<br />
Extended hardware needed from the original Blinky is another diode and resistance or dual diode.<br />
<br />
In my simple setup I used the dual diode that came with the È37 sensor kit from SunFlowerÈ.<br />
<br />
Connection configuration as below:<br />
<br />
Dual Diode<br />
-GRD- -------------- Connected to Ground through one resistance (220 ohm)<br />
-G- -------------- Connected to Pin 5<br />
-R- -------------- Connected to Pin 6<br />
<br />
Application as follow:<br />
the main console class have the following private members<br />
<blockquote class="tr_bq">
private GpioPin pin5;<br />
private GpioPin pin6;<br />
private DispatcherTimer timer;</blockquote>
<br />
<blockquote class="tr_bq">
public MainPage()<br />
{<br />
InitializeComponent();<br />
timer = new DispatcherTimer();<br />
timer.Interval = TimeSpan.FromMilliseconds(500);<br />
timer.Tick += Timer_Tick;<br />
InitGPIO();<br />
if (pin5 != null)<br />
{<br />
timer.Start();<br />
} <br />
} </blockquote>
<br />
<blockquote class="tr_bq">
private void InitGPIO()<br />
{<br />
var gpio = GpioController.GetDefault();<br />
// Show an error if there is no GPIO controller<br />
if (gpio == null)<br />
{<br />
pin5 = null;<br />
pin6 = null;<br />
GpioStatus.Text = "There is no GPIO controller on this device.";<br />
return;<br />
}<br />
pin5 = gpio.OpenPin(5);<br />
pin6 = gpio.OpenPin(6);<br />
pin5.SetDriveMode(GpioPinDriveMode.Output);<br />
pin6.SetDriveMode(GpioPinDriveMode.Output);<br />
GpioStatus.Text = "GPIO pin initialized correctly.";<br />
} </blockquote>
<br />
<br />
<blockquote class="tr_bq">
private int index = 0;<br />
private void Timer_Tick(object sender, object e)<br />
{<br />
index++;<br />
if (index > 3) index = 0;<br />
switch (index)<br />
{<br />
case 0:<br />
pin5.Write(GpioPinValue.Low);<br />
pin6.Write(GpioPinValue.Low);<br />
break;<br />
case 1:<br />
pin5.Write(GpioPinValue.High);<br />
pin6.Write(GpioPinValue.Low);<br />
break;<br />
case 2:<br />
pin5.Write(GpioPinValue.High);<br />
pin6.Write(GpioPinValue.High);<br />
break;<br />
case 3:<br />
pin5.Write(GpioPinValue.Low);<br />
pin6.Write(GpioPinValue.High);<br />
break;<br />
}<br />
}</blockquote>
the result as below:-<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj50V-LxUUTf-f0DX3wQA1xs7c5Lz0nacP6r2QJ3pCJISqM4JQcYLlc6XyL2BpcnIJwF9o6ILcV1i6yQxO9NLq6DWgioK-i9mUVOM9giuEkVcdw2smBWcW55ObDj2Uf3gAE1aaxqw/s1600/20160623_001033.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj50V-LxUUTf-f0DX3wQA1xs7c5Lz0nacP6r2QJ3pCJISqM4JQcYLlc6XyL2BpcnIJwF9o6ILcV1i6yQxO9NLq6DWgioK-i9mUVOM9giuEkVcdw2smBWcW55ObDj2Uf3gAE1aaxqw/s320/20160623_001033.jpg" width="320" /></a></div>
<br />
<br />Ali Al-Mosawihttp://www.blogger.com/profile/07148606862152114693noreply@blogger.com0tag:blogger.com,1999:blog-26827488.post-13851399832934230122016-02-24T13:00:00.001-07:002016-02-24T13:00:22.474-07:00Microsoft Dynamic CRMFrom a Microsoft introduction video about Microsoft dynamics CRM that summarized the main features as below:-<br />
<br /><br />
<div>
CRM Main Functions<br />==============<br />Supporting Sales, Marketing & Services</div>
<div>
<br />Sales Functions<br />==============<br />-Leads<br />-Opportunities<br />-Communication tracking<br />-Product Database<br />-Sales Processes</div>
<div>
<br /></div>
<div>
<div>
Client Cares Functions<br />==============<br />-Case Recording<br />-Contract MAnagement <br />-Services & Resources Management<br />-Appointment Scheduling<br />-Knowledge base</div>
</div>
<div>
<br />Marketing Functions<br />==============<br />-Planning & Budgeting<br />-Marketing Lists<br />-Compaigns<br />-Tracking and reporting</div>
<div>
<br /></div>
<div>
Some of the main process to simplify the work are as below:-</div>
<div>
<br /></div>
<div>
Sales Process</div>
<div>
==============</div>
<ol>
<li>Create Lead</li>
<li>Qualify</li>
<li>Convert to Opportunity</li>
<li>Create Quote</li>
<li>Create Order</li>
<li>Create Invoice</li>
</ol>
<div>
Marketing process:-</div>
<div>
======================</div>
<ol>
<li>Planning & Budgeting</li>
<li>Creating and managing lists</li>
<li>planning and creating campaigns</li>
<li>Launching and Managing Campaigns</li>
<li>Tracking and Reporting</li>
</ol>
Will try to summarize Dynamic AX,NAV,GL & SL later<br />
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
Ali Al-Mosawihttp://www.blogger.com/profile/07148606862152114693noreply@blogger.com0tag:blogger.com,1999:blog-26827488.post-86347809494478187652015-06-22T02:03:00.000-06:002015-06-22T02:03:22.202-06:00Running RDLC reports on AzureAfter configuring and uploading the web app and its db, the ASPNET MVC worked perfectly until I tested the reports.<br />
Started to check for answers and found a solution.<br />
<br />
Errors that you may face, as below:-<br />
<br />
<ol>
<li>Could not load file or assembly 'Microsoft.ReportViewer.WebForms, Version=12.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91' or one of its dependencies. The system cannot find the file specified.<br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_lvbQGZ3Rf5dV7ZeJNLSywwmWaCcrxqs5Khb7OqUejPcnQsvnXbNcCSJpmFRYkddgDXoVfqauaJguDRXylr2nf3OcWo1MySBk0QhcVFHlssEGqSGVaiPQew-WiChsUqccNo6ESg/s1600/01.+Error+1.PNG" imageanchor="1"><img border="0" height="177" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_lvbQGZ3Rf5dV7ZeJNLSywwmWaCcrxqs5Khb7OqUejPcnQsvnXbNcCSJpmFRYkddgDXoVfqauaJguDRXylr2nf3OcWo1MySBk0QhcVFHlssEGqSGVaiPQew-WiChsUqccNo6ESg/s640/01.+Error+1.PNG" width="640" /></a> </li>
<li>Could not load file or assembly 'Microsoft.ReportViewer.Common, Version=12.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91' or one of its dependencies. The system cannot find the file specified. <div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixxtBTSGsG-aHa5-8OhVzUh5sqgaJ6ms6qYdEbgumdeYPDKF6Cfq9xNQ2xzoE8rUxgbUe1MLmWsskqgOF_mXnAIUkrdCUodTF5z6O6X-MPynSfZ3J6vebQqpVRnpPH0bpiaYECbQ/s1600/03.+Error+2.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="88" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixxtBTSGsG-aHa5-8OhVzUh5sqgaJ6ms6qYdEbgumdeYPDKF6Cfq9xNQ2xzoE8rUxgbUe1MLmWsskqgOF_mXnAIUkrdCUodTF5z6O6X-MPynSfZ3J6vebQqpVRnpPH0bpiaYECbQ/s640/03.+Error+2.PNG" width="640" /></a></div>
</li>
<li> Could not find file 'D:\home\site\wwwroot\Views\Reports\ItemLabels.rdlc'. <div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgflQWRqqSNbQctSYlyFECb05Xbb_isWWu03QNmO5b_7xL3Zwp3l8qZmHfVOTJGOTZGj03ObRvDRUJCEkJxRXy32F0WVzh8ksI-u2bKCR_1Ank4kQ8ot8uUFLx4vb5BnN3tvsdw9A/s1600/09.+RDLC+file+not+found+Capture.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="108" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgflQWRqqSNbQctSYlyFECb05Xbb_isWWu03QNmO5b_7xL3Zwp3l8qZmHfVOTJGOTZGj03ObRvDRUJCEkJxRXy32F0WVzh8ksI-u2bKCR_1Ank4kQ8ot8uUFLx4vb5BnN3tvsdw9A/s640/09.+RDLC+file+not+found+Capture.PNG" width="640" /></a></div>
</li>
<li> Could not load file or assembly 'Microsoft.ReportViewer.ProcessingObjectModel, Version=12.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91' or one of its dependencies. The system cannot find the file specified. </li>
</ol>
<br /><br /> So the errors 1,2 & 4 were clearly missing references and 3 was missing the rdlc file.<ol>
</ol>
<div>
check on google and from this <a href="http://stackoverflow.com/questions/22253607/could-not-load-file-or-assembly-microsoft-reportviewer-common-version-11-0-0-0">link</a> on stackoverflow. I started adding one reference at a time.</div>
<div>
so the solution was first to add new reference to the MVC web project and find the dlls from the GAC folder in "<span style="background-color: #eeeeee; color: #222222; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, sans-serif; font-size: 13px; line-height: 9.65714263916016px; white-space: pre-wrap;">C:\Windows\assembly\GAC_MSIL\</span>", each assemply have its own folder having different verstions, as I was using version 12, I selected that version for the below assemblies:-</div>
<div>
<br /></div>
<div>
<ul style="background-color: white; border: 0px; color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 15px; line-height: 11.1428575515747px; margin: 0px 0px 1em 30px; padding: 0px;">
<li style="border: 0px; margin: 0px 0px 0.5em; padding: 0px; word-wrap: break-word;">Microsoft.ReportViewer.Common.dll</li>
<li style="border: 0px; margin: 0px 0px 0.5em; padding: 0px; word-wrap: break-word;">Microsoft.ReportViewer.ProcessingObjectModel.dll</li>
<li style="border: 0px; margin: 0px 0px 0.5em; padding: 0px; word-wrap: break-word;">Microsoft.ReportViewer.WebForms.dll (was already added)</li>
<li style="border: 0px; margin: 0px 0px 0.5em; padding: 0px; word-wrap: break-word;"><span style="line-height: 11.1428575515747px;">Microsoft.ReportViewer.DataVisualization.dll</span></li>
</ul>
<div>
<span style="color: #222222; font-family: Helvetica Neue, Helvetica, Arial, sans-serif;"><span style="font-size: 15px; line-height: 11.1428575515747px;"><br /></span></span></div>
<div>
<span style="color: #222222; font-family: Helvetica Neue, Helvetica, Arial, sans-serif;"><span style="font-size: 15px; line-height: 11.1428575515747px;">Steps: after selecting add referece, click on browse, and enter the path "</span></span><span style="background-color: #eeeeee; color: #222222; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, sans-serif; font-size: 13px; line-height: 9.65714263916016px; white-space: pre-wrap;">C:\Windows\assembly\GAC_MSIL\</span><span style="color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 15px; line-height: 11.1428575515747px;">", select each of the above folder and select the correct dll version for your </span><span style="color: #222222; font-family: Helvetica Neue, Helvetica, Arial, sans-serif;"><span style="font-size: 15px; line-height: 11.1428575515747px;">application</span></span></div>
<div>
<span style="color: #222222; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 15px; line-height: 11.1428575515747px;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOILIp08e29p0008ac_43cASMUC-ebUljj0RA1Ht4RVSs83oHYvzAJo3TyE53RCIHY0Z9PNdkyJllJE7MRwz6DuPJYKKRFdlW7EGRYyhbUloYoA-8vsWzxkG1Y277rlcv8dgRftg/s1600/04.+addreference.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOILIp08e29p0008ac_43cASMUC-ebUljj0RA1Ht4RVSs83oHYvzAJo3TyE53RCIHY0Z9PNdkyJllJE7MRwz6DuPJYKKRFdlW7EGRYyhbUloYoA-8vsWzxkG1Y277rlcv8dgRftg/s640/04.+addreference.PNG" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
On my local machine I had version 10,11 &12, </div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhahx6d9zItKnBZqhfJ7O9WygFuyA1JCf4wOKQawmp39HIzRM64jpUJnjHumVJXM86rqOq4os5Eb02yMpJABchrRnot4vSrwqefv7ojhI23bWKc7gH0jNiRXdl1MK1wf5QEuJlSzA/s1600/05.+addreference.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="450" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhahx6d9zItKnBZqhfJ7O9WygFuyA1JCf4wOKQawmp39HIzRM64jpUJnjHumVJXM86rqOq4os5Eb02yMpJABchrRnot4vSrwqefv7ojhI23bWKc7gH0jNiRXdl1MK1wf5QEuJlSzA/s640/05.+addreference.PNG" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
Inside the version 12 folder there was one dll only, so I selected it.</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhO2gn4AF4sgIrjUWZ-PmOZyo0dasYlcPbqJbvtQBDQULOa2mOeAZDGpoCQujEKFLUcx-db0fQAOMwG8KZ6C0O9xHWdxheqGctOCM5btlA5QR6YaDiEbWE5T1YEFZV9Ezo6nasy_w/s1600/06.+addreference.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="450" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhO2gn4AF4sgIrjUWZ-PmOZyo0dasYlcPbqJbvtQBDQULOa2mOeAZDGpoCQujEKFLUcx-db0fQAOMwG8KZ6C0O9xHWdxheqGctOCM5btlA5QR6YaDiEbWE5T1YEFZV9Ezo6nasy_w/s640/06.+addreference.PNG" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
And it appeared in the references as any dll </div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaOPYNnF851Y_RbOdpLr1Yb1tqxFXMoy_Y5CcJja3GFrFy7zjqtgpnsC5YB61HQqwpA3VsgE9wME_HaDp9njXceIqF_b30F0kJVux4vsda9_YEn5K2VkaPnJu8tXRJPDLDhPPWvw/s1600/07.+make+it+local+and+publish.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="422" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaOPYNnF851Y_RbOdpLr1Yb1tqxFXMoy_Y5CcJja3GFrFy7zjqtgpnsC5YB61HQqwpA3VsgE9wME_HaDp9njXceIqF_b30F0kJVux4vsda9_YEn5K2VkaPnJu8tXRJPDLDhPPWvw/s640/07.+make+it+local+and+publish.PNG" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div>
<span style="color: #222222; font-family: Helvetica Neue, Helvetica, Arial, sans-serif;"><span style="font-size: 15px; line-height: 11.1428575515747px;"><br /></span></span></div>
</div>
<div>
All the the above need to have there property copy to local set to true.</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjK3PlxFCad3amEeMjOoPHf7zTHcAVWuHSZ6WAfve90Xemuu40EFy5Nz8vsmD3IyzVkLWeGfX0HrJMrzXQ8o1PRvGFVo3HaPpM0vQnRj-XOj3ibdLbj-02_h0N10J49GoUV-VAbEw/s1600/12.+all+reference+added+.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjK3PlxFCad3amEeMjOoPHf7zTHcAVWuHSZ6WAfve90Xemuu40EFy5Nz8vsmD3IyzVkLWeGfX0HrJMrzXQ8o1PRvGFVo3HaPpM0vQnRj-XOj3ibdLbj-02_h0N10J49GoUV-VAbEw/s640/12.+all+reference+added+.PNG" width="596" /></a></div>
<div>
<br /></div>
<div>
And beware that the size of the dlls may go up to 10mb.</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyP5xHxLB9nWU-uFQ1xpoMWk-5srQPA224aGITg0qOHcUD0xZlL2_dhWfgfNNVXD_8CUCKQLIfN9awwUk-_sySVpc4Eq8hRbmvpYn1-sz0IfGn4cCDTO7pcWuWel1CxCNL4eI2OA/s1600/13.+overall+size+.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="108" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyP5xHxLB9nWU-uFQ1xpoMWk-5srQPA224aGITg0qOHcUD0xZlL2_dhWfgfNNVXD_8CUCKQLIfN9awwUk-_sySVpc4Eq8hRbmvpYn1-sz0IfGn4cCDTO7pcWuWel1CxCNL4eI2OA/s640/13.+overall+size+.PNG" width="640" /></a></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
upload the RDLC file as I was still debugging.</div>
<div>
<br /></div>
<div>
The RDLC reports worked fine</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
Ali Al-Mosawihttp://www.blogger.com/profile/07148606862152114693noreply@blogger.com3tag:blogger.com,1999:blog-26827488.post-43542308081528190902015-06-14T02:34:00.000-06:002015-06-14T03:18:38.153-06:00Azure SEOWe got accepted in the BizSpark program and the first thing I had in my head was to compare the performance of our web site with a version on the cloud, even though our landing page is pure html, a bit of java and optimized images, this was the result I got from GT Metrix,<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlLg0Y2KOYJ8InF_NiXUHq6eghIjnUmzjDFqz7r4OOKPja8IAJNUu00zzAWpnrRJ-xaKsDdaJsYhOfMQVipFUujMFvQJiYeOR9BD0iWb2v0_FC1OyniEfW90SKo7uGu-nevDq6GA/s1600/original+web+site-98.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="499" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlLg0Y2KOYJ8InF_NiXUHq6eghIjnUmzjDFqz7r4OOKPja8IAJNUu00zzAWpnrRJ-xaKsDdaJsYhOfMQVipFUujMFvQJiYeOR9BD0iWb2v0_FC1OyniEfW90SKo7uGu-nevDq6GA/s640/original+web+site-98.PNG" width="640" /></a></div>
<br />
so you can see from the above, that I already optimized the site to 98% on the normal hosting that we had (<a href="http://canadianinfotech.com/">http://CanadianInfoTech.com</a>).<br />
And when we moved the html files directly to the cloud and checked it, we got the below:-<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqAYw1Sb7ZhaOHDXCBhPf_rE8_JUZuuFbW-tf-4qx3xNmIDvXsfvz_qjoh4PCMRAPTSbnYw2axS_1zLG9VPGTvLwY7EqIEcEoOpzX_TugsHtZ8JOV-FZgnw1QwpdFH35LWHxolDg/s1600/on+the+cloud-93.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="460" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqAYw1Sb7ZhaOHDXCBhPf_rE8_JUZuuFbW-tf-4qx3xNmIDvXsfvz_qjoh4PCMRAPTSbnYw2axS_1zLG9VPGTvLwY7EqIEcEoOpzX_TugsHtZ8JOV-FZgnw1QwpdFH35LWHxolDg/s640/on+the+cloud-93.PNG" width="640" /></a></div>
<br />
<br />
so we have one point that is making a big issue and its "<span style="background-color: #fbfbfb; color: #436688; font-family: Arial, Tahoma, Verdana, sans-serif; font-size: 12px; line-height: 13.4290904998779px;"><i>The following cacheable resources have a short freshness lifetime. Specify an expiration at least one week in the future for the following resources:-</i></span>"<br />
<br />
so before fixing it, I wanted to move the main css & js to a CDN, checked some torurials and appeared now its a peace of cake, by doing the following:-<br />
<br />
open your azure portal,<br />
<br />
<ol>
<li>select CDN, click the plus, select quick create.</li>
<li>Select Otigin Type: Web App</li>
<li>Select Original URL your target web site.</li>
</ol>
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMDvXjMP3wzjrbuuuldK6-rybri34B7wZmv5I0Unwl7vqQT8VmDWVNps7RqLNMNcEcH1R0XWfNJFIP1mGVOZWYcEwB_pHsm4_jqopGTfYXuwQO9DV8xDNe1u2_bTnG9GIHgqWcCg/s1600/Create+CDN+for+web+site.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="380" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMDvXjMP3wzjrbuuuldK6-rybri34B7wZmv5I0Unwl7vqQT8VmDWVNps7RqLNMNcEcH1R0XWfNJFIP1mGVOZWYcEwB_pHsm4_jqopGTfYXuwQO9DV8xDNe1u2_bTnG9GIHgqWcCg/s640/Create+CDN+for+web+site.PNG" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Be aware that there are a lot of tutorial that will tell you go and create storage, a container blob, set security, add your files, etc, that was the old method and had a lot of headache when you needed to update you files. dont use it anymore. a great video about this can be found <a href="http://channel9.msdn.com/Shows/Azure-Friday/Azure-Websites-CDN-Content-Distribution-Network-Support-with-Yochay-Kiriaty">here</a>.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
One issue here, you can't test it directly, so if you want to go for lunch,play a game or take a break this will be a good time for it, as it will take a bit of time till the new CDN end point will start working.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
So we are back, the next day, checked the end point and the site opened from it, but I did not yet update the resources to read from the end point.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
So I changed all the file references to the endpoint, for example :-</div>
<div class="separator" style="clear: both; text-align: left;">
<pre class="brush: html">
<img alt="laptop" height="378" src="/img/laptop.png" title="laptop" width="632" />
</pre>
</div>
<div class="separator" style="clear: both; text-align: left;">to</div>
<div class="separator" style="clear: both; text-align: left;">
<pre class="brush: html">
<img alt="laptop" height="378" src="http://az771562.vo.msecnd.net/img/laptop.png" title="laptop" width="632" />
</pre>
</div>
<div style="background-color: white; box-sizing: border-box; color: #666666; font-family: 'Segoe UI', 'Helvetica Neue', Arial, sans-serif; font-size: 14px; line-height: 1.6; margin-bottom: 0.65rem; padding: 0px; text-rendering: optimizeLegibility;">
<br /></div>
References: if you still have a problem, this blog post was really helpful to me, <a href="https://azure.microsoft.com/blog/2014/09/18/enabling-cdn-for-azure-websites/">here</a><br />
<br />
before doing so, I needed to make a new copy of my web site, so I have a special version for the cloud.<br />
<br />
If my the landing page was MVC ASP.NET I prefare to make html helper or another way to let all the resources work with the cdn, but for my company main page it was simple html.<br />
<br />
So I started to replace the paths for the images, css and the js, here VS replace tool was handy.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhg4sVBEEPnCPfAs0E_BgoZxxbLvOKyvapi7N70xaLtxLfV1UljvTQac64It7c_2Z3zR_mIU9wwAmdoCcYO3NUgUNtRNxVHydUt03eM0r66J3RqkCNTJOgsWO4FBA8cj4gmWXfaJw/s1600/replace+for+images.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="283" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhg4sVBEEPnCPfAs0E_BgoZxxbLvOKyvapi7N70xaLtxLfV1UljvTQac64It7c_2Z3zR_mIU9wwAmdoCcYO3NUgUNtRNxVHydUt03eM0r66J3RqkCNTJOgsWO4FBA8cj4gmWXfaJw/s400/replace+for+images.PNG" width="400" /></a></div>
For the stander JQuery and other well known plugins, I preferred to leave them on there cdn domains, to utilize caching from other web sites.<br />
<br />
Used the Azure publishing and starting testing again. I'm expecting a small enhancement as we did not fix the main issue yet. And as expected 93%, the same results, but the paths for all the resource are coming from the CDN end point, great.<br />
<br />
This <a href="http://azure.microsoft.com/blog/2011/03/18/best-practices-for-the-windows-azure-content-delivery-network/">link</a> was really helpful, added the following to the web config:-<br />
<br />
<br />
<pre class="brush: xml; highlight: [8]">
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0"/>
</system.web>
<system.webServer>
<staticContent>
<clientCache cacheControlMode="UseExpires" httpExpires="Tue, 19 Jan 2038 03:14:07 GMT" />
<remove fileExtension=".html" />
<mimeMap fileExtension=".html" mimeType="text/html; charset=UTF-8" />
</staticContent>
</system.webServer>
</configuration>
</pre>
and the performance returned to normal, In php hosting it did not start 98%, but I updated the .htaccess file, so in IIS, the web config can do the trick.<br />
<br />
even though that the last step was the key to enhance the performance, moving to the CDN was important.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgS1zeKIi2nR-fzDJyDSySDWvQUwESHmBEXV4FvfBun9le6JrojJTPeo7f1evoACt7vSFzHSwutrfkisxLC9oASPpIoU4_NyCqO4AVjDjbOMTv_FmvoJFdmvrt6NyGMRpSqhHb5DQ/s1600/Azure+performence+up+to+98%2525.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="510" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgS1zeKIi2nR-fzDJyDSySDWvQUwESHmBEXV4FvfBun9le6JrojJTPeo7f1evoACt7vSFzHSwutrfkisxLC9oASPpIoU4_NyCqO4AVjDjbOMTv_FmvoJFdmvrt6NyGMRpSqhHb5DQ/s640/Azure+performence+up+to+98%2525.PNG" width="640" /></a></div>
<br />
And if you check the details this is basic comparison:-<br />
<table style="width: 100%;">
<tbody>
<tr>
<td><b>#</b></td>
<td><b>Item</b></td>
<td><b>PHP Hosting</b></td>
<td><b>Azure Hosting</b></td>
</tr>
<tr>
<td>1</td>
<td>Page Load time</td>
<td>1.52s</td>
<td>1.32s</td>
</tr>
<tr>
<td>2</td>
<td>Page size</td>
<td>490Kb</td>
<td>490Kb</td>
</tr>
<tr>
<td>3</td>
<td>Number of request</td>
<td>28</td>
<td>28</td>
</tr>
<tr>
<td>4</td>
<td>Page Speed Grade</td>
<td>98%</td><td>98%</td>
</tr>
<tr>
<td>5</td>
<td>Y Slow Grade</td>
<td>86%</td>
<td>96%</td>
</tr>
<tr>
<td><br /></td><td><br /></td><td><br /></td><td><br /></td>
</tr>
</tbody></table>
So we see a small gain of 0.20 sec. Moving that 98% higher will not be an easy task, and if I have time I will try my best to find the main issues causing them and the best fixes.<br />
<br />
I wanted to note that on the <a href="https://developers.google.com/speed/pagespeed/insights">google developer insights</a> I did not find a real difference between the two.<br />
it was 89% for the desktop and 71% for the Mobil, we need to tackle these number later too.<br />
<br />
<br />
<br />
<br />Ali Al-Mosawihttp://www.blogger.com/profile/07148606862152114693noreply@blogger.com0tag:blogger.com,1999:blog-26827488.post-45178772621084974862015-06-11T08:33:00.001-06:002015-06-11T08:36:43.324-06:00Programming Mobile Services for Android Handheld Systems: ConcurrencyCompleted another online certificate, this one was much more interesting talking more about patterns and services and near the end of the 4th course (total of 6 courses)<br />
<br />
Shared link:<br />
<a href="https://www.coursera.org/account/accomplishments/certificate/5ZNYR8W4YR">https://www.coursera.org/account/accomplishments/certificate/5ZNYR8W4YR</a><br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOfW41OA9qqUqsCcMYGLi1pcgCFAgvIJqj4cIkfNySyDI_Yr6hk-UkaHjjohGA1xxHSbGK2WZ6oQsd9oTA5QFih11oxT9Wbpxvh_fyoB50lMqD9STDqDivtYwvjAw9RXKuiaPUrw/s1600/Capture.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="491" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOfW41OA9qqUqsCcMYGLi1pcgCFAgvIJqj4cIkfNySyDI_Yr6hk-UkaHjjohGA1xxHSbGK2WZ6oQsd9oTA5QFih11oxT9Wbpxvh_fyoB50lMqD9STDqDivtYwvjAw9RXKuiaPUrw/s640/Capture.PNG" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg99sJq91_0exWPHpFrPdfA35atr4_ovsa90e0z_-Vg15eWj8EeZNsiufInMp6VcTNiPlwiJSfBUGDoNpD8S8kU0RAIlxRKWyOQ4aognYrJXpvXb0uoviBkAaPBLUINAk3a7XwiqA/s1600/Capture.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="563" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg99sJq91_0exWPHpFrPdfA35atr4_ovsa90e0z_-Vg15eWj8EeZNsiufInMp6VcTNiPlwiJSfBUGDoNpD8S8kU0RAIlxRKWyOQ4aognYrJXpvXb0uoviBkAaPBLUINAk3a7XwiqA/s640/Capture.PNG" width="640" /></a></div>
<br />Ali Al-Mosawihttp://www.blogger.com/profile/07148606862152114693noreply@blogger.com0tag:blogger.com,1999:blog-26827488.post-49637336136429931842015-03-24T01:42:00.004-06:002015-03-24T01:42:59.416-06:00Great Online CoursesAs I'm referring these site a lot to friends and colleges, I decided to add them to the blog and share it.<br />
<br />
So Im listing them below with thier links and slogans, I have experience with all of them and I can say it made learning more easier & more joyful.<br />
<br />
<a href="https://www.coursera.org/">Coursera</a><br />
Take the world's best courses, online, for free.<br />
<a href="https://www.coursera.org/">https://www.coursera.org</a><br />
<br />
<a href="https://novoed.com/">Novoed</a><br />
NovoEd delivers effective and engaging online courses with our social learning platform.<br />
<div>
<a href="https://novoed.com/">https://novoed.com/</a></div>
<div>
<br /></div>
<div>
<a href="https://www.edx.org/">edX</a></div>
<div>
Rethink your world - experience the best courses wherever, whenever you want.</div>
<div>
<a href="https://www.edx.org/">https://www.edx.org/</a></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
Update me if you think I need to add more :)</div>
Ali Al-Mosawihttp://www.blogger.com/profile/07148606862152114693noreply@blogger.com0tag:blogger.com,1999:blog-26827488.post-86632118212099674202015-01-24T02:16:00.001-07:002015-01-24T02:23:55.732-07:00SQL Linked Server connation to Informix database<br />
<div class="MsoNormal">
Setting up connection to Informix Database through SQL Management
Studio was not so easy anyhow with a bit of work and research it could be accomplished.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Im using MS SQL 2014 stander edition, with Informix
database. The system localz need to be set too as it depend on the Informix setting,
in my case Informix was hosted on Linux (Red Hat 6 Server) with Arabic language.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b><u>First: Informix SDK and locals</u></b></div>
<div class="MsoNormal">
First we need to install the Informix sdk on the machine that
is running SQL Management Studio . In my case I downloaded the latest 64bit from IBM
web site (clientsdk.4.10.FC4DE.WIN) and installed it.</div>
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
And then as I need the correct locals (Arabic Language) I
installed the “Informix International Language Supplement” in my case it was “Informix
International Language Supplement 3.30.MC2_C511MML” and selected Arabic “ar_AE.1256”<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Even though it did not find the Informix directory I only
needed to provide the path (“C:\Program Files\IBM Informix Client SDK”) and everything
went fine.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
If you are here you can configure the odbc driver and test
that all setting in your host are correctly buy testing the ODBC 64bit setting.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b><u>Secondly:</u></b></div>
<div class="MsoNormal">
I run the following in command prompt</div>
<div>
<span style="color: #333333; font-family: monospace, sans-serif;"><span style="line-height: 10.2400007247925px;"><b><br /></b></span></span></div>
<div>
<span style="color: #333333;"><span style="line-height: 10.2400007247925px;"><b><span style="font-family: monospace, sans-serif;"> </span><span style="font-family: Courier New, Courier, monospace;">regsvr32 ifxoledbc</span></b></span></span></div>
<div>
<span style="color: #333333; font-family: monospace, sans-serif;"><span style="line-height: 10.2400007247925px;"><b><br /></b></span></span></div>
<div>
<span style="color: #333333; font-family: monospace, sans-serif;"><span style="line-height: 10.2400007247925px;"><b><br /></b></span></span></div>
<div>
And to to prepare the Informix server to work with OLEDB we need to run a script on the master database of the server itself.</div>
<div>
The script file can be found in the directory for the Informix SDK that we installed in the first step, we need to copy it to the Linux server hosting the Informix database and run it by using the dbaccess command as below:</div>
<div>
<b> <span style="font-family: Courier New, Courier, monospace;">dbaccess sysmaster coledbp.sql</span></b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b><u>Finally: inked Server Setting on SQL Management Studio</u></b></div>
<div class="MsoNormal">
Before starting the linked server you need to change a bit
of the driver setting by expanding the provider node and right clicking on the ifxoledbc
and selecting properties.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
We need to check the Dynamic parameter (The first name) and
allow inprocess as below:<o:p></o:p></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwX6eHHDHOgmFhp0C9x8DsIPzhPPLbFF5C5eAgxHyj3jtnT9yOjNAByYXRZ8c62FdOmrPC9rCySMd45kaAmgR3k0PiLhOfhOEKSIV62923Hk_aNuJghmDwREBFxH7Ha7yHRP6ihA/s1600/ifxoledbc+setting.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwX6eHHDHOgmFhp0C9x8DsIPzhPPLbFF5C5eAgxHyj3jtnT9yOjNAByYXRZ8c62FdOmrPC9rCySMd45kaAmgR3k0PiLhOfhOEKSIV62923Hk_aNuJghmDwREBFxH7Ha7yHRP6ihA/s1600/ifxoledbc+setting.PNG" height="287" width="320" /></a></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Starting the linked server setting, I opened Microsoft SQL Management
studio, when to Server objects and then linked servers and right clicked and
selected new linked server.<o:p></o:p></div>
<div class="MsoNormal">
Added the following setting<o:p></o:p></div>
<div class="MsoNormal">
<b><u>General Tab<o:p></o:p></u></b></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
Linked
Server: AnyNameYouLike (for me I used INFORMIX_DB)<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
Provider: IBM Informix OLEDB
Provider<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
DProduct
Name: ifxoledbc<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
DataSource: DatabaseName@ServerNAme<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
Provider
String: DB_LOCALE=ar_AE.1256;CLIENT_LOCALE=ar_AE.1256<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHQvYFY4AChT-SIaEBgNURrcTDUsMOlgQ-gdfNE2bSV9OP0XAQq1ohOnGOc0cImERPZfs06pCl4BsNk-562eZ3851SlR_ekMn7amdtCXSVls1spbV1wyPqw05b_QVfw-r6bfgJzw/s1600/General+Tab.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHQvYFY4AChT-SIaEBgNURrcTDUsMOlgQ-gdfNE2bSV9OP0XAQq1ohOnGOc0cImERPZfs06pCl4BsNk-562eZ3851SlR_ekMn7amdtCXSVls1spbV1wyPqw05b_QVfw-r6bfgJzw/s1600/General+Tab.PNG" height="289" width="320" /></a></div>
<br />
<div class="MsoNormal">
<b><u>Security Tab:<o:p></o:p></u></b></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
Be Made
using This Security context:<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
Remote
login: your login to
the Informix database<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
With
password: your password to
the Informix database<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSK4pvEdEktkrWyi88pbTVahK_103AsIkDW1sQMN0pRgHCWbyMqGm-xFTPeHYjX2coZucq4jrFh816ThXW3uhuY3FKeF9mQ9VI1W0Rjsu624d9e2DbO1sLRcNfAKD0VDTTdtu0Hg/s1600/Security+Tab.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSK4pvEdEktkrWyi88pbTVahK_103AsIkDW1sQMN0pRgHCWbyMqGm-xFTPeHYjX2coZucq4jrFh816ThXW3uhuY3FKeF9mQ9VI1W0Rjsu624d9e2DbO1sLRcNfAKD0VDTTdtu0Hg/s1600/Security+Tab.PNG" height="287" width="320" /></a></div>
<br />
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
<b><u>Server
Options Tab<o:p></o:p></u></b></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
Change the
RPC and RPC OUT to true<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0in;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihsp_gvm5eRx79FmKUfiwUnRgs2R9V4KF6tsRnG1wCKjkitxDyKwp8ZUrqd-a9N2LfEhe-yIWauy8ZbxbR5pOlPRtMc3nq4xtwkIgQ7ZX17OYZRCsLQZxrcQ1k0_MgUVexukfqgA/s1600/Server+Options+Tap.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihsp_gvm5eRx79FmKUfiwUnRgs2R9V4KF6tsRnG1wCKjkitxDyKwp8ZUrqd-a9N2LfEhe-yIWauy8ZbxbR5pOlPRtMc3nq4xtwkIgQ7ZX17OYZRCsLQZxrcQ1k0_MgUVexukfqgA/s1600/Server+Options+Tap.PNG" height="287" width="320" /></a></div>
<br />
<div class="MsoNormal">
Note: If you don’t have special language setting you can
leave the provider string empty.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Thats it, you start writing your T-sql and if everthing whent
write you will start seeing your data<o:p></o:p><br />
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: Consolas; font-size: 9.5pt;">SELECT</span><span style="font-family: Consolas; font-size: 9.5pt;"> <span style="color: grey;">*</span> <span style="color: blue;">FROM</span> [INFORMIX_DB]<span style="color: grey;">.</span>[databaseName]<span style="color: grey;">.</span>[informix]<span style="color: grey;">.</span>[TableName]<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Reference:<o:p></o:p></div>
<div class="MsoNormal">
I got a lot of help from these articles:</div>
<div class="MsoNormal">
</div>
<ul>
<li><a href="http://stackoverflow.com/questions/24530257/informix-odbc-connection-to-64-bit-sql-server">http://stackoverflow.com/questions/24530257/informix-odbc-connection-to-64-bit-sql-server</a></li>
<li><a href="http://www-01.ibm.com/support/docview.wss?uid=swg21195578">http://www-01.ibm.com/support/docview.wss?uid=swg21195578</a></li>
</ul>
<br />
<br />
<div class="MsoNormal">
<br /></div>
Ali Al-Mosawihttp://www.blogger.com/profile/07148606862152114693noreply@blogger.com0tag:blogger.com,1999:blog-26827488.post-46147351310558946892014-04-30T23:36:00.000-06:002014-04-30T23:36:04.979-06:00Completed "Programming Mobile Applications for Android Handheld Systems" CertificationFinally received the certification, earned 100.0% with distinction<br />
Great course and challenging exams<br />
<br />
<a class="coursera-signature-track-listing-link" href="https://www.coursera.org/records/2SbBchXJ5wK88xAZ" style="background-color: white; box-sizing: border-box; color: #0367b0; cursor: pointer; font-family: sofiapro-light, Arial, sans-serif; font-size: 12px; line-height: 24px; text-decoration: none;" target="_blank">Shareable Course Record Page</a><br />
<a class="coursera-signature-track-listing-link" href="https://www.coursera.org/verify/4AMS35DK9L" style="background-color: white; box-sizing: border-box; color: #0367b0; cursor: pointer; font-family: sofiapro-light, Arial, sans-serif; font-size: 12px; line-height: 24px; text-decoration: none;" target="_blank">Shareable Verification Page</a><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyfgcNsGTuOhypX-ecXuy13F7elLCLql5IiauY5-Q4-M4YUtCYIjwiFx3No9R1V5ufyPMU7nq8wWL8NV4zHYV5hPO0lBjHzyfd0dFeWg8ZAvMKlavVVxE1aLPBQ2cupmHniR3shw/s1600/cert.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyfgcNsGTuOhypX-ecXuy13F7elLCLql5IiauY5-Q4-M4YUtCYIjwiFx3No9R1V5ufyPMU7nq8wWL8NV4zHYV5hPO0lBjHzyfd0dFeWg8ZAvMKlavVVxE1aLPBQ2cupmHniR3shw/s1600/cert.PNG" height="491" width="640" /></a></div>
<br />
<br />Ali Al-Mosawihttp://www.blogger.com/profile/07148606862152114693noreply@blogger.com0tag:blogger.com,1999:blog-26827488.post-15630806493769757672012-12-03T23:13:00.001-07:002012-12-03T23:14:38.841-07:00MVC Cascaded Drop Down List<br />
MVC have helpers for dropdownlist and they work great, and you can build the template for them too.<br />
But for cascaded drop downlist its different because I think, there is a lot of ways to implement it.<br />
So I will try to build cascade dropdownlist template that can be used more than once in a form with an AutoPostBack ability too. <br />
<br />
First of all we need model for the dropdownlist and a model for Cascade dropdownlist as below:<br />
<!-- code formatted by http://manoli.net/csharpformat/ -->
<style type="text/css">
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: Consolas, "Courier New", Courier, Monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #a31515; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
<br />
<div class="csharpcode">
<pre class="alt"><span class="lnum"> 1: </span> <span class="kwrd">public</span> <span class="kwrd">class</span> DropDownListViewModel</pre>
<pre><span class="lnum"> 2: </span> {</pre>
<pre class="alt"><span class="lnum"> 3: </span> <span class="kwrd">public</span> <span class="kwrd">string</span> Value { <span class="kwrd">get</span>; <span class="kwrd">set</span>; }</pre>
<pre><span class="lnum"> 4: </span> <span class="kwrd">public</span> <span class="kwrd">bool</span> AutoPostBack { <span class="kwrd">get</span>; <span class="kwrd">set</span>; }</pre>
<pre class="alt"><span class="lnum"> 5: </span> <span class="kwrd">public</span> IEnumerable<SelectListItem> Items { <span class="kwrd">get</span>; <span class="kwrd">set</span>; }</pre>
<pre><span class="lnum"> 6: </span> }</pre>
</div>
So value is for the selected value for the drop dow, autopostback is a flag to indicate autopostback to the form.<br />
<br />
And for the cascaddropdown model as below:<br />
<!-- code formatted by http://manoli.net/csharpformat/ -->
<style type="text/css">
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: Consolas, "Courier New", Courier, Monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #a31515; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
<br />
<div class="csharpcode">
<pre class="alt"><span class="lnum"> 1: </span> <span class="kwrd">public</span> <span class="kwrd">class</span> CascadDropDownListViewModel</pre>
<pre><span class="lnum"> 2: </span> {</pre>
<pre class="alt"><span class="lnum"> 3: </span> <span class="kwrd">public</span> <span class="kwrd">string</span> Value { <span class="kwrd">get</span>; <span class="kwrd">set</span>; }</pre>
<pre><span class="lnum"> 4: </span> <span class="kwrd">public</span> <span class="kwrd">bool</span> AutoPostBack { <span class="kwrd">get</span>; <span class="kwrd">set</span>; }</pre>
<pre class="alt"><span class="lnum"> 5: </span> <span class="kwrd">public</span> <span class="kwrd">string</span> ParentDropDownName { <span class="kwrd">get</span>; <span class="kwrd">set</span>; }</pre>
<pre><span class="lnum"> 6: </span> <span class="kwrd">public</span> <span class="kwrd">string</span> Action { <span class="kwrd">get</span>; <span class="kwrd">set</span>; }</pre>
<pre class="alt"><span class="lnum"> 7: </span> <span class="kwrd">public</span> IEnumerable Items { <span class="kwrd">get</span>; <span class="kwrd">set</span>; }</pre>
<pre><span class="lnum"> 8: </span> }</pre>
</div>
The parentdropdownname, is the name of the parent control so that it can update when it changes, the action property is the name of the action used to fill the cascade dropdownlist, it will be a json action<br />
Lets add two editor templates that will work with these models<br />
For dropdownlist<br />
<!-- code formatted by http://manoli.net/csharpformat/ -->
<style type="text/css">
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: Consolas, "Courier New", Courier, Monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #a31515; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
<br />
<div class="csharpcode">
<pre class="alt"><span class="lnum"> 1: </span>@<span class="kwrd">if</span> (Model.AutoPostBack)</pre>
<pre><span class="lnum"> 2: </span>{</pre>
<pre class="alt"><span class="lnum"> 3: </span> @Html.DropDownList(<span class="str">"Value"</span>,Model.Items, <span class="kwrd">new</span> { onchange=<span class="str">"this.form.submit();"</span> })</pre>
<pre><span class="lnum"> 4: </span>}</pre>
<pre class="alt"><span class="lnum"> 5: </span><span class="kwrd">else</span></pre>
<pre><span class="lnum"> 6: </span>{</pre>
<pre class="alt"><span class="lnum"> 7: </span> @Html.DropDownList(<span class="str">"Value"</span>,Model.Items)</pre>
<pre><span class="lnum"> 8: </span>}</pre>
</div>
For the cascade dropdownlist<br />
<!-- code formatted by http://manoli.net/csharpformat/ -->
<style type="text/css">
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: Consolas, "Courier New", Courier, Monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #a31515; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
<br />
<div class="csharpcode">
<pre class="alt"><span class="lnum"> 1: </span>@model WebAdvEx.Portal.Models.CascadDropDownListViewModel</pre>
<pre><span class="lnum"> 2: </span> </pre>
<pre class="alt"><span class="lnum"> 3: </span>@<span class="kwrd">if</span> (Model.AutoPostBack)</pre>
<pre><span class="lnum"> 4: </span>{</pre>
<pre class="alt"><span class="lnum"> 5: </span> @Html.DropDownList(<span class="str">"Value"</span>,Model.Items, <span class="kwrd">new</span> { action=Model.Action, cascad=<span class="str">"yes"</span>, parent=Model.ParentDropDownName+<span class="str">"_Value"</span> ,onchange=<span class="str">"this.form.submit();"</span> })</pre>
<pre><span class="lnum"> 6: </span>}</pre>
<pre class="alt"><span class="lnum"> 7: </span><span class="kwrd">else</span></pre>
<pre><span class="lnum"> 8: </span>{</pre>
<pre class="alt"><span class="lnum"> 9: </span> @Html.DropDownList(<span class="str">"Value"</span>, Model.Items, <span class="kwrd">new</span> { action=Model.Action, cascad=<span class="str">"yes"</span>, parent=Model.ParentDropDownName+<span class="str">"_Value"</span> })</pre>
<pre><span class="lnum"> 10: </span>}</pre>
</div>
We need some Javascript to let the controls be alive,<br />
<!-- code formatted by http://manoli.net/csharpformat/ -->
<style type="text/css">
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: Consolas, "Courier New", Courier, Monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #a31515; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
<br />
<div class="csharpcode">
<pre class="alt"><span class="lnum"> 1: </span><script type=<span class="str">"text/javascript"</span>></pre>
<pre><span class="lnum"> 2: </span> $(document).ready(function () {</pre>
<pre class="alt"><span class="lnum"> 3: </span> $(<span class="str">'select[cascad=yes]'</span>).each(function () {</pre>
<pre><span class="lnum"> 4: </span> <span class="kwrd">var</span> action = $(<span class="kwrd">this</span>).attr(<span class="str">'action'</span>);</pre>
<pre class="alt"><span class="lnum"> 5: </span> <span class="kwrd">var</span> drop = $(<span class="kwrd">this</span>);</pre>
<pre><span class="lnum"> 6: </span> <span class="kwrd">var</span> parent = <span class="str">'#'</span> + $(<span class="kwrd">this</span>).attr(<span class="str">'parent'</span>);</pre>
<pre class="alt"><span class="lnum"> 7: </span> </pre>
<pre><span class="lnum"> 8: </span> $(parent).change(function () {</pre>
<pre class="alt"><span class="lnum"> 9: </span> $.getJSON(action, { id: $(parent).val() },</pre>
<pre><span class="lnum"> 10: </span> function (items) {</pre>
<pre class="alt"><span class="lnum"> 11: </span> </pre>
<pre><span class="lnum"> 12: </span> drop.empty();</pre>
<pre class="alt"><span class="lnum"> 13: </span> $.each(items, function (index, item) {</pre>
<pre><span class="lnum"> 14: </span> drop.append($(<span class="str">'<option/>'</span>, { value: item.Value, text: item.Text }));</pre>
<pre class="alt"><span class="lnum"> 15: </span> });</pre>
<pre><span class="lnum"> 16: </span> });</pre>
<pre class="alt"><span class="lnum"> 17: </span> });</pre>
<pre><span class="lnum"> 18: </span> });</pre>
<pre class="alt"><span class="lnum"> 19: </span> });</pre>
<pre><span class="lnum"> 20: </span></script></pre>
</div>
So in summary, looking for any cascade, getting the parent for the control, assigning a new change event, calling the action to get the data in Jason and update the cascade control<br />
A sample of the control code and the controller view<br />
In my controller I have a model with dropdownlist and cascade dropdownlist and im filling them as below:<br />
<!-- code formatted by http://manoli.net/csharpformat/ -->
<style type="text/css">
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: Consolas, "Courier New", Courier, Monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #a31515; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
<br />
<div class="csharpcode">
<pre class="alt"><span class="lnum"> 1: </span> model.Country = <span class="kwrd">new</span> DropDownListViewModel() { </pre>
<pre><span class="lnum"> 2: </span> Value = model.CountryId.ToString(), </pre>
<pre class="alt"><span class="lnum"> 3: </span> Items = model.GetCountryList(),</pre>
<pre><span class="lnum"> 4: </span> AutoPostBack=<span class="kwrd">false</span>};</pre>
<pre class="alt"><span class="lnum"> 5: </span> </pre>
<pre><span class="lnum"> 6: </span> model.City = <span class="kwrd">new</span> CascadDropDownListViewModel()</pre>
<pre class="alt"><span class="lnum"> 7: </span> {</pre>
<pre><span class="lnum"> 8: </span> Value = model.CityId.ToString(),</pre>
<pre class="alt"><span class="lnum"> 9: </span> Items = model.GetCityList(model.CountryId),</pre>
<pre><span class="lnum"> 10: </span> AutoPostBack=<span class="kwrd">false</span>,</pre>
<pre class="alt"><span class="lnum"> 11: </span> ParentDropDownName=<span class="str">"Country"</span>,</pre>
<pre><span class="lnum"> 12: </span> Action = Url.Action(<span class="str">"UpdateChildList"</span>)</pre>
<pre class="alt"><span class="lnum"> 13: </span> </pre>
<pre><span class="lnum"> 14: </span> };</pre>
<pre class="alt"><span class="lnum"> 15: </span> </pre>
<pre><span class="lnum"> 16: </span> <span class="kwrd">return</span> View(model);</pre>
</div>
<br />
the function used to fill the cascade after the parent is changed is as below:<br />
<!-- code formatted by http://manoli.net/csharpformat/ -->
<style type="text/css">
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: Consolas, "Courier New", Courier, Monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #a31515; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
<br />
<div class="csharpcode">
<pre class="alt"><span class="lnum"> 1: </span> <span class="kwrd">public</span> JsonResult UpdateChildList(<span class="kwrd">int</span> id)</pre>
<pre><span class="lnum"> 2: </span> {</pre>
<pre class="alt"><span class="lnum"> 3: </span> <span class="kwrd">var</span> indexViewModel = <span class="kwrd">new</span> IndexViewModel();</pre>
<pre><span class="lnum"> 4: </span> <span class="kwrd">return</span> Json(indexViewModel.GetCityList(id),JsonRequestBehavior.AllowGet);</pre>
<pre class="alt"><span class="lnum"> 5: </span> }</pre>
</div>
Im using sample data, so indexviewmodel is only a temp thing for testing and bloging, normally we build in the correct location, the idea is to return some sample data as below:<br />
<!-- code formatted by http://manoli.net/csharpformat/ -->
<style type="text/css">
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: Consolas, "Courier New", Courier, Monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #a31515; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
<br />
<div class="csharpcode">
<pre class="alt"><span class="lnum"> 1: </span> <span class="kwrd">public</span> IEnumerable<SelectListItem> GetCityList(<span class="kwrd">int</span> CountryId)</pre>
<pre><span class="lnum"> 2: </span> {</pre>
<pre class="alt"><span class="lnum"> 3: </span> <span class="kwrd">var</span> result = <span class="kwrd">new</span> List<SelectListItem>();</pre>
<pre><span class="lnum"> 4: </span> <span class="kwrd">switch</span> (CountryId)</pre>
<pre class="alt"><span class="lnum"> 5: </span> {</pre>
<pre><span class="lnum"> 6: </span> <span class="kwrd">case</span> 1:</pre>
<pre class="alt"><span class="lnum"> 7: </span> result.Add(<span class="kwrd">new</span> SelectListItem() { Value = <span class="str">"1"</span>, Text = <span class="str">"Abu Dhabi"</span> });</pre>
<pre><span class="lnum"> 8: </span> result.Add(<span class="kwrd">new</span> SelectListItem() { Value = <span class="str">"2"</span>, Text = <span class="str">"Dubai"</span> });</pre>
<pre class="alt"><span class="lnum"> 9: </span> result.Add(<span class="kwrd">new</span> SelectListItem() { Value = <span class="str">"3"</span>, Text = <span class="str">"Sharja"</span> });</pre>
<pre><span class="lnum"> 10: </span> <span class="kwrd">break</span>;</pre>
<pre class="alt"><span class="lnum"> 11: </span> <span class="kwrd">case</span> 2:</pre>
<pre><span class="lnum"> 12: </span> result.Add(<span class="kwrd">new</span> SelectListItem() { Value = <span class="str">"4"</span>, Text = <span class="str">"USA City 1"</span> });</pre>
<pre class="alt"><span class="lnum"> 13: </span> result.Add(<span class="kwrd">new</span> SelectListItem() { Value = <span class="str">"5"</span>, Text = <span class="str">"USA City 2"</span> });</pre>
<pre><span class="lnum"> 14: </span> result.Add(<span class="kwrd">new</span> SelectListItem() { Value = <span class="str">"6"</span>, Text = <span class="str">"USA City 3"</span> });</pre>
<pre class="alt"><span class="lnum"> 15: </span> <span class="kwrd">break</span>;</pre>
<pre><span class="lnum"> 16: </span> <span class="kwrd">default</span>:</pre>
<pre class="alt"><span class="lnum"> 17: </span> result.Add(<span class="kwrd">new</span> SelectListItem() { Value = <span class="str">"7"</span>, Text = <span class="str">"Germany City 1"</span> });</pre>
<pre><span class="lnum"> 18: </span> result.Add(<span class="kwrd">new</span> SelectListItem() { Value = <span class="str">"8"</span>, Text = <span class="str">"Germany City 2"</span> });</pre>
<pre class="alt"><span class="lnum"> 19: </span> result.Add(<span class="kwrd">new</span> SelectListItem() { Value = <span class="str">"9"</span>, Text = <span class="str">"Germany City 3"</span> });</pre>
<pre><span class="lnum"> 20: </span> <span class="kwrd">break</span>;</pre>
<pre class="alt"><span class="lnum"> 21: </span> }</pre>
<pre><span class="lnum"> 22: </span> </pre>
<pre class="alt"><span class="lnum"> 23: </span> </pre>
<pre><span class="lnum"> 24: </span> <span class="kwrd">return</span> result;</pre>
<pre class="alt"><span class="lnum"> 25: </span> }</pre>
</div>
<div>
<br />
Mission done, cascade dropdownlist are linked and working fine. </div>
Ali Al-Mosawihttp://www.blogger.com/profile/07148606862152114693noreply@blogger.com0tag:blogger.com,1999:blog-26827488.post-76728991150158591632012-10-06T14:23:00.000-06:002012-10-06T14:23:16.114-06:00Visual Studio 2012 Launch - Abu Dhabi<br />
<div style="background-color: white; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 13px; padding: 0px 0px 8px;">
<span style="background-color: #e1cbe9; color: #620080; font-size: 26px; line-height: 28px;">Visual Studio 2012 Launch - Abu Dhabi</span></div>
<h2 style="background-color: #e1cbe9; color: #620080; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 17px; font-weight: 300; line-height: 21px; margin: 0px; padding: 0px;">
<a href="http://www.eventbrite.com/org/1500446112?s=9985022" style="color: #620080; text-decoration: none;" target="_blank">Microsoft</a></h2>
<h2 style="background-color: #e1cbe9; color: #620080; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 17px; font-weight: 300; line-height: 21px; margin: 0px; padding: 0px;">
Sunday, October 7, 2012 from 9:30 AM to 3:00 PM (GST)</h2>
<div id="event_network" style="background-color: #e1cbe9; color: #620080; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 13px; line-height: 15.833333015441895px;">
<h2 style="font-size: 17px; font-weight: 300; line-height: 21px; margin: 0px; padding: 0px;">
Abu Dhabi, United Arab Emirates</h2>
<div>
<br /></div>
</div>
<div style="background-color: white; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 13px; padding: 0px 0px 8px; text-align: justify;">
<span style="color: #474747; font-family: 'Segoe UI', sans-serif; font-size: 10pt;"><br /></span></div>
<div style="background-color: white; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 13px; padding: 0px 0px 8px; text-align: justify;">
<span style="color: #68217a; font-family: 'Segoe UI', sans-serif; font-size: 27px;">Visual Studio 2012 Launch with Celebrity Speakers: David Chappell and Orville McDonald </span></div>
<div style="background-color: white; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 13px; padding: 0px 0px 8px; text-align: justify;">
<span style="color: #474747; font-family: 'Segoe UI', sans-serif; font-size: 10pt;">Organizations that are able to move forward with velocity on realizing value opportunities through such modernization investments as Application Lifecycle Management (ALM) stand to attain a competitive advantage in the industries they serve. Organizations that are first to realize such opportunities stand to establish ground as domain leaders. We are excited to announce the new<strong>Visual Studio 2012</strong> at a launch event with <strong>David Chappell, <a href="http://www.davidchappell.com/about/index.php" style="color: #ee6600; text-decoration: none;"><u><span style="color: blue;">Chappell & Associates</span></u></a></strong>, world renowned Technologist and <strong>Orville McDonald, Director Product Management, Visual Studio, Microsoft Corporate</strong>.</span></div>
<div style="background-color: white; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 13px; padding: 0px 0px 8px;">
<br /></div>
<div style="background-color: white; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 13px; padding: 0px 0px 8px;">
<strong>Agenda:</strong></div>
<div style="background-color: white; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 13px; padding: 0px 0px 8px;">
09:30-10:00 Coffee & Networking</div>
<div style="background-color: white; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 13px; padding: 0px 0px 8px;">
10:00-10:50 Keynote: Evolve; Rediscover Relevancy - Orville McDonald, Director Product Management, Microsoft</div>
<div style="background-color: white; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 13px; padding: 0px 0px 8px;">
10:50-12:00 Application Lifecycle Management for IT Leaders - David Chappell, Technologist</div>
<div style="background-color: white; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 13px; padding: 0px 0px 8px;">
12:00-13:00 Lunch</div>
<div style="background-color: white; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 13px; padding: 0px 0px 8px;">
13:00-14:00 Friction-Free Collaboration for Development and Operations</div>
<div style="background-color: white; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 13px; padding: 0px 0px 8px;">
14:00-14:15 Coffee Break</div>
<div style="background-color: white; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 13px; padding: 0px 0px 8px;">
14:15-15:00 Continuous Quality Enablement</div>
<div style="background-color: white; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 13px; padding: 0px 0px 8px;">
<br /></div>
<div style="background-color: white; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 13px; padding: 0px 0px 8px;">
Ref: <a href="http://vs2012uae.eventbrite.com/?utm_source=eb_email&utm_medium=email&utm_campaign=event_reminder&utm_term=event_title" style="background-color: transparent;">http://vs2012uae.eventbrite.com/?utm_source=eb_email&utm_medium=email&utm_campaign=event_reminder&utm_term=event_title</a></div>
<div style="background-color: white; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 13px; padding: 0px 0px 8px;">
<br /></div>
Ali Al-Mosawihttp://www.blogger.com/profile/07148606862152114693noreply@blogger.com0Abu Dhabi - Al Ain Rd - Abu Dhabi - United Arab Emirates24.409853955038653 54.49132919311523424.408950455038653 54.490095193115238 24.410757455038652 54.492563193115231tag:blogger.com,1999:blog-26827488.post-36180569970295093142012-09-11T23:34:00.000-06:002012-09-11T23:34:09.858-06:00Booting from Win8 VHD with your Win7<br />
<div class="MsoNormal">
To set up Windows 8 as Virtual Machine and boot from it, without effecting your Win7, you can use the following:-<o:p></o:p></div>
<div class="MsoNormal">
download the needed files from: <a href="https://github.com/naeemkhedarun/CreateWindows8VHD">http://github.com/naeemkhedarun/CreateWindows8VHD</a></div>
<div class="MsoNormal">
You can use the steps there but I have small changes to let it work with my Win7</div>
<div class="MsoListParagraphCxSpFirst" style="mso-list: l0 level1 lfo1; text-indent: -.25in;">
<span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><br /></span></div>
<div class="MsoListParagraphCxSpFirst" style="mso-list: l0 level1 lfo1; text-indent: -.25in;">
<!--[if !supportLists]--><span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;">·<span style="font-family: 'Times New Roman'; font-size: 7pt;">
</span></span><!--[endif]--><span dir="LTR"></span>Run PowerShell<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo1; text-indent: -.25in;">
<!--[if !supportLists]--><span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;">·<span style="font-family: 'Times New Roman'; font-size: 7pt;">
</span></span><!--[endif]--><span dir="LTR"></span>Go to the folder with the
scripts “<span style="background-color: #eeeeee; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 10pt; line-height: 115%;">C:\projects\CreateWindows8VHD</span> “ by
executing: <o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle">
<span style="background-color: #eeeeee; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 10pt; line-height: 115%;">C:<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle">
<span style="background-color: #eeeeee; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 10pt; line-height: 115%;">Cd C:\projects\CreateWindows8VHD>
<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle">
<span style="background-color: #eeeeee; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 10pt; line-height: 115%;"><br /></span></div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo1; text-indent: -.25in;">
<!--[if !supportLists]--><span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;">·<span style="font-family: 'Times New Roman'; font-size: 7pt;">
</span></span><!--[endif]--><span dir="LTR"></span>Import the function
“Create-Windows8VHD.ps1 “ by executing:<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle">
<span style="background-color: #eeeeee; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 10pt; line-height: 115%;">set-executionpolicy
unrestricted</span><o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle">
<span style="background-color: #eeeeee; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 10pt; line-height: 115%;">Import-Module
.\Create-Windows8VHD.ps1<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle">
<span style="background-color: #eeeeee; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 10pt; line-height: 115%;"><br /></span></div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo1; text-indent: -.25in;">
<!--[if !supportLists]--><span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;">·<span style="font-family: 'Times New Roman'; font-size: 7pt;">
</span></span><!--[endif]--><span dir="LTR"></span>Create the VHD noting the
parameters with the following:<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle">
<span style="background-color: #eeeeee; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 10pt; line-height: 115%;">Create-Windows8VHD
"[VHD file location and name]" "[Size in MB]" "[Drive
Letter]", example:</span> <o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle">
<span style="background-color: #eeeeee; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 10pt; line-height: 115%;">Create-Windows8VHD
"D:\vhd\windows8.vhd" "10000" "X"<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle">
<span style="background-color: #eeeeee; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 10pt; line-height: 115%;"><br /></span></div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo1; text-indent: -.25in;">
<!--[if !supportLists]--><span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;">·<span style="font-family: 'Times New Roman'; font-size: 7pt;">
</span></span><!--[endif]--><span dir="LTR"></span>Following this to set up a
dual boot record you can do:<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle">
<span style="background-color: #eeeeee; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 10pt; line-height: 115%;">C:\Windows\sysnative\bcdboot
[Drive Letter]:\Windows<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle">
<span style="background-color: #eeeeee; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 10pt; line-height: 115%;">C:\Windows\System32\bcdboot
X:\Windows<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle">
<span style="background-color: #eeeeee; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 10pt; line-height: 115%;"><br /></span></div>
<div class="MsoListParagraphCxSpLast" style="mso-list: l0 level1 lfo1; text-indent: -.25in;">
<!--[if !supportLists]--><span style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;">·<span style="font-family: 'Times New Roman'; font-size: 7pt;">
</span></span><!--[endif]--><span dir="LTR"></span>You should now be able to
restart into the Windows 8 Preview!, restart your computer and you will get a
windows start up page, then select your windows 7 or windows 8<o:p></o:p></div>
Ali Al-Mosawihttp://www.blogger.com/profile/07148606862152114693noreply@blogger.com1tag:blogger.com,1999:blog-26827488.post-51376370293805070912012-08-12T19:26:00.000-06:002012-08-12T19:26:13.967-06:00Welcome to the Windows StoreFinally I completed my registration for Microsoft Windows Store, and I can start submitting applications there. My Kids Metro Studio App will need some final tuning before submitting it, but its know a matter of some days and for me some time managements planning.<br />
<br />
The steps to complete the Microsoft Windows Store registration process were as follow:<br />
1. Complete one windows 8 boot camp (did this in Dubai - UAE)<br />
This is an event that Microsoft is doing around the globe and its a great chance to learn stuff and meet people interested in Windows 8 development<br />
<br />
2. Register and attend one Windows 8 App Quality Lab<br />
This is a very useful session that you will show your application to Metro Style Developer from Microsoft and they will support, asset and direct you on the right track to complete your app.<br />
<br />
3. Register your app <a href="http://win8.msregistration.com/">http://win8.msregistration.com</a> here and full the survey, and I believe if they see and feel your app is ready or can be ready for the store they will provide you with a token, you can find it after few days on the Application Excellence Survey Results, at the bottom of the page.<br />
<br />
For more details on the exact location<br />
go to <a href="http://win8.msregistration.com/">http://win8.msregistration.com</a> and login<br />
<br />
From the Default.aspx page, Go to App Profiles<br />
You will find your app that you added with the survey link (click this link) from the Microsoft developer, Below the survey you will find the token key with the following<br />
[Your name] has a Token, granted by [Microsoft Develoepr]. Token: [Your Tokken]<br />
<br />
<b>Note: The Token is the Registration Code</b><br />
<b><br /></b>
4. Go to the windows store web site and login, start filling the forms for the registration for the windows store account, when you come by the Registration Code, enter your Tokken, complete the payment (its currently free )<br />
<br />
5. That's it, you will receive a welcome letter from the store, and you can start uploading your win 8 apps.<br />
<br />
<br />Ali Al-Mosawihttp://www.blogger.com/profile/07148606862152114693noreply@blogger.com0tag:blogger.com,1999:blog-26827488.post-33383902590161236702012-08-05T21:28:00.000-06:002012-08-05T21:31:26.372-06:00A day at the officeA day at the office full of development and fun. Sometimes quite and productive<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvINmUOFIIYFlLrvjDvmq3w_kHpv0gEbg1xhZkMJiNI1fdI-PcuRkPqdq4IdV49L63hjtMqXONTCW01KWu-JRwhr7jdnoPMTHhKMwLJ3F7vzJGpDX9NymnAv8tYBQu9ntdk2OTNA/s1600/6899953680_5cf9c6a877_c.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="424" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvINmUOFIIYFlLrvjDvmq3w_kHpv0gEbg1xhZkMJiNI1fdI-PcuRkPqdq4IdV49L63hjtMqXONTCW01KWu-JRwhr7jdnoPMTHhKMwLJ3F7vzJGpDX9NymnAv8tYBQu9ntdk2OTNA/s640/6899953680_5cf9c6a877_c.jpg" width="640" /></a></div>
<br />
Sometimes tutoring<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQhzOOB-jcYbDyI_M1HnigJFbamcA30EwswRyG9KGCYa1hYfl9I2FJ8V8cogV-cFYoFv4TzFNArZYOtSFbpPxdY8nCrel0y0fQDUA5yXAEscW6RS9N8gi78dbMKkfWbo9TPLkUrg/s1600/7046060051_1677d3a2ff_k.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="420" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQhzOOB-jcYbDyI_M1HnigJFbamcA30EwswRyG9KGCYa1hYfl9I2FJ8V8cogV-cFYoFv4TzFNArZYOtSFbpPxdY8nCrel0y0fQDUA5yXAEscW6RS9N8gi78dbMKkfWbo9TPLkUrg/s640/7046060051_1677d3a2ff_k.jpg" width="640" /></a></div>
<br />
Sometimes learning<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipV8liBfxQw0Nm_yXwEdMtCoHFFe35PrgJ_rIkj_DV3CoVbvbgFoLOzbXV8QONGyXbJhspMl9Fsu3eNKpLL3p3u82K5IR9dFmhXkZpTiQY9NgtALoiv6r3qmUI7Ua2jKJaJ9Xjmg/s1600/7046053829_eea2321b1a_z.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="424" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipV8liBfxQw0Nm_yXwEdMtCoHFFe35PrgJ_rIkj_DV3CoVbvbgFoLOzbXV8QONGyXbJhspMl9Fsu3eNKpLL3p3u82K5IR9dFmhXkZpTiQY9NgtALoiv6r3qmUI7Ua2jKJaJ9Xjmg/s640/7046053829_eea2321b1a_z.jpg" width="640" /></a></div>
<br />
Sometimes crashed and crazy<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjTTZENsu4vmTBAUQQwdfg89QRtjMecYUmDKFlFhjDZKEqbWwJqzmx9fr8hAAy86odQHGaEbQAzxLUfNpLeg-8FqrDGW5PMl5FK02hJL1G2mWAbUPwdaqIytkMAOPU97jPtiSLkA/s1600/7046051399_9e32da68f3_h.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="424" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjTTZENsu4vmTBAUQQwdfg89QRtjMecYUmDKFlFhjDZKEqbWwJqzmx9fr8hAAy86odQHGaEbQAzxLUfNpLeg-8FqrDGW5PMl5FK02hJL1G2mWAbUPwdaqIytkMAOPU97jPtiSLkA/s640/7046051399_9e32da68f3_h.jpg" width="640" /></a></div>
<br />
But always ending with fun and understanding<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjePylB31bFm-LupP3dTbzeDA4KF-N8Ra24kJPjt1NgRAGWuDnCgIK-G_igv1uMBowgjuS6FrcuIzaGDYAAy4R1rOCDy5rkopx-cmvU41cZlRttjZ59eyor0jPmFnl5BHlwL2z_Sg/s1600/7046052759_c092e70bf9_c.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="424" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjePylB31bFm-LupP3dTbzeDA4KF-N8Ra24kJPjt1NgRAGWuDnCgIK-G_igv1uMBowgjuS6FrcuIzaGDYAAy4R1rOCDy5rkopx-cmvU41cZlRttjZ59eyor0jPmFnl5BHlwL2z_Sg/s640/7046052759_c092e70bf9_c.jpg" width="640" /></a></div>
<br />
days that can't be forgotten.<br />
<br />
Thanks Ali Nawas for the great photos<br />
more can be accessed <a href="http://www.flickr.com/photos/alinawaz/6899953680/in/photostream/">here </a><br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />Ali Al-Mosawihttp://www.blogger.com/profile/07148606862152114693noreply@blogger.com0tag:blogger.com,1999:blog-26827488.post-44255859337281795022012-08-05T01:37:00.000-06:002012-08-05T01:51:40.880-06:00Windows 8 Developer Boot Camp - 2 days<br />
<div class="MsoNormal">
Windows 8 Developer Boot Camp is set to be on 2<sup>nd</sup> & 3<sup>rd</sup>
Sept. 2012 at Dubai, covering Windows 8, Windows <span style="font-size: 11.5pt; line-height: 115%; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri;">Azure and Visual Studio 2012</span><o:p></o:p></div>
<div class="MsoNormal">
<span style="font-size: 11.5pt; line-height: 115%; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri;"><br /></span></div>
<div class="MsoNormal">
<span style="font-size: 11.5pt; line-height: 115%; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-hansi-font-family: Calibri;">The Agenda for
the 2 days is as below<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 12pt;">
<b><span style="font-family: "Arial Narrow","sans-serif"; font-size: 14.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">Agenda:</span></b><o:p></o:p></div>
<table border="0" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="mso-cellspacing: 0in; mso-padding-alt: 0in 0in 0in 0in; mso-yfti-tbllook: 1184; width: 100.0%;" width="100%">
<tbody>
<tr>
<td style="background: #DCF2FD; padding: 3.75pt 3.75pt 3.75pt 7.5pt; width: 11.82%;" width="11%"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b><span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">Day-1</span></b><o:p></o:p></div>
</td>
<td style="background: #DCF2FD; padding: 3.75pt 3.75pt 3.75pt 3.75pt;"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
</td>
<td style="background: #DCF2FD; padding: 3.75pt 3.75pt 3.75pt 3.75pt;"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
</td>
<td style="background: #DCF2FD; padding: 3.75pt 3.75pt 3.75pt 7.5pt;"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b><span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">Subject</span></b><o:p></o:p></div>
</td>
</tr>
<tr>
<td style="padding: 3.75pt 3.75pt 3.75pt 7.5pt; width: 11.82%;" width="11%"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">09:30</span><o:p></o:p></div>
</td>
<td style="padding: 3.75pt 3.75pt 3.75pt 7.5pt; width: 7.46%;" width="7%"><div align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center;">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">-</span><o:p></o:p></div>
</td>
<td style="padding: 3.75pt 3.75pt 3.75pt 7.5pt; width: 11.34%;" width="11%"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">10:30</span><o:p></o:p></div>
</td>
<td style="padding: 3.75pt 3.75pt 3.75pt 7.5pt;"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">Morning
Coffee & Networking</span><o:p></o:p></div>
</td>
</tr>
<tr>
<td style="background: #DCF2FD; padding: 3.75pt 3.75pt 3.75pt 7.5pt; width: 11.82%;" width="11%"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">10:30</span><o:p></o:p></div>
</td>
<td style="background: #DCF2FD; padding: 3.75pt 3.75pt 3.75pt 7.5pt;"><div align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center;">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">-</span><o:p></o:p></div>
</td>
<td style="background: #DCF2FD; padding: 3.75pt 3.75pt 3.75pt 7.5pt;"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">11:30</span><o:p></o:p></div>
</td>
<td style="background: #DCF2FD; padding: 3.75pt 3.75pt 3.75pt 7.5pt;"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">Introduction
and Keynote</span><o:p></o:p></div>
</td>
</tr>
<tr>
<td style="padding: 3.75pt 3.75pt 3.75pt 7.5pt; width: 11.82%;" width="11%"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">11:30</span><o:p></o:p></div>
</td>
<td style="padding: 3.75pt 3.75pt 3.75pt 7.5pt;"><div align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center;">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">-</span><o:p></o:p></div>
</td>
<td style="padding: 3.75pt 3.75pt 3.75pt 7.5pt;"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">12:30</span><o:p></o:p></div>
</td>
<td style="padding: 3.75pt 3.75pt 3.75pt 7.5pt;"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">Traits
of Great Metro Style Applications</span><o:p></o:p></div>
</td>
</tr>
<tr>
<td style="background: #DCF2FD; padding: 3.75pt 3.75pt 3.75pt 7.5pt; width: 11.82%;" width="11%"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">12:30</span><o:p></o:p></div>
</td>
<td style="background: #DCF2FD; padding: 3.75pt 3.75pt 3.75pt 7.5pt;"><div align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center;">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">-</span><o:p></o:p></div>
</td>
<td style="background: #DCF2FD; padding: 3.75pt 3.75pt 3.75pt 7.5pt;"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">13:30</span><o:p></o:p></div>
</td>
<td style="background: #DCF2FD; padding: 3.75pt 3.75pt 3.75pt 7.5pt;"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">Lunch
Break</span><o:p></o:p></div>
</td>
</tr>
<tr>
<td style="padding: 3.75pt 3.75pt 3.75pt 7.5pt; width: 11.82%;" width="11%"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">13:30</span><o:p></o:p></div>
</td>
<td style="padding: 3.75pt 3.75pt 3.75pt 7.5pt;"><div align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center;">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">-</span><o:p></o:p></div>
</td>
<td style="padding: 3.75pt 3.75pt 3.75pt 7.5pt;"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">14:30</span><o:p></o:p></div>
</td>
<td style="padding: 3.75pt 3.75pt 3.75pt 7.5pt;"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">Platform
for Metro Style Applications</span><o:p></o:p></div>
</td>
</tr>
<tr>
<td style="background: #DCF2FD; padding: 3.75pt 3.75pt 3.75pt 7.5pt; width: 11.82%;" width="11%"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">14:30</span><o:p></o:p></div>
</td>
<td style="background: #DCF2FD; padding: 3.75pt 3.75pt 3.75pt 7.5pt;"><div align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center;">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">-</span><o:p></o:p></div>
</td>
<td style="background: #DCF2FD; padding: 3.75pt 3.75pt 3.75pt 7.5pt;"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">15:30</span><o:p></o:p></div>
</td>
<td style="background: #DCF2FD; padding: 3.75pt 3.75pt 3.75pt 7.5pt;"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">Tools
for Building Metro Style Applications</span><o:p></o:p></div>
</td>
</tr>
<tr>
<td style="padding: 3.75pt 3.75pt 3.75pt 7.5pt; width: 11.82%;" width="11%"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">15:30</span><o:p></o:p></div>
</td>
<td style="padding: 3.75pt 3.75pt 3.75pt 7.5pt;"><div align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center;">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">-</span><o:p></o:p></div>
</td>
<td style="padding: 3.75pt 3.75pt 3.75pt 7.5pt;"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">16:00</span><o:p></o:p></div>
</td>
<td style="padding: 3.75pt 3.75pt 3.75pt 7.5pt;"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">Coffee
Break</span><o:p></o:p></div>
</td>
</tr>
<tr>
<td style="background: #DCF2FD; padding: 3.75pt 3.75pt 3.75pt 7.5pt; width: 11.82%;" width="11%"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">16:00</span><o:p></o:p></div>
</td>
<td style="background: #DCF2FD; padding: 3.75pt 3.75pt 3.75pt 7.5pt;"><div align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center;">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">-</span><o:p></o:p></div>
</td>
<td style="background: #DCF2FD; padding: 3.75pt 3.75pt 3.75pt 7.5pt;"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">17:00</span><o:p></o:p></div>
</td>
<td style="background: #DCF2FD; padding: 3.75pt 3.75pt 3.75pt 7.5pt;"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">Windows
8 and Windows Azure</span><o:p></o:p></div>
</td>
</tr>
<tr>
<td style="padding: 3.75pt 3.75pt 3.75pt 7.5pt; width: 11.82%;" width="11%"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">17:00</span><o:p></o:p></div>
</td>
<td style="padding: 3.75pt 3.75pt 3.75pt 7.5pt;"><div align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center;">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">-</span><o:p></o:p></div>
</td>
<td style="padding: 3.75pt 3.75pt 3.75pt 7.5pt;"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">17:30</span><o:p></o:p></div>
</td>
<td style="padding: 3.75pt 3.75pt 3.75pt 7.5pt;"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">Day 1
Wrap Up</span><o:p></o:p></div>
</td>
</tr>
<tr>
<td colspan="4" style="padding: 3.75pt 3.75pt 3.75pt 3.75pt; width: 100.0%;" width="100%"><div align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center;">
<hr align="center" noshade="" size="2" style="color: #dcf2fd;" width="100%" />
</div>
</td>
</tr>
</tbody></table>
<div class="MsoNormal" style="margin-bottom: 12pt;">
<br />
<br />
<b><span style="font-family: "Arial Narrow","sans-serif"; font-size: 14.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">Agenda:</span></b><o:p></o:p></div>
<table border="0" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="mso-cellspacing: 0in; mso-padding-alt: 0in 0in 0in 0in; mso-yfti-tbllook: 1184; width: 99.26%;" width="99%">
<tbody>
<tr>
<td style="background: #DCF2FD; padding: 3.75pt 3.75pt 3.75pt 7.5pt; width: 10.92%;" width="10%"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b><span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">Day-2*</span></b><o:p></o:p></div>
</td>
<td style="background: #DCF2FD; padding: 3.75pt 3.75pt 3.75pt 3.75pt;"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
</td>
<td style="background: #DCF2FD; padding: 3.75pt 3.75pt 3.75pt 3.75pt;"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
</td>
<td style="background: #DCF2FD; padding: 3.75pt 3.75pt 3.75pt 7.5pt;"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<b><span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">Subject</span></b><o:p></o:p></div>
</td>
</tr>
<tr>
<td style="padding: 3.75pt 3.75pt 3.75pt 7.5pt; width: 10.92%;" width="10%"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">09:30</span><o:p></o:p></div>
</td>
<td style="padding: 3.75pt 3.75pt 3.75pt 7.5pt; width: 7.54%;" width="7%"><div align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center;">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">-</span><o:p></o:p></div>
</td>
<td style="padding: 3.75pt 3.75pt 3.75pt 7.5pt; width: 11.46%;" width="11%"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">09:45</span><o:p></o:p></div>
</td>
<td style="padding: 3.75pt 3.75pt 3.75pt 7.5pt;"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">Morning
Coffee & Networking</span><o:p></o:p></div>
</td>
</tr>
<tr>
<td style="background: #DCF2FD; padding: 3.75pt 3.75pt 3.75pt 7.5pt; width: 10.92%;" width="10%"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">09:45</span><o:p></o:p></div>
</td>
<td style="background: #DCF2FD; padding: 3.75pt 3.75pt 3.75pt 7.5pt;"><div align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center;">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">-</span><o:p></o:p></div>
</td>
<td style="background: #DCF2FD; padding: 3.75pt 3.75pt 3.75pt 7.5pt;"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">10:00</span><o:p></o:p></div>
</td>
<td style="background: #DCF2FD; padding: 3.75pt 3.75pt 3.75pt 7.5pt;"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">Day 2
introduction</span><o:p></o:p></div>
</td>
</tr>
<tr>
<td style="padding: 3.75pt 3.75pt 3.75pt 7.5pt; width: 10.92%;" width="10%"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">10:00</span><o:p></o:p></div>
</td>
<td style="padding: 3.75pt 3.75pt 3.75pt 7.5pt;"><div align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center;">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">-</span><o:p></o:p></div>
</td>
<td style="padding: 3.75pt 3.75pt 3.75pt 7.5pt;"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">11:00</span><o:p></o:p></div>
</td>
<td style="padding: 3.75pt 3.75pt 3.75pt 7.5pt;"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">All
About Visual Studio 2012 and Launch</span><o:p></o:p></div>
</td>
</tr>
<tr>
<td style="background: #DCF2FD; padding: 3.75pt 3.75pt 3.75pt 7.5pt; width: 10.92%;" width="10%"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">11:00</span><o:p></o:p></div>
</td>
<td style="background: #DCF2FD; padding: 3.75pt 3.75pt 3.75pt 7.5pt;"><div align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center;">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">-</span><o:p></o:p></div>
</td>
<td style="background: #DCF2FD; padding: 3.75pt 3.75pt 3.75pt 7.5pt;"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">12:30</span><o:p></o:p></div>
</td>
<td style="background: #DCF2FD; padding: 3.75pt 3.75pt 3.75pt 7.5pt;"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">App
Lab</span><o:p></o:p></div>
</td>
</tr>
<tr>
<td style="padding: 3.75pt 3.75pt 3.75pt 7.5pt; width: 10.92%;" width="10%"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">12:30</span><o:p></o:p></div>
</td>
<td style="padding: 3.75pt 3.75pt 3.75pt 7.5pt;"><div align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center;">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">-</span><o:p></o:p></div>
</td>
<td style="padding: 3.75pt 3.75pt 3.75pt 7.5pt;"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">13:30</span><o:p></o:p></div>
</td>
<td style="padding: 3.75pt 3.75pt 3.75pt 7.5pt;"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">Lunch
Break</span><o:p></o:p></div>
</td>
</tr>
<tr>
<td style="background: #DCF2FD; padding: 3.75pt 3.75pt 3.75pt 7.5pt; width: 10.92%;" width="10%"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">13:30</span><o:p></o:p></div>
</td>
<td style="background: #DCF2FD; padding: 3.75pt 3.75pt 3.75pt 7.5pt;"><div align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center;">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">-</span><o:p></o:p></div>
</td>
<td style="background: #DCF2FD; padding: 3.75pt 3.75pt 3.75pt 7.5pt;"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">17:45</span><o:p></o:p></div>
</td>
<td style="background: #DCF2FD; padding: 3.75pt 3.75pt 3.75pt 7.5pt;"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">App
Lab</span><o:p></o:p></div>
</td>
</tr>
<tr>
<td style="padding: 3.75pt 3.75pt 3.75pt 7.5pt; width: 10.92%;" width="10%"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">17:45</span><o:p></o:p></div>
</td>
<td style="padding: 3.75pt 3.75pt 3.75pt 7.5pt;"><div align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center;">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">-</span><o:p></o:p></div>
</td>
<td style="padding: 3.75pt 3.75pt 3.75pt 7.5pt;"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">18:00</span><o:p></o:p></div>
</td>
<td style="padding: 3.75pt 3.75pt 3.75pt 7.5pt;"><div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: "Arial Narrow","sans-serif"; font-size: 13.0pt; mso-bidi-font-family: Calibri; mso-fareast-font-family: "Times New Roman";">Day 2
Wrap Up</span><o:p></o:p></div>
</td>
</tr>
</tbody></table>
<div class="MsoNormal">
<span style="font-size: 11.5pt; line-height: 115%;">*For
Day 2, you need your PC with Windows 8 Release Preview & Visual Studio 2012
<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-size: 11.5pt; line-height: 115%;"><br /></span></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
<span style="font-size: 15px; line-height: 17px;"><b>When:</b></span></div>
<div class="MsoNormal">
<span style="font-size: 15px; line-height: 17px;">2nd Sept. 2012 09:30-17:30 </span></div>
<div class="MsoNormal">
<span style="font-size: 15px; line-height: 17px;">3rd Sept. 2012 09:30-18:00</span></div>
<div class="MsoNormal">
<span style="font-size: 15px; line-height: 17px;"><br /></span></div>
<div class="MsoNormal">
<span style="font-size: 15px; line-height: 17px;"><b>Where:</b></span></div>
<div class="MsoNormal">
<span style="font-size: 15px; line-height: 17px;">Al Saker Ballroom, </span></div>
<div class="MsoNormal">
<span style="font-size: 15px; line-height: 17px;">Le Royal Méridian Hotel, </span></div>
<div class="MsoNormal">
<span style="font-size: 15px; line-height: 17px;">Jumeirah Beach Residence</span><br />
<br /></div>
<div class="MsoNormal">
<a href="https://msevents.microsoft.com/CUI/EventDetail.aspx?culture=en-AE&EventID=1032522903">https://msevents.microsoft.com/CUI/EventDetail.aspx?culture=en-AE&EventID=1032522903</a><o:p></o:p></div>
<iframe frameborder="0" height="350" marginheight="0" marginwidth="0" scrolling="no" src="https://maps.google.com/maps?f=q&source=s_q&hl=en&geocode=&q=Le+Royal+Meridien++Hotel+dubai&aq=&sll=25.098216,55.14508&sspn=0.038863,0.084543&t=v&ie=UTF8&hq=Le+Royal+Meridien+Hotel&hnear=Dubai+-+United+Arab+Emirates&ll=25.085103,55.139297&spn=0.042206,0.084543&z=14&iwloc=A&cid=5124228061483290840&output=embed" width="425"></iframe><br />
<small><a href="https://maps.google.com/maps?f=q&source=embed&hl=en&geocode=&q=Le+Royal+Meridien++Hotel+dubai&aq=&sll=25.098216,55.14508&sspn=0.038863,0.084543&t=v&ie=UTF8&hq=Le+Royal+Meridien+Hotel&hnear=Dubai+-+United+Arab+Emirates&ll=25.085103,55.139297&spn=0.042206,0.084543&z=14&iwloc=A&cid=5124228061483290840" style="color: blue; text-align: left;">View Larger Map</a></small>Ali Al-Mosawihttp://www.blogger.com/profile/07148606862152114693noreply@blogger.com0Sadaf 7 Jumeirah Beach Rd - Dubai - United Arab Emirates25.0783396 55.136538425.0747441 55.1316029 25.0819351 55.1414739tag:blogger.com,1999:blog-26827488.post-7811078365975210752012-07-25T15:25:00.000-06:002012-12-04T04:41:25.457-07:00RDLC Reports in MVC Web application<br />
<div class="MsoNormal">
Step by Step adding an RDLC report to MVC4 project<br />
<br />
For any large project, reports will be needed. I love RDLC
so I’m sticking with them. I had some problems in the beginning but with some
search here and there and some testing it start working. So I will describe it
from the beginning.<o:p></o:p></div>
<div class="MsoNormal">
Requirements:<o:p></o:p></div>
<div class="MsoListParagraphCxSpFirst" style="mso-list: l0 level1 lfo1; text-indent: -.25in;">
<span style="font-family: Symbol;">·<span style="font-family: 'Times New Roman'; font-size: 7pt;">
</span></span><span dir="LTR"></span>In my new MVC I need to
have a number of RDLC reports<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo1; text-indent: -.25in;">
<span style="font-family: Symbol;">·<span style="font-family: 'Times New Roman'; font-size: 7pt;">
</span></span><span dir="LTR"></span>I need the reports to read
from objects, direct entities or report objects (for large reports I prefer to something
like a Report View Model, in the end a report is view for data)<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo1; text-indent: -.25in;">
<span style="font-family: Symbol;">·<span style="font-family: 'Times New Roman'; font-size: 7pt;">
</span></span><span dir="LTR"></span>A report my require one or
more data sets<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo1; text-indent: -.25in;">
<span style="font-family: Symbol;">·<span style="font-family: 'Times New Roman'; font-size: 7pt;">
</span></span><span dir="LTR"></span>Some of the reports will
need parameters that the user will select from the MVC pages<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo1; text-indent: -.25in;">
<span style="font-family: Symbol;">·<span style="font-family: 'Times New Roman'; font-size: 7pt;">
</span></span><span dir="LTR"></span>I want to export the report
by PDF, but having word and Excel would
be an advantage<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo1; text-indent: -.25in;">
<span style="font-family: Symbol;">·<span style="font-family: 'Times New Roman'; font-size: 7pt;">
</span></span><span dir="LTR"></span>Some report standardization
point that is needed:<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" style="margin-left: 1.0in; mso-add-space: auto; mso-list: l0 level2 lfo1; text-indent: -.25in;">
<span style="font-family: 'Courier New';">o<span style="font-family: 'Times New Roman'; font-size: 7pt;">
</span></span><span dir="LTR"></span>Required reports have a description
title<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" style="margin-left: 1.0in; mso-add-space: auto; mso-list: l0 level2 lfo1; text-indent: -.25in;">
<span style="font-family: 'Courier New';">o<span style="font-family: 'Times New Roman'; font-size: 7pt;">
</span></span><span dir="LTR"></span>Required have right and
left main and sub headers<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" style="margin-left: 1.0in; mso-add-space: auto; mso-list: l0 level2 lfo1; text-indent: -.25in;">
<span style="font-family: 'Courier New';">o<span style="font-family: 'Times New Roman'; font-size: 7pt;">
</span></span><span dir="LTR"></span>Required to have the user name
printing the report in the footer<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" style="margin-left: 1.0in; mso-add-space: auto; mso-list: l0 level2 lfo1; text-indent: -.25in;">
<span style="font-family: 'Courier New';">o<span style="font-family: 'Times New Roman'; font-size: 7pt;">
</span></span><span dir="LTR"></span>Required to have the
printing date on the footer<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" style="margin-left: 1.0in; mso-add-space: auto; mso-list: l0 level2 lfo1; text-indent: -.25in;">
<span style="font-family: 'Courier New';">o<span style="font-family: 'Times New Roman'; font-size: 7pt;">
</span></span><span dir="LTR"></span>Required to have number of
page and total pages in the footer<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" style="margin-left: 1.0in; mso-add-space: auto; mso-list: l0 level2 lfo1; text-indent: -.25in;">
<span style="font-family: 'Courier New';">o<span style="font-family: 'Times New Roman'; font-size: 7pt;">
</span></span><span dir="LTR"></span>All the reports are A4
stander reports ready for printing.<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" style="margin-left: 1.0in; mso-add-space: auto; mso-list: l0 level2 lfo1; text-indent: -.25in;">
<span style="font-family: 'Courier New';">o<span style="font-family: 'Times New Roman'; font-size: 7pt;">
</span></span><span dir="LTR"></span>Reports will be multi language
(currently English and Arabic)<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" style="margin-left: 1.0in; mso-add-space: auto; mso-list: l0 level2 lfo1; text-indent: -.25in;">
<span style="font-family: 'Courier New';">o<span style="font-family: 'Times New Roman'; font-size: 7pt;">
</span></span><span dir="LTR"></span>Reports may contain charts
and bars<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" style="margin-left: 1.0in; mso-add-space: auto; mso-list: l0 level2 lfo1; text-indent: -.25in;">
<span style="font-family: 'Courier New';">o<span style="font-family: 'Times New Roman'; font-size: 7pt;">
</span></span><span dir="LTR"></span>Reports need to be secure<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo1; text-indent: -.25in;">
<span style="font-family: Symbol;">·<span style="font-family: 'Times New Roman'; font-size: 7pt;">
</span></span><span dir="LTR"></span>The system contains an
alert module and some of the requirement needs the PDF document to be attached
to the email.<o:p></o:p></div>
<div class="MsoListParagraphCxSpLast" style="margin-left: 1.0in; mso-add-space: auto;">
<br /></div>
<div class="MsoNormal">
So lets start clean and from the beginning.<o:p></o:p></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglyK4bIu5rg3Ex5RU9Tt7nz8QZXzxIHu5hfRvVREIHNUNc9I48vq77RA_gAfvoVw_2y31LwFRCxQMNL3ge5F-znUo2uIazok7ZUTRsMo5DJ7axgN44ySd5PBISJsRc742yX5Q2_g/s1600/1.+New+project.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="395" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglyK4bIu5rg3Ex5RU9Tt7nz8QZXzxIHu5hfRvVREIHNUNc9I48vq77RA_gAfvoVw_2y31LwFRCxQMNL3ge5F-znUo2uIazok7ZUTRsMo5DJ7axgN44ySd5PBISJsRc742yX5Q2_g/s640/1.+New+project.JPG" width="640" /></a></div>
<div class="MsoNormal">
Lunching Visual Studio, selecting new project<o:p></o:p></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
Selecting MVC4, intrenet application (all template will work
too)</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEia1DAT2mH89wBjSrhI8CkRC2KrTkE7GDDr_rMAWVReJppnBnSuXNTAFtYwcHh_ol2DN7pD4JqyLgJtKB1S6oS7c6zJfea1a8WFVjv1fqTEdGMdVn4Ixi7lA5ffRcnioa7SRqhUrw/s1600/2.+Select+MVC+4.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="442" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEia1DAT2mH89wBjSrhI8CkRC2KrTkE7GDDr_rMAWVReJppnBnSuXNTAFtYwcHh_ol2DN7pD4JqyLgJtKB1S6oS7c6zJfea1a8WFVjv1fqTEdGMdVn4Ixi7lA5ffRcnioa7SRqhUrw/s640/2.+Select+MVC+4.JPG" width="640" /></a></div>
<div class="MsoNormal">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="MsoNormal" style="text-align: left;">
Adding a new project with the name: ASPNET_MVC_RDLC<o:p></o:p></div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div class="MsoNormal" style="text-align: left;">
I will start putting it all in one project; it’s the same if
you have business and data access layers that are in separate projects too, only to make it short im putting it all together and skipping testing too.<o:p></o:p></div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgL7Fd4NGluzsXEzFSN9JasxZunzGw0rQ7OlN0dOvPCT0qrg8kea9hFgGMy2zxPNnGQOi6WW-qSac71SwwIE6R3ep2awKPuVrKy7pcU5zEiJwOVRlLD8YW20pAtj7ox9OenZwLTA/s1600/3.+select+MVC+internet+app+Capture.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="576" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgL7Fd4NGluzsXEzFSN9JasxZunzGw0rQ7OlN0dOvPCT0qrg8kea9hFgGMy2zxPNnGQOi6WW-qSac71SwwIE6R3ep2awKPuVrKy7pcU5zEiJwOVRlLD8YW20pAtj7ox9OenZwLTA/s640/3.+select+MVC+internet+app+Capture.JPG" width="640" /></a></div>
<div class="MsoNormal" style="text-align: left;">
<br /></div>
<br />
<div class="MsoNormal">
<o:p></o:p><span style="background-color: white;">So let’s start by adding the report view model that will handle
the report parameters, headers and data sets</span></div>
<div class="MsoNormal">
</div>
<pre class="csharpcode" style="font-family: Consolas, 'Courier New', Courier, monospace; font-size: small;"></pre>
<pre class="csharpcode" style="font-family: Consolas, 'Courier New', Courier, monospace; font-size: small;"></pre>
<br />
<div class="MsoNormal">
<o:p></o:p></div>
<br />
<style type="text/css">
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: Consolas, "Courier New", Courier, Monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #a31515; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
<div class="csharpcode">
<pre class="alt"><span class="lnum"> 1: </span><span class="kwrd">using</span> System;</pre>
<pre><span class="lnum"> 2: </span><span class="kwrd">using</span> System.Collections.Generic;</pre>
<pre class="alt"><span class="lnum"> 3: </span><span class="kwrd">using</span> System.Linq;</pre>
<pre><span class="lnum"> 4: </span><span class="kwrd">using</span> System.Web;</pre>
<pre class="alt"><span class="lnum"> 5: </span><span class="kwrd">using</span> Microsoft.Reporting.WebForms;</pre>
<pre><span class="lnum"> 6: </span><span class="kwrd">using</span> System.Web;</pre>
<pre class="alt"><span class="lnum"> 7: </span><span class="kwrd">using</span> System.Web.Mvc;</pre>
<pre><span class="lnum"> 8: </span> </pre>
<pre class="alt"><span class="lnum"> 9: </span><span class="kwrd">namespace</span> ASPNET_MVC_RDLC.Models</pre>
<pre><span class="lnum"> 10: </span>{</pre>
<pre class="alt"><span class="lnum"> 11: </span> <span class="kwrd">public</span> <span class="kwrd">class</span> ReportViewModel</pre>
<pre><span class="lnum"> 12: </span> {</pre>
<pre class="alt"><span class="lnum"> 13: </span> <span class="kwrd">public</span> <span class="kwrd">enum</span> ReportFormat { PDF=1,Word=2,Excel=3}</pre>
<pre><span class="lnum"> 14: </span> <span class="kwrd">public</span> ReportViewModel()</pre>
<pre class="alt"><span class="lnum"> 15: </span> {</pre>
<pre><span class="lnum"> 16: </span> <span class="rem">//initation for the data set holder</span></pre>
<pre class="alt"><span class="lnum"> 17: </span> ReportDataSets = <span class="kwrd">new</span> List<ReportDataSet>();</pre>
<pre><span class="lnum"> 18: </span> }</pre>
<pre class="alt"><span class="lnum"> 19: </span> </pre>
<pre><span class="lnum"> 20: </span> <span class="rem">//Name of the report</span></pre>
<pre class="alt"><span class="lnum"> 21: </span> <span class="kwrd">public</span> <span class="kwrd">string</span> Name { <span class="kwrd">get</span>; <span class="kwrd">set</span>; }</pre>
<pre><span class="lnum"> 22: </span> </pre>
<pre class="alt"><span class="lnum"> 23: </span> <span class="rem">//Language of the report</span></pre>
<pre><span class="lnum"> 24: </span> <span class="kwrd">public</span> <span class="kwrd">string</span> ReportLanguage { <span class="kwrd">get</span>; <span class="kwrd">set</span>; }</pre>
<pre class="alt"><span class="lnum"> 25: </span> </pre>
<pre><span class="lnum"> 26: </span> <span class="rem">//Reference to the RDLC file that contain the report definition</span></pre>
<pre class="alt"><span class="lnum"> 27: </span> <span class="kwrd">public</span> <span class="kwrd">string</span> FileName { <span class="kwrd">get</span>; <span class="kwrd">set</span>; }</pre>
<pre><span class="lnum"> 28: </span> </pre>
<pre class="alt"><span class="lnum"> 29: </span> <span class="rem">//The main title for the reprt</span></pre>
<pre><span class="lnum"> 30: </span> <span class="kwrd">public</span> <span class="kwrd">string</span> ReportTitle { <span class="kwrd">get</span>; <span class="kwrd">set</span>; }</pre>
<pre class="alt"><span class="lnum"> 31: </span> </pre>
<pre><span class="lnum"> 32: </span> <span class="rem">//The right and left titles and sub title for the report</span></pre>
<pre class="alt"><span class="lnum"> 33: </span> <span class="kwrd">public</span> <span class="kwrd">string</span> RightMainTitle { <span class="kwrd">get</span>; <span class="kwrd">set</span>; }</pre>
<pre><span class="lnum"> 34: </span> <span class="kwrd">public</span> <span class="kwrd">string</span> RightSubTitle { <span class="kwrd">get</span>; <span class="kwrd">set</span>; }</pre>
<pre class="alt"><span class="lnum"> 35: </span> <span class="kwrd">public</span> <span class="kwrd">string</span> LeftMainTitle { <span class="kwrd">get</span>; <span class="kwrd">set</span>; }</pre>
<pre><span class="lnum"> 36: </span> <span class="kwrd">public</span> <span class="kwrd">string</span> LeftSubTitle { <span class="kwrd">get</span>; <span class="kwrd">set</span>; }</pre>
<pre class="alt"><span class="lnum"> 37: </span> </pre>
<pre><span class="lnum"> 38: </span> <span class="rem">//the url for the logo, </span></pre>
<pre class="alt"><span class="lnum"> 39: </span> <span class="kwrd">public</span> <span class="kwrd">string</span> ReportLogo { <span class="kwrd">get</span>; <span class="kwrd">set</span>; }</pre>
<pre><span class="lnum"> 40: </span> </pre>
<pre class="alt"><span class="lnum"> 41: </span> <span class="rem">//date for printing the report</span></pre>
<pre><span class="lnum"> 42: </span> <span class="kwrd">public</span> DateTime ReportDate { <span class="kwrd">get</span>; <span class="kwrd">set</span>; }</pre>
<pre class="alt"><span class="lnum"> 43: </span> </pre>
<pre><span class="lnum"> 44: </span> <span class="rem">//the user name that is printing the report</span></pre>
<pre class="alt"><span class="lnum"> 45: </span> <span class="kwrd">public</span> <span class="kwrd">string</span> UserNamPrinting { <span class="kwrd">get</span>; <span class="kwrd">set</span>; }</pre>
<pre><span class="lnum"> 46: </span> </pre>
<pre class="alt"><span class="lnum"> 47: </span> <span class="rem">//dataset holder</span></pre>
<pre><span class="lnum"> 48: </span> <span class="kwrd">public</span> List<ReportDataSet> ReportDataSets { <span class="kwrd">get</span>; <span class="kwrd">set</span>; }</pre>
<pre class="alt"><span class="lnum"> 49: </span> </pre>
<pre><span class="lnum"> 50: </span> <span class="rem">//report format needed</span></pre>
<pre class="alt"><span class="lnum"> 51: </span> <span class="kwrd">public</span> ReportFormat Format { <span class="kwrd">get</span>; <span class="kwrd">set</span>; }</pre>
<pre><span class="lnum"> 52: </span> <span class="kwrd">public</span> <span class="kwrd">bool</span> ViewAsAttachment { <span class="kwrd">get</span>; <span class="kwrd">set</span>; }</pre>
<pre class="alt"><span class="lnum"> 53: </span> </pre>
<pre><span class="lnum"> 54: </span> <span class="rem">//an helper class to store the data for each report data set</span></pre>
<pre class="alt"><span class="lnum"> 55: </span> <span class="kwrd">public</span> <span class="kwrd">class</span> ReportDataSet</pre>
<pre><span class="lnum"> 56: </span> {</pre>
<pre class="alt"><span class="lnum"> 57: </span> <span class="kwrd">public</span> <span class="kwrd">string</span> DatasetName { <span class="kwrd">get</span>; <span class="kwrd">set</span>; }</pre>
<pre><span class="lnum"> 58: </span> <span class="kwrd">public</span> List<<span class="kwrd">object</span>> DataSetData { <span class="kwrd">get</span>; <span class="kwrd">set</span>; }</pre>
<pre class="alt"><span class="lnum"> 59: </span> }</pre>
<pre><span class="lnum"> 60: </span> </pre>
<pre class="alt"><span class="lnum"> 61: </span> <span class="kwrd">public</span> <span class="kwrd">string</span> ReporExportFileName { <span class="kwrd">get</span> {</pre>
<pre><span class="lnum"> 62: </span> <span class="kwrd">return</span> <span class="kwrd">string</span>.Format(<span class="str">"attachment; filename={0}.{1}"</span>, <span class="kwrd">this</span>.ReportTitle, ReporExportExtention);</pre>
<pre class="alt"><span class="lnum"> 63: </span> } }</pre>
<pre><span class="lnum"> 64: </span> <span class="kwrd">public</span> <span class="kwrd">string</span> ReporExportExtention</pre>
<pre class="alt"><span class="lnum"> 65: </span> {</pre>
<pre><span class="lnum"> 66: </span> <span class="kwrd">get</span></pre>
<pre class="alt"><span class="lnum"> 67: </span> {</pre>
<pre><span class="lnum"> 68: </span> <span class="kwrd">switch</span> (<span class="kwrd">this</span>.Format)</pre>
<pre class="alt"><span class="lnum"> 69: </span> {</pre>
<pre><span class="lnum"> 70: </span> <span class="kwrd">case</span> ReportViewModel.ReportFormat.Word: <span class="kwrd">return</span> <span class="str">".doc"</span>; </pre>
<pre class="alt"><span class="lnum"> 71: </span> <span class="kwrd">case</span> ReportViewModel.ReportFormat.Excel: <span class="kwrd">return</span> <span class="str">".xls"</span>; </pre>
<pre><span class="lnum"> 72: </span> <span class="kwrd">default</span>:</pre>
<pre class="alt"><span class="lnum"> 73: </span> <span class="kwrd">return</span> <span class="str">".pdf"</span>;</pre>
<pre><span class="lnum"> 74: </span> }</pre>
<pre class="alt"><span class="lnum"> 75: </span> }</pre>
<pre><span class="lnum"> 76: </span> }</pre>
<pre class="alt"><span class="lnum"> 77: </span> </pre>
<pre><span class="lnum"> 78: </span> <span class="kwrd">public</span> <span class="kwrd">string</span> LastmimeType</pre>
<pre class="alt"><span class="lnum"> 79: </span> {</pre>
<pre><span class="lnum"> 80: </span> <span class="kwrd">get</span></pre>
<pre class="alt"><span class="lnum"> 81: </span> {</pre>
<pre><span class="lnum"> 82: </span> <span class="kwrd">return</span> mimeType;</pre>
<pre class="alt"><span class="lnum"> 83: </span> }</pre>
<pre><span class="lnum"> 84: </span> }</pre>
<pre class="alt"><span class="lnum"> 85: </span> <span class="kwrd">private</span> <span class="kwrd">string</span> mimeType;</pre>
<pre><span class="lnum"> 86: </span> <span class="kwrd">public</span> <span class="kwrd">byte</span>[] RenderReport()</pre>
<pre class="alt"><span class="lnum"> 87: </span> {</pre>
<pre><span class="lnum"> 88: </span> <span class="rem">//geting repot data from the business object</span></pre>
<pre class="alt"><span class="lnum"> 89: </span> </pre>
<pre><span class="lnum"> 90: </span> <span class="rem">//creating a new report and setting its path</span></pre>
<pre class="alt"><span class="lnum"> 91: </span> LocalReport localReport = <span class="kwrd">new</span> LocalReport();</pre>
<pre><span class="lnum"> 92: </span> localReport.ReportPath =System.Web.HttpContext.Current.Server.MapPath(<span class="kwrd">this</span>.FileName);</pre>
<pre class="alt"><span class="lnum"> 93: </span> </pre>
<pre><span class="lnum"> 94: </span> <span class="rem">//adding the reort datasets with there names</span></pre>
<pre class="alt"><span class="lnum"> 95: </span> <span class="kwrd">foreach</span> (<span class="kwrd">var</span> dataset <span class="kwrd">in</span> <span class="kwrd">this</span>.ReportDataSets)</pre>
<pre><span class="lnum"> 96: </span> {</pre>
<pre class="alt"><span class="lnum"> 97: </span> ReportDataSource reportDataSource = <span class="kwrd">new</span> ReportDataSource(dataset.DatasetName, dataset.DataSetData);</pre>
<pre><span class="lnum"> 98: </span> localReport.DataSources.Add(reportDataSource);</pre>
<pre class="alt"><span class="lnum"> 99: </span> }</pre>
<pre><span class="lnum"> 100: </span> <span class="rem">//enabeling external images</span></pre>
<pre class="alt"><span class="lnum"> 101: </span> localReport.EnableExternalImages = <span class="kwrd">true</span>;</pre>
<pre><span class="lnum"> 102: </span> </pre>
<pre class="alt"><span class="lnum"> 103: </span> <span class="rem">//seting the partameters for the report</span></pre>
<pre><span class="lnum"> 104: </span> localReport.SetParameters(<span class="kwrd">new</span> ReportParameter(<span class="str">"RightMainTitle"</span>, <span class="kwrd">this</span>.RightMainTitle));</pre>
<pre class="alt"><span class="lnum"> 105: </span> localReport.SetParameters(<span class="kwrd">new</span> ReportParameter(<span class="str">"RightSubTitle"</span>, <span class="kwrd">this</span>.RightSubTitle));</pre>
<pre><span class="lnum"> 106: </span> localReport.SetParameters(<span class="kwrd">new</span> ReportParameter(<span class="str">"LeftMainTitle"</span>, <span class="kwrd">this</span>.LeftMainTitle));</pre>
<pre class="alt"><span class="lnum"> 107: </span> localReport.SetParameters(<span class="kwrd">new</span> ReportParameter(<span class="str">"LeftSubTitle"</span>, <span class="kwrd">this</span>.LeftSubTitle));</pre>
<pre><span class="lnum"> 108: </span> localReport.SetParameters(<span class="kwrd">new</span> ReportParameter(<span class="str">"ReportTitle"</span>, <span class="kwrd">this</span>.ReportTitle));</pre>
<pre class="alt"><span class="lnum"> 109: </span> localReport.SetParameters(<span class="kwrd">new</span> ReportParameter(<span class="str">"ReportLogo"</span>, System.Web.HttpContext.Current.Server.MapPath(<span class="kwrd">this</span>.ReportLogo)));</pre>
<pre><span class="lnum"> 110: </span> localReport.SetParameters(<span class="kwrd">new</span> ReportParameter(<span class="str">"ReportDate"</span>, <span class="kwrd">this</span>.ReportDate.ToShortDateString()));</pre>
<pre class="alt"><span class="lnum"> 111: </span> localReport.SetParameters(<span class="kwrd">new</span> ReportParameter(<span class="str">"UserNamPrinting"</span>, <span class="kwrd">this</span>.UserNamPrinting));</pre>
<pre><span class="lnum"> 112: </span> </pre>
<pre class="alt"><span class="lnum"> 113: </span> <span class="rem">//preparing to render the report</span></pre>
<pre><span class="lnum"> 114: </span> </pre>
<pre class="alt"><span class="lnum"> 115: </span> <span class="kwrd">string</span> reportType = <span class="kwrd">this</span>.Format.ToString();</pre>
<pre><span class="lnum"> 116: </span> </pre>
<pre class="alt"><span class="lnum"> 117: </span> <span class="kwrd">string</span> encoding;</pre>
<pre><span class="lnum"> 118: </span> <span class="kwrd">string</span> fileNameExtension;</pre>
<pre class="alt"><span class="lnum"> 119: </span> </pre>
<pre><span class="lnum"> 120: </span> <span class="rem">//The DeviceInfo settings should be changed based on the reportType</span></pre>
<pre class="alt"><span class="lnum"> 121: </span> <span class="rem">//http://msdn2.microsoft.com/en-us/library/ms155397.aspx</span></pre>
<pre><span class="lnum"> 122: </span> <span class="kwrd">string</span> deviceInfo =</pre>
<pre class="alt"><span class="lnum"> 123: </span> <span class="str">"<DeviceInfo>"</span> +</pre>
<pre><span class="lnum"> 124: </span> <span class="str">" <OutputFormat>"</span> + <span class="kwrd">this</span>.Format.ToString() + <span class="str">"</OutputFormat>"</span> +</pre>
<pre class="alt"><span class="lnum"> 125: </span> <span class="str">"</DeviceInfo>"</span>;</pre>
<pre><span class="lnum"> 126: </span> </pre>
<pre class="alt"><span class="lnum"> 127: </span> Warning[] warnings;</pre>
<pre><span class="lnum"> 128: </span> <span class="kwrd">string</span>[] streams;</pre>
<pre class="alt"><span class="lnum"> 129: </span> <span class="kwrd">byte</span>[] renderedBytes;</pre>
<pre><span class="lnum"> 130: </span> </pre>
<pre class="alt"><span class="lnum"> 131: </span> <span class="rem">//Render the report</span></pre>
<pre><span class="lnum"> 132: </span> renderedBytes = localReport.Render(</pre>
<pre class="alt"><span class="lnum"> 133: </span> reportType,</pre>
<pre><span class="lnum"> 134: </span> deviceInfo,</pre>
<pre class="alt"><span class="lnum"> 135: </span> <span class="kwrd">out</span> mimeType,</pre>
<pre><span class="lnum"> 136: </span> <span class="kwrd">out</span> encoding,</pre>
<pre class="alt"><span class="lnum"> 137: </span> <span class="kwrd">out</span> fileNameExtension,</pre>
<pre><span class="lnum"> 138: </span> <span class="kwrd">out</span> streams,</pre>
<pre class="alt"><span class="lnum"> 139: </span> <span class="kwrd">out</span> warnings);</pre>
<pre><span class="lnum"> 140: </span> </pre>
<pre class="alt"><span class="lnum"> 141: </span> <span class="kwrd">return</span> renderedBytes;</pre>
<pre><span class="lnum"> 142: </span> }</pre>
<pre class="alt"><span class="lnum"> 143: </span> }</pre>
<pre><span class="lnum"> 144: </span> </pre>
<pre class="alt"><span class="lnum"> 145: </span>}</pre>
<pre class="alt"></pre>
</div>
<br />
<br />
<div class="MsoNormal">
lets add a new report called <i>MyMVCReport.rdlc</i> as
below:<o:p></o:p></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPfdYVmNdBfoMqME1ew9tcBXA69MEsKn7yRBAXx38ou7JtLzRt7XUs_1yCREFlp72cHdjW-hNXPlZfW19PTb2D0eEBWS0XMdpsRqOcpXR3bDDED-uWLqYAto_NZMtUK_6lsrbXkQ/s1600/4+adding+a+report.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPfdYVmNdBfoMqME1ew9tcBXA69MEsKn7yRBAXx38ou7JtLzRt7XUs_1yCREFlp72cHdjW-hNXPlZfW19PTb2D0eEBWS0XMdpsRqOcpXR3bDDED-uWLqYAto_NZMtUK_6lsrbXkQ/s640/4+adding+a+report.JPG" width="640" /></a></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
we will need to add some stub methods to set the report data sources</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Set the data source for the report using the stub methods<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<br />
<div class="csharpcode">
<pre class="alt"><span class="lnum"> 1: </span><span class="kwrd">using</span> System;</pre>
<pre><span class="lnum"> 2: </span><span class="kwrd">using</span> System.Collections.Generic;</pre>
<pre class="alt"><span class="lnum"> 3: </span><span class="kwrd">using</span> System.Linq;</pre>
<pre><span class="lnum"> 4: </span><span class="kwrd">using</span> System.Web;</pre>
<pre class="alt"><span class="lnum"> 5: </span> </pre>
<pre><span class="lnum"> 6: </span><span class="kwrd">namespace</span> ASPNET_MVC_RDLC.Models</pre>
<pre class="alt"><span class="lnum"> 7: </span>{</pre>
<pre><span class="lnum"> 8: </span> <span class="kwrd">public</span> <span class="kwrd">class</span> Business</pre>
<pre class="alt"><span class="lnum"> 9: </span> {</pre>
<pre><span class="lnum"> 10: </span> <span class="kwrd">public</span> List<Employee> StubForEmployeeDataSet()</pre>
<pre class="alt"><span class="lnum"> 11: </span> {</pre>
<pre><span class="lnum"> 12: </span> <span class="rem">//this is used only to help in adding the dataset of type employee to the report definition</span></pre>
<pre class="alt"><span class="lnum"> 13: </span> <span class="kwrd">return</span> <span class="kwrd">null</span>;</pre>
<pre><span class="lnum"> 14: </span> }</pre>
<pre class="alt"><span class="lnum"> 15: </span> <span class="kwrd">public</span> List<Project> StubForProjectDataSet()</pre>
<pre><span class="lnum"> 16: </span> {</pre>
<pre class="alt"><span class="lnum"> 17: </span> <span class="rem">//this is used only to help in adding the dataset of type project to the report definition</span></pre>
<pre><span class="lnum"> 18: </span> <span class="kwrd">return</span> <span class="kwrd">null</span>;</pre>
<pre class="alt"><span class="lnum"> 19: </span> }</pre>
</div>
Note: in production code, I don't recommend putting this in the business layer, any report stub class will be better.<br />
<br />
<br />
<div class="MsoNormal">
Set the data source for the report using the stub methods<o:p></o:p></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuVpBWlDmMT89rZZpOqi1wbbQ_yarFX8e8nSqWkzVusyr4vd86IMg2gLNNXybOMwsBGMTJqNPX-o5wchpsmoPRlcDULnjdJvY0P9cn_5G9JPEd24nTNjCPdH-6G-EzslCu4xrR6A/s1600/6+empt+report+data+set+soruce.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="422" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuVpBWlDmMT89rZZpOqi1wbbQ_yarFX8e8nSqWkzVusyr4vd86IMg2gLNNXybOMwsBGMTJqNPX-o5wchpsmoPRlcDULnjdJvY0P9cn_5G9JPEd24nTNjCPdH-6G-EzslCu4xrR6A/s640/6+empt+report+data+set+soruce.JPG" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
so we have a problem here when selecting add data set from the report menu, the data source drop down list is empty, and when you click new it open a connection to the database.</div>
<div class="separator" style="clear: both; text-align: left;">
So after some search I found a solution from stackoverflow, simply add a web form page to the MVC project and it will start working, I didn't have time to check why is this, but it works.</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhJbvXNrdc2cCTVxOj8O-R0ceUMmVuhyphenhyphenZlS8P3ZVyZBbxqWLxP6FY6QZ55_UUSIwtrhf1-FKhHII_Jv7fCOT-tk1YiVQNqN6NCx-q71tHxXsiDB_BT_TfBTiUptgU-08xVHEycYA/s1600/8.+magically+all+dataseources+appear.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="358" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhJbvXNrdc2cCTVxOj8O-R0ceUMmVuhyphenhyphenZlS8P3ZVyZBbxqWLxP6FY6QZ55_UUSIwtrhf1-FKhHII_Jv7fCOT-tk1YiVQNqN6NCx-q71tHxXsiDB_BT_TfBTiUptgU-08xVHEycYA/s640/8.+magically+all+dataseources+appear.JPG" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
lets add another one.</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoi9faUS5xmFoTRdF9fDhNv-Ifjo8LCgDD-Icclpef-EjW0yBpQYOoOm6sBDkd25QExXLt8MALTl0ic8WOSOwPU1mZc02ZdcC39tsNPar_e7pmMywPbx2INJ1Zz7C7vIL0J3JJTA/s1600/9.+Adding+employees+dataset.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="424" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoi9faUS5xmFoTRdF9fDhNv-Ifjo8LCgDD-Icclpef-EjW0yBpQYOoOm6sBDkd25QExXLt8MALTl0ic8WOSOwPU1mZc02ZdcC39tsNPar_e7pmMywPbx2INJ1Zz7C7vIL0J3JJTA/s640/9.+Adding+employees+dataset.JPG" width="640" /></a><br />
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5m96kBjOm3JfoDnJqAxnlnte523KWBYrevCgYofLW9LsEk6wsM6I-iOTLhLVfe-GYQ4XrCm9RBCLSbfVHuUE47teBNrhqYBY8rFMBIwY0rWQ8clvF2z9Kkp-sotL-LjwUQ62BJg/s1600/10+Adding+project+dataset.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="266" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5m96kBjOm3JfoDnJqAxnlnte523KWBYrevCgYofLW9LsEk6wsM6I-iOTLhLVfe-GYQ4XrCm9RBCLSbfVHuUE47teBNrhqYBY8rFMBIwY0rWQ8clvF2z9Kkp-sotL-LjwUQ62BJg/s640/10+Adding+project+dataset.JPG" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: left;">
lets set the design and layout of the report</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYUKPagDiTY2xW1Y_fDVyKS5KGUEGj0fsMmm_d_SbYOeq-XyrOMLBHyTJFVI4A-aiyHk3coKQRct2b6hBPzu7KaeeuNLFheT0rg75durVbMyNig7Et6Fph5NkCiXvIMvJUV11M8w/s1600/15+desgining+the+report+layout.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="352" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYUKPagDiTY2xW1Y_fDVyKS5KGUEGj0fsMmm_d_SbYOeq-XyrOMLBHyTJFVI4A-aiyHk3coKQRct2b6hBPzu7KaeeuNLFheT0rg75durVbMyNig7Et6Fph5NkCiXvIMvJUV11M8w/s640/15+desgining+the+report+layout.JPG" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
the above is only for testing.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
coming near the last steps , we need to add a reference to the Microsoft web form reports <span style="background-color: white;">assembly</span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhi2FMc2IVXUZ_UhMbPjY1qN0ehOU4axEt5HgMZGMeFphlhlyOvSWKQXeG2QmC-UN4VqMszu1ltOcdYMa_I2HMYD4CRBWt2iumVoMa_WHjDtJaE3D_TPGfgr5YnQcRpg-pYU_-CkQ/s1600/20+adding+a+reference+to+the+report+assembly.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="438" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhi2FMc2IVXUZ_UhMbPjY1qN0ehOU4axEt5HgMZGMeFphlhlyOvSWKQXeG2QmC-UN4VqMszu1ltOcdYMa_I2HMYD4CRBWt2iumVoMa_WHjDtJaE3D_TPGfgr5YnQcRpg-pYU_-CkQ/s640/20+adding+a+reference+to+the+report+assembly.JPG" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="background-color: white;"><br /></span></div>
<div class="MsoNormal">
now lets add the controller that will produce the report.</div>
<div class="MsoNormal">
<br /></div>
<div class="csharpcode">
<pre class="alt"><span class="lnum"> 1: </span><span class="kwrd">using</span> System;</pre>
<pre><span class="lnum"> 2: </span><span class="kwrd">using</span> System.Collections.Generic;</pre>
<pre class="alt"><span class="lnum"> 3: </span><span class="kwrd">using</span> System.Linq;</pre>
<pre><span class="lnum"> 4: </span><span class="kwrd">using</span> System.Web;</pre>
<pre class="alt"><span class="lnum"> 5: </span><span class="kwrd">using</span> System.Web.Mvc;</pre>
<pre><span class="lnum"> 6: </span><span class="kwrd">using</span> ASPNET_MVC_RDLC.Models;</pre>
<pre class="alt"><span class="lnum"> 7: </span> </pre>
<pre><span class="lnum"> 8: </span><span class="kwrd">namespace</span> ASPNET_MVC_RDLC.Controllers</pre>
<pre class="alt"><span class="lnum"> 9: </span>{</pre>
<pre><span class="lnum"> 10: </span> <span class="kwrd">public</span> <span class="kwrd">class</span> ReportController : Controller</pre>
<pre class="alt"><span class="lnum"> 11: </span> {</pre>
<pre><span class="lnum"> 12: </span> <span class="kwrd">public</span> ActionResult PrintRepert()</pre>
<pre class="alt"><span class="lnum"> 13: </span> {</pre>
<pre><span class="lnum"> 14: </span> <span class="rem">//geting repot data from the business object</span></pre>
<pre class="alt"><span class="lnum"> 15: </span> <span class="kwrd">var</span> Business = <span class="kwrd">new</span> Business();</pre>
<pre><span class="lnum"> 16: </span> <span class="kwrd">var</span> reportViewModel = Business.GetMyRepoertViewModel();</pre>
<pre class="alt"><span class="lnum"> 17: </span> </pre>
<pre><span class="lnum"> 18: </span> <span class="kwrd">var</span> renderedBytes = reportViewModel.RenderReport();</pre>
<pre class="alt"><span class="lnum"> 19: </span> </pre>
<pre><span class="lnum"> 20: </span> <span class="kwrd">if</span>(reportViewModel.ViewAsAttachment)</pre>
<pre class="alt"><span class="lnum"> 21: </span> Response.AddHeader(<span class="str">"content-disposition"</span>, reportViewModel.ReporExportFileName);</pre>
<pre><span class="lnum"> 22: </span> <span class="kwrd">return</span> File(renderedBytes, reportViewModel.LastmimeType);</pre>
<pre class="alt"><span class="lnum"> 23: </span> </pre>
<pre><span class="lnum"> 24: </span> }</pre>
<pre class="alt"><span class="lnum"> 25: </span> </pre>
<pre><span class="lnum"> 26: </span> }</pre>
<pre class="alt"><span class="lnum"> 27: </span>}</pre>
</div>
<br />
Add a link to the page to open the report wherever is needed.<br />
<br />
<br />
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: yellow; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 9.5pt;">@{</span><span style="background-color: white; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 9.5pt;"> ViewBag.Title = </span><span style="background: white; color: maroon; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">"Home Page"</span><span style="background-color: white; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 9.5pt;">;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: yellow; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 9.5pt;">}</span><span style="background-color: white; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: yellow; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 9.5pt;">@section
featured {</span><span style="background-color: white; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"><</span><span style="background: white; color: maroon; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">section</span><span style="background-color: white; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background: white; color: red; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">class</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">="featured"></span><span style="background-color: white; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"><</span><span style="background: white; color: maroon; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">div</span><span style="background-color: white; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background: white; color: red; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">class</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">="content-wrapper"></span><span style="background-color: white; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"><</span><span style="background: white; color: maroon; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">hgroup</span><span style="background-color: white; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background: white; color: red; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">class</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">="title"></span><span style="background-color: white; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"><</span><span style="background: white; color: maroon; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">h1</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">></span><span style="background-color: yellow; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 9.5pt;">@</span><span style="background-color: white; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 9.5pt;">ViewBag.Title.</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"><!--</span--><span style="background: white; color: maroon; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">h1</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">></span><span style="background-color: white; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"><</span><span style="background: white; color: maroon; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">h2</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">></span><span style="background-color: yellow; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 9.5pt;">@</span><span style="background-color: white; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 9.5pt;">ViewBag.Message</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"><!--</span--><span style="background: white; color: maroon; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">h2</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">></span><span style="background-color: white; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"><!--</span--><span style="background: white; color: maroon; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">hgroup</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">></span><span style="background-color: white; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 9.5pt;"> <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"><!--</span--><span style="background: white; color: maroon; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">div</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">></span><span style="background-color: white; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"><!--</span--><span style="background: white; color: maroon; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">section</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">></span><span style="background-color: white; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: yellow; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 9.5pt;">}</span><span style="background-color: white; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"><</span><span style="background: white; color: maroon; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">h3</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">></span><span style="background-color: white; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 9.5pt;">We suggest the following:</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"><!--</span--><span style="background: white; color: maroon; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">h3</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">></span><span style="background-color: white; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"><</span><span style="background: white; color: maroon; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">ol</span><span style="background-color: white; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background: white; color: red; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">class</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">="round"></span><span style="background-color: white; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"><</span><span style="background: white; color: maroon; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">li</span><span style="background-color: white; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background: white; color: red; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">class</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">="one"></span><span style="background-color: white; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"><</span><span style="background: white; color: maroon; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">h5</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">></span><span style="background-color: white; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 9.5pt;">Print an RDLC report in MVC</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"><!--</span--><span style="background: white; color: maroon; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">h5</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">></span><span style="background-color: white; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background-color: yellow; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 9.5pt;">@</span><span style="background-color: white; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 9.5pt;">Html.ActionLink(</span><span style="background: white; color: maroon; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">"Print
Report"</span><span style="background-color: white; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 9.5pt;">, </span><span style="background: white; color: maroon; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">"PrintRepert"</span><span style="background-color: white; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 9.5pt;">,</span><span style="background: white; color: maroon; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">"Report"</span><span style="background-color: white; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 9.5pt;">)<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"><!--</span--><span style="background: white; color: maroon; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">li</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">></span><span style="background-color: white; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 9.5pt;"> <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"><!--</span--><span style="background: white; color: maroon; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">ol</span><span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">></span><span style="background-color: white; background-position: initial initial; background-repeat: initial initial; font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"><br /></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;">ok lets run and see.</span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4E7skop1HN-S2EDV_bxJuiPtocPb0sYLoaR2aYoeqHSr4gJSBnkvfOjE6eJ6jlHvTIpnsyC99goLJqYymlLQcLgzq8icgxFuxFhpumBZJDwEk-48m3GefXyhbnhzzp-dQTrYUKQ/s1600/100+the+output+of+the+report.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="450" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4E7skop1HN-S2EDV_bxJuiPtocPb0sYLoaR2aYoeqHSr4gJSBnkvfOjE6eJ6jlHvTIpnsyC99goLJqYymlLQcLgzq8icgxFuxFhpumBZJDwEk-48m3GefXyhbnhzzp-dQTrYUKQ/s640/100+the+output+of+the+report.JPG" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
And its working, there still more work to be done as <span style="background-color: white;">checking the other formats, </span><span style="background-color: white;">the email attachment, </span></div>
<div class="separator" style="clear: both; text-align: left;">
adding some security, the Multilanguage, and uploading this example and linking it here.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
I would love to here some comments.</div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background: white; color: blue; font-family: Consolas; font-size: 9.5pt; mso-highlight: white;"><br /></span></div>
Update: for the business class, it really must come from your original entities. so for this sample this is the one im using
<!-- code formatted by http://manoli.net/csharpformat/ -->
<style type="text/css">
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: Consolas, "Courier New", Courier, Monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #a31515; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
<div class="csharpcode">
<pre class="alt"><span class="lnum"> 1: </span> </pre>
<pre><span class="lnum"> 2: </span><span class="kwrd">namespace</span> ASPNET_MVC_RDLC.Models</pre>
<pre class="alt"><span class="lnum"> 3: </span>{</pre>
<pre><span class="lnum"> 4: </span> <span class="kwrd">public</span> <span class="kwrd">class</span> Business</pre>
<pre class="alt"><span class="lnum"> 5: </span> {</pre>
<pre><span class="lnum"> 6: </span> <span class="kwrd">public</span> List<Employee> StubForEmployeeDataSet()</pre>
<pre class="alt"><span class="lnum"> 7: </span> {</pre>
<pre><span class="lnum"> 8: </span> <span class="rem">//this is used only to help in adding the dataset of type employee to the report definition</span></pre>
<pre class="alt"><span class="lnum"> 9: </span> <span class="kwrd">return</span> <span class="kwrd">null</span>;</pre>
<pre><span class="lnum"> 10: </span> }</pre>
<pre class="alt"><span class="lnum"> 11: </span> <span class="kwrd">public</span> List<Project> StubForProjectDataSet()</pre>
<pre><span class="lnum"> 12: </span> {</pre>
<pre class="alt"><span class="lnum"> 13: </span> <span class="rem">//this is used only to help in adding the dataset of type project to the report definition</span></pre>
<pre><span class="lnum"> 14: </span> <span class="kwrd">return</span> <span class="kwrd">null</span>;</pre>
<pre class="alt"><span class="lnum"> 15: </span> }</pre>
<pre><span class="lnum"> 16: </span> <span class="rem">//somew</span></pre>
<pre class="alt"><span class="lnum"> 17: </span> <span class="kwrd">public</span> ReportViewModel GetMyRepoertViewModel()</pre>
<pre><span class="lnum"> 18: </span> { </pre>
<pre class="alt"><span class="lnum"> 19: </span> <span class="rem">// I will not go through getting data from ef, i will assume some test data here</span></pre>
<pre><span class="lnum"> 20: </span> </pre>
<pre class="alt"><span class="lnum"> 21: </span> <span class="rem">//first dataset, employee info</span></pre>
<pre><span class="lnum"> 22: </span> <span class="kwrd">var</span> EmplyeeDataSet =<span class="kwrd">new</span> List<<span class="kwrd">object</span>>() {</pre>
<pre class="alt"><span class="lnum"> 23: </span> <span class="kwrd">new</span> Employee() { Name=<span class="str">"Ahmed Khaled"</span>, Mobile = <span class="str">"055111111"</span>, Email=<span class="str">"Ahmed.Khaled@Somewhere.com"</span>, BirthDate=<span class="kwrd">new</span> DateTime(1970,10,10)},</pre>
<pre><span class="lnum"> 24: </span> <span class="kwrd">new</span> Employee() { Name=<span class="str">"Jamal Awsom"</span> , Mobile = <span class="str">"055222222"</span>, Email=<span class="str">"Jamal.Awsom@Somewhere.com"</span>, BirthDate=<span class="kwrd">new</span> DateTime(1977,1,10)},</pre>
<pre class="alt"><span class="lnum"> 25: </span> <span class="kwrd">new</span> Employee() { Name=<span class="str">"James Salem"</span> , Mobile = <span class="str">"055333333"</span>, Email=<span class="str">"James.Salem@Somewhere.com"</span>, BirthDate=<span class="kwrd">new</span> DateTime(1982,12,10)},</pre>
<pre><span class="lnum"> 26: </span> <span class="kwrd">new</span> Employee() { Name=<span class="str">"Tony Read"</span> , Mobile = <span class="str">"055444444"</span>, Email=<span class="str">"Tony.Read@Somewhere.com"</span>, BirthDate=<span class="kwrd">new</span> DateTime(1982,4,10)}</pre>
<pre class="alt"><span class="lnum"> 27: </span> </pre>
<pre><span class="lnum"> 28: </span> };</pre>
<pre class="alt"><span class="lnum"> 29: </span> <span class="kwrd">var</span> ProjectDataSet =<span class="kwrd">new</span> List<<span class="kwrd">object</span>>() ;</pre>
<pre><span class="lnum"> 30: </span> <span class="kwrd">for</span> (<span class="kwrd">int</span> i=1;i<30;i++)</pre>
<pre class="alt"><span class="lnum"> 31: </span> {</pre>
<pre><span class="lnum"> 32: </span> EmplyeeDataSet.Add(<span class="kwrd">new</span> Employee() { Name = <span class="str">"James Salem"</span>, Mobile = <span class="str">"055333333"</span>, </pre>
<pre class="alt"><span class="lnum"> 33: </span> Email = <span class="str">"James.Salem@Somewhere.com"</span>, BirthDate = <span class="kwrd">new</span> DateTime(1982, 12, 10) });</pre>
<pre><span class="lnum"> 34: </span> }</pre>
<pre class="alt"><span class="lnum"> 35: </span> </pre>
<pre><span class="lnum"> 36: </span> <span class="rem">//Assuming the person printing the report is me</span></pre>
<pre class="alt"><span class="lnum"> 37: </span> <span class="kwrd">var</span> UserPrinting=<span class="str">"Ali Taki"</span>;</pre>
<pre><span class="lnum"> 38: </span> </pre>
<pre class="alt"><span class="lnum"> 39: </span> <span class="kwrd">var</span> reportViewModel = <span class="kwrd">new</span> ReportViewModel()</pre>
<pre><span class="lnum"> 40: </span> {</pre>
<pre class="alt"><span class="lnum"> 41: </span> FileName = <span class="str">"~/Reprots/MyMVCReport2.rdlc"</span>,</pre>
<pre><span class="lnum"> 42: </span> LeftMainTitle = <span class="str">"ABC Company Name"</span>,</pre>
<pre class="alt"><span class="lnum"> 43: </span> LeftSubTitle = <span class="str">"DEF Department Name"</span>,</pre>
<pre><span class="lnum"> 44: </span> RightMainTitle = <span class="str">"اسم الشركة"</span>,</pre>
<pre class="alt"><span class="lnum"> 45: </span> RightSubTitle = <span class="str">"اسم القسم"</span>,</pre>
<pre><span class="lnum"> 46: </span> Name = <span class="str">"Statistical Report"</span>,</pre>
<pre class="alt"><span class="lnum"> 47: </span> ReportDate = DateTime.Now,</pre>
<pre><span class="lnum"> 48: </span> ReportLogo = <span class="str">"~/Content/logo.jpg"</span>,</pre>
<pre class="alt"><span class="lnum"> 49: </span> ReportTitle = <span class="str">"Summary report for top employee's and projects"</span>,</pre>
<pre><span class="lnum"> 50: </span> ReportLanguage = <span class="str">"en-US"</span>,</pre>
<pre class="alt"><span class="lnum"> 51: </span> UserNamPrinting = UserPrinting,</pre>
<pre><span class="lnum"> 52: </span> Format=ReportViewModel.ReportFormat.PDF,</pre>
<pre class="alt"><span class="lnum"> 53: </span> ViewAsAttachment=<span class="kwrd">false</span>,</pre>
<pre><span class="lnum"> 54: </span> </pre>
<pre class="alt"><span class="lnum"> 55: </span> };</pre>
<pre><span class="lnum"> 56: </span> <span class="rem">//adding the dataset information to the report view model object</span></pre>
<pre class="alt"><span class="lnum"> 57: </span> reportViewModel.ReportDataSets.Add(<span class="kwrd">new</span> ReportViewModel.ReportDataSet() { DataSetData = EmplyeeDataSet.ToList(), DatasetName = <span class="str">"Employees"</span> });</pre>
<pre><span class="lnum"> 58: </span> reportViewModel.ReportDataSets.Add(<span class="kwrd">new</span> ReportViewModel.ReportDataSet() { DataSetData = ProjectDataSet.ToList(), DatasetName = <span class="str">"Projects"</span> });</pre>
<pre class="alt"><span class="lnum"> 59: </span> </pre>
<pre><span class="lnum"> 60: </span> </pre>
<pre class="alt"><span class="lnum"> 61: </span> <span class="kwrd">return</span> reportViewModel;</pre>
<pre><span class="lnum"> 62: </span> </pre>
<pre class="alt"><span class="lnum"> 63: </span> }</pre>
<pre><span class="lnum"> 64: </span> }</pre>
<pre class="alt"><span class="lnum"> 65: </span>}</pre>
</div>
Ali Al-Mosawihttp://www.blogger.com/profile/07148606862152114693noreply@blogger.com32tag:blogger.com,1999:blog-26827488.post-55313431212463689382012-07-23T08:28:00.000-06:002012-08-05T21:29:55.358-06:00MVC AutoComplete template<br />
<div class="MsoNormal">
Get the Id/Key of the selected item and highlight the inputed
text in the list of selections.<o:p></o:p></div>
<div class="MsoNormal">
The below works with MVC3 or MVC4 using Razor view engine</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
I will use JQuery to enhance the UI of the app, so here
is my autocomplete that can be used anywhere in your MVC project and more than
once in a page.<o:p></o:p></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzCxFy4cqcq3ZVD2QdI7oTbzQvlOovKQSdjw9lwiUWIhXSvnFMaaCIJXUX-5BVqzIV4Tgw8nMpn7RzzHiL46kfdO8DeA2XLC7PNyBDpW9JAPmy4RaEIt6tL3ywMj9IIYWMiQkC6Q/s1600/autocomplte+1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzCxFy4cqcq3ZVD2QdI7oTbzQvlOovKQSdjw9lwiUWIhXSvnFMaaCIJXUX-5BVqzIV4Tgw8nMpn7RzzHiL46kfdO8DeA2XLC7PNyBDpW9JAPmy4RaEIt6tL3ywMj9IIYWMiQkC6Q/s1600/autocomplte+1.png" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="MsoNormal">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbwpie3MqoRLgrIlCg-yh2ultZJr5syOINEVwbwW4KkmO0Jk1oWlcY-4CFMEUjflAF1q0vwS6We6oDzWevmHmwJSyk7_1ldH0899Kma3JduFnMfkY7v2OuSzOEhJjYPS3c11urNw/s1600/autocomplte+2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbwpie3MqoRLgrIlCg-yh2ultZJr5syOINEVwbwW4KkmO0Jk1oWlcY-4CFMEUjflAF1q0vwS6We6oDzWevmHmwJSyk7_1ldH0899Kma3JduFnMfkY7v2OuSzOEhJjYPS3c11urNw/s1600/autocomplte+2.png" /></a></div>
<br /></div>
<div class="MsoNormal">
First configure your scripts to include JQuery and JQuery
UI, etc in the layout page, so the autocomplete can work all over the
application in any view.<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background-color: yellow; font-family: Consolas; font-size: 9.5pt;">@</span><span style="background-color: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt;">Scripts</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;">.Render(</span><span style="background-color: white; color: maroon; font-family: Consolas; font-size: 9.5pt;">"~/bundles/jquery"</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;">)<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background-color: yellow; font-family: Consolas; font-size: 9.5pt;">@</span><span style="background-color: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt;">Scripts</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;">.Render(</span><span style="background-color: white; color: maroon; font-family: Consolas; font-size: 9.5pt;">"~/bundles/jqueryui"</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;">)<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt; line-height: 115%;"> </span><span style="background-color: yellow; font-family: Consolas; font-size: 9.5pt; line-height: 115%;">@</span><span style="background-color: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; line-height: 115%;">Scripts</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt; line-height: 115%;">.Render(</span><span style="background-color: white; color: maroon; font-family: Consolas; font-size: 9.5pt; line-height: 115%;">"~/bundles/jqueryval"</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt; line-height: 115%;">)</span><span style="font-family: Consolas; font-size: 9.5pt; line-height: 115%;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Consolas; font-size: 9.5pt; line-height: 115%;">I added the autocomplete java code in the <span style="background-color: white;">(</span></span><span style="background-color: white; color: maroon; font-family: Consolas; font-size: 9.5pt; line-height: 115%;">"~/bundles/jqueryval"</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt; line-height: 115%;">)</span><span style="font-family: Consolas; font-size: 9.5pt; line-height: 115%;"> bundle, at the App_Start as
below:<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">public</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">static</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">void</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> RegisterBundles(</span><span style="background-color: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt;">BundleCollection</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> bundles)<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> {<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background-color: white; color: green; font-family: Consolas; font-size: 9.5pt;">//TODO:
On production this will be true</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background-color: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt;">BundleTable</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;">.EnableOptimizations = </span><span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">false</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;">;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> bundles.Add(</span><span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">new</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background-color: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt;">ScriptBundle</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;">(</span><span style="background-color: white; color: maroon; font-family: Consolas; font-size: 9.5pt;">"~/bundles/jquery"</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;">).Include(<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background-color: white; color: maroon; font-family: Consolas; font-size: 9.5pt;">"~/Scripts/jquery-1.*"</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;">));<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> bundles.Add(</span><span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">new</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background-color: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt;">ScriptBundle</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;">(</span><span style="background-color: white; color: maroon; font-family: Consolas; font-size: 9.5pt;">"~/bundles/jqueryui"</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;">).Include(<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background-color: white; color: maroon; font-family: Consolas; font-size: 9.5pt;">"~/Scripts/jquery-ui*"</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;">));<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> bundles.Add(</span><span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">new</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background-color: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt;">ScriptBundle</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;">(</span><span style="background-color: white; color: maroon; font-family: Consolas; font-size: 9.5pt;">"~/bundles/jqueryval"</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;">).Include(<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background-color: white; color: maroon; font-family: Consolas; font-size: 9.5pt;">"~/Scripts/jquery.unobtrusive*"</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;">,<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background-color: white; color: maroon; font-family: Consolas; font-size: 9.5pt;">"~/Scripts/jquery.validate*"</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;">,<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt; line-height: 115%;"> </span><span style="background-color: white; color: maroon; font-family: Consolas; font-size: 9.5pt; line-height: 115%;">"~/Scripts/</span><span style="background-color: yellow; color: maroon; font-family: Consolas; font-size: 9.5pt; line-height: 115%;">ControlsJScript.js</span><span style="background-color: white; color: maroon; font-family: Consolas; font-size: 9.5pt; line-height: 115%;">"</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt; line-height: 115%;">));</span><span style="font-family: Consolas; font-size: 9.5pt; line-height: 115%;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt; line-height: 115%;"> .....</span></div>
<div class="MsoNormal">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt; line-height: 115%;"> .....</span></div>
<div class="MsoNormal">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt; line-height: 115%;"><br /></span></div>
<div class="MsoNormal">
This ControlJscript.js file will be my stander control code
for all the templates I need, currently its populated with the autocomplete
code that will wire the autocomplete and the highlighted behavior<o:p></o:p><br />
<br />
<pre class="csharpcode" style="font-family: Consolas, 'Courier New', Courier, monospace; font-size: small;">$(document).ready(function () {
//set autocomplete with hieghlit text
$(":input[data-autocomplete]").each(function () {
$(this).autocomplete({
source: $(this).attr('data-autocomplete'),
minLength: 2,
change: function (event, ui) {
var TargetId = "#" + $(this).attr('data-target'); //find Target Control Id
if (ui.item == null) {$(TargetId).attr('value', " ");} //Set the value to the selected value
else { $(TargetId).attr('value', ui.item.id);}
}
}).data("autocomplete")._renderItem = function (ul, item) {
var term = $(this)[0].term;
var index = item.label.toLowerCase().indexOf(term.toLowerCase());
return $("<span class="kwrd" style="color: blue;"><</span><span class="html" style="color: maroon;">li</span><span class="kwrd" style="color: blue;">><span class="html" style="color: maroon;">li</span><span class="kwrd" style="color: blue;">></span>")
.data("item.autocomplete", item)
.append("<span class="kwrd" style="color: blue;"><</span><span class="html" style="color: maroon;">a</span><span class="kwrd" style="color: blue;">></span>" + item.label.substring(0, index)
+ "<span class="kwrd" style="color: blue;"><</span><span class="html" style="color: maroon;">font</span> <span class="attr" style="color: red;">class</span><span class="kwrd" style="color: blue;">='AutoFont'</span><span class="kwrd" style="color: blue;">></span>" + item.label.substring(index, index + term.length)
+ "<span class="kwrd" style="color: blue;"><span class="html" style="color: maroon;">font</span><span class="kwrd" style="color: blue;">></span>" + item.label.substring(index + term.length) + "<span class="kwrd" style="color: blue;"><span class="html" style="color: maroon;">a</span><span class="kwrd" style="color: blue;">></span>")
.appendTo(ul);
//&#8205 script joiner
//u is the solution
};
});
});</span></span></span></pre>
</div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<div class="MsoNormal">
<br /></div>
</div>
<div class="MsoNormal">
<o:p> Note: </o:p><span style="background-color: white;"><span style="font-family: Consolas; font-size: x-small;">AutoFont is a css class that specify the style for the input text</span></span></div>
<div class="MsoNormal">
Second set Autocomplete View Model class in your model
folder or anywhere you like.<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">using</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> System;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">using</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> System.Collections.Generic;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">using</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> System.Linq;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">using</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> System.Web;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">namespace</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> ADM.Ntrasal.UI.Web.Browser.Models<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt;">{<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">public</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">class</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background-color: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt;">AutoCompleteViewModule</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> {<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">public</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> AutoCompleteViewModule()<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> {<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background-color: white; color: green; font-family: Consolas; font-size: 9.5pt;">//default
values</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> AutocompleteCount = 10;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> Type = </span><span style="background-color: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt;">AutoCompleteTypes</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;">.EmployeeNames;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> }<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">public</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">string</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> Id { </span><span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">get</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;">; </span><span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">set</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;">; }<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">public</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">string</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> Name { </span><span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">get</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;">; </span><span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">set</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;">; }<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">public</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">string</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> Field { </span><span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">get</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;">; </span><span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">set</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;">; }<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">public</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">int</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> AutocompleteCount { </span><span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">get</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;">; </span><span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">set</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;">; }<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">public</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background-color: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt;">AutoCompleteTypes</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> Type { </span><span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">get</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;">; </span><span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">set</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;">; }<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">public</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">enum</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background-color: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt;">AutoCompleteTypes</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> {<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> EmployeeNames,<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> OrgChart,<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> Sources<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> }<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> }<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt; line-height: 115%;">}</span><o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
I prefer to add the controller logic to an api controller,
but for this example (for backwards compatibility) im adding the managing code
to a normal controller as below:<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">using</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> System;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">using</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> System.Collections.Generic;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">using</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> System.Linq;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">using</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> System.Web;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">using</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> System.Web.Mvc;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">using</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> ADM.Ntrasal.Business;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">using</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> ADM.Ntrasal.Data;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">namespace</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> ADM.Ntrasal.Web.UI.Browser.Controllers<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt;">{<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">public</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">class</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background-color: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt;">AutoCompleteController</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> : </span><span style="background-color: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt;">Controller</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> {<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">private</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">readonly</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background-color: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt;">IRepositories</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;">
Repositories;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">public</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> AutoCompleteController()<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> {
//Prefare to use Ioc but for simplicity <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">this</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;">.Repositories = </span><span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">new</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background-color: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt;">Repositories</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;">();<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> }<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background-color: white; color: green; font-family: Consolas; font-size: 9.5pt;">//</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background-color: white; color: green; font-family: Consolas; font-size: 9.5pt;">// GET:
/AutoComplete/</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">public</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background-color: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt;">ActionResult</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> EmployeeNames(</span><span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">string</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> term)<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> {<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">var</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> count = 10;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">var</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> UserProfileRepostery = </span><span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">this</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;">.Repositories.Create<</span><span style="background-color: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt;">UserProfile</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;">>();<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">var</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> result = UserProfileRepostery.GetAll().Where(x =>
x.Employee_Name.ToLower().Contains(term.ToLower()))<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> .Take(count).Select(x =><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">new</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> {<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> label = x.Employee_Name,<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> id = x.UserID<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> });<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">return</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> Json(result, </span><span style="background-color: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt;">JsonRequestBehavior</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;">.AllowGet);<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> }<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> }<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt;">}<o:p></o:p></span></div>
<div class="MsoNormal">
Note: the idea is to return the text with its key, so when
the user selects something you get the id/key directly.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Add the below as a template for the Autocomplete<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: yellow; font-family: Consolas; font-size: 9.5pt;">@model
</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;">ADM.Ntrasal.UI.Web.Browser.Models.</span><span style="background-color: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt;">AutoCompleteViewModule</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;"><</span><span style="background-color: white; color: maroon; font-family: Consolas; font-size: 9.5pt;">input</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background-color: white; color: red; font-family: Consolas; font-size: 9.5pt;">type</span><span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">="text"</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background-color: white; color: red; font-family: Consolas; font-size: 9.5pt;">name</span><span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">="AutocompleteTextBox"</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background-color: white; color: red; font-family: Consolas; font-size: 9.5pt;">data-target</span><span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">='</span><span style="background-color: yellow; font-family: Consolas; font-size: 9.5pt;">@</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;">Model.Field</span><span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">'</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background-color: white; color: red; font-family: Consolas; font-size: 9.5pt;">data-autocomplete</span><span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">="</span><span style="background-color: yellow; font-family: Consolas; font-size: 9.5pt;">@</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;">Url.Action(@Model.Type.ToString(), </span><span style="background-color: white; color: maroon; font-family: Consolas; font-size: 9.5pt;">"AutoComplete"</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;">, </span><span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">new</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> { count =
@Model.AutocompleteCount })</span><span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">"</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background-color: white; color: red; font-family: Consolas; font-size: 9.5pt;">value</span><span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">='</span><span style="background-color: yellow; font-family: Consolas; font-size: 9.5pt;">@</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;">Model.Name</span><span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">'</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"> </span><span style="background-color: white; color: blue; font-family: Consolas; font-size: 9.5pt;">/></span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal">
<span style="background-color: yellow; font-family: Consolas; font-size: 9.5pt; line-height: 115%;">@</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt; line-height: 115%;">Html.Hidden(@Model.Field)</span><span style="font-family: Consolas; font-size: 9.5pt; line-height: 115%;"><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Add it to your view whenever an autocomplete is neededset,
for a test view, make the view a strong type with <span style="background-color: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; line-height: 115%;">AutoCompleteViewModule</span><span style="color: #2b91af; font-family: Consolas; font-size: 9.5pt; line-height: 115%;"> </span>as below.<o:p></o:p></div>
<div class="MsoNormal">
<span style="background-color: yellow; font-family: Consolas; font-size: 9.5pt; line-height: 115%;">@model </span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt; line-height: 115%;">ADM.Ntrasal.UI.Web.Browser.Models.</span><span style="background-color: white; color: #2b91af; font-family: Consolas; font-size: 9.5pt; line-height: 115%;">AutoCompleteViewModule</span><span style="color: #2b91af; font-family: Consolas; font-size: 9.5pt; line-height: 115%;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="background-color: white; font-family: Consolas; font-size: 9.5pt; line-height: 115%;"> </span><span style="background-color: yellow; font-family: Consolas; font-size: 9.5pt; line-height: 115%;">@</span><span style="background-color: white; font-family: Consolas; font-size: 9.5pt; line-height: 115%;">Html.EditorFor(x=>@Model)</span><span style="font-family: Consolas; font-size: 9.5pt; line-height: 115%;"><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
I did’t add a code sample because this is a part of a large project,
but if anybody is interested, I can make a quick project and upload it.<o:p></o:p></div>Ali Al-Mosawihttp://www.blogger.com/profile/07148606862152114693noreply@blogger.com0tag:blogger.com,1999:blog-26827488.post-14797639267256795592012-07-16T12:23:00.003-06:002012-08-05T21:32:16.965-06:00aspConf - Its free - its On-line -- its virtual -- its recorded<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQsU15JV9-lsiCdb5ZGb9R-4_Pv-M7i0E_7cvZgWSL1NmXxaR2JsiGspDu-UA6E7dCuqswdxAcAi29bRSvOq9jVcVvN8HoR26s-2Yyv2jtYttGtxhyphenhyphenDrw6KcvJ-sVaAE6zVErqmA/s1600/aspConf-logo.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="115" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQsU15JV9-lsiCdb5ZGb9R-4_Pv-M7i0E_7cvZgWSL1NmXxaR2JsiGspDu-UA6E7dCuqswdxAcAi29bRSvOq9jVcVvN8HoR26s-2Yyv2jtYttGtxhyphenhyphenDrw6KcvJ-sVaAE6zVErqmA/s320/aspConf-logo.png" width="320" /></a></div>
<span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="line-height: 27px;"><a href="http://www.aspconf.net/">aspConf</a> is a virtual conference focused on one thing: showcasing the ASP.NET stack as the platform for great web applications.</span></span><br />
<br />
<span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="line-height: 27px;">Subjects include:</span></span><br />
<span style="background-color: white; color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="line-height: 27px;">Net4.5, Azure, </span></span><span style="background-color: white; color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium; line-height: 27px;">ASP.NET,</span><span style="background-color: white; color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium; line-height: 27px;">MVVM, </span><span style="background-color: white; color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium; line-height: 27px;">LINQ</span><span style="background-color: white; color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium; line-height: 27px;">, TFS, </span><span style="background-color: white; line-height: 27px;"><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;">Web API ,Single Page Web Apps,Testing,Design Patterns ,MVC and WinForms, MVC 4 Mobile, </span></span><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="line-height: 27px;">HTML5,CSS3,</span></span><span style="background-color: white; color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium; line-height: 27px;">jQuery</span><span style="background-color: white; color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium; line-height: 27px;"> </span><span style="background-color: white; color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="line-height: 27px;"> MVC, etc</span></span><br />
<br />
<span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="line-height: 27px;">Session list:</span></span><br />
<span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"></span><br />
<br />
<ul>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">Glimpse into ASP.NET - Taking a never before seen look inside your server! | Nik Molnar, Anthony van der Hoorn </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">Playing with Balls of Mud | Ashic Mahtab </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">JavaScript Gotchas | Ashic Mahtab </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">Understanding Monads with JavaScript | Ashic Mahtab </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">ASP.NET MVC Tips, Tricks and Hidden Gems | Shay Friedman </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">Introduction to KnockoutJS Single Page Applications with ASP.NET MVC4 A Smooth Transition to HTML5 Using MVVM Continuous </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">Truly understanding async programming in ASP.NET | Damian Edwards </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">Advanced ASP.NET Web API | Daniel Roth </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">ASP.NET - Beyond Visual Studio 2012 and .NET 4.5 | Scott Hunter </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">Ask the Experts (SignalR, MVC, Web API) | Damian Edwards </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">A Smooth Transition to HTML5 Using MVVM | Chris Bannon </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">Bundling and Optimization | Howard Dierking </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">ASP.NET MVC 4 Mobile | Jon Galloway </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">Azure SDK | Mohit Srivastava </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">Next Generation Visual Studio Web Tools | Mads Kristensen </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">Advanced ASP.NET Web Forms 4.5 | Damian Edwards </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">Web Sites on Windows Azure | Brady Gaster </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">Getting Started With ASP.NET MVC | Eric Sowell </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">Modern Web Development | Shawn Wildermuth </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">Responsive Design | Shawn Wildermuth </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">HTML5 w/ ASP.NET 4 & 4.5 | Matthew Osborn </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">NuGet: Add Reference, Awesome | Matthew Osborn </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">Reach the Mobile Masses with ASP.NET MVC 4 and jQuery Mobile | Keith Burnell </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">KO Your ASP.NET MVC with Knockout | Keith Burnell </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">Test Driving ASP.NET MVC | Keith Burnell </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">CQRS with ASP.NET MVC - A Year On | Ashic Mahtab </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">Kendo UI – Lighten Your Load by Adding a Sword | Keith Burnell </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">Cryptography 101 Using the .NET Framework and ASP.NET | Robert Boedigheimer </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">Improving Web Site Performance and Scalability While Saving Money | Robert Boedigheimer </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">Fiddler and Your Website | Robert Boedigheimer </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">Styling web pages with CSS 3 | Robert Boedigheimer </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">Exterminating Common jQuery Bugs | Elijah Manor </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">Intro to RavenDB: NoSQL is Rapping at Your Door | David Neal </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">Score a Knockout | John West </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">Tame Your Static Content: Compress, Optimize, Secure & more... | Dan Maharry </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">Introduction to Simple.Web | Mark Rendle </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">Test-First and Functional-First with Web API | Ryan Riley </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">Going Native With HTML5 | Chris Love </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">That's Crazy! How To Build Single Page Web Apps | Chris Love </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">Enterprise Search with MVC4 | Chander Dhall </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">Rev up your javascript skills | Chander Dhall </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">Quick Start: Test Driven Development | David Vujic </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">Integration Testing With SpecsFor.Mvc – ASP.NET MVC Testing on Steroids! | Matt Honeycutt </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">Persistence In The Cloud: How to use Azure Storage | David Giard </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">HTML5 is the Future of the Web | David Giard </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">How I Learned to Stop Worrying and Love jQuery | David Giard </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">Building Your First ASP.Net MVC Application | David Giard </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">ElmahR = ELMAH + SignalR | Roberto Vespa </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">Fast, Faster... Async, ASP.NET | Tiberiu Covaci </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">Introduction to the ASP.NET Web API | John V. Petersen </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">How To Achieve World(-Ready) Domination In ASP.NET MVC 4 | Guy Smith-Ferrier </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">Deep Integration of MVC and WinForms | Matthew Kane </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">Brewing Beer with Windows Azure | Maarten Balliauw </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">Working with Client-Side HTML5 Storages | Gil Fink </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">Three web frameworks. All .NET. All Community Driven. One hour. Go. | Christian Horsdal </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">The Lightweight Approach to Building Web Based APIs with .Net | Christian Horsdal </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">Common ASP.NET Design Patterns | Steve Smith </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">ASP.NET MVC Solution Best Practices | Steve Smith </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">Why ASP.NET forms authentication is broken, and what to do about it | Troels Thomsen </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">Beautiful Javascript with Coffeescript | Amir Barylko </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">Tips for Building Responsive Cloud Applications | Igor Moochnick </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">Building complex Single Page Application should be as enjoyable as visit to a SPA | Igor Moochnick </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">Awesome HTML using UJS, jQuery & Coffeescript | Amir Barylko </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">TDD Your javascript with Jasmine | Amir Barylko </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">Testing ASP.NET MVC Views, from New Project to the Build Server | Jim Counts </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">Building Dynamic Web Applications with KnockoutJS and ASP.Net MVC | Ely Lucas </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">Your users are mobile capable. Is your application? | Andrew Steele </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">From Zero to Hero: Windows Azure Web Sites and TFS Preview | Mitch Denny </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">I Didn't Know JavaScript Could Do That! | David Hoerster </span></div>
</span></span></li>
<li><span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><span style="background-color: white;"><div style="display: inline !important;">
<span style="line-height: 27px;">Creating Your Own Dynamic LINQ Statements With Expression Trees | David Hoerster </span></div>
</span></span></li>
</ul>
<br />
<div style="line-height: 27px;">
<span style="color: #333333; font-family: 'Open Sans', Helvetica, Arial, sans-serif; font-size: medium;"><br /></span></div>Ali Al-Mosawihttp://www.blogger.com/profile/07148606862152114693noreply@blogger.com0tag:blogger.com,1999:blog-26827488.post-2112780858266244982012-07-02T15:15:00.001-06:002012-08-05T21:34:47.564-06:00I WON the “Microsoft Gulf Windows 8 App Competition”<br />
I WON the “Gulf Windows 8 App Competition” for My app “<a href="http://kidsmetrostudio.com/">Kids Metro Studio</a>”<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://kidsmetrostudio.com/Images/wideLogo.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://kidsmetrostudio.com/Images/wideLogo.png" /></a></div>
<br />
<span style="background-color: white;">I received today the prize as promised “Windows 8 Samsung Tablet Slate PC 700T1A”, its awesome.</span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlwJdf-oo074mf-LNNb7XFJIEWk-EIQqFnXjLNUmka8PLckTSatMq5xLeQfiV6NbBTNrS0uJoU4Nmmzi295PzVVUyjLrSrtRp1MHFN1QPnECI5Uwckjcu8nfXx1JDzAQGssBtYKg/s1600/IMG_2348.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="301" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlwJdf-oo074mf-LNNb7XFJIEWk-EIQqFnXjLNUmka8PLckTSatMq5xLeQfiV6NbBTNrS0uJoU4Nmmzi295PzVVUyjLrSrtRp1MHFN1QPnECI5Uwckjcu8nfXx1JDzAQGssBtYKg/s400/IMG_2348.jpg" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrWI1gJmd1yl28prrH01TQ53VFInHyjBOEAcyQ8YU_4BQSabopXqNt2-y83s2cmzDKFoKLxnZJ3mY855r7IOD81sN6vsKnmOvQhflklYJiDgydlM3w7qXoFsP6B85MR5qhAuQEBQ/s1600/IMG_2349.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="301" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrWI1gJmd1yl28prrH01TQ53VFInHyjBOEAcyQ8YU_4BQSabopXqNt2-y83s2cmzDKFoKLxnZJ3mY855r7IOD81sN6vsKnmOvQhflklYJiDgydlM3w7qXoFsP6B85MR5qhAuQEBQ/s400/IMG_2349.jpg" width="400" /></a></div>
<br />
<br />
This would not be possible without the help and encouraging of my colleagues and friends. spacial thanks to:<br />
<ul>
<li><span style="background-color: white;">My Team leader, Muhamad Kaiser, for always igniting the passion.</span></li>
<li><span style="background-color: white;">Ali Bin Yahaa, for pushing me forward to the end</span></li>
<li><span style="background-color: white;">Asher Husain for supporting on all levels</span></li>
<li><span style="background-color: white;">Ali Nawaz for sprit participation & encouraging</span></li>
<li><span style="background-color: white;">Walid Ward & Summay Ali for moral support</span></li>
<li><span style="background-color: white;">My Managers, Jaffer, Siva & Sameh, , for encouraging , supporting, time managing, etc. </span></li>
</ul>
<span style="background-color: white;">From Microsoft I would like to thank the below for the continues support, training, follow-up, etc:</span><br />
<ul>
<li><span style="background-color: white;">Natasha Zaza, IT Community Collaboration Manager</span></li>
<li><span style="background-color: white;">Maureen Mansour (AMS), Developer Program Manager at Microsoft</span></li>
<li><span style="background-color: white;">Michael Platt, Senior Director in the Developer & Platform Evangelism Group based in Redmond, Washington</span></li>
<li><span style="background-color: white;">Hatem Al-Howainy, Technology Strategist at Microsoft</span></li>
<li><span style="background-color: white;">Dev11 - Win8 App Contest Team</span></li>
<li><span style="background-color: white;">All the teams in Microsoft that participated in the great Win 8.</span></li>
</ul>
<br />
<br />
<div>
<br /></div>Ali Al-Mosawihttp://www.blogger.com/profile/07148606862152114693noreply@blogger.com5tag:blogger.com,1999:blog-26827488.post-12942946811216008762012-07-02T14:52:00.002-06:002012-07-02T14:52:55.648-06:00Certificate of Achievement - Microsoft Elite MEA<br />
Today I was presented by Microsoft with the following:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkfhMJF8vrMTMaexDAMDOsYPC6cPphG-5Xnc_URnpjxDB3j2odr5uwUYoR1QowuyVXekW1H-OBxeYXMYErD-JLSaFMU6Uj5GwteJUEkx4j4pj14ocfewnUjlyoduwDg1cSoenSiQ/s1600/IMG_2352.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="297" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkfhMJF8vrMTMaexDAMDOsYPC6cPphG-5Xnc_URnpjxDB3j2odr5uwUYoR1QowuyVXekW1H-OBxeYXMYErD-JLSaFMU6Uj5GwteJUEkx4j4pj14ocfewnUjlyoduwDg1cSoenSiQ/s400/IMG_2352.jpg" width="400" /></a></div>
<br />
<span style="background-color: white;">And I was nominated to the “Microsoft elITe Program”,a very exclusive group of individuals in the United Arab Emirates and across the Middle East & Africa. </span><br />
<br />
The Microsoft elITe Program is a new program Microsoft developed to recognize individuals across Middle East & Africa for their dedication and passion for Microsoft technology. The program is in fact so exclusive that there are only 20 spaces granted out each year.<br />
<br />
This program has been designed to provide every tool needed to be successful in the IT industry. By being nominated for this program, the
nominee will gain access to free subscriptions, early access to Microsoft and other industry events, the opportunity to connect directly with Microsoft Corporate leadership teams, and invitations to exclusive quarterly events tailored just for you. As an expression of Microsoft gratitude to the <span style="background-color: white;">nominee</span><span style="background-color: white;">, he will also receive a very special Microsoft elITe kit with some special items for him at the first Kick-Off Meeting on Monday, Jule 2th</span><br />
We had our first kickoff meeting and it was great.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpPbl3RIjodKTm1znVrTlp2Y7-eIas9RSA4UhKs2IG2LvSefvlEOCHYyJ-Gct8LD7YLsH5JZ8BIyJ8QvBE1e6u-BeHynhPlJ3r8a3x-MMKsZJXSe3yRHq2-0fSCeLPwN_GomIOvg/s1600/IMG_2339.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="301" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpPbl3RIjodKTm1znVrTlp2Y7-eIas9RSA4UhKs2IG2LvSefvlEOCHYyJ-Gct8LD7YLsH5JZ8BIyJ8QvBE1e6u-BeHynhPlJ3r8a3x-MMKsZJXSe3yRHq2-0fSCeLPwN_GomIOvg/s400/IMG_2339.jpg" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjU5eDMINfm_VUdCJEXqefHLHcBG43yoUJo_guCpKtS1tMwlWsXUH-He__7hacHTEm81Va9Hnr5LYbuD6OFgIjg4S4K1AZiMw8EZ4nTpFLhnlu_6XIK_aukHWwbRzkkt5Co7BvsGQ/s1600/IMG_2344.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="301" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjU5eDMINfm_VUdCJEXqefHLHcBG43yoUJo_guCpKtS1tMwlWsXUH-He__7hacHTEm81Va9Hnr5LYbuD6OFgIjg4S4K1AZiMw8EZ4nTpFLhnlu_6XIK_aukHWwbRzkkt5Co7BvsGQ/s400/IMG_2344.jpg" width="400" /></a></div>
<br />
<div>
<br /></div>Ali Al-Mosawihttp://www.blogger.com/profile/07148606862152114693noreply@blogger.com0tag:blogger.com,1999:blog-26827488.post-7904183365915055942012-06-20T07:13:00.000-06:002012-06-20T07:13:56.249-06:00Architecture - Layers Diagram<span style="background-color: white;">Sometimes</span> we work with large solutions containing a large number of projects, from projects for UI, business/Services, Data & etc..<br />
<br />
So I will go quickly on how to set one project and draw its Layer Diagram.<br />
Note: Im using <b>VS2012RC Ultimate</b> Edition (same for VS2010 & VS2011 Ultimate editions)<br />
<br />
To set up, I will use the following scenario:<br />
I have a to build a solution for a software called Ntrasal. I will set the namespace correctly from the beginning.<br />
I will assume that I will need 3 layers, Data, Business & UI, and my UI have two parts (Mobile web interface and Normal PC web interface)<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQoVjJ7yNnTbxcLVfdjOLxwtu6vd8HJGz_QLrfAOxPFoqIDEbbtQxESxL36EvaPJirKVpFMPWxzSWK2mdVlrh-yhFxmXvo-mtGN4AexDBLtg2_FIXHTa1Hfht2g81b0qT7pQaxfw/s1600/Layers2.GIF" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQoVjJ7yNnTbxcLVfdjOLxwtu6vd8HJGz_QLrfAOxPFoqIDEbbtQxESxL36EvaPJirKVpFMPWxzSWK2mdVlrh-yhFxmXvo-mtGN4AexDBLtg2_FIXHTa1Hfht2g81b0qT7pQaxfw/s400/Layers2.GIF" width="390" /></a></div>
<br />
<br />
<b>Step 1: Setup the solution</b><br />
Start with new project, select other projects types, select visual studio solutions, Blank solution<br />
Give it the name you need for the project ex: (Injazat.Ntrasal) ==> ([CompanyName].[SolutionName])<br />
Note: from the Beginning add it to source control<br />
<br />
<br />
<br />
<b>Step 2: For Data Layer</b><br />
Add new project to the solution, select C#, class library for Data Access, name it as below:<br />
Injazat.Ntrasal.Data<br />
<br />
Note: If for any reason Ntrasal will have more data sources, example filenet documents, or fax or other I prefer the following: (you can add a separate project or a folder inside <span style="background-color: white;">Injazat.</span><span style="background-color: white;">Ntrasal.Data)</span><br />
•<span class="Apple-tab-span" style="white-space: pre;"> </span>Ntrasal.Data.CLR (for any CLR functions)<br />
•<span class="Apple-tab-span" style="white-space: pre;"> </span>Ntrasal.Data.ExtensionMethods<br />
•<span class="Apple-tab-span" style="white-space: pre;"> </span>Ntrasal.Data.Modules (if you are using one LINQ or Entityframework no need for a folder)<br />
<br />
<br />
<b>Step 3: </b><span style="background-color: white;"><b>For business Layer</b></span><br />
Add new project to the solution, select C#, Class library , name it as below:<br />
<span style="background-color: white;">Injazat.</span>Ntrasal.Business<br />
<br />
Note: Because im sure that NTrasal business will change in the future and it may cover a lot of area’s I prefer the following (add folders as below)<br />
•<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="background-color: white;">Injazat.</span><span style="background-color: white;">Ntrasal.Business.Core (general business here and basics)</span><br />
•<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="background-color: white;">Injazat.</span><span style="background-color: white;">Ntrasal.Business.FileNet</span><br />
•<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="background-color: white;">Injazat.</span><span style="background-color: white;">Ntrasal.Business.SMS</span><br />
•<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="background-color: white;">Injazat.</span><span style="background-color: white;">Ntrasal.Business.FAX</span><br />
<div>
<br /></div>
<div>
<div>
<b>Step 4: </b><span style="background-color: white;">Then add presentation layer</span></div>
<div>
Currently for this example my presentation layer is only Web,</div>
<div>
but be aware that in the future you may have more specific presentation layers as example </div>
<div>
<span style="background-color: white;">Injazat.</span>Ntrasal.UI.MVC</div>
<div>
<span style="background-color: white;">Injazat.</span>Ntrasal.UI.Forms</div>
<div>
<span style="background-color: white;">Injazat.</span>Ntrasal.UI.Mobile</div>
<div>
<span style="background-color: white;">Injazat.</span>Ntrasal.UI.Mobile.BlackBerry (only if there are some spacifications)</div>
<div>
<span style="background-color: white;">Injazat.</span>Ntrasal.UI.Mobile.iPhone</div>
<div>
<span style="background-color: white;">Injazat.</span>Ntrasal.UI.VIP.Mobile</div>
</div>
<div>
<br /></div>
<div>
I will user the following</div>
<div>
Injazat.Ntrasal.UI.Web.MobileMVC (this is the the mobile MVC)</div>
<div>
Injazat.Ntrasal.UI.Web.MVC (this is for the normal PC Browser)</div>
<div>
<br /></div>
<div>
<div>
<b>Step 5: Setting the references</b></div>
<div>
Business will reference needed Data projects, and UI will reference needed Business layers. </div>
</div>
<div>
<br /></div>
<div>
<b>Step 6:<span style="background-color: white;">Adding the Layer Diagram</span></b></div>
<div>
<span style="background-color: white;">Note: Even though I prefer to start first with this, we are doing it the other way around.</span></div>
<div>
<span style="background-color: white;">add to the same solution a new </span><span style="background-color: white;">Modeling Project, I names it as below:</span></div>
<div>
Injazat.Ntrasal.Architecture (I will use this project to store the layers diagram and any other UML I need or have example: Use cases, Sequence diagrams & etc.)</div>
<div>
<br /></div>
<div>
You can go to the
Architecture menu (you need to use Ultimate Edition of Visual Studio) and select new diagram, then select Layer Diagram.</div>
<div>
Drag your artifacts(currently our project, folders) and set them on the layer diagram, set the dependences and change the colours, you may get something like the below:</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAnp7MciZQT55atZeXBT97WnhPxFJXaREF0WJlzbck5LJjezDxr_gHI-V2miKqbSgOLv_xvLJZArkW-d0xkGAPzacekax34B7t3GytBdRQcpJcFNb5oB-YIlAm_QNtyX29TAE8eA/s1600/Layers.GIF" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="485" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAnp7MciZQT55atZeXBT97WnhPxFJXaREF0WJlzbck5LJjezDxr_gHI-V2miKqbSgOLv_xvLJZArkW-d0xkGAPzacekax34B7t3GytBdRQcpJcFNb5oB-YIlAm_QNtyX29TAE8eA/s640/Layers.GIF" width="640" /></a></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
Note: for more details you can refer to the MSDN <a href="http://msdn.microsoft.com/en-us/library/dd409462.aspx">link</a></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<br />
<br />
<br />
<div>
<br /></div>
<br />
<br />
<br />
<div>
<br /></div>
<br />
<br />Ali Al-Mosawihttp://www.blogger.com/profile/07148606862152114693noreply@blogger.com0tag:blogger.com,1999:blog-26827488.post-20242471330187277662012-06-19T07:38:00.000-06:002012-08-05T21:30:26.461-06:00WinRT PosterAfter navigating the WinRT, I thought it will be a good idea to put the main namespaces all together in one poster. it looked helpfull as below:<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivk4vPbRDkVWr1TRR7NLf3tJp0MyJQWaTA2Kix8lyNouk1SinB_Egf9eTwvMBKfbnwBcUcJ9wMvCw4yuS681G0WB3W6PZszc-qr7VFnrDR0JTnMQYyyhT6XzPR3n-3wqKim7cgMw/s1600/Windows+API+reference+for+Metro+style+app+Poster.GIF" imageanchor="1" style="background-color: white; clear: left; display: inline !important; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="446" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivk4vPbRDkVWr1TRR7NLf3tJp0MyJQWaTA2Kix8lyNouk1SinB_Egf9eTwvMBKfbnwBcUcJ9wMvCw4yuS681G0WB3W6PZszc-qr7VFnrDR0JTnMQYyyhT6XzPR3n-3wqKim7cgMw/s640/Windows+API+reference+for+Metro+style+app+Poster.GIF" width="640" /></a><br />
<br />
<br />
<br />
For PDF file click <a href="http://ve75.com/Blogfiles/Windows%20API%20reference%20for%20Metro%20style%20app%20Poster.pdf">here</a><br />
For XPS file click <a href="http://ve75.com/Blogfiles/Windows%20API%20reference%20for%20Metro%20style%20app%20Poster.xps">here</a><br />
For JPG file click <a href="http://ve75.com/Blogfiles/Windows%20API%20reference%20for%20Metro%20style%20app%20Poster.jpg">here</a><br />
For GIF file click <a href="http://ve75.com/Blogfiles/Windows%20API%20reference%20for%20Metro%20style%20app%20Poster.gif">here</a>Ali Al-Mosawihttp://www.blogger.com/profile/07148606862152114693noreply@blogger.com1tag:blogger.com,1999:blog-26827488.post-58854900474329982792012-05-25T02:21:00.000-06:002012-05-25T02:21:37.508-06:00Windows 8 - WinRTSome of the Win8-Architecture diagrams for WinRT<br />
<br />
<img border="0" height="263" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQUAInOQNws7LW0j30lgkrvH5QRa8NULMJYyJWdCNc19cUMHqp6lA6ZNIceXUaA5NdANLba0tS-YyKzduzkbGDZZ-tYa68iO2m2FvJrMciGFWKN4Ygyaw-VNdDx99pONfslj4YaQ/s320/Win8-Architecture.png" width="320" />
<img border="0" height="229" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWLISANO9vmT56O-4GZ9uwFnaSYJimtggTWvbpyCjs1Ta3QEQgh63kdUxFNT22HE2V3F_aLzoQSPOzBxtZq7H600aA_2FFq2BXsePVeSzbAo5ek9scWJfNX6Uh6DRbqRuq43GSpg/s320/clip_image002%5B1%5D_381d7455-bb98-450f-92a5-c6b7287a9b30.png" width="320" />
<img border="0" height="212" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSDB9X-cht5GRYHrKr4Pr5v2NBd9j9mPPb_LkJqoqBj3yHnxul6tNCertqw7JAX8XCdj6Ah4-7e4yD599WEk4tdUbYCz0FC6o2Cjb1AwjgzqwfehqN8m8zpAWWzfu8VoYY5c4tAA/s320/WinRT+architecture.png" width="320" />
<img border="0" height="179" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5u-l4u2EQ6sURcPD39h4F6n6vYi0fMoOmu54_ry4tv8_SoYiWLWdBtOcx0uFUT10ZtrjajeRs48mOp5v0IGqEkrM81A0RE8iocCLztH2hAWHkqw0J5VWNugwDP9Wsu3DKdwRXuw/s320/winrt2.jpg" width="320" />
<br />
<br />
<br />
<br />
<br />
<br />
Some other posters and diagrams<br />
<table>
<tbody>
<tr>
<td>#</td>
<td>Category</td>
<td>Poster Name</td>
<td>Web Site</td>
<td>Download</td>
<td>Other</td>
<td>Preview</td>
</tr>
<tr>
<td>1</td>
<td>.Net 4.0</td>
<td>.NET Framework 4 Poster</td>
<td class="style1"><a href="http://blogs.msdn.com/b/brada/archive/2008/10/29/net-framework-4-poster.aspx">Web site</a></td>
<td class="style1"><a href="http://tinyurl.com/PDC2008-NETFX4PDF">download</a></td>
<td><a href="http://tinyurl.com/DotNetFramework4PosterDeepZoom">Deep Zoom</a></td>
<td></td>
</tr>
<tr>
<td>2</td>
<td>.Net 4.0</td>
<td>.NET Framework 4.0 Poster</td>
<td><a href="http://jomatre.blogspot.com/2009/05/net-framework-40-poster.html">Web site</a></td>
<td class="style1"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnSrXJPHCJhHPwj-A9jeH8_HkOROxw96NyTWjYn9c2OmwmmbkBzW6C5NwnwQCiYq3nl7dJBD-uPkPH0Zolf7IoeCT61ZHdB6ua2fwxJ2Sc-C1_I0PW7f_GBPLQ70viZcSnltpm/s1600/NET_Framework_4_0.png">download</a></td>
<td></td>
<td></td>
</tr>
<tr>
<td>3</td>
<td>.Net 3.5</td>
<td>The .NET Framework 3.5 Commonly Used Types and Namespaces poster</td>
<td><a href="http://blogs.msdn.com/b/pandrew/archive/2007/11/02/announcing-the-net-framework-3-5-commonly-used-types-and-namespaces-poster.aspx">Web site</a></td>
<td class="style1"><a href="http://download.microsoft.com/download/4/a/3/4a3c7c55-84ab-4588-84a4-f96424a7d82d/NET35_Namespaces_Poster_LORES.pdf">download</a></td>
<td><a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=7B645F3A-6D22-4548-A0D8-C2A27E1917F8&display=en">XPS</a></td>
<td></td>
</tr>
<tr>
<td>4</td>
<td>.Net 4.0</td>
<td>.NET Framework and Visual Studio Roadmap Download</td>
<td><a href="http://www.codekicks.com/2008/03/net-framework-visual-studio-roadmap.html">Web site</a></td>
<td class="style1"><a href="http://lh6.ggpht.com/duttavr/R91PHQyj65I/AAAAAAAAA_Q/Eq0eOL2mNbw/NET_Visual_Studio_Raod_Map%5B16%5D">download</a></td>
<td></td>
<td></td>
</tr>
<tr>
<td>5</td>
<td>Key binding</td>
<td>Visual Studio 2010 Key binding</td>
<td><a href="http://charleshii.hii-tech.com/?cat=9">Web site</a></td>
<td class="style1"><a href="http://files.hii-tech.com/poster/VS-KB-Brochure-CSharp-A4-HiRez.pdf">C#</a>
<a href="http://files.hii-tech.com/poster/VS-KB-Brochure-VB-A4-HiRez.pdf">VB</a>
<a href="http://files.hii-tech.com/poster/VS-KB-Brochure-CPP-A4-HiRez.pdf">C++</a>
<a href="http://files.hii-tech.com/poster/VS-KB-Brochure-FSharp-A4-HiRez.pdf">F#</a>
</td>
<td></td>
<td></td>
</tr>
<tr>
<td>6</td>
<td>Key binding</td>
<td>Visual Studio 2008 Key binding</td>
<td><a href="http://charleshii.hii-tech.com/?cat=9">Web site</a></td>
<td class="style1"><a href="http://files.hii-tech.com/poster/VCSharp_2008.pdf">C#</a>
<a href="http://files.hii-tech.com/poster/VB_2008.pdf">VB</a>
<a href="http://files.hii-tech.com/poster/VC++_2008.pdf">C++</a>
</td>
<td></td>
<td></td>
</tr>
<tr>
<td>7</td>
<td>Key binding</td>
<td>Visual Studio 2005 Key binding</td>
<td><a href="http://charleshii.hii-tech.com/?cat=9">Web site</a></td>
<td class="style1"><a href="http://files.hii-tech.com/poster/VCSharp_2005_color.pdf">C#</a>
<a href="http://files.hii-tech.com/poster/VB_2005_color.pdf">VB</a>
<a href="http://files.hii-tech.com/poster/VC++_2005_color.pdf">C++</a>
</td>
<td></td>
<td></td>
</tr>
</tbody></table>Ali Al-Mosawihttp://www.blogger.com/profile/07148606862152114693noreply@blogger.com1tag:blogger.com,1999:blog-26827488.post-47160386197337058052012-05-20T13:54:00.000-06:002012-05-20T13:55:50.438-06:00Kids Metro Studio<a href="http://kidsmetrostudio.com/Images/snapshots/Screenshot%20(4).png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="http://kidsmetrostudio.com/Images/snapshots/Screenshot%20(4).png" /></a>My first metro style windows 8 application, its still under development, and need some work. The idea is to give kids the capability to make very nice pictures by combining others and adding lines and text,<br />
You can check & download the application from <a href="http://kidsmetrostudio.com/">here</a>.<br />
<br />
This is build by using VS2011, C# & Xaml. the application uses touch for everything, drag a drop, change size with your fingers for your shapes or even rotate them. i added undo and redo capability with in application bar, off-course with camera support and loading from the disk<br />
<br />
<a href="http://kidsmetrostudio.com/Images/snapshots/Screenshot%20(5).png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="http://kidsmetrostudio.com/Images/snapshots/Screenshot%20(5).png" /></a>Im adding the capabilities for working in landscape,sniped,filled & portrait modes.<br />
<br />
I didn't publish any code yet, I want to participate in the contest for the metro style app, so may be after that. even though if you need any help on metro style c# & xaml I will be happy to help.<br />
<br />Ali Al-Mosawihttp://www.blogger.com/profile/07148606862152114693noreply@blogger.com0tag:blogger.com,1999:blog-26827488.post-34504798152345085572012-05-13T01:53:00.003-06:002012-05-23T00:15:50.779-06:00Tech Out | Windows 8 App LabA great event in Dubai on Saturday Jun 9, 2012 , you can register for “Tech Out | Windows 8 App Lab “event to build a Win 8 app in HTML5 and JavaScript by the following <a href="http://w8labdxb.eventbrite.com/">link</a>, and attendees may leave with a Windows Phone! 20 Windows Phones throughout the session to some very lucky developers.<br />
<br />
Update, The event is on <b><u>9 June 2012</u></b>, this is the updated date be aware. :)<br />
<br />
What you must bring to participate:<br />
•Your laptop installed with Windows 8 Consumer Preview and Visual Studio 11 Beta<br />
<br />
There are limited seats so make sure you register to reserve your space!<br />
<br />
SPREAD THE WORD!<br />
Twitter #: w8labdxb<br />
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1rfuR1P0vP07sGzOUYekpO34giqtNybHdLCWd1HNkn3XAn3eCmjnc5Kuh3XK6X8wshc-Ku0RHxvpuxV-4R8zrzDJuH3PkQXVJux62O7lgdLXkPSAtcTkYTwLjX6M-F6A-1oDADA/s1600/where+and+when.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1rfuR1P0vP07sGzOUYekpO34giqtNybHdLCWd1HNkn3XAn3eCmjnc5Kuh3XK6X8wshc-Ku0RHxvpuxV-4R8zrzDJuH3PkQXVJux62O7lgdLXkPSAtcTkYTwLjX6M-F6A-1oDADA/s400/where+and+when.JPG" width="270" /></a></div>
<div>
<br /></div>Ali Al-Mosawihttp://www.blogger.com/profile/07148606862152114693noreply@blogger.com0tag:blogger.com,1999:blog-26827488.post-29518876672953055722012-01-15T00:44:00.002-07:002012-01-15T00:44:43.784-07:00Silverlight business line applications<br />
<div style="text-align: left;">
I'm using Silver light 4.0, Silverlight toolkit, Entity Framework with RIA Services
for Database. I will try to discuss applying themes, working with grid with
buttons, opening popup window for editing data, in the popup we will have drop down list, autocomplete, normal controls & etc.</div>
<div class="MsoNormal" style="direction: ltr; text-align: left; unicode-bidi: embed;">
<o:p></o:p></div>
<div class="MsoNormal" style="direction: ltr; text-align: left; unicode-bidi: embed;">
So
let’s start, setting up your project and connecting to the data with RIA
Service, is easy and straight forward ( a lot of articles is out there for
that).<o:p></o:p></div>
<div class="MsoNormal" style="direction: ltr; text-align: left; unicode-bidi: embed;">
So
you need to add a function or query to your domain services and start linking
it with a data grid on the silver-light UI.<o:p></o:p></div>
<div class="MsoNormal" style="direction: ltr; text-align: left; unicode-bidi: embed;">
First
I don’t believe in real world application that you will read only from one
table and display data, there must be some joins and even some times some calculations.<o:p></o:p></div>
<div class="MsoNormal" style="direction: ltr; text-align: left; unicode-bidi: embed;">
So
first we need to add our function, so where is the best location? I don’t
prefer adding it directly to the domain file, it’s better to add a new one with
partial class so if you needed to make some changes it want erase your
customized functions.<o:p></o:p></div>
<div class="MsoNormal" style="direction: ltr; text-align: left; unicode-bidi: embed;">
My
domain service file name is as follow: ABC_DomainService.cs<o:p></o:p></div>
<div class="MsoNormal" style="direction: ltr; text-align: left; unicode-bidi: embed;">
My
Added functions will go to ABC_DomainService.Custom.cs, with same name space
but a partial class as follow:<o:p></o:p></div>
<div class="MsoNormal" style="direction: ltr; margin-bottom: 0.0001pt; text-align: left; unicode-bidi: embed;">
<span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">namespace</span><span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;"> ABC.Web<o:p></o:p></span></div>
<div class="MsoNormal" style="direction: ltr; margin-bottom: 0.0001pt; text-align: left; unicode-bidi: embed;">
<span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">{<o:p></o:p></span></div>
<div class="MsoNormal" style="direction: ltr; margin-bottom: 0.0001pt; text-align: left; unicode-bidi: embed;">
<span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;"> <span style="color: blue;">public</span> <span style="color: blue;">partial</span> <span style="color: blue;">class</span> <span style="color: #2b91af;">ABC_DomainService</span><o:p></o:p></span></div>
<div class="MsoNormal" style="direction: ltr; margin-bottom: 0.0001pt; text-align: left; unicode-bidi: embed;">
<span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;"> {<o:p></o:p></span></div>
<div class="MsoNormal" style="direction: ltr; text-align: left; unicode-bidi: embed;">
….<o:p></o:p></div>
<div class="MsoNormal" style="direction: ltr; text-align: left; unicode-bidi: embed;">
Example
of one:<o:p></o:p></div>
<div class="MsoNormal" style="direction: ltr; margin-bottom: 0.0001pt; text-align: left; unicode-bidi: embed;">
<span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">public</span><span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;"> <span style="color: #2b91af;">IQueryable</span><<span style="color: #2b91af;">Item</span>>
GetItemsByModuleId(<span style="color: blue;">int</span> ModuleId)<o:p></o:p></span></div>
<div class="MsoNormal" style="direction: ltr; margin-bottom: 0.0001pt; text-align: left; unicode-bidi: embed;">
<span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">
{<o:p></o:p></span></div>
<div class="MsoNormal" style="direction: ltr; margin-bottom: 0.0001pt; text-align: left; unicode-bidi: embed;">
<span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">
<span style="color: blue;">return</span> <span style="color: blue;">this</span>.ObjectContext.Items<o:p></o:p></span></div>
<div class="MsoNormal" style="direction: ltr; margin-bottom: 0.0001pt; text-align: left; unicode-bidi: embed;">
<span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;"> .Include(<span style="color: #a31515;">"Capability"</span>).Include(<span style="color: #a31515;">"UserResource"</span>)<o:p></o:p></span></div>
<div class="MsoNormal" style="direction: ltr; margin-bottom: 0.0001pt; text-align: left; unicode-bidi: embed;">
<span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;"> .Include(<span style="color: #a31515;">"Lookup"</span>)<o:p></o:p></span></div>
<div class="MsoNormal" style="direction: ltr; margin-bottom: 0.0001pt; text-align: left; unicode-bidi: embed;">
<span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;"> .Where(c => c.ModuleId ==
ModuleId).OrderBy(c => c.ItemsId);<o:p></o:p></span></div>
<div class="MsoNormal" style="direction: ltr; margin-bottom: 0.0001pt; text-align: left; unicode-bidi: embed;">
<span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">
}<o:p></o:p></span></div>
<div class="MsoNormal" style="direction: ltr; text-align: left; unicode-bidi: embed;">
So
some notes on the above function, to have the include working you need to
update the meta data file too. Mine is “ABC_DomainService.metadata.cs”, I go to
the main data time in my case its “Items” and add the [Include] tag as follow:<o:p></o:p></div>
<div class="MsoNormal" style="direction: ltr; margin-bottom: 0.0001pt; text-align: left; unicode-bidi: embed;">
<br /></div>
<div class="MsoNormal" style="direction: ltr; margin-bottom: 0.0001pt; text-align: left; unicode-bidi: embed;">
<span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">
[<span style="color: #2b91af;">Include</span>]<o:p></o:p></span></div>
<div class="MsoNormal" style="direction: ltr; margin-bottom: 0.0001pt; text-align: left; unicode-bidi: embed;">
<span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">
<span style="color: blue;">public</span> <span style="color: #2b91af;">Lookup</span>
Lookup { <span style="color: blue;">get</span>; <span style="color: blue;">set</span>;
}<o:p></o:p></span></div>
<div class="MsoNormal" style="direction: ltr; margin-bottom: 0.0001pt; text-align: left; unicode-bidi: embed;">
<span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">
<o:p></o:p></span></div>
<div class="MsoNormal" style="direction: ltr; margin-bottom: 0.0001pt; margin-left: 0.5in; margin-right: 0in; margin-top: 0in; text-align: left; text-indent: 27pt; unicode-bidi: embed;">
<span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">[<span style="color: #2b91af;">Include</span>]<o:p></o:p></span></div>
<div class="MsoNormal" style="direction: ltr; margin-bottom: 0.0001pt; text-align: left; unicode-bidi: embed;">
<span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">
<span style="color: blue;">public</span> <span style="color: #2b91af;">UserResource</span>
UserResource { <span style="color: blue;">get</span>; <span style="color: blue;">set</span>;
}<o:p></o:p></span></div>
<div class="MsoNormal" style="direction: ltr; margin-bottom: 0.0001pt; text-align: left; unicode-bidi: embed;">
<br /></div>
<div class="MsoNormal" style="direction: ltr; margin-bottom: 0.0001pt; text-align: left; unicode-bidi: embed;">
<span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">
[<span style="color: #2b91af;">Include</span>]<o:p></o:p></span></div>
<div class="MsoNormal" style="direction: ltr; margin-bottom: 0.0001pt; text-align: left; unicode-bidi: embed;">
<span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">
<span style="color: blue;">public</span> <span style="color: #2b91af;">Nullable</span><<span style="color: blue;">int</span>> OwnerUserId { <span style="color: blue;">get</span>;
<span style="color: blue;">set</span>; }<o:p></o:p></span></div>
<div class="MsoNormal" style="direction: ltr; text-align: left; unicode-bidi: embed;">
<br /></div>
<div class="MsoNormal" style="direction: ltr; text-align: left; unicode-bidi: embed;">
And if the type of the function is IQueryable,
you will get it in Sliverlight (The client side code) as <span style="font-family: Consolas; font-size: 9.5pt; line-height: 115%; mso-bidi-language: AR-SA;">GetItemsByModuleIdQuery.<o:p></o:p></span></div>
<div class="MsoNormal" style="direction: ltr; text-align: left; unicode-bidi: embed;">
So
Server side is ready let’s go to Client Side and consume it.<o:p></o:p></div>
<div class="MsoNormal" style="direction: ltr; margin-bottom: 0.0001pt; text-align: left; unicode-bidi: embed;">
To display a data grid and have some data in
it, I will use the DomainDataSource, put for the popup form we will do it by
code. But let’s do it all, lets add paging, sorting, some query parameters and
some filters too. Display info from related tables and so on.<o:p></o:p></div>
<div class="MsoNormal" style="direction: ltr; margin-bottom: 0.0001pt; text-align: left; unicode-bidi: embed;">
<br /></div>
<div class="MsoNormal" style="direction: ltr; margin-bottom: 0.0001pt; text-align: left; unicode-bidi: embed;">
<br /></div>
<div class="MsoNormal" style="direction: ltr; margin-bottom: 0.0001pt; text-align: left; unicode-bidi: embed;">
<span style="color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;"> </span><span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;"><</span><span style="color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">sdk</span><span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">:</span><span style="color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">DataGrid</span><span style="color: red; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;"> AutoGenerateColumns</span><span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">="False"</span><span style="color: red; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">
Grid.Row</span><span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">="1"</span><span style="color: red; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;"> HorizontalAlignment</span><span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">="Stretch"</span><span style="color: red; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">
Name</span><span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">="ItemsDataGrid"</span><span style="color: red; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">
VerticalAlignment</span><span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">="Stretch"</span><span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;"> <o:p></o:p></span></div>
<div class="MsoNormal" style="direction: ltr; margin-bottom: 0.0001pt; text-align: left; unicode-bidi: embed;">
<span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;"> <span style="color: red;"> HorizontalContentAlignment</span><span style="color: blue;">="Center"</span><span style="color: red;">
AlternatingRowBackground</span><span style="color: blue;">="#00D44444"</span><span style="color: red;"> Background</span><span style="color: blue;">="{</span><span style="color: #a31515;">x</span><span style="color: blue;">:</span><span style="color: #a31515;">Null</span><span style="color: blue;">}"</span><span style="color: red;"> BorderThickness</span><span style="color: blue;">="1"</span>
<o:p></o:p></span></div>
<div class="MsoNormal" style="direction: ltr; margin-bottom: 0.0001pt; text-align: left; unicode-bidi: embed;">
<span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">
<span style="color: red;"> Height</span><span style="color: blue;">="Auto"</span> <span style="color: red;"> ItemsSource</span><span style="color: blue;">="{</span><span style="color: #a31515;">Binding</span><span style="color: red;"> Data</span><span style="color: blue;">,</span><span style="color: red;"> ElementName</span><span style="color: blue;">=domainDataSource1}"<o:p></o:p></span></span></div>
<div class="MsoNormal" style="direction: ltr; margin-bottom: 0.0001pt; text-align: left; unicode-bidi: embed;">
<span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">…..<o:p></o:p></span></div>
<div class="MsoNormal" style="direction: ltr; margin-bottom: 0.0001pt; text-align: left; unicode-bidi: embed;">
<span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">….<o:p></o:p></span></div>
<div class="MsoNormal" style="direction: ltr; margin-bottom: 0.0001pt; text-align: left; unicode-bidi: embed;">
The most important thing is the ItemsSource,
its binding to our domainDataSource
called DomainDataSource1.<o:p></o:p></div>
<div class="MsoNormal" style="direction: ltr; margin-bottom: 0.0001pt; text-align: left; unicode-bidi: embed;">
<br /></div>
<div class="MsoNormal" style="direction: ltr; margin-bottom: 0.0001pt; text-align: left; unicode-bidi: embed;">
A pager control to be displayed under the data
grid<o:p></o:p></div>
<div class="MsoNormal" style="direction: ltr; margin-bottom: 0.0001pt; text-align: left; unicode-bidi: embed;">
<span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;"><</span><span style="color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">sdk</span><span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">:</span><span style="color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">DataPager</span><span style="color: red; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;"> Height</span><span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">="26"</span><span style="color: red; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">
Name</span><span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">="dataPager1"</span><span style="color: red; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;"> PageSize</span><span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">="15"</span><span style="color: red; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">
Grid.Row</span><span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">="2"</span><span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;"><o:p></o:p></span></div>
<div class="MsoNormal" style="direction: ltr; margin-bottom: 0.0001pt; text-align: left; unicode-bidi: embed;">
<span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">
<span style="color: red;"> Source</span><span style="color: blue;">="{</span><span style="color: #a31515;">Binding</span><span style="color: red;"> Data</span><span style="color: blue;">,</span><span style="color: red;"> ElementName</span><span style="color: blue;">=domainDataSource1}"</span><span style="color: red;"> DisplayMode</span><span style="color: blue;">="FirstLastPreviousNextNumeric"
/><o:p></o:p></span></span></div>
<div class="MsoNormal" style="direction: ltr; margin-bottom: 0.0001pt; text-align: left; unicode-bidi: embed;">
<br /></div>
<div class="MsoNormal" style="direction: ltr; margin-bottom: 0.0001pt; text-align: left; unicode-bidi: embed;">
<br /></div>
<div class="MsoNormal" style="direction: ltr; margin-bottom: 0.0001pt; text-align: left; unicode-bidi: embed;">
<br /></div>
<div class="MsoNormal" style="direction: ltr; margin-bottom: 0.0001pt; text-align: left; unicode-bidi: embed;">
<br /></div>
<div class="MsoNormal" style="direction: ltr; margin-bottom: 0.0001pt; text-align: left; unicode-bidi: embed;">
That’s it, very simple paging is complete. So
lets go to the domainDataService1<o:p></o:p></div>
<div class="MsoNormal" style="direction: ltr; margin-bottom: 0.0001pt; text-align: left; unicode-bidi: embed;">
<br /></div>
<div class="MsoNormal" style="direction: ltr; margin-bottom: 0.0001pt; text-align: left; unicode-bidi: embed;">
<span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;"><</span><span style="color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">riaControls</span><span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">:</span><span style="color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">DomainDataSource</span><span style="color: red; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;"> Name</span><span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">="domainDataSource1"</span><span style="color: red; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">
LoadSize</span><span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">="15"</span><span style="color: red; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;"> QueryName</span><span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">="GetItemsByModuleTypeId"</span><span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;"><o:p></o:p></span></div>
<div class="MsoNormal" style="direction: ltr; margin-bottom: 0.0001pt; text-align: left; unicode-bidi: embed;">
<span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;"> <span style="color: red;"> AutoLoad</span><span style="color: blue;">="True"</span><span style="color: red;"> FilterOperator</span><span style="color: blue;">="Or"></span><o:p></o:p></span></div>
<div class="MsoNormal" style="direction: ltr; margin-bottom: 0.0001pt; text-align: left; unicode-bidi: embed;">
<span style="color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;"> </span><span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;"><</span><span style="color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">riaControls</span><span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">:</span><span style="color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">DomainDataSource.DomainContext</span><span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">></span><span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;"><o:p></o:p></span></div>
<div class="MsoNormal" style="direction: ltr; margin-bottom: 0.0001pt; text-align: left; unicode-bidi: embed;">
<span style="color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;"> </span><span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;"><</span><span style="color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">domain</span><span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">:</span><span style="color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">MRSDomainContext</span><span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">
/></span><span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;"><o:p></o:p></span></div>
<div class="MsoNormal" style="direction: ltr; margin-bottom: 0.0001pt; text-align: left; unicode-bidi: embed;">
<span style="color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;"> </span><span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;"><!--</span--><span style="color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">riaControls</span><span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">:</span><span style="color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">DomainDataSource.DomainContext</span><span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">></span><span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="direction: ltr; margin-bottom: 0.0001pt; text-align: left; unicode-bidi: embed;">
<span style="color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;"> </span><span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;"><</span><span style="color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">riaControls</span><span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">:</span><span style="color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">DomainDataSource.FilterDescriptors</span><span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">
></span><span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;"><o:p></o:p></span></div>
<div class="MsoNormal" style="direction: ltr; margin-bottom: 0.0001pt; text-align: left; unicode-bidi: embed;">
<span style="color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;"> </span><span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;"><</span><span style="color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">riaControls</span><span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">:</span><span style="color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">FilterDescriptor</span><span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;"><o:p></o:p></span></div>
<div class="MsoNormal" style="direction: ltr; margin-bottom: 0.0001pt; text-align: left; unicode-bidi: embed;">
<span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">
<span style="color: red;"> PropertyPath</span><span style="color: blue;">="ItemName"</span><o:p></o:p></span></div>
<div class="MsoNormal" style="direction: ltr; margin-bottom: 0.0001pt; text-align: left; unicode-bidi: embed;">
<span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">
<span style="color: red;"> Operator</span><span style="color: blue;">="Contains"</span><o:p></o:p></span></div>
<div class="MsoNormal" style="direction: ltr; margin-bottom: 0.0001pt; text-align: left; unicode-bidi: embed;">
<span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">
<span style="color: red;"> Value</span><span style="color: blue;">="{</span><span style="color: #a31515;">Binding</span><span style="color: red;"> ElementName</span><span style="color: blue;">=SearchTextBox,</span><span style="color: red;">Path</span><span style="color: blue;">=Text}" /></span><o:p></o:p></span></div>
<div class="MsoNormal" style="direction: ltr; margin-bottom: 0.0001pt; text-align: left; unicode-bidi: embed;">
<span style="color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;"> </span><span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;"><</span><span style="color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">riaControls</span><span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">:</span><span style="color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">FilterDescriptor</span><span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;"> <o:p></o:p></span></div>
<div class="MsoNormal" style="direction: ltr; margin-bottom: 0.0001pt; text-align: left; unicode-bidi: embed;">
<span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">
<span style="color: red;"> PropertyPath</span><span style="color: blue;">="Number"</span><o:p></o:p></span></div>
<div class="MsoNormal" style="direction: ltr; margin-bottom: 0.0001pt; text-align: left; unicode-bidi: embed;">
<span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">
<span style="color: red;"> Operator</span><span style="color: blue;">="Contains"</span><o:p></o:p></span></div>
<div class="MsoNormal" style="direction: ltr; margin-bottom: 0.0001pt; text-align: left; unicode-bidi: embed;">
<span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">
<span style="color: red;"> Value</span><span style="color: blue;">="{</span><span style="color: #a31515;">Binding</span><span style="color: red;"> ElementName</span><span style="color: blue;">=SearchTextBox,</span><span style="color: red;">Path</span><span style="color: blue;">=Text}" /></span><o:p></o:p></span></div>
<div class="MsoNormal" style="direction: ltr; margin-bottom: 0.0001pt; text-align: left; unicode-bidi: embed;">
<span style="color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;"> </span><span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;"><!--</span--><span style="color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">riaControls</span><span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">:</span><span style="color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">DomainDataSource.FilterDescriptors</span><span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">></span><span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="direction: ltr; margin-bottom: 0.0001pt; text-align: left; unicode-bidi: embed;">
<span style="color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;"> </span><span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;"><</span><span style="color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">riaControls</span><span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">:</span><span style="color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">DomainDataSource.QueryParameters</span><span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">></span><span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;"><o:p></o:p></span></div>
<div class="MsoNormal" style="direction: ltr; margin-bottom: 0.0001pt; text-align: left; unicode-bidi: embed;">
<span style="color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;"> </span><span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;"><</span><span style="color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">riaControls</span><span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">:</span><span style="color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">Parameter</span><span style="color: red; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">
ParameterName</span><span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">="ModuleTypeLookupId"</span><span style="color: red; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">
Value</span><span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">="38" /></span><span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;"><o:p></o:p></span></div>
<div class="MsoNormal" style="direction: ltr; margin-bottom: 0.0001pt; text-align: left; unicode-bidi: embed;">
<span style="color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;"> </span><span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;"><!--</span--><span style="color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">riaControls</span><span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">:</span><span style="color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">DomainDataSource.QueryParameters</span><span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">></span><span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;"><o:p></o:p></span></span></div>
<div class="MsoNormal" style="direction: ltr; margin-bottom: 0.0001pt; text-align: left; unicode-bidi: embed;">
<span style="color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;"> </span><span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;"><!--</span--><span style="color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">riaControls</span><span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">:</span><span style="color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">DomainDataSource</span><span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">><o:p></o:p></span></span></div>
<div class="MsoNormal" style="direction: ltr; margin-bottom: 0.0001pt; text-align: left; unicode-bidi: embed;">
<br /></div>
<div class="MsoNormal" style="direction: ltr; margin-bottom: 0.0001pt; text-align: left; unicode-bidi: embed;">
<span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">Notes:<o:p></o:p></span></div>
<div class="MsoNormal" style="direction: ltr; margin-bottom: 0.0001pt; text-align: left; unicode-bidi: embed;">
My <b>LoadSize</b> is the same as my page
size, so it will load once for each page.<o:p></o:p></div>
<div class="MsoNormal" style="direction: ltr; margin-bottom: 0.0001pt; text-align: left; unicode-bidi: embed;">
<br /></div>
<div class="MsoNormal" style="direction: ltr; margin-bottom: 0.0001pt; text-align: left; unicode-bidi: embed;">
A Reference to my DomainService need to be
added and reference on the header of the page will be needed for that.<o:p></o:p></div>
<div class="MsoNormal" style="direction: ltr; margin-bottom: 0.0001pt; text-align: left; unicode-bidi: embed;">
There is a two filters with an OR operation,
in the domaindataservice body <span style="color: red; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">FilterOperator</span><span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;">="Or",
</span>and add the filters in DomainDataSource.FilterDescriptors<span style="color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-bidi-language: AR-SA;"><o:p></o:p></span></div>
<div class="MsoNormal" style="direction: ltr; margin-bottom: 0.0001pt; text-align: left; unicode-bidi: embed;">
<br /></div>
<div class="MsoNormal" style="direction: ltr; margin-bottom: 0.0001pt; text-align: left; unicode-bidi: embed;">
I will try to post the reset if anybody is interested.<o:p></o:p></div>Ali Al-Mosawihttp://www.blogger.com/profile/07148606862152114693noreply@blogger.com0