<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8902588786462222621</id><updated>2012-01-25T12:59:51.906-08:00</updated><title type='text'>Hazem Torab Blog</title><subtitle type='html'>Technical software development blog for software developers, architectures and students.
Regardless of your technology specialty you will find here good articles, hope you like it.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://hazemtorab.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8902588786462222621/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://hazemtorab.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Hazem Torab</name><uri>http://www.blogger.com/profile/14914233434863435419</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_Y-kfGZLwqOc/SOCK2dOXWZI/AAAAAAAAAKU/gyAObKujPaQ/S220/hazem.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>6</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8902588786462222621.post-3884585810976806670</id><published>2011-10-18T05:00:00.000-07:00</published><updated>2011-10-18T06:01:48.567-07:00</updated><title type='text'>How to Generate and Submit Google Sitemap</title><content type='html'>Sitemap is the best way to submit your pages to Google, and it's one of the most important steps in optimizing your website for search engines.&lt;br /&gt;&lt;span class="Apple-style-span"&gt;&lt;div style="color: rgb(0, 0, 0); text-align: left; "&gt;&lt;span class="Apple-style-span"&gt;&lt;div style="color: rgb(0, 0, 0); text-align: left; "&gt;&lt;a href="http://1.bp.blogspot.com/-qNtrqwvmCvY/TprvNHbw8uI/AAAAAAAAAVQ/XJV8kczGujE/s1600/sitemap.png"&gt;&lt;img src="http://1.bp.blogspot.com/-qNtrqwvmCvY/TprvNHbw8uI/AAAAAAAAAVQ/XJV8kczGujE/s400/sitemap.png" alt="" id="BLOGGER_PHOTO_ID_5664102489984660194" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 285px; " border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Generating your sitemap&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Whenever you have changes in your website visit you should update the sitemap xml file, which is an XML file that includes all the website pages.&lt;br /&gt;&lt;br /&gt;The most easy way to update this file is to generate it using a  Google Sitemap Generator  website.&lt;br /&gt;&lt;br /&gt;For example you can use XML-Sitemap.com, follow the following steps:&lt;br /&gt;&lt;br /&gt;1- Open XML-Sitemap.com&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-sYlpmZlXFVw/Tp1yYIMLF5I/AAAAAAAAAVc/bm91iaLmoYM/s1600/XMLSitemaps.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 249px;" src="http://3.bp.blogspot.com/-sYlpmZlXFVw/Tp1yYIMLF5I/AAAAAAAAAVc/bm91iaLmoYM/s400/XMLSitemaps.png" alt="" id="BLOGGER_PHOTO_ID_5664809665142921106" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;2- Type your website URL in the field and fill the other fields as shown bellow, or change it with your suitable information&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-gXUyA9nAOHk/Tp1zX6sVylI/AAAAAAAAAVo/IpRYmD8fJBM/s1600/Generate_Sitemap.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 328px;" src="http://4.bp.blogspot.com/-gXUyA9nAOHk/Tp1zX6sVylI/AAAAAAAAAVo/IpRYmD8fJBM/s400/Generate_Sitemap.png" alt="" id="BLOGGER_PHOTO_ID_5664810761031371346" border="0" /&gt;&lt;/a&gt;3- Click start to generate the sitemap files, download to your local computer&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-0YFHkqxnqTc/Tp1z9i-_I-I/AAAAAAAAAV0/_7ZxuGXtysM/s1600/download_Sitemap.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 278px;" src="http://1.bp.blogspot.com/-0YFHkqxnqTc/Tp1z9i-_I-I/AAAAAAAAAV0/_7ZxuGXtysM/s400/download_Sitemap.png" alt="" id="BLOGGER_PHOTO_ID_5664811407502156770" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;4- Upload the file to your website&lt;br /&gt;&lt;br /&gt;Submit Google Sitemap&lt;br /&gt;&lt;br /&gt;1- Login to your &lt;a href="http://www.google.com/webmasters/"&gt;Google Webmaster Account&lt;/a&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-l50x6L9NXmE/Tp10zH2IurI/AAAAAAAAAWA/aMIbv-s4IOA/s1600/GoogleWebmasterTool.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 219px;" src="http://4.bp.blogspot.com/-l50x6L9NXmE/Tp10zH2IurI/AAAAAAAAAWA/aMIbv-s4IOA/s400/GoogleWebmasterTool.png" alt="" id="BLOGGER_PHOTO_ID_5664812327930215090" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;2- Click Add a Site, then type your website domain for example "http://www.example.com"&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-H9IrccwygMA/Tp11VzPWmZI/AAAAAAAAAWM/YQc_NOpCdKs/s1600/AddSiteToGoogleWebmaster.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 48px;" src="http://1.bp.blogspot.com/-H9IrccwygMA/Tp11VzPWmZI/AAAAAAAAAWM/YQc_NOpCdKs/s400/AddSiteToGoogleWebmaster.png" alt="" id="BLOGGER_PHOTO_ID_5664812923694258578" border="0" /&gt;&lt;/a&gt;3- You will be asked to authenticate your website site using any method&lt;br /&gt;method 1:&lt;br /&gt;you will be asked to download a file from Google Webmaster Tool and upload it to your website root&lt;br /&gt;&lt;br /&gt;Method 2:&lt;br /&gt;You will be asked to add a meta tag in your website head&lt;br /&gt;&lt;br /&gt;Method 3:&lt;br /&gt;Using Google Analytics&lt;br /&gt;&lt;br /&gt;Method 4:&lt;br /&gt;Using DNS Record&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-pLaemLttYwI/Tp13E11e7nI/AAAAAAAAAWY/e-HgWkxojk8/s1600/VerifySiteOwnership.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 133px;" src="http://1.bp.blogspot.com/-pLaemLttYwI/Tp13E11e7nI/AAAAAAAAAWY/e-HgWkxojk8/s400/VerifySiteOwnership.png" alt="" id="BLOGGER_PHOTO_ID_5664814831356538482" border="0" /&gt;&lt;/a&gt;4- After verifying the ownership of your website you will be directed to the domain page, then click on "Add a Sitemap"&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-tfo3sajQDyo/Tp13jl-ypDI/AAAAAAAAAWk/ONR4s2EsnRQ/s1600/SubmitASitemap.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 179px;" src="http://4.bp.blogspot.com/-tfo3sajQDyo/Tp13jl-ypDI/AAAAAAAAAWk/ONR4s2EsnRQ/s400/SubmitASitemap.png" alt="" id="BLOGGER_PHOTO_ID_5664815359676556338" border="0" /&gt;&lt;/a&gt;6- Type the URL  your sitemap xml which already generated and uploaded to your website file for example "http://www.example.com/sitemap.xml"&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-bI5jI6-u2MU/Tp14TPmQEPI/AAAAAAAAAWw/o04s570e_as/s1600/Choosesitemap.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 72px;" src="http://4.bp.blogspot.com/-bI5jI6-u2MU/Tp14TPmQEPI/AAAAAAAAAWw/o04s570e_as/s400/Choosesitemap.png" alt="" id="BLOGGER_PHOTO_ID_5664816178301767922" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Now you have a sitemap submitted to Google, wait from 1 to 7 days and revisit your account to see your website statistics.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8902588786462222621-3884585810976806670?l=hazemtorab.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hazemtorab.blogspot.com/feeds/3884585810976806670/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8902588786462222621&amp;postID=3884585810976806670' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8902588786462222621/posts/default/3884585810976806670'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8902588786462222621/posts/default/3884585810976806670'/><link rel='alternate' type='text/html' href='http://hazemtorab.blogspot.com/2011/10/how-to-generate-and-submit-google.html' title='How to Generate and Submit Google Sitemap'/><author><name>Hazem Torab</name><uri>http://www.blogger.com/profile/14914233434863435419</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_Y-kfGZLwqOc/SOCK2dOXWZI/AAAAAAAAAKU/gyAObKujPaQ/S220/hazem.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-qNtrqwvmCvY/TprvNHbw8uI/AAAAAAAAAVQ/XJV8kczGujE/s72-c/sitemap.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8902588786462222621.post-7479869546279086570</id><published>2011-10-16T04:57:00.001-07:00</published><updated>2011-10-16T13:42:56.392-07:00</updated><title type='text'>Search Engine Optimization for Beginners</title><content type='html'>View the Presentation:&lt;div&gt;&lt;br /&gt;&lt;center&gt;&lt;br /&gt;&lt;div style="width:425px" id="__ss_9719647"&gt; &lt;strong style="display:block;margin:12px 0 4px"&gt;&lt;a href="http://www.slideshare.net/hazemtorab/search-engine-optimization-9719647" title="Search Engine Optimization" target="_blank"&gt;Search Engine Optimization&lt;/a&gt;&lt;/strong&gt; &lt;div style="text-align: center;"&gt;&lt;iframe src="http://www.slideshare.net/slideshow/embed_code/9719647" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;div style="padding:5px 0 12px"&gt; View more &lt;a href="http://www.slideshare.net/" target="_blank"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/hazemtorab" target="_blank"&gt;Hazem Torab&lt;/a&gt; &lt;/div&gt; &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/center&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;The following article is talking about Search Engine Optimization for Beginners, step by step we will know about Search Engine Optimization and how can we make our websites visible on Search Engines.&lt;/div&gt;&lt;br /&gt;Search Engine Optimization (SEO) is a very important topics for webmasters, developers, testers, writers and web designers. You need to know the concept of Search Engine Optimization to know how to build a search engine friendly website and enhance its position in Search Engines following the mentioned SEO Tips and Tricks.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;What is SEO?&lt;/b&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;SEO is One of the most effective methods in internet marketing, by making some activities inside and outside your website to improve the visibility in search engines.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Why SEO?&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Unpaid traffic&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Continuous source of visitor&lt;/li&gt;&lt;br /&gt;&lt;li&gt;21% of traffic come from search engines&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Good image for your business&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div&gt;&lt;b&gt;Search Engines Market Share&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;According to the latest statistics about Search Engines market share which done on 11 June 2011 by http://www.compete.com/&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-aXg6wJm8OUA/Tprn9162DSI/AAAAAAAAAUs/B5t5TVpZLRk/s1600/SEOMarketShare.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img src="http://2.bp.blogspot.com/-aXg6wJm8OUA/Tprn9162DSI/AAAAAAAAAUs/B5t5TVpZLRk/s400/SEOMarketShare.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5664094531003747618" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 316px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;Reference: &lt;a href="http://searchenginewatch.com/article/2094160/June-2011-Search-Engine-Market-Share-from-comScore-Hitwise"&gt;http://searchenginewatch.com/article/2094160/June-2011-Search-Engine-Market-Share-from-comScore-Hitwise&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;What is Page Rank?&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Page Rank or PR is Trade Mark Google products that calculates the popularity of a website and it gives each page in any website a number from 0 - 10 according to a very complicated algorithm that calculates the popularity based on many factors, the main factor is the links from other websites to your website.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://3.bp.blogspot.com/-hP5Pxkj2or8/Tprb1vIErTI/AAAAAAAAATk/5A2OOJJziVE/s1600/PageRank-hi-res.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img src="http://3.bp.blogspot.com/-hP5Pxkj2or8/Tprb1vIErTI/AAAAAAAAATk/5A2OOJJziVE/s400/PageRank-hi-res.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5664081197601697074" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 288px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;How to Optimize My Website for Search Engines?&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There are many activities that can be done to optimize your website on search engines.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Inside your website:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;img src="http://3.bp.blogspot.com/-cRsCuApN8qg/TprjbUOhdYI/AAAAAAAAATw/fJYh8A3sdKU/s400/SEO_Inside_MyWebsite.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5664089539797415298" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 45px; " /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: left;"&gt;1- Specify Your Keywords: &lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;div style="text-align: left;"&gt;- Be Realistic and avoid choosing very competitive keywords&lt;/div&gt;&lt;div style="text-align: left;"&gt;- Target all related keywords to your business&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;To be able to specify the related keywords, there are many tools that can help you to generate all related keywords, one of the best tools is &lt;a href="http://adwords.google.com/select/KeywordToolExternal"&gt;Google Adwords Keyword Tool&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;a href="http://3.bp.blogspot.com/-B9hs-4ZQrao/TproW6b3ICI/AAAAAAAAAU4/bYCsQuK17Dk/s1600/GoogleAdwordsKeywordtool.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img src="http://3.bp.blogspot.com/-B9hs-4ZQrao/TproW6b3ICI/AAAAAAAAAU4/bYCsQuK17Dk/s400/GoogleAdwordsKeywordtool.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5664094961712701474" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 258px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;2- Re-phrase your text:&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span"&gt;&lt;div style="color: rgb(0, 0, 0); text-align: left; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="color: rgb(0, 0, 0); text-align: left; "&gt;It very recommended to re-phrase your keywords to increase the keyword density in your page and to target all keywords.&lt;/div&gt;&lt;div style="color: rgb(0, 0, 0); text-align: left; "&gt;There are many tools that can help you to calculate the keyword density (don't make any word exceeds 7% density).&lt;/div&gt;&lt;div style="color: rgb(0, 0, 0); text-align: left; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="color: rgb(0, 0, 0); text-align: left; "&gt;&lt;a href="http://tools.seobook.com/general/keyword-density/"&gt;Keyword Density Tool&lt;/a&gt;&lt;/div&gt;&lt;div style="color: rgb(0, 0, 0); text-align: left; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="color: rgb(0, 0, 0); text-align: left; "&gt;3- Optimize your HTML:&lt;/div&gt;&lt;div style="color: rgb(0, 0, 0); text-align: left; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="color: rgb(0, 0, 0); text-align: left; "&gt;The following images shows the mapping between HTML and its display in the Search Engine result page&lt;/div&gt;&lt;div style="color: rgb(0, 0, 0); text-align: left; "&gt;&lt;a href="http://3.bp.blogspot.com/-DjAwSEA_foE/Tprr9d2VsCI/AAAAAAAAAVE/c7supetsz_g/s1600/HTML_SEO_Optimization.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img src="http://3.bp.blogspot.com/-DjAwSEA_foE/Tprr9d2VsCI/AAAAAAAAAVE/c7supetsz_g/s400/HTML_SEO_Optimization.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5664098922588909602" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 247px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="color: rgb(0, 0, 0); text-align: left; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="color: rgb(0, 0, 0); text-align: left; "&gt;There are many SEO Tips and Tricks for HTML the following are the most effective tips:&lt;/div&gt;&lt;div style="color: rgb(0, 0, 0); text-align: left; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left; "&gt;&lt;div style="text-align: left; "&gt;&lt;ul&gt;&lt;li&gt;Use meta tags for description and keywords&lt;/li&gt;&lt;li&gt;Use H1 tag for the main keyword&lt;/li&gt;&lt;li&gt;Use &lt;b&gt;Bold &lt;/b&gt;Tag for your keywords&lt;/li&gt;&lt;li&gt;Use tooltips for images and links&lt;/li&gt;&lt;li&gt;Avoid using nested tags&lt;/li&gt;&lt;li&gt;Put JS &amp;amp; CSS in separate files&lt;/li&gt;&lt;li&gt;Check your links (avoid broken links)&lt;/li&gt;&lt;li&gt;Use search engine friendly URLs&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="color: rgb(0, 0, 0); text-align: left; "&gt;&lt;/div&gt;&lt;div style="color: rgb(0, 0, 0); text-align: left; "&gt;4- Eye Catching:&lt;/div&gt;&lt;div style="color: rgb(0, 0, 0); text-align: left; "&gt;&lt;/div&gt;&lt;div style="color: rgb(0, 0, 0); text-align: left; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="color: rgb(0, 0, 0); text-align: left; "&gt;Before you finish your optimization make sure that your link will be eye catching for search engine users by doing the following tips:&lt;/div&gt;&lt;div style="color: rgb(0, 0, 0); text-align: left; "&gt;&lt;ul&gt;&lt;li&gt;Keep the title short&lt;/li&gt;&lt;li&gt;Don't write your website name in the title&lt;/li&gt;&lt;li&gt;Keep the description short and targeting the keyword&lt;/li&gt;&lt;li&gt;Make your keywords in the URL&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div style="color: rgb(0, 0, 0); text-align: left; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="color: rgb(0, 0, 0); text-align: left; "&gt;5- Build and submit Your Sitemap:&lt;/div&gt;&lt;div style="color: rgb(0, 0, 0); text-align: left; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="color: rgb(0, 0, 0); text-align: left; "&gt;After finishing your website generate your sitemap using an online &lt;a href="http://www.xml-sitemaps.com/"&gt;Sitemap Generation Tool&lt;/a&gt; then submit it too &lt;a href="http://www.google.com/webmasters/"&gt;Google Webmaster Tool&lt;/a&gt;&lt;/div&gt;&lt;div style="color: rgb(0, 0, 0); text-align: left; "&gt;&lt;a href="http://1.bp.blogspot.com/-qNtrqwvmCvY/TprvNHbw8uI/AAAAAAAAAVQ/XJV8kczGujE/s1600/sitemap.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img src="http://1.bp.blogspot.com/-qNtrqwvmCvY/TprvNHbw8uI/AAAAAAAAAVQ/XJV8kczGujE/s400/sitemap.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5664102489984660194" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 285px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;b&gt;Outside your website:&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;&lt;u&gt;&lt;span class="Apple-style-span" style="-webkit-text-decorations-in-effect: underline; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;&lt;a href="http://1.bp.blogspot.com/-QUzaJhPjG0g/TprknX8nbFI/AAAAAAAAAUg/uSH2f0ydxWM/s1600/SEO_Outside_MyWebsite.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img src="http://1.bp.blogspot.com/-QUzaJhPjG0g/TprknX8nbFI/AAAAAAAAAUg/uSH2f0ydxWM/s400/SEO_Outside_MyWebsite.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5664090846466108498" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 54px; " /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;b&gt;Directory Submission&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Before submitting your website make sure that it’s 100% complete&lt;/div&gt;&lt;div&gt;Submit it to DMOZ and general directories&lt;/div&gt;&lt;div&gt;Find the suitable directories for your business&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Social Networking Websites&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Don't ever ignore social networking websites, in some cases social networking wesbites are the success key.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Let Others Link to You&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Make RSS Feeds&lt;/div&gt;&lt;div&gt;Write original and attractive content&lt;/div&gt;&lt;div&gt;Make good relations with bloggers and other site owners to talk about your site (Not Link Exchange)&lt;/div&gt;&lt;div&gt;Link to others websites&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Avoid Penalties&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Don’t Copy &amp;amp; Paste Content&lt;/div&gt;&lt;div&gt;Avoid broken links&lt;/div&gt;&lt;div&gt;Don’t make hidden text&lt;/div&gt;&lt;div&gt;Don’t increase the keyword density &lt;/div&gt;&lt;div&gt;Don’t link to un-trusted websites&lt;/div&gt;&lt;div&gt;Don’t duplicate content&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;b&gt;Ongoing Optimization:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://1.bp.blogspot.com/-Gmc_xqkLvCg/Tprj3amn7bI/AAAAAAAAAUI/f8zWlzBfgCQ/s400/SEO_Ongoing_Optimization_MyWebsite.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5664090022545452466" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 50px; " /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;The search engine optimization never ends, you will usually need to check Google Analytics, check your optimization results using Google webmaster tool, and usually check your competitors progress to make sure that you are on the right track.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The growth rate of your website is one of the main factors that search engines position your website, so try to update your website with original content whenever you can, and sure after adding new pages you will need to regenerate your website sitemap and submit it to Google Webmaster Tool.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8902588786462222621-7479869546279086570?l=hazemtorab.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hazemtorab.blogspot.com/feeds/7479869546279086570/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8902588786462222621&amp;postID=7479869546279086570' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8902588786462222621/posts/default/7479869546279086570'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8902588786462222621/posts/default/7479869546279086570'/><link rel='alternate' type='text/html' href='http://hazemtorab.blogspot.com/2011/10/search-engine-optimization-for.html' title='Search Engine Optimization for Beginners'/><author><name>Hazem Torab</name><uri>http://www.blogger.com/profile/14914233434863435419</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_Y-kfGZLwqOc/SOCK2dOXWZI/AAAAAAAAAKU/gyAObKujPaQ/S220/hazem.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-aXg6wJm8OUA/Tprn9162DSI/AAAAAAAAAUs/B5t5TVpZLRk/s72-c/SEOMarketShare.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8902588786462222621.post-3107679994331157031</id><published>2011-05-28T12:55:00.000-07:00</published><updated>2011-05-28T14:14:57.868-07:00</updated><title type='text'>Creative Banner for Custom Software Development</title><content type='html'>When you are going to design a banner or a logo for a service company like "Custom Software Development", it's not easy at all to find an image that describes your service.&lt;br /&gt;In most cases designers go the easy way by making a banner that has an image of a man or a woman working on a laptop.&lt;br /&gt;You Need to be Creative!!! While we were designing &lt;a href="http://www.irange.net/"&gt;our company's&lt;/a&gt; website we thought of a new idea  for our banner, our idea was to put an image of a piece of code being cut by scissors to signify software customization, like a piece of cloth is cut and sewed by a tailor to make clothes that suit his customers needs.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.irange.net/" title="Custom Software Development"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 714px; height: 200px;" src="http://www.irange.net/site/images/2.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8902588786462222621-3107679994331157031?l=hazemtorab.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hazemtorab.blogspot.com/feeds/3107679994331157031/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8902588786462222621&amp;postID=3107679994331157031' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8902588786462222621/posts/default/3107679994331157031'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8902588786462222621/posts/default/3107679994331157031'/><link rel='alternate' type='text/html' href='http://hazemtorab.blogspot.com/2011/05/creative-banner-for-custom-software.html' title='Creative Banner for Custom Software Development'/><author><name>Hazem Torab</name><uri>http://www.blogger.com/profile/14914233434863435419</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_Y-kfGZLwqOc/SOCK2dOXWZI/AAAAAAAAAKU/gyAObKujPaQ/S220/hazem.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8902588786462222621.post-4490750182559994688</id><published>2011-01-10T03:53:00.000-08:00</published><updated>2011-01-10T03:55:04.713-08:00</updated><title type='text'>Best Practices I</title><content type='html'>&lt;a href="http://events.irange.net/poster.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 500px; height: 380px;" src="http://events.irange.net/poster.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Today I made a technical workshop for best practices in programming, organized by &lt;a href="http://www.irange.net/"&gt;IRange&lt;/a&gt; and &lt;a href="http://www.iti.gov.eg/"&gt;Information Technology Institute&lt;/a&gt;, the workshop was for 5 hours and covered the following topics:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Naming Database Objects&lt;/li&gt;&lt;li&gt;Optimizing Queries&lt;/li&gt;&lt;li&gt;De-normalization&lt;/li&gt;&lt;li&gt;Comparing Database Versions&lt;/li&gt;&lt;li&gt;Running Scripts Programmatically&lt;/li&gt;&lt;li&gt;Unit Testing&lt;/li&gt;&lt;li&gt;Detecting Application Version&lt;/li&gt;&lt;li&gt;Workshop: Manage Application Versions&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;&lt;div style="width:425px" id="__ss_6503462"&gt;&lt;strong style="display:block;margin:12px 0 4px"&gt;&lt;a href="http://www.slideshare.net/hazemtorab/best-practice1-6503462" title="Best practice1"&gt;Best practice1&lt;/a&gt;&lt;/strong&gt;&lt;object id="__sse6503462" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=bestpractice1-110110053022-phpapp01&amp;stripped_title=best-practice1-6503462&amp;userName=hazemtorab" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed name="__sse6503462" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=bestpractice1-110110053022-phpapp01&amp;stripped_title=best-practice1-6503462&amp;userName=hazemtorab" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="padding:5px 0 12px"&gt;View more &lt;a href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/hazemtorab"&gt;Hazem Torab&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8902588786462222621-4490750182559994688?l=hazemtorab.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hazemtorab.blogspot.com/feeds/4490750182559994688/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8902588786462222621&amp;postID=4490750182559994688' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8902588786462222621/posts/default/4490750182559994688'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8902588786462222621/posts/default/4490750182559994688'/><link rel='alternate' type='text/html' href='http://hazemtorab.blogspot.com/2011/01/best-practices-i.html' title='Best Practices I'/><author><name>Hazem Torab</name><uri>http://www.blogger.com/profile/14914233434863435419</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_Y-kfGZLwqOc/SOCK2dOXWZI/AAAAAAAAAKU/gyAObKujPaQ/S220/hazem.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8902588786462222621.post-3707213394555451588</id><published>2010-08-19T15:48:00.000-07:00</published><updated>2010-08-19T16:13:49.997-07:00</updated><title type='text'>Using Nhibernate in SharePoint 2010</title><content type='html'>Running Nhibernate on Sharepoint is not an easy task it might take 1 or 2 days to do it, in this tutorial I will try this task easy by providing a step by step guide  starting from how to download NHibernate to how to configure it on sharepoint&lt;br /&gt;&lt;br /&gt;You can download the latest Nhibernate version from: &lt;a href="http://sourceforge.net/projects/nhibernate/"&gt;http://sourceforge.net/projects/nhibernate/&lt;/a&gt;&lt;br /&gt;In my tutorial I am assuming that you know what’s NHibernate and how to use it, if it’s the first time to hear about NHibernate please read the following tutorial first: &lt;a href="http://blogs.hibernatingrhinos.com/nhibernate/archive/2008/04/01/your-first-nhibernate-based-application.aspx"&gt;http://blogs.hibernatingrhinos.com/nhibernate/archive/2008/04/01/your-first-nhibernate-based-application.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;HBM &amp;amp; CS Classes Generators&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;There are many ways to generate HBM and  CS classes&lt;br /&gt;1)    MYGeneration Templates: I do not recommend these templates because most of them are not updated to NHibernate newer versions and it’s not easy to change in its templates&lt;br /&gt;Download link: &lt;a href="http://www.mygenerationsoftware.com/"&gt;http://www.mygenerationsoftware.com &lt;/a&gt;&lt;br /&gt;2)    Smart Code Studio: it’s a better way to generate the hbm files and CS classes, I’ve modified in its template to be more standard and simple, you can download my template from this link.&lt;br /&gt;(if you are not using Smart Code Studio you can watch a video on how to use it from this link &lt;a href="http://www.kontac.net/site/SmartCode/tabid/55/Default.aspx"&gt;http://www.kontac.net/site/SmartCode/tabid/55/Default.aspx&lt;/a&gt; )&lt;br /&gt;Download link: &lt;a href="http://www.kontac.net/site/SmartCode/Download/tabid/64/Default.aspx"&gt;http://www.kontac.net/site/SmartCode/Download/tabid/64/Default.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Using NHibernate in your sharepoint project:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Create a new class library project in your solution called ABC.Domain and generate the hbm files and cs classes then place into it.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Y-kfGZLwqOc/TG2183OmMrI/AAAAAAAAAQ4/fLvwaiwthPU/s1600/img2.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 244px;" src="http://1.bp.blogspot.com/_Y-kfGZLwqOc/TG2183OmMrI/AAAAAAAAAQ4/fLvwaiwthPU/s400/img2.png" alt="" id="BLOGGER_PHOTO_ID_5507257976565936818" border="0" /&gt;&lt;/a&gt;Make sure that all hbm classes are compiled as Embedded resources&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Y-kfGZLwqOc/TG22Uyv-4VI/AAAAAAAAARI/DLVXWDvUXv4/s1600/Img5.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 353px; height: 400px;" src="http://1.bp.blogspot.com/_Y-kfGZLwqOc/TG22Uyv-4VI/AAAAAAAAARI/DLVXWDvUXv4/s400/Img5.png" alt="" id="BLOGGER_PHOTO_ID_5507258387680649554" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Create another class library project called ABC.BL to use the Domain project and to be used by the share point project, don’t forget to add both classes to GAC using gacutil command.&lt;br /&gt;&lt;br /&gt;Extract the Nhibernate folder and make sure to add reference to the following DLLs + Adding reference to your Domain project&lt;br /&gt;Remotion.Data.Linq.dll&lt;br /&gt;NHibernate.dll&lt;br /&gt;Nhibernate.ByteCode.Linfu.dll&lt;br /&gt;NHibernate.ByteCode.Castle.dll&lt;br /&gt;log4net.dll&lt;br /&gt;LinFu.DynamicProxy.dll&lt;br /&gt;Iesi.Collections.dll&lt;br /&gt;Castle.DynamicProxy2.dll&lt;br /&gt;Castle.Core.dll&lt;br /&gt;Antlr3.Runtime.dll&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Y-kfGZLwqOc/TG22VNU_-pI/AAAAAAAAARQ/s0OVMIv4CJU/s1600/Img6.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 379px;" src="http://3.bp.blogspot.com/_Y-kfGZLwqOc/TG22VNU_-pI/AAAAAAAAARQ/s0OVMIv4CJU/s400/Img6.png" alt="" id="BLOGGER_PHOTO_ID_5507258394815232658" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;After adding the references to your project make sure to install them to GAC by executing the following commands on Visual Studio Command Prompt&lt;br /&gt;gacutil -i "&lt;reference path=""&gt;\Remotion.Data.Linq.dll"&lt;br /&gt;gacutil -i "&lt;reference path=""&gt;\NHibernate.dll"&lt;br /&gt;gacutil -i "&lt;reference path=""&gt;\Nhibernate.ByteCode.Linfu.dll"&lt;br /&gt;gacutil -i "&lt;reference path=""&gt;\NHibernate.ByteCode.Castle.dll"&lt;br /&gt;gacutil -i "&lt;reference path=""&gt;\log4net.dll"&lt;br /&gt;gacutil -i "&lt;reference path=""&gt;\LinFu.DynamicProxy.dll"&lt;br /&gt;gacutil -i "&lt;reference path=""&gt;\Iesi.Collections.dll"&lt;br /&gt;gacutil -i "&lt;reference path=""&gt;\Castle.DynamicProxy2.dll"&lt;br /&gt;gacutil -i "&lt;reference path=""&gt;\Castle.Core.dll"&lt;br /&gt;gacutil -i "&lt;reference path=""&gt;\Antlr3.Runtime.dll"&lt;br /&gt;gacutil -i "&lt;project path=""&gt;\ABC.Domain\Bin\Debug\ABC.Domain.dll"&lt;br /&gt;&lt;br /&gt;Configure your Web.config &amp;amp; hibernate.cfg.xml&lt;br /&gt;&lt;br /&gt;Prepare you hibernate.cfg.xml and place it inot your website bin folder (eg. C:\inetpub\wwwroot\wss\VirtualDirectories\80\bin)&lt;br /&gt;&lt;br /&gt;&lt;/project&gt;&lt;/reference&gt;&lt;/reference&gt;&lt;/reference&gt;&lt;/reference&gt;&lt;/reference&gt;&lt;/reference&gt;&lt;/reference&gt;&lt;/reference&gt;&lt;/reference&gt;&lt;/reference&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Y-kfGZLwqOc/TG22Vl5WU2I/AAAAAAAAARY/ompqmyErGCY/s1600/Img7.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 129px;" src="http://4.bp.blogspot.com/_Y-kfGZLwqOc/TG22Vl5WU2I/AAAAAAAAARY/ompqmyErGCY/s400/Img7.png" alt="" id="BLOGGER_PHOTO_ID_5507258401410143074" border="0" /&gt;&lt;/a&gt;&lt;reference path=""&gt;&lt;reference path=""&gt;&lt;reference path=""&gt;&lt;reference path=""&gt;&lt;reference path=""&gt;&lt;reference path=""&gt;&lt;reference path=""&gt;&lt;reference path=""&gt;&lt;reference path=""&gt;&lt;reference path=""&gt;&lt;project path=""&gt;&lt;br /&gt;Now All references and configurations are ready, but if you tried to deploy your solution you will get a run time error “Could not load file or assembly 'xyz' or one of its dependencies”, Now you will just need to add  qualifyAssembly tags to your web.config (eg C:\inetpub\wwwroot\wss\VirtualDirectories\80\ ) to allow Nhibernate to load assemblies form GAC and not to expect it in the bin folder.&lt;br /&gt;&lt;br /&gt;&lt;/project&gt;&lt;/reference&gt;&lt;/reference&gt;&lt;/reference&gt;&lt;/reference&gt;&lt;/reference&gt;&lt;/reference&gt;&lt;/reference&gt;&lt;/reference&gt;&lt;/reference&gt;&lt;/reference&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Y-kfGZLwqOc/TG22V0JqiEI/AAAAAAAAARg/PQvLP6a48lA/s1600/Img8.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 134px;" src="http://1.bp.blogspot.com/_Y-kfGZLwqOc/TG22V0JqiEI/AAAAAAAAARg/PQvLP6a48lA/s400/Img8.png" alt="" id="BLOGGER_PHOTO_ID_5507258405236672578" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;reference path=""&gt;&lt;reference path=""&gt;&lt;reference path=""&gt;&lt;reference path=""&gt;&lt;reference path=""&gt;&lt;reference path=""&gt;&lt;reference path=""&gt;&lt;reference path=""&gt;&lt;reference path=""&gt;&lt;reference path=""&gt;&lt;project path=""&gt;To use Nhibernate inside your sharepoint project you can refer to this tutorial &lt;a href="http://www.codegod.de/WebAppCodeGod/nhibernate-tutorial-1---and-aspnet-AID25.aspx"&gt;http://www.codegod.de/WebAppCodeGod/nhibernate-tutorial-1---and-aspnet-AID25.aspx &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/project&gt;&lt;/reference&gt;&lt;/reference&gt;&lt;/reference&gt;&lt;/reference&gt;&lt;/reference&gt;&lt;/reference&gt;&lt;/reference&gt;&lt;/reference&gt;&lt;/reference&gt;&lt;/reference&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8902588786462222621-3707213394555451588?l=hazemtorab.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hazemtorab.blogspot.com/feeds/3707213394555451588/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8902588786462222621&amp;postID=3707213394555451588' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8902588786462222621/posts/default/3707213394555451588'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8902588786462222621/posts/default/3707213394555451588'/><link rel='alternate' type='text/html' href='http://hazemtorab.blogspot.com/2010/08/using-nhibernate-in-sharepoint-2010.html' title='Using Nhibernate in SharePoint 2010'/><author><name>Hazem Torab</name><uri>http://www.blogger.com/profile/14914233434863435419</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_Y-kfGZLwqOc/SOCK2dOXWZI/AAAAAAAAAKU/gyAObKujPaQ/S220/hazem.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_Y-kfGZLwqOc/TG2183OmMrI/AAAAAAAAAQ4/fLvwaiwthPU/s72-c/img2.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8902588786462222621.post-6949906669631383121</id><published>2010-02-20T02:34:00.000-08:00</published><updated>2010-02-26T14:43:37.283-08:00</updated><title type='text'>Part 1:Why Using Data Access Layer</title><content type='html'>I know it's too late to talk in this topic, but some times we are using a certain technology or methodology without knowing why we are using it :), we found others using it and we just follow them.&lt;br /&gt;&lt;div&gt;Today I  am going to tell you why we are using Data Access Layer (DAL) using an  simple application to simplify the idea.&lt;/div&gt;&lt;br /&gt;&lt;div&gt; &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;Before  we start &lt;span style="font-weight: bold;"&gt;what is the Data Access Laye&lt;/span&gt;r:&lt;/div&gt;&lt;br /&gt;&lt;div style="font-style: italic;"&gt;"A Data Access Layer (DAL) is a layer of a  computer program which provides simplified access to data stored in  persistent storage of some kind, such as an entity-relational database."    Wikipedia&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;In more simple words, it's an object  mapping   for your relational database. It means that when you are using DAL you  will not access the database directly from code but you will access the  DAL which will access the database.&lt;br /&gt;&lt;a onblur="try  {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Y-kfGZLwqOc/S3_b6iVbmFI/AAAAAAAAAPE/nEO1HRt0b8k/s1600-h/DAL.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 321px; height: 400px;" src="http://3.bp.blogspot.com/_Y-kfGZLwqOc/S3_b6iVbmFI/AAAAAAAAAPE/nEO1HRt0b8k/s400/DAL.jpg" alt="" id="BLOGGER_PHOTO_ID_5440308673582438482" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The Example&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;&lt;div&gt;Suppose you  were asked to design and develop a web application  (using any  technology) this application will be deployed on 2 servers  (Application  server &amp;amp; Database Server), the database server will be  MS Access  or MySQl in phase 1 , then it will be upgraded to MS Sql Server  or  Oracle according to the  increase of data in phase 2.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;If  you are going to use traditional data access by writing queries inside  the code (inline queries) and execute it from your application you will  face the following problems:&lt;/div&gt;&lt;br /&gt;&lt;div&gt;-&lt;span style="font-weight: bold;"&gt;Rewriting of common queries &lt;/span&gt;... example if you are going to select from table users with different filters in different files you will rewrite the statement "Select * from users where ...." many and many times&lt;br /&gt;&lt;br /&gt;- &lt;span style="font-weight: bold;"&gt;No Strong Types&lt;/span&gt; .. which means that database tables, columns or relations are not presented in your code, so you have to execute queries using text statements with the ability to make mistakes without any compilation errors (you will see errors just in executions) specially if you have change in the database structure or even one column name (you have to go through all the application)&lt;br /&gt;&lt;br /&gt;- &lt;span style="font-weight: bold;"&gt;One database engine support...&lt;/span&gt; because all queries are directly written inside the code, so if you decided to change the database engine you have to rewrite many SQL queries because SQL syntax is not standard in all database engines.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;-Security Obstacles  &lt;/span&gt;.. in our example if the database server does not allow opening ports except HTTP port (port 80), your application will not be able to execute queries or even to connect to the database, but by using DAL you can convert your DAL to a webservice and deploy it on your Database server to consumed from your application. as shown:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Y-kfGZLwqOc/S4hHJtfAIZI/AAAAAAAAAPM/kd9a-UFu2Zo/s1600-h/DALWS.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 138px;" src="http://1.bp.blogspot.com/_Y-kfGZLwqOc/S4hHJtfAIZI/AAAAAAAAAPM/kd9a-UFu2Zo/s400/DALWS.png" alt="" id="BLOGGER_PHOTO_ID_5442678381831266706" border="0" /&gt;&lt;/a&gt;I've tried to write in few points why I've used DAL in my last 5 years, in the next part I am going to write about how to choose a suitable DAL with a full comparison between available DAL frameworks and generators.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8902588786462222621-6949906669631383121?l=hazemtorab.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hazemtorab.blogspot.com/feeds/6949906669631383121/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8902588786462222621&amp;postID=6949906669631383121' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8902588786462222621/posts/default/6949906669631383121'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8902588786462222621/posts/default/6949906669631383121'/><link rel='alternate' type='text/html' href='http://hazemtorab.blogspot.com/2010/02/part-1why-using-data-access-layer.html' title='Part 1:Why Using Data Access Layer'/><author><name>Hazem Torab</name><uri>http://www.blogger.com/profile/14914233434863435419</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_Y-kfGZLwqOc/SOCK2dOXWZI/AAAAAAAAAKU/gyAObKujPaQ/S220/hazem.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Y-kfGZLwqOc/S3_b6iVbmFI/AAAAAAAAAPE/nEO1HRt0b8k/s72-c/DAL.jpg' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
