<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://weblogs.asp.net/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">Huthaifa Afanah</title><subtitle type="html">Huthaifa Afanah is living in Jerusalem and enjoying his time developing applications
</subtitle><id>http://weblogs.asp.net/istofix/atom.aspx</id><link rel="alternate" type="text/html" href="http://weblogs.asp.net/istofix/default.aspx" /><link rel="self" type="application/atom+xml" href="http://weblogs.asp.net/istofix/atom.aspx" /><generator uri="http://communityserver.org" version="3.0.20510.895">Community Server</generator><updated>2008-04-09T08:49:00Z</updated><entry><title>Microsoft TechDays in Palestine</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/istofix/archive/2009/11/01/microsoft-techdays-in-palestine.aspx" /><id>http://weblogs.asp.net/istofix/archive/2009/11/01/microsoft-techdays-in-palestine.aspx</id><published>2009-11-01T06:00:48Z</published><updated>2009-11-01T06:00:48Z</updated><content type="html">For the first time in Palestine , Microsoft in cooperation with PalDev community will present 3 TechDays in Hebron , Ramallah and Nablus from 1st November till 3rd November. The main activity in the event will be the Official Launch of Windows 7 and Imagine Cup 2010. Other topics in the event will be as the following : IE 8 WebsiteSpark Visual Studio 2008 and 2010 Sneak Peak SharePoint 2007 Windows Server 2008 R2 BizSaprk Program Imagine Cup (Launch) MSPs Program .Net clubs DreamSpark Thanks Microsoft...(&lt;a href="http://weblogs.asp.net/istofix/archive/2009/11/01/microsoft-techdays-in-palestine.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7244410" width="1" height="1"&gt;</content><author><name>IsToFix</name><uri>http://weblogs.asp.net/members/IsToFix.aspx</uri></author><category term="Sessions" scheme="http://weblogs.asp.net/istofix/archive/tags/Sessions/default.aspx" /><category term="PalDev" scheme="http://weblogs.asp.net/istofix/archive/tags/PalDev/default.aspx" /><category term="Microsoft" scheme="http://weblogs.asp.net/istofix/archive/tags/Microsoft/default.aspx" /></entry><entry><title>In Hebron “Introduction to VS2008 &amp; ASP.NET” session</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/istofix/archive/2009/09/10/in-hebron-introduction-to-vs2008-amp-asp-net-session.aspx" /><id>http://weblogs.asp.net/istofix/archive/2009/09/10/in-hebron-introduction-to-vs2008-amp-asp-net-session.aspx</id><published>2009-09-10T09:03:13Z</published><updated>2009-09-10T09:03:13Z</updated><content type="html">As part of PalDev activities I was in Hebron this Saturday to deliver a “Introduction to VS2008 &amp;amp; ASP.NET” session for the PPU –Palestine Polytechnic University – CS and IT students. The workshop was held in Friends of Fawzi Kawash IT Center of Excellence ( FFKITCE ). We stopped the event registration process after 65 person was registered regarding the room limitation and we also emailed the latest 25 person that the priority will be given for those who registered earlier and we will re-hold...(&lt;a href="http://weblogs.asp.net/istofix/archive/2009/09/10/in-hebron-introduction-to-vs2008-amp-asp-net-session.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7198958" width="1" height="1"&gt;</content><author><name>IsToFix</name><uri>http://weblogs.asp.net/members/IsToFix.aspx</uri></author><category term="ASP.NET" scheme="http://weblogs.asp.net/istofix/archive/tags/ASP.NET/default.aspx" /><category term="VS2008" scheme="http://weblogs.asp.net/istofix/archive/tags/VS2008/default.aspx" /><category term="Sessions" scheme="http://weblogs.asp.net/istofix/archive/tags/Sessions/default.aspx" /><category term="PalDev" scheme="http://weblogs.asp.net/istofix/archive/tags/PalDev/default.aspx" /></entry><entry><title>The Gu is Back!! with new Multilingual version!!</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/istofix/archive/2009/08/27/the-gu-is-back-with-new-multilingual-version.aspx" /><id>http://weblogs.asp.net/istofix/archive/2009/08/27/the-gu-is-back-with-new-multilingual-version.aspx</id><published>2009-08-27T07:58:17Z</published><updated>2009-08-27T07:58:17Z</updated><content type="html">Yesterday I checked my RSS feed and found that Scott Guthrie announced that he is starting a new series of posts . That was a great news to hear. Scott is one of the most popular Microsoft managers. He is one of those who played a core role developing Microsoft web platform even the whole .NET framework. He leads core .NET libraries, WPF , ASP.NET , ASP.NET MCV, Sliverlight and IIS teams. Anyway I decided that I will resume translating his posts in the Scott Guthrie in Arabic blog at asp.net blogs...(&lt;a href="http://weblogs.asp.net/istofix/archive/2009/08/27/the-gu-is-back-with-new-multilingual-version.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7182812" width="1" height="1"&gt;</content><author><name>IsToFix</name><uri>http://weblogs.asp.net/members/IsToFix.aspx</uri></author><category term="ASP.NET" scheme="http://weblogs.asp.net/istofix/archive/tags/ASP.NET/default.aspx" /><category term="Arabic efforts" scheme="http://weblogs.asp.net/istofix/archive/tags/Arabic+efforts/default.aspx" /><category term="The Gu!" scheme="http://weblogs.asp.net/istofix/archive/tags/The+Gu_2100_/default.aspx" /></entry><entry><title>Hosting Multiple websites/applications on IIS – Part 1</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/istofix/archive/2009/08/18/hosting-multiple-websites-applications-on-iis-part-1.aspx" /><id>http://weblogs.asp.net/istofix/archive/2009/08/18/hosting-multiple-websites-applications-on-iis-part-1.aspx</id><published>2009-08-18T05:41:52Z</published><updated>2009-08-18T05:41:52Z</updated><content type="html">IIS is the lonely web server –rather than web development server - in the Microsoft stack and the most recent one IIS7 add more flexibility, control and ease of use to IIS. There is a bunch of concepts need to be clear in mind when it comes to host information and pages on IIS to allow sharing then over the Internet, an intranet or an extranet. To host data you on IIS you will use websites, application and virtual directories. Those concepts was hanging around from previous versions. Sites, virtual...(&lt;a href="http://weblogs.asp.net/istofix/archive/2009/08/18/hosting-multiple-websites-applications-on-iis-part-1.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7172087" width="1" height="1"&gt;</content><author><name>IsToFix</name><uri>http://weblogs.asp.net/members/IsToFix.aspx</uri></author><category term="IIS" scheme="http://weblogs.asp.net/istofix/archive/tags/IIS/default.aspx" /></entry><entry><title>ASP.NET MVC 1.0 has been released</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/istofix/archive/2009/04/02/asp-net-mvc-1-0-has-been-released.aspx" /><id>http://weblogs.asp.net/istofix/archive/2009/04/02/asp-net-mvc-1-0-has-been-released.aspx</id><published>2009-04-02T03:51:45Z</published><updated>2009-04-02T03:51:45Z</updated><content type="html">Hello The Gu - Scott Guthrie - has announced the ASP.NET MVC 1.0. You can read the full post here. The amazing thing that ASP.NET MVC is an open source project and the code released under MS-PL licenses. And they say Microsoft does not support open source. They published&amp;#160; the source code of the .NET framework itself last year -but it was a closed source- and they now releasing open source projects. Who knows what future is hiding for us. Congratulation Microsoft!...(&lt;a href="http://weblogs.asp.net/istofix/archive/2009/04/02/asp-net-mvc-1-0-has-been-released.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7022119" width="1" height="1"&gt;</content><author><name>IsToFix</name><uri>http://weblogs.asp.net/members/IsToFix.aspx</uri></author><category term="ASP.NET" scheme="http://weblogs.asp.net/istofix/archive/tags/ASP.NET/default.aspx" /><category term="ASP.NET MVC" scheme="http://weblogs.asp.net/istofix/archive/tags/ASP.NET+MVC/default.aspx" /></entry><entry><title>Funny SSMS Error Message</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/istofix/archive/2009/03/31/funny-ssms-error-message.aspx" /><id>http://weblogs.asp.net/istofix/archive/2009/03/31/funny-ssms-error-message.aspx</id><published>2009-03-31T05:30:00Z</published><updated>2009-03-31T05:30:00Z</updated><content type="html">&lt;p&gt;Hello All … today morning one of my collogues called me to check a problem in his machine when starting SQL Server Management Studio. This strange and funny error occurred after he installed windows updates. Anyway I could not understand the issue rather than solving it.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="NullError" border="0" alt="NullError" src="http://weblogs.asp.net/blogs/istofix/NullError_77AEF403.jpg" width="722" height="453" /&gt; &lt;/p&gt;  &lt;p&gt;BTW can anyone determine what is the error from the message being shown? &lt;/p&gt;  &lt;p&gt;If anyone make it make sure to contact &lt;a href="mailto:emptyError@microsoft.com"&gt;emptyError@microsoft.com&lt;/a&gt; to get the prize.&amp;#160; hahahaha .. &lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7014292" width="1" height="1"&gt;</content><author><name>IsToFix</name><uri>http://weblogs.asp.net/members/IsToFix.aspx</uri></author><category term="SQL Server" scheme="http://weblogs.asp.net/istofix/archive/tags/SQL+Server/default.aspx" /></entry><entry><title>To Microsoft or not To Microsoft</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/istofix/archive/2009/01/27/to-microsoft-or-not-to-microsoft.aspx" /><id>http://weblogs.asp.net/istofix/archive/2009/01/27/to-microsoft-or-not-to-microsoft.aspx</id><published>2009-01-27T18:48:00Z</published><updated>2009-01-27T18:48:00Z</updated><content type="html">&lt;p align="justify"&gt;In 1600 &lt;a href="http://en.wikipedia.org/wiki/William_Shakespeare"&gt;Shakespeare&lt;/a&gt; wrote “&lt;i&gt;To be or not to be, that is the question&lt;/i&gt;” in his famous and well know play “Hamlet”. I will twist this statement a bit &lt;em&gt;“To Microsoft or not To Microsoft, that is the question”&lt;/em&gt;.&lt;/p&gt;  &lt;p align="justify"&gt;Today while I was attending a workshop about business development I made a short conversation with one of the attendees – a freelance web developer- about &lt;a href="http://www.microsoft.com"&gt;Microsoft&lt;/a&gt; web development environment. He have a prejudgment says that using Microsoft tech’s costs a lot of money. He have no idea about the major move Microsoft did. &lt;/p&gt;  &lt;h4&gt;What options I have as a freelancer, MicroISV … etc?&lt;/h4&gt;  &lt;p align="justify"&gt;What I tried to say that Microsoft provide developers with very impressive and powerful set of tools regardless the type of application –Web,Windows- . For example to develop a ASP.NET web application we can use:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;div align="justify"&gt;&lt;a href="http://www.microsoft.com/express/vwd/Default.aspx"&gt;Visual Web Developer Express Edition&lt;/a&gt;: a&amp;#160; full featured IDE to build AJAX-enabled web pages and&amp;#160; Data driven applications.&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align="justify"&gt;&lt;a href="http://www.microsoft.com/express/sql/Default.aspx"&gt;SQL Server Express&lt;/a&gt;: Simple and powerful database server.&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align="justify"&gt;Web Development Server : Small web server embedded with Web Developer Express.&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align="justify"&gt;&lt;a href="http://www.asp.net"&gt;ASP.NET&lt;/a&gt; and .Net Framework: Runtime and libraries&amp;#160; available with Windows operating system.&lt;/div&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p align="justify"&gt;You can start developing web applications using these tools without need to install big scale development stuff.&lt;/p&gt;  &lt;h4&gt;What about other applications types?&lt;/h4&gt;  &lt;p align="justify"&gt;And while you are using these tools you will feel comfortable if you moved to develop windows applications for example. Microsoft provide developers with another set of tools for windows application development just like Visual C#,VB.NET,C++ Express. You will be using the same languages, the same frameworks, same libraries and a common IDE.&amp;#160; &lt;/p&gt;  &lt;h4&gt;How it costs me when Microsofting?&lt;/h4&gt;  &lt;p align="justify"&gt;The nice about all the above that they are available free of charge. You don’t need to pay a penny for that stuff. That’s real their is no catch ups or hidden traps and another good news is you can use it to build commercial products. &lt;/p&gt;  &lt;p align="justify"&gt;So you can start developing applications and make money without paying anything. &lt;/p&gt;  &lt;h4&gt;Is their is any limitations?&lt;/h4&gt;  &lt;p align="justify"&gt;Yes, that’s for sure. These tools have limited features but I believe they are more than enough for developer with basic needs.&lt;/p&gt;  &lt;h4&gt;Is that good for software development in Palestine?&lt;/h4&gt;  &lt;p align="justify"&gt;For sure. The Palestinian IT sector is still a growing one. People here have low living, limited finical resources, lake of opportunities and a weak economy. It’s hard enough for people to start up business in such circumstances. By using these tools you save your money to empower your business instead of spending large amount of money on buying software licenses. &lt;/p&gt;  &lt;p align="justify"&gt;In a future post I will talk about another offer Microsoft provide students with. Until that time I hope that helps&lt;/p&gt;  &lt;p&gt;Huthaifa Afanah&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6871002" width="1" height="1"&gt;</content><author><name>IsToFix</name><uri>http://weblogs.asp.net/members/IsToFix.aspx</uri></author></entry><entry><title>Tips &amp; Tricks: Details View and Read-only Fields</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/istofix/archive/2008/12/31/tips-amp-tricks-details-view-and-read-only-fields.aspx" /><id>http://weblogs.asp.net/istofix/archive/2008/12/31/tips-amp-tricks-details-view-and-read-only-fields.aspx</id><published>2008-12-31T20:30:39Z</published><updated>2008-12-31T20:30:39Z</updated><content type="html">&lt;p&gt;&lt;span style="font-size: 9pt; font-family: trebuchet ms"&gt;One of the flexible and new features came with ASP.NET 2.0 was DetailsView control. This data bound control is used to display the values of a single record from a data source in an HTML table, where each table row represents a field of the record. The DetailsView control allows you to edit, delete, and insert records. In this post I will explain an issue related with Read-only data fields. &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;img alt="" src="http://weblogs.asp.net/blogs/istofix/123108_2029_TipsTricks1.png" border="0" /&gt;&lt;span style="font-size: 9pt; font-family: trebuchet ms"&gt;&amp;#160; &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 9pt; font-family: trebuchet ms"&gt;We will bound a DetailsView control to a SqlDataSource for simplicity reason you can use any data source control ... I used PetShop sample database for this example. After configuring the petShopSqlDataSource and enable update, insert and delete we set the DetailsView DataSourceId to our petShopSqlDataSource Id and so the DetailsView now have 3 fields bound to Category table. &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 9pt; font-family: trebuchet ms"&gt;What we need here is simple modification. I will edit the DetailsView filed and make the &lt;strong&gt;&lt;em&gt;Name&lt;/em&gt;&lt;/strong&gt; filed a read only filed by setting the Read-only property to true. And I already made this column does not accept null values in Category table. &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;img alt="" src="http://weblogs.asp.net/blogs/istofix/123108_2029_TipsTricks2.png" border="0" /&gt;&lt;span style="font-size: 9pt; font-family: trebuchet ms"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 9pt; font-family: trebuchet ms"&gt;What will happen here is when we try to update any record in the details view our application will throw this exception: &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 9pt; font-family: trebuchet ms"&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="color: red"&gt;&amp;quot;Cannot insert the value NULL into column 'Name', table 'Petshop.dbo.Category'; column does not allow nulls. UPDATE fails.The statement has been terminated&amp;quot;&lt;/span&gt; &lt;/em&gt;&lt;/strong&gt;as the message states the Name filed value seems to be passed as null to the data source although it was appeared in the DetailsView before. &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 9pt; font-family: trebuchet ms"&gt;To clarify this take a look into what's happen on the ItemUpdating event, if we checked the e.NewValues.Keys collection before we set the Name filed as read-only filed we will find that this collection contains two Items: &lt;strong&gt;&lt;em&gt;Descn&lt;/em&gt;&lt;/strong&gt;,&lt;strong&gt;&lt;em&gt;Name&lt;/em&gt;&lt;/strong&gt; after we set &lt;strong&gt;&lt;em&gt;Name&lt;/em&gt;&lt;/strong&gt; as read-only filed this collection will conation the &lt;strong&gt;&lt;em&gt;Descn &lt;/em&gt;&lt;/strong&gt;filed only as the below figure shows. &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;img alt="" src="http://weblogs.asp.net/blogs/istofix/123108_2029_TipsTricks3.png" border="0" /&gt;&lt;span style="font-size: 9pt; font-family: trebuchet ms"&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 9pt; font-family: trebuchet ms"&gt;The DetailsView will not pass the read-only fields to the underlying data source and this is not an issue DetailsView designed like this. Take a look to HandleUpdate method in the DetailsView control using reflector and you will find it does not include Read-only fields when extracting values from fields. &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 9pt; font-family: trebuchet ms"&gt;Okay, we are done here so our tip is: &lt;strong&gt;if you set some fields as Read-only make sure you handle this case by using appropriate update statement, setting values pragmatically ... e.g. &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 9pt; font-family: trebuchet ms"&gt;Hope this helps &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 9pt; font-family: trebuchet ms"&gt;Huthaifa &lt;/span&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6810085" width="1" height="1"&gt;</content><author><name>IsToFix</name><uri>http://weblogs.asp.net/members/IsToFix.aspx</uri></author></entry><entry><title>ASP.NET site crashed today!!</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/istofix/archive/2008/10/26/asp-net-site-crashed-today.aspx" /><id>http://weblogs.asp.net/istofix/archive/2008/10/26/asp-net-site-crashed-today.aspx</id><published>2008-10-26T09:01:00Z</published><updated>2008-10-26T09:01:00Z</updated><content type="html">
&lt;p&gt;Today while I am navigating through the Internet I visited the&lt;a href="http://weblogs.asp.net" mce_href="http://weblogs.asp.net"&gt; http://weblogs.asp.net&lt;/a&gt; as usual. Then I moved to the asp.net site and surprise the ASP.Net site seems to have some problems. This problem seems to be solved very fast but I catch it. Notice the date and time below the image&lt;/p&gt;

&lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/istofix/aspCrash.JPG"&gt;&lt;img src="http://weblogs.asp.net/blogs/istofix/aspCrash.JPG" title="ASP.NET site crashed" alt="ASP.NET site crashed" mce_src="http://weblogs.asp.net/blogs/istofix/aspCrash.JPG" width="720" border="0" height="450"&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;Anyway it's not matter, but I make this post to ensure that even the most reliable and well managed web applications and websites may face problems some times.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
Have a nice day
&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6704590" width="1" height="1"&gt;</content><author><name>IsToFix</name><uri>http://weblogs.asp.net/members/IsToFix.aspx</uri></author><category term="ASP.NET" scheme="http://weblogs.asp.net/istofix/archive/tags/ASP.NET/default.aspx" /><category term="errors" scheme="http://weblogs.asp.net/istofix/archive/tags/errors/default.aspx" /></entry><entry><title>Embedded Resources difference between VB.NET and C# projects</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/istofix/archive/2008/10/21/embedded-resources-in-vb-net-and-c-projects.aspx" /><id>http://weblogs.asp.net/istofix/archive/2008/10/21/embedded-resources-in-vb-net-and-c-projects.aspx</id><published>2008-10-21T13:00:00Z</published><updated>2008-10-21T13:00:00Z</updated><content type="html">&lt;p&gt;&lt;span style="font-family: Trebuchet MS; font-size: 10pt;"&gt;While I am developing a custom web control to extend the default validation summary I used some images within this control. One of the nice features and solutions came with ASP.NET 2.0 to address this problem is using web resources. So I embedded these images in my custom control assembly and used the &lt;span style="color: rgb(43, 145, 175);"&gt;Page&lt;/span&gt;&lt;span style="color: black;"&gt;.ClientScript.GetWebResourceUrl&lt;/span&gt; to resolve their URL's.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Trebuchet MS; font-size: 10pt;"&gt;To do this task correctly you need to do 2 simple steps:
&lt;/span&gt;&lt;/p&gt;&lt;ol style="margin-left: 39pt;"&gt;&lt;li&gt;&lt;span style="font-family: Trebuchet MS; font-size: 10pt;"&gt;First, you need to select whatever file you want to embed in your assembly and then set the &lt;b&gt;Build Action&lt;/b&gt; property from its properties to &lt;b&gt;Embed &lt;/b&gt;this is straight forward as saying 1, 2, 3. &lt;br&gt;&lt;a href="http://weblogs.asp.net/controlpanel/blogs/C:%5CDocuments%20and%20Settings%5CAdmin%5CApplication%20Data%5CWindows%20Live%20Writer%5CPostSupportingFiles%5C27ab55f0-7cc0-4f0c-b7d1-ce3b86109466%5CembedFile4.jpg"&gt;&lt;img src="http://weblogs.asp.net/blogs/istofix/102108_1300_EmbeddedRes1.jpg" mce_src="http://weblogs.asp.net/blogs/istofix/102108_1300_EmbeddedRes1.jpg" alt="" border="0"&gt;&lt;/a&gt;
			&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&lt;span style="font-family: Trebuchet MS; font-size: 10pt;"&gt;The second this we need to do is referencing that embedded resource so it could be retrieved as a web resources.This could be accomplished by adding WebResource attributes in&amp;nbsp;the Assembly.info file. 
&lt;/span&gt;&lt;/div&gt;&lt;p style="text-align: center;"&gt;&lt;a href="http://weblogs.asp.net/controlpanel/blogs/C:%5CDocuments%20and%20Settings%5CAdmin%5CApplication%20Data%5CWindows%20Live%20Writer%5CPostSupportingFiles%5C27ab55f0-7cc0-4f0c-b7d1-ce3b86109466%5CassemblyInfo7.jpg"&gt;&lt;img src="http://weblogs.asp.net/blogs/istofix/102108_1300_EmbeddedRes2.jpg" mce_src="http://weblogs.asp.net/blogs/istofix/102108_1300_EmbeddedRes2.jpg" alt="" border="0"&gt;&lt;/a&gt;&lt;span style="font-family: Trebuchet MS; font-size: 10pt;"&gt;
				&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Trebuchet MS; font-size: 10pt;"&gt;&lt;br&gt;In general to do this all we need is to add the web resource attribute like 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Trebuchet MS; font-size: 10pt;"&gt;&lt;span style="color: black;"&gt;&amp;lt;Assembly:&lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;System.Web.UI.WebResource(&lt;/span&gt;&lt;span style="color: gray;"&gt;"EmbeddedResourcesVB.Sunset.jpg"&lt;/span&gt;&lt;span style="color: black;"&gt;,&lt;/span&gt;&lt;span style="color: gray;"&gt; "image/jpg"&lt;/span&gt;&lt;span style="color: black;"&gt;)&amp;gt;&lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;nbsp;&lt;/span&gt; the WebResource takes two parameters, the &lt;i&gt;first one&lt;/i&gt; is the resource full name which following this convention: &lt;b&gt;(Rootnamespace).(SubNameSapce).(Filename).(Extension) &lt;/b&gt;and the &lt;i&gt;second parameter&lt;/i&gt; is the MIEM file type of the resource 
&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span style="font-family: Trebuchet MS; font-size: 13pt;"&gt;So what's wrong?
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Trebuchet MS; font-size: 10pt;"&gt;This looks very simple but why all problems occurred? What is the error prone thing which make all these posts and articles on the web!! To identify this we can say there is some issue regarding the way that VB.NET projects and C# projects being organized. Is that true? Yes that's true!! 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://weblogs.asp.net/controlpanel/blogs/C:%5CDocuments%20and%20Settings%5CAdmin%5CApplication%20Data%5CWindows%20Live%20Writer%5CPostSupportingFiles%5C27ab55f0-7cc0-4f0c-b7d1-ce3b86109466%5CSolution5.jpg"&gt;&lt;img src="http://weblogs.asp.net/blogs/istofix/102108_1300_EmbeddedRes3.jpg" mce_src="http://weblogs.asp.net/blogs/istofix/102108_1300_EmbeddedRes3.jpg" alt="" border="0"&gt;&lt;/a&gt;&lt;span style="font-family: Trebuchet MS; font-size: 10pt;"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Trebuchet MS; font-size: 10pt;"&gt;To figure out this issue I created simple solution conations a VB.NET project and a C# project. and add an image to each of them as our embedded resource. I changed the &lt;b&gt;Root Namespace&lt;/b&gt; property for each project to make it clear that the assembly name has nothing to do with WebResource name. By default the &lt;b&gt;Root Namespace == assembly name &lt;/b&gt;but in some certain scenarios you need to change that so by choosing the project properties you can change the assembly name property and the RootNamespace property.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Trebuchet MS; font-size: 10pt;"&gt;After building our solution let's have a closer look to the embedded resources after being compiled into assembly. So let's open EmbResVB.dll and EmbResCSharp.dll using Reflector. If you take a quick look to the image below you can note that the &lt;i&gt;Sunset.jpg&lt;/i&gt; image resource name differs from the Vb.Net assembly to the C# one.
&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: center;"&gt;&lt;a href="http://weblogs.asp.net/controlpanel/blogs/C:%5CDocuments%20and%20Settings%5CAdmin%5CApplication%20Data%5CWindows%20Live%20Writer%5CPostSupportingFiles%5C27ab55f0-7cc0-4f0c-b7d1-ce3b86109466%5Crefelector6.jpg"&gt;&lt;img src="http://weblogs.asp.net/blogs/istofix/102108_1300_EmbeddedRes4.jpg" mce_src="http://weblogs.asp.net/blogs/istofix/102108_1300_EmbeddedRes4.jpg" alt="" border="0"&gt;&lt;/a&gt;&lt;span style="font-family: Trebuchet MS; font-size: 10pt;"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: center;"&gt;&amp;nbsp;
&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Trebuchet MS; font-size: 10pt;"&gt;But we said that the resource name should follow this convention: &lt;b&gt;(RootNameSpace).(SubNameSapce).(Filename).(Extension) &lt;/b&gt;so what's happens??!! &lt;br&gt;&lt;b&gt;Here's what happen:&lt;/b&gt; in the C# projects if you add a new class to your solution you will find that the IDE put's this file in a namespace regarding to the solution folders hierarchy. But in VB.NET projects this is not occur. Let's take the ImagesUrl class as example, this class which exists's under the images folder in our testing C# and VB.NET projects but it will look like this by default in C#:
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Trebuchet MS; font-size: 10pt;"&gt;&lt;span style="color: blue;"&gt;using&lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;System&lt;/span&gt;&lt;span style="color: blue;"&gt;;&lt;/span&gt;&lt;span style="color: gray;"&gt;
				&lt;br&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;using&lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;System.Collections.Generic&lt;/span&gt;&lt;span style="color: blue;"&gt;;&lt;/span&gt;&lt;span style="color: gray;"&gt;
				&lt;br&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;using&lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;System.Text&lt;/span&gt;&lt;span style="color: blue;"&gt;;&lt;/span&gt;&lt;span style="color: gray;"&gt;
				&lt;br&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;namespace&lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;EmbeddedResourcesCSharp.Images&lt;/span&gt;&lt;span style="color: gray;"&gt;
				&lt;br&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;{&lt;/span&gt;&lt;span style="color: gray;"&gt;
				&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;public&lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;class&lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;ImagesURL&lt;/span&gt;&lt;span style="color: gray;"&gt;
				&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: black;"&gt;{&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Trebuchet MS; font-size: 10pt;"&gt;&lt;span style="color: gray;"&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;span style="color: gray;"&gt;
				&lt;br&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Trebuchet MS; font-size: 10pt;"&gt;while in the VB.NET project it will be added to the root namespace by default:
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Trebuchet MS; font-size: 10pt;"&gt;&lt;span style="color: blue;"&gt;Public&lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;Class&lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;ImagesUrl&lt;/span&gt;&lt;span style="color: gray;"&gt;
				&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;Sub&lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;New&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: gray;"&gt;
			&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Trebuchet MS; font-size: 10pt;"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/asp.net" mce_href="http://technorati.com/tags/asp.net"&gt;&lt;span style="color: rgb(102, 153, 102); text-decoration: underline;"&gt;asp.net&lt;/span&gt;&lt;/a&gt;,&lt;a href="http://technorati.com/tags/embbede%20resources" mce_href="http://technorati.com/tags/embbede%20resources"&gt;&lt;span style="color: rgb(102, 153, 102); text-decoration: underline;"&gt;embbede resources&lt;/span&gt;&lt;/a&gt;,&lt;a href="http://technorati.com/tags/.Net" mce_href="http://technorati.com/tags/.Net"&gt;&lt;span style="color: rgb(102, 153, 102); text-decoration: underline;"&gt;.Net&lt;/span&gt;&lt;/a&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Trebuchet MS; font-size: 10pt;"&gt;&lt;span style="color: gray;"&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;End&lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;Sub&lt;/span&gt;&lt;span style="color: gray;"&gt;
				&lt;br&gt;&lt;br&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;End&lt;/span&gt;&lt;span style="color: gray;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;Class&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Trebuchet MS; font-size: 10pt;"&gt;C# is doing this because of the VC# wizards which work in the background when you add new items to your project. Here's an article for one of the VS team descriping this issue &lt;a href="http://blogs.msdn.com/joen/archive/2004/03/15/90002.aspx" mce_href="http://blogs.msdn.com/joen/archive/2004/03/15/90002.aspx" title="http://blogs.msdn.com/joen/archive/2004/03/15/90002.aspx"&gt;&lt;span style="color: rgb(102, 153, 102); text-decoration: underline;"&gt;http://blogs.msdn.com/joen/archive/2004/03/15/90002.aspx&lt;/span&gt;&lt;/a&gt;. 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Trebuchet MS; font-size: 10pt;"&gt;Anyway it seems that C# IDE is handling the other files like our image in the same way. So our &lt;b&gt;Sunset.jpg&lt;/b&gt; image have been listed under the images namespace which actually it's parent folder name. But in the VB.NET project &lt;b&gt;Sunset.jpg &lt;/b&gt;is being added to the root namespace never mind in any sub folder it exists.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Trebuchet MS; font-size: 10pt;"&gt;Ok, that's it, the reason of all the misunderstanding. Many VB.NET developers reading posts or articles about embedded resources written in C# and they didn't notice the different in embedded resources names between the VB.NET and C# projects. 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Trebuchet MS; font-size: 13pt;"&gt;The result
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Trebuchet MS; font-size: 10pt;"&gt;In a C# project embedded resources names follows this convention &lt;b&gt;(RootNampeSpace).(Path).(FileName).(Extension)&lt;/b&gt; where Path is the folders path in which this resource exist &lt;b&gt;&lt;i&gt;Root/Folder/SubFolder/.../ResourceFile&lt;/i&gt;&lt;/b&gt; .In A VB.NET project embedded resources names follows this convention &lt;b&gt;(RootNampeSpace).(FileName).(Extension) &lt;/b&gt;and the resource path does not affect its name.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Trebuchet MS; font-size: 10pt;"&gt;Hope that help. Happy asp.net
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Trebuchet MS; font-size: 10pt;"&gt;Huthaifa
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: Trebuchet MS; font-size: 10pt;"&gt;&amp;nbsp;
&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6696369" width="1" height="1"&gt;</content><author><name>IsToFix</name><uri>http://weblogs.asp.net/members/IsToFix.aspx</uri></author><category term=".Net" scheme="http://weblogs.asp.net/istofix/archive/tags/.Net/default.aspx" /><category term="ASP.NET" scheme="http://weblogs.asp.net/istofix/archive/tags/ASP.NET/default.aspx" /><category term="embedded resources" scheme="http://weblogs.asp.net/istofix/archive/tags/embedded+resources/default.aspx" /><category term="C#" scheme="http://weblogs.asp.net/istofix/archive/tags/C_2300_/default.aspx" /></entry><entry><title>.netTiers and SAP Authorization Rule Provider</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/istofix/archive/2008/09/17/nettiers-and-sap-authorization-rule-provider.aspx" /><id>http://weblogs.asp.net/istofix/archive/2008/09/17/nettiers-and-sap-authorization-rule-provider.aspx</id><published>2008-09-17T08:31:32Z</published><updated>2008-09-17T08:31:32Z</updated><content type="html">&lt;p&gt;One of the main benefits developers use &lt;a href="http://www.codeplex.com/entlib"&gt;Microsoft Enterprise Library Application Blocks&lt;/a&gt; for is handling application security aspects. Authorizing users against some tasks is always an essential requirement in any application. I am using .netTiers and I am more than pleased in the way it utilizes Enterprise Library different application blocks and as the .netTiers says its base architecture is built upon the &lt;a href="http://www.codeplex.com/entlib"&gt;Microsoft Enterprise Library Application Blocks&lt;/a&gt;. Anyway using entlib different blocks will save time, efforts and give you a standardized way to achieve common software requirements.&lt;/p&gt;  &lt;p&gt;But this will not fit every time. Their is some certain scenarios where you need to do things by your self where the entlib will not be there or you need to handle some customized situations. At general entlib is very open, flexible and extendable. By utilizing available interfaces and abstract class's you almost could customize and extend application blocks. &lt;/p&gt;  &lt;p&gt;As I said before .netTiers utilizing application blocks and one of those blocks being used is Security Application Block through the component layer. The component represents the business logic layer and you can choose from two options to do this in .netTiers by using Service layer-Manager Pattern- or Domain Model layer.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/istofix/WindowsLiveWriter/SAPRuleProvider_8DF3/nettiers.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="247" alt="nettiers" src="http://weblogs.asp.net/blogs/istofix/WindowsLiveWriter/SAPRuleProvider_8DF3/nettiers_thumb.jpg" width="433" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Security Application Block introduces two ways to read security rules: &lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;It provides the &lt;a href="http://blogs.msdn.com/azman/"&gt;AzMan&lt;/a&gt; -Authorization Manager- which is a general purpose role-based security architecture for windows and we will not discuss AzMan here. &lt;/li&gt;    &lt;li&gt;SAP AuthorizationRuleProvider which located at Microsoft.Practices.EnterpriseLibrary.Security namespace. &lt;/li&gt;    &lt;li&gt;You can build your own and provider. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;If we take a close look how .netTiers uses the provider in the default case -AuthorizationRuleProvider - we will find there is central place where all methods will go and check authorization this place called security context and it contains the authorization check method.&lt;/p&gt;  &lt;p&gt;If we configured our data provider to enable method level authorization we will let each call to our data provider pass through security check. As we can see here using Provider Pattern -&lt;a href="http://msdn.microsoft.com/en-us/library/ms972319.aspx"&gt;introduced by Microsoft&lt;/a&gt; -is a very powerful solution to develop configurable applications.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/istofix/WindowsLiveWriter/SAPRuleProvider_8DF3/enableMethodAuth.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="206" alt="enableMethodAuth" src="http://weblogs.asp.net/blogs/istofix/WindowsLiveWriter/SAPRuleProvider_8DF3/enableMethodAuth_thumb.jpg" width="742" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt; Before calling the data provider method this authorization check will decide if the current user identity is authorized to do or call this method. Here is where SAP is involved.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/istofix/WindowsLiveWriter/SAPRuleProvider_8DF3/AuthCheck.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="242" alt="AuthCheck" src="http://weblogs.asp.net/blogs/istofix/WindowsLiveWriter/SAPRuleProvider_8DF3/AuthCheck_thumb.jpg" width="776" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;If the user is not authorized its throws an exception and don't call the data provider method. &lt;a href="http://weblogs.asp.net/blogs/istofix/WindowsLiveWriter/SAPRuleProvider_8DF3/IsAuthorize.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="386" alt="IsAuthorize" src="http://weblogs.asp.net/blogs/istofix/WindowsLiveWriter/SAPRuleProvider_8DF3/IsAuthorize_thumb.jpg" width="907" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;h3&gt;The Problem?&lt;/h3&gt;  &lt;p&gt;If we enabled method level authorization it assumed that each method has it's own security rule. And this is not the real scenario because no developer loves to write authorization rules for all methods wrote to access his data provider. The .netTiers contains hundreds neither thousands of methods available and generated for you to start using. And the result is to have &lt;strong&gt;&lt;em&gt;Authorization Rule Not Found exception&lt;/em&gt;&lt;/strong&gt; ... see image below.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/istofix/WindowsLiveWriter/SAPRuleProvider_8DF3/authorize.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="332" alt="authorize" src="http://weblogs.asp.net/blogs/istofix/WindowsLiveWriter/SAPRuleProvider_8DF3/authorize_thumb.jpg" width="889" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;What do you say: no rule == free to go!&lt;/h3&gt;  &lt;p&gt;Yes, I think if we looked around ourselves in our daily life there is a general idea which if their is no rule to organize something then every body will treat as he well. If their is no rule to forbid you from access some resource so why not access? -of course ethical and convention took's place-&lt;/p&gt;  &lt;p&gt;Anyway, as the rule provider contains a dictionary of rules. Simply, to walk around this problem we need to check if the rule exist firstly. If the rule exist then try to authorize the user against it. Else, allow user to access this method.&lt;/p&gt;  &lt;p&gt;As the rules dictionary is private and we can't access then simplest way to implement this is to to modify the SAP source code and add a public method to do this check.&amp;#160; And&amp;#160; use this method to determine that we need to authorize user identity against this method or not.&lt;/p&gt;  &lt;div class="code"&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#006400"&gt;/// &amp;lt;summary&amp;gt;      &lt;br /&gt;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#006400"&gt;/// Check if the scurity rule exist or not      &lt;br /&gt;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#006400"&gt;/// &amp;lt;/summary&amp;gt;      &lt;br /&gt;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#006400"&gt;/// &amp;lt;param name=&amp;quot;ruleName&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;      &lt;br /&gt;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#006400"&gt;/// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;      &lt;br /&gt;&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;bool&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;IsRuleExist(&lt;/font&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;ruleName)&lt;/font&gt;&lt;font color="#808080"&gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#000000"&gt;{&lt;/font&gt;&lt;font color="#808080"&gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;if&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;(authorizationRules[ruleName]&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;==&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;null&lt;/font&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;font color="#808080"&gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;return&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;false;&lt;/font&gt;&lt;font color="#808080"&gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;else&lt;/font&gt;&lt;font color="#808080"&gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;return&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;true;&lt;/font&gt;&lt;font color="#808080"&gt;      &lt;br /&gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#000000"&gt;}&lt;/font&gt; &lt;/div&gt;  &lt;p&gt;Or we can modify the original &lt;font color="#000000"&gt;Authorize &lt;/font&gt;to make this internal check&lt;/p&gt;  &lt;div class="code"&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;override&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;bool&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;Authorize(IPrincipal&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;principal,&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;ruleName)&lt;/font&gt;&lt;font color="#808080"&gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#000000"&gt;{&lt;/font&gt;&lt;font color="#808080"&gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;if&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;(IsRuleExist(ruleName))&lt;/font&gt;&lt;font color="#808080"&gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;return&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;true;&lt;/font&gt;&lt;font color="#808080"&gt;      &lt;br /&gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;if&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;(principal&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;==&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;null&lt;/font&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;throw&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;ArgumentNullException(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;principal&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;font color="#0000ff"&gt;;&lt;/font&gt;&lt;font color="#808080"&gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;if&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;(ruleName&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;==&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;null&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;||&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;ruleName.Length&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;==&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#800000"&gt;0&lt;/font&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;throw&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;ArgumentNullException(&lt;/font&gt;&lt;font color="#808080"&gt;&amp;quot;ruleName&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;font color="#0000ff"&gt;;&lt;/font&gt;&lt;font color="#808080"&gt;      &lt;br /&gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#000000"&gt;InstrumentationProvider.FireAuthorizationCheckPerformed(principal.Identity.Name,&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;ruleName)&lt;/font&gt;&lt;font color="#0000ff"&gt;;&lt;/font&gt;&lt;font color="#808080"&gt;      &lt;br /&gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#000000"&gt;BooleanExpression&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;booleanExpression&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;GetParsedExpression(ruleName)&lt;/font&gt;&lt;font color="#0000ff"&gt;;&lt;/font&gt;&lt;font color="#808080"&gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;if&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;(booleanExpression&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;==&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;null&lt;/font&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;font color="#808080"&gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#000000"&gt;{&lt;/font&gt;&lt;font color="#808080"&gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;throw&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;InvalidOperationException(&lt;/font&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;font color="#000000"&gt;.Format(Properties.Resources.AuthorizationRuleNotFoundMsg,&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;ruleName))&lt;/font&gt;&lt;font color="#0000ff"&gt;;&lt;/font&gt;&lt;font color="#808080"&gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;font color="#808080"&gt;      &lt;br /&gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;bool&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;result&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;booleanExpression.Evaluate(principal)&lt;/font&gt;&lt;font color="#0000ff"&gt;;&lt;/font&gt;&lt;font color="#808080"&gt;      &lt;br /&gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;if&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;(result&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;==&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;false&lt;/font&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;&lt;font color="#808080"&gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#000000"&gt;{&lt;/font&gt;&lt;font color="#808080"&gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#000000"&gt;InstrumentationProvider.FireAuthorizationCheckFailed(principal.Identity.Name,&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;ruleName)&lt;/font&gt;&lt;font color="#0000ff"&gt;;&lt;/font&gt;&lt;font color="#808080"&gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#000000"&gt;}&lt;/font&gt;&lt;font color="#808080"&gt;      &lt;br /&gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;return&lt;/font&gt;&lt;font color="#808080"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#000000"&gt;result&lt;/font&gt;&lt;font color="#0000ff"&gt;;&lt;/font&gt;&lt;font color="#808080"&gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#000000"&gt;}&lt;/font&gt; &lt;/div&gt;  &lt;div class="code"&gt;&amp;#160;&lt;/div&gt;  &lt;div class="code"&gt;But .... I hate to modify entlib source! Then we could develop some kind of provider doing this for us and this will be in a future post, very soon I hope. Anyway this is quick and efficient way to workaround this&amp;#160; problem. &lt;/div&gt;  &lt;div class="code"&gt;&amp;#160;&lt;/div&gt;  &lt;h3&gt;So!!&lt;/h3&gt;  &lt;div class="code"&gt;No rule == free to go is supposed to be troublesome sometimes. I am sure there is many folks will not have the same view to this problem and I myself one of them some times. This will not be the right solution at certain circumstance such as if your application is so critical so it must provide authorization every action made by end users. &lt;/div&gt;  &lt;div class="code"&gt;&amp;#160;&lt;/div&gt;  &lt;div class="code"&gt;Hope this helps! Happy programming.&lt;/div&gt;  &lt;div class="code"&gt;&amp;#160;&lt;/div&gt;  &lt;div class="code"&gt;&lt;/div&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6629010" width="1" height="1"&gt;</content><author><name>IsToFix</name><uri>http://weblogs.asp.net/members/IsToFix.aspx</uri></author><category term=".Net" scheme="http://weblogs.asp.net/istofix/archive/tags/.Net/default.aspx" /><category term="Microsoft Enterprise Library" scheme="http://weblogs.asp.net/istofix/archive/tags/Microsoft+Enterprise+Library/default.aspx" /><category term="Security" scheme="http://weblogs.asp.net/istofix/archive/tags/Security/default.aspx" /><category term=".netTiers" scheme="http://weblogs.asp.net/istofix/archive/tags/.netTiers/default.aspx" /></entry><entry><title>New Certificate ... New Baby ... New Job</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/istofix/archive/2008/08/05/new-certificate-new-baby-new-job.aspx" /><id>http://weblogs.asp.net/istofix/archive/2008/08/05/new-certificate-new-baby-new-job.aspx</id><published>2008-08-05T05:58:59Z</published><updated>2008-08-05T05:58:59Z</updated><content type="html">&lt;p&gt;Couple of months ago I finished my MCTS: .Net Framework 2.0 Web based client. I finished the 070-528 exam after many delays. It was very good exam but I was surprised that there is many questions about Mobile web development. When I was studying I said to my self that small chapter will not have many questions in the exam. It's a 2 small lessons chapter&amp;#160; so they will not ask many questions about it. Any way I passed the exam with a high score which is really good. I regret because I have those delays and the new ASP.Net 3.5 exam is deployed and I still studying for 2.0 version, having that feeling that &lt;strong&gt;I am old fashioned developer who still sitting when the people are standing, walking when the people are running, and driving when the people are flying!! &lt;/strong&gt;Any way I think that there are no much difference between ASP.NET 2.0 and 3.5 there is no big shift so I hope that my feeling is overstatement. &lt;/p&gt;  &lt;p&gt;One of things motivated me to finish this exam very soon: I got a new baby. A daughter I called &lt;strong&gt;&amp;quot;Raneem&amp;quot;,&lt;/strong&gt; she is very beautiful, cool and nice baby. When this cute creature came to my world and entered my life I lost one of the most valuable factors for any student. I lost those quiet nights when I was sleeping more than 8 hours. I became less comfortable and I have little time to make advantage and utilize in preparation for this exam.&lt;/p&gt;  &lt;p&gt;One thing lead to another, having a new baby means many things and definitely means more and more expenses. So I seek for a new job with higher salary and I got what I want. I moved to this new job and this is my first week in this job. I got a very good impression about the new people here in this job. But I missed my friends form my previous company. The new company is one of the leading companies here in our country and I hope to accrue very rich and excellent experience and having a good job experiment. &lt;/p&gt;  &lt;p&gt;To secure a good position in a software company you need to take some things in your consideration here is one of them &lt;/p&gt;  &lt;blockquote&gt;   &lt;h5&gt;&lt;strong&gt;&amp;#8220;&lt;/strong&gt;What a geek!&amp;#8221;&lt;/h5&gt;    &lt;p&gt;In high school, you may have hated being called a geek. But today, you are trying to find work as a programmer. &amp;#8220;Geek&amp;#8221; is &amp;#8220;gold&amp;#8221; to hiring managers. Find a way to show them that you are smart, love programming, and are constantly growing, learning, and exploring new ideas. Talk about your relevant hobbies if you have any, like contributing to open source projects or volunteering to teach local kids programming. Let them know if you like programming or computers enough to deal with them outside of work.&lt;/p&gt;    &lt;p&gt;It is a really simple equation for the hiring manager. While two candidates may be equal &lt;em&gt;today&lt;/em&gt;, the candidate with passion will be far more advanced &lt;em&gt;tomorrow&lt;/em&gt; than the candidate who treats it as &amp;#8220;just a job.&amp;#8221;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;a href="http://blogs.techrepublic.com.com/10things/?p=274"&gt;Follow up here to know about another 9 things to take care of at TechRepublic&lt;/a&gt; you will find a very helpful ideas. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Hope that helps and for all of you happy programming&lt;/strong&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6484363" width="1" height="1"&gt;</content><author><name>IsToFix</name><uri>http://weblogs.asp.net/members/IsToFix.aspx</uri></author></entry><entry><title>Translating Scott's Guthrie blog posts in Arabic</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/istofix/archive/2008/05/02/translating-scott-s-post-in-arabic.aspx" /><id>http://weblogs.asp.net/istofix/archive/2008/05/02/translating-scott-s-post-in-arabic.aspx</id><published>2008-05-02T08:54:00Z</published><updated>2008-05-02T08:54:00Z</updated><content type="html">&lt;p&gt;Before couple of weeks I started translating &lt;a href="http://weblogs.asp.net/ScottGuArabic/" target="_blank" mce_href="http://weblogs.asp.net/ScottGuArabic/"&gt;&lt;b&gt;Scott Guthrie&lt;/b&gt; blog post in Arabic&lt;/a&gt;. I think it's a great idea to translate Scott's blog post because their is something special with Scott post. It's not a technical posts only it's hot news from the factory developing ASP.NET and Microsoft web development tools. I hope that we cans spread knowledge and those news if Arabs world so we can improve and enhance .Net based application development industry.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;My experience&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Translating technical and scientific materials into Arabic is not a new thing. Its happened form hundreds of years. When Muslim and Arab scientists translated ancient Greece and Roman books into Arabic. After other hundreds of years European scientists translated Arabic books into foreign languages. That was a big movement into transferring knowledge and science between nations and civilizations. &lt;/p&gt;  &lt;p&gt;As I am trying to translate those blogs I faced a confusing problem that I am not really comfortable with transiting some terms into Arabic. Because I am never used an Arabic translated book while I am studying at college and our college depends on English books. In spite of that I am trying to provide an accurate translation as I can in respect of the technical terms which could not be translated.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;A final world&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;I hope that some day we have a strong and mature .Net Arabic communities to support development industry in Arab world . So I hope this participate in translating English blog posts will help. Final many thanks for Scott for his significant posts. &lt;/p&gt;  &lt;p&gt;Have a nice day, &lt;/p&gt;  &lt;p&gt;Huthaifa,&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6149880" width="1" height="1"&gt;</content><author><name>IsToFix</name><uri>http://weblogs.asp.net/members/IsToFix.aspx</uri></author><category term="General Software Development" scheme="http://weblogs.asp.net/istofix/archive/tags/General+Software+Development/default.aspx" /><category term="Arabic efforts" scheme="http://weblogs.asp.net/istofix/archive/tags/Arabic+efforts/default.aspx" /></entry><entry><title>Thoughts about Web2.0</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/istofix/archive/2008/04/19/thoughts-about-web2-0.aspx" /><link rel="enclosure" type="application/x-zip-compressed" length="1486169" href="http://weblogs.asp.net/istofix/attachment/6112057.ashx" /><id>http://weblogs.asp.net/istofix/archive/2008/04/19/thoughts-about-web2-0.aspx</id><published>2008-04-19T14:52:00Z</published><updated>2008-04-19T14:52:00Z</updated><content type="html">&lt;p&gt;Web2.0 is&lt;span&gt; one of the biggest buzzwords out there, but what exactly does it mean? It's changing the face of the Internet. &lt;/span&gt;As we are web developers we must have a good knowledge about this important and branching web trend. I navigated some web sites here and their and made simple presentation to introduce the essential concepts of Web2.0 and I add some slides about Wb2.0 from design perspective.&lt;/p&gt;  &lt;p&gt;There are three basic parts of Web2.0 -according to Andi Gutmans-which will determine if you web application or website is a Web2.0 one or not which is: &lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;RIA:&amp;#160; so you are giving the user a rich experience while using you application.&lt;/li&gt;    &lt;li&gt;Users add value: your web application is social active with the users so users are not watching or retrieving information they participate and add new values to you web application and it's content using various techniques.&lt;/li&gt;    &lt;li&gt;Services not System: web application is a group of services not a common system &amp;quot;SOA&amp;quot;     &lt;br /&gt;&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Web2.0 is generating real questions about the future of the common web applications,:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Are we still need to develop customized web applications? &lt;/li&gt;    &lt;li&gt;Are their is an easy way to convert a common web application into a Web2.0 one, for example a simple ordering system could it be made in a Web2.0 flavor. &lt;/li&gt;    &lt;li&gt;If I created my web application and included some parts of Web2.0 essentials and discard others is it a Web2.0 application?&lt;/li&gt;    &lt;li&gt;Is &amp;quot;Users add value&amp;quot; concept is a must in a Web2.0 application or we can exclude common web applications?&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt; And their is more and more questions .... hope to have good answers someday....    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I hope that these slides is easy and clear enough to have a good idea about Web2.0 trend. I tried as I can to summarize the main concepts and ideas in this big and mysterious term.   &lt;br /&gt;&lt;/p&gt;  &lt;p style="font-weight: bold"&gt;Hope that's Help,&lt;/p&gt;  &lt;p style="font-weight: bold"&gt;Huthaifa&lt;/p&gt;  &lt;p style="font-style: italic"&gt;&lt;span style="font-weight: bold"&gt;You can get those slides in attachments down there:&lt;/span&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6112057" width="1" height="1"&gt;</content><author><name>IsToFix</name><uri>http://weblogs.asp.net/members/IsToFix.aspx</uri></author><category term="Web2.0" scheme="http://weblogs.asp.net/istofix/archive/tags/Web2.0/default.aspx" /><category term="Tips &amp; Tricks;" scheme="http://weblogs.asp.net/istofix/archive/tags/Tips+_2600_+Tricks_3B00_/default.aspx" /></entry><entry><title>Conventions and Practices to keep in mind</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/istofix/archive/2008/04/09/conventions-and-practices-to-keep-in-mind.aspx" /><link rel="enclosure" type="application/x-zip-compressed" length="233963" href="http://weblogs.asp.net/istofix/attachment/6077189.ashx" /><id>http://weblogs.asp.net/istofix/archive/2008/04/09/conventions-and-practices-to-keep-in-mind.aspx</id><published>2008-04-09T05:49:00Z</published><updated>2008-04-09T05:49:00Z</updated><content type="html">&lt;p&gt;The last week I was preparing for a training session about programming conventions and practices to adapt some new developers who will join my team. While I am trying to acquire a good&amp;nbsp; material of my presentation I thought: there is no way to find a good material than going to the source Microsoft use in some of their products.&lt;/p&gt;  &lt;p&gt;Here comes our man&lt;b&gt; Juval&lt;/b&gt; &lt;b&gt;Löwy.&lt;/b&gt; I took it's great book &lt;b&gt;"Programming .NET Components" &lt;/b&gt;which conations nice appendix called &lt;b&gt;"C# coding standers". &lt;/b&gt;In this part of his book he presented a summarized main standards of coding with out entering in every detail and make the reader confused.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/istofix/WindowsLiveWriter/ConventionsandPracticestokeepinmind_5EA4/image_2.png" mce_href="http://weblogs.asp.net/blogs/istofix/WindowsLiveWriter/ConventionsandPracticestokeepinmind_5EA4/image_2.png"&gt;&lt;img src="http://weblogs.asp.net/blogs/istofix/WindowsLiveWriter/ConventionsandPracticestokeepinmind_5EA4/image_thumb.png" style="border-width: 0px;" alt="image" mce_src="http://weblogs.asp.net/blogs/istofix/WindowsLiveWriter/ConventionsandPracticestokeepinmind_5EA4/image_thumb.png" border="0" height="244" width="187"&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;Coding standers is one of things every developer must keep in his mind before starting writing suck code here and their and setup a hell for the person who will try to update or make some maintenance in this f*** code.&lt;/p&gt;  &lt;p&gt;I run in a such thing, I was involved in one of our company mature projects which supposed to be written by senior developers. The tough truth that I burned in their coding hell. Some methods with more than 500 lines of codes, hundreds of naming styles is used, thousands of uncommented methods and then you stop and stare what this piece of sh** is doing.&lt;/p&gt;  &lt;p&gt;Without forcing developers to follow the same coding standard you will face this problem in every project event it's a simple one which contains some classes only. Every one should do coding the same way others in the team do, in spite of he some times may does not know why he should.&lt;/p&gt;  &lt;p&gt;As &lt;b&gt;Juval&lt;/b&gt; &lt;b&gt;Löwy&lt;/b&gt; said :&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;"Being able to comply with a good standard should come before fully understanding and appreciating it, that should come over time, with experience. "&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;As I said first I took this part of book and make some presentation slides and categorized them in groups.Their is another tow section about "Project Setting and Project Structure", and "Framework Specific Guide-Line " I don't include in those slides.&lt;/p&gt;  &lt;p&gt;I hope those help to keep standers in your mind while you doing your daily development work. And keeping you committed with best practices and conventions.&lt;/p&gt;  &lt;p&gt;Happy programming&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;You can get those slides from attachments below&lt;/b&gt; &lt;br&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6077189" width="1" height="1"&gt;</content><author><name>IsToFix</name><uri>http://weblogs.asp.net/members/IsToFix.aspx</uri></author><category term=".Net" scheme="http://weblogs.asp.net/istofix/archive/tags/.Net/default.aspx" /><category term="General Software Development" scheme="http://weblogs.asp.net/istofix/archive/tags/General+Software+Development/default.aspx" /></entry></feed>