<?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-7437584074131856067</id><updated>2012-02-16T18:59:18.491-08:00</updated><category term='Compatibility View'/><category term='Load image from uri into a NET Image object'/><category term='VMWare'/><category term='Virtualizaiton'/><category term='MS SQL Server'/><category term='tsql'/><category term='failed to execute a command for server configuration'/><category term='Nokia'/><category term='ESXi'/><category term='SQL Server'/><category term='Persian (Farsi) PDF to Word'/><category term='Windows 7 Managed Code APIs for NET'/><category term='Wave'/><category term='Dot NET Framework 4 features'/><category term='Run executable files ASP .NET'/><category term='AsyncFileUpload'/><category term='cellular data network'/><category term='HTTP stats 417 exception'/><category term='ASP .NET FLV Flash Video Player'/><category term='Dialogic'/><category term='NFS'/><category term='iPhone'/><category term='Import Contacts'/><category term='LINUX'/><category term='Windows Vista Source Code'/><category term='TAPI'/><category term='OPTIONS 200 OK'/><category term='IE8'/><category term='FireFox 3'/><category term='SELECT Random Records'/><category term='internet'/><category term='SQL Express'/><category term='VCARD'/><category term='vcf'/><category term='SVN'/><category term='PDF .NET'/><category term='XenServer'/><category term='Installation'/><category term='Paraller Extensions'/><category term='AJAX Control Toolkit'/><title type='text'>Mrt</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.mrt-web.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7437584074131856067/posts/default'/><link rel='alternate' type='text/html' href='http://blog.mrt-web.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/7437584074131856067/posts/default?start-index=26&amp;max-results=25'/><author><name>Mrt</name><uri>http://www.blogger.com/profile/11563887011453055686</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>29</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7437584074131856067.post-4097889730846716007</id><published>2011-12-31T13:17:00.000-08:00</published><updated>2012-01-26T11:45:43.160-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Persian (Farsi) PDF to Word'/><title type='text'>Convert Arabic and Persian (Farsi) PDF documents to Word documents</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;I've been using TeX for typesetting my technical documents and reports, it is a lot of fun!&lt;br /&gt;Recently one of my reports needed to be converted into a Word documents. There are lots of tools for doing so, but most of them are not working with Arabic and Persian (Farsi) documents. I've tested lots of tools and found "PDF Grabber" a very good tool for converting Arabic and Persian (Farsi) PDF documents into Word documents. It is a product of PixelPlanet. You can find more information at: &lt;a href="http://www.pdfgrabber.com/" target="_blank"&gt;http://www.pdfgrabber.com/&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7437584074131856067-4097889730846716007?l=blog.mrt-web.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mrt-web.com/feeds/4097889730846716007/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.mrt-web.com/2011/12/convert-persian-farsi-pdf-documents-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7437584074131856067/posts/default/4097889730846716007'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7437584074131856067/posts/default/4097889730846716007'/><link rel='alternate' type='text/html' href='http://blog.mrt-web.com/2011/12/convert-persian-farsi-pdf-documents-to.html' title='Convert Arabic and Persian (Farsi) PDF documents to Word documents'/><author><name>Mrt</name><uri>http://www.blogger.com/profile/11563887011453055686</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7437584074131856067.post-3613325316172257438</id><published>2011-07-19T04:25:00.000-07:00</published><updated>2011-07-19T04:25:06.404-07:00</updated><title type='text'>The server committed a protocol violation. Section=ResponseStatusLine</title><content type='html'>Recently while I was working with an IP camera from my C# application and trying to get the image, I come to this problem:&lt;br /&gt;The server committed a protocol violation. Section=ResponseStatusLine&lt;br /&gt;According to http://blog.webmastersam.net/post/Solution-for-The-server-committed-a-protocol-violation.aspx, the problem is caused by:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Unsafe header parsing is an option you can turn on on your ASP.Net  website (in the web.config) to allow the framework to parse responses.  But what is an unsafe header ? It is a header in which the keys contains  one or more spaces (that is not allowed in the HTTP 1.1  specifications).&lt;br /&gt;The common case is having a space in the "content-length" header key.  The server actually returns a "content length" key, which, assuming no  spaces are allowed, is considered as an attack vector (HTTP response  split attack), thus, triggering a "HTTP protocol violation error"  exception.&lt;/blockquote&gt;In most weblogs, the solution to this problem is just a simple change in web.config file for ASP .NET projects:&lt;br /&gt;Just add the following code to the web.config file:&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;system.net&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;settings&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;httpWebRequest&lt;/span&gt; &lt;span class="attr"&gt;useUnsafeHeaderParsing&lt;/span&gt;&lt;span class="kwrd"&gt;="true"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &lt;span class="kwrd"&gt;&lt;!--&lt;/span--&gt;&lt;span class="html"&gt;settings&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&lt;!--&lt;/span--&gt;&lt;span class="html"&gt;system.net&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;BTW, my solution is a desktop application, not a web application, so I do not have any web.config file. An alternative way to solve this problem is:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Courier New; font-size: x-small;"&gt;&lt;span style="color: blue;"&gt;public static &lt;/span&gt;&lt;span style="color: blue;"&gt;bool &lt;/span&gt;SetUseUnsafeHeaderParsing(&lt;span style="color: blue;"&gt;bool &lt;/span&gt;b)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Assembly a = Assembly.GetAssembly(typeof(System.Net.Configuration.SettingsSection));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;if&lt;/span&gt; (a == &lt;span style="color: blue;"&gt;null&lt;/span&gt;) &lt;span style="color: blue;"&gt; return false&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Type t = a.GetType(&lt;span style="color: brown;"&gt;"System.Net.Configuration.SettingsSectionInternal"&lt;/span&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;if&lt;/span&gt; (t == &lt;span style="color: blue;"&gt;null&lt;/span&gt;) &lt;span style="color: blue;"&gt; return false&lt;/span&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; object o = t.InvokeMember(&lt;span style="color: brown;"&gt;"Section"&lt;/span&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BindingFlags.Static | BindingFlags.GetProperty | BindingFlags.NonPublic, null, null, new object[] { });&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;if &lt;/span&gt;(o == &lt;span style="color: blue;"&gt;null&lt;/span&gt;) &lt;span style="color: blue;"&gt; return false&lt;/span&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: Courier New; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: black;"&gt;FieldInfo &lt;/span&gt; f = t.GetField(&lt;span style="color: brown;"&gt;"useUnsafeHeaderParsing"&lt;/span&gt;, BindingFlags.NonPublic | BindingFlags.Instance);&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: Courier New; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;if &lt;/span&gt;(f == &lt;span style="color: blue;"&gt;null&lt;/span&gt;) &lt;span style="color: blue;"&gt;return false&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; f.SetValue(o, b);&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: Courier New; font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;return true&lt;/span&gt;;&lt;/span&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: Courier New; font-size: x-small;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You just need to add this function and call it passing true to it. That's all, it is done!&lt;br /&gt;&lt;span class="kwrd"&gt;   &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7437584074131856067-3613325316172257438?l=blog.mrt-web.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mrt-web.com/feeds/3613325316172257438/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.mrt-web.com/2011/07/server-committed-protocol-violation.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7437584074131856067/posts/default/3613325316172257438'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7437584074131856067/posts/default/3613325316172257438'/><link rel='alternate' type='text/html' href='http://blog.mrt-web.com/2011/07/server-committed-protocol-violation.html' title='The server committed a protocol violation. Section=ResponseStatusLine'/><author><name>Mrt</name><uri>http://www.blogger.com/profile/11563887011453055686</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7437584074131856067.post-7799269965968086254</id><published>2010-12-15T07:34:00.000-08:00</published><updated>2010-12-15T07:34:17.653-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AsyncFileUpload'/><category scheme='http://www.blogger.com/atom/ns#' term='AJAX Control Toolkit'/><title type='text'>AJAX Control Toolkit AsyncFileUpload Error: Unhandled Exception: Server Response Error: 'Unknown Server error'</title><content type='html'>A new file upload control is recently added to AJAX Control Toolkit.&lt;br /&gt;&lt;div class="" id="" style="border: 0px none; height: auto; margin: 0px; overflow-y: hidden; padding: 0px; visibility: visible;"&gt;&lt;div id="ctl00_SampleContent_Description_ContentPanel" style="height: auto; overflow-x: hidden; visibility: visible;"&gt;           &lt;br /&gt;AsyncFileUpload is an ASP.NET AJAX Control that allows you asynchronously upload files to server.             The file uploading results can be checked both in the server and client sides.         &lt;br /&gt;You can save the uploaded file by calling the SaveAs() method in a handler for the         server UploadedComplete event.&lt;br /&gt;&lt;br /&gt;A common error for this control is:&lt;br /&gt;&lt;blockquote&gt;Unhandled Exception: Server Response Error: 'Unknown Server error'&lt;/blockquote&gt;&lt;br /&gt;There is a simple workaround to solve this problem. But first of all be sure that you are using its latest version. You can download the latest version from &lt;a href="http://www.asp.net/ajaxlibrary/download.ashx%20"&gt;http://www.asp.net/ajaxlibrary/download.ashx &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Also be sure that you are using the correct version according to your target .NET framework version.&lt;br /&gt;&lt;br /&gt;If you're sure about those two steps and still you get the same error, the simple workaround is to change the value of "ClientIDMode" to "AutoID".&lt;br /&gt;&lt;br /&gt;That's all. Enjoy using this great control!&lt;br /&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/7437584074131856067-7799269965968086254?l=blog.mrt-web.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mrt-web.com/feeds/7799269965968086254/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.mrt-web.com/2010/12/ajax-control-toolkit-asyncfileupload.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7437584074131856067/posts/default/7799269965968086254'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7437584074131856067/posts/default/7799269965968086254'/><link rel='alternate' type='text/html' href='http://blog.mrt-web.com/2010/12/ajax-control-toolkit-asyncfileupload.html' title='AJAX Control Toolkit AsyncFileUpload Error: Unhandled Exception: Server Response Error: &apos;Unknown Server error&apos;'/><author><name>Mrt</name><uri>http://www.blogger.com/profile/11563887011453055686</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7437584074131856067.post-6440255649530919254</id><published>2010-11-07T23:28:00.000-08:00</published><updated>2010-11-10T01:20:48.834-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Dialogic'/><category scheme='http://www.blogger.com/atom/ns#' term='TAPI'/><category scheme='http://www.blogger.com/atom/ns#' term='Installation'/><category scheme='http://www.blogger.com/atom/ns#' term='Wave'/><title type='text'>Dialogic TAPI / WAVE Installation</title><content type='html'>Installation of Dialogic TDM Boards which offer TAPI access can be tricky. Although Dialogic in 2006 had announced that their boards will no longer support TAPI (starting from system release 6), but existing boards are still working with TAPI when using system release 5.1.&lt;br /&gt;&lt;br /&gt;Hardware installation of Dialogic board in Windows XP and 2000 are tricky. Here is a complete step by step guide for installing the properly in Windows XP and 2000.&lt;br /&gt;&lt;br /&gt;These steps are taken from&amp;nbsp;&lt;a href="http://www.nch.com.au/kb/10062.html"&gt;NCH Software.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Before Installing the Board&lt;/b&gt; &lt;br /&gt;Make sure that you have the instructions from Dialogic and the drivers  on CD. Be prepared to take some time to follow Dialogics complex  instructions for installing the TAPI and Wave drivers.  You will need to  install  latest Dialogic drivers and service packs from  http://support.dialogic.com. You need to also install  Dialogic TAPI  drivers and the Dialogic sample programs which are handy for making sure  that the drivers and the board are working properly. Please note  that "Talker32.exe" is the only Dialogic sample program that uses TAPI.  The others access the card directly and do not use TAPI and so do not  test whether the TAPI and Wave drivers are correctly installed.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Board Installation&lt;/b&gt; &lt;br /&gt;Shut the computer down and install the board into the computer following  carefully the instructions that come with the board. When this is  complete then turn the computer back on.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Dialogic Software Installation&lt;/b&gt; &lt;br /&gt;Insert the the CD that you obtained with the board into your disc drive  and run the file called "setup.exe" then follow the setup wizard. &lt;br /&gt;Missing CD-ROM with Drivers: Most suppliers ship the Dialogic CD-ROM  with drivers with each board. Some (the cheaper) do not. If you do not  have the driver CD-ROM you should contact your supplier and ask them to  provide it.&lt;br /&gt;Now you need to install feature pack 1 (or some times called service pack 1). After installing and restarting your computer, you'll need to install the card specific software which should be included in the CD.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Dialogic Configuration Manager (DCM)&lt;/b&gt; &lt;br /&gt;Near the end of the Dialogic software installation you are offered an  option to run the "Dialogic Board Configuration" or you can run it from  the Windows Start menu. This program is also known as "Dialogic  Configuration Manager (DCM)".  &lt;br /&gt;Make selections appropriate to your situation, paying careful attention  to the Dialogic Instructions. The board must be 'started' (and set to  auto-start on startup). &lt;br /&gt;You might at this stage run one of the simpler Dialogic programs or  diagnostics to confirm that the board has been successfully installed.  Do not expect the board to cooperate with our software because the TAPI  Service Provider Driver and the Wave Drivers have not yet been  installed.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Dialogic TSP and Wave Driver Configuration&lt;/b&gt; &lt;br /&gt;&lt;u&gt;These are the important steps that are often missed on installation...&lt;/u&gt; &lt;br /&gt;The Dialogic TAPI Service Provider (TSP) drivers allow other software (eg. &lt;a href="http://www.nch.com.au/software/index.html"&gt;NCH Swift Sound's Software&lt;/a&gt;) to use control the board. To install the TSP follow these steps. &lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;In Windows 2000, open Control Panel -&amp;gt; Phone and Modem Options  and select Advanced-&amp;gt;Add-&amp;gt;Dialogic Generation 2 service provider  for NT4/W2000-&amp;gt;advanced. &lt;/li&gt;&lt;li&gt;From the "Configuration Service" Dialog box select "call  Parameters and change the configuration from "default" to "custom".  Select "700" for the "Ringback Timeout" . Some customers have suggested  that the "perfect call" box should be left unchecked. Select  "DX_PVDOPTNOCON(6)"  for the "Call progress analysis flags". &lt;/li&gt;&lt;li&gt;Close down the Control Panel and reboot the computer. &lt;/li&gt;&lt;/ol&gt;The Dialogic Wave drivers allow other software to play audio to and  record from the board. To install the Wave drivers follow these steps. &lt;u&gt;This step is essential&lt;/u&gt;. &lt;br /&gt;&lt;ol&gt;&lt;li&gt;From the Control Panel select Add/Remove Hardware -&amp;gt;  Add/Troubleshoot a device -&amp;gt; Add a new device -&amp;gt; "No, I want to  select the hardware from a list" -&amp;gt; Sound, video and game controllers  -&amp;gt; Have Disk. &lt;/li&gt;&lt;li&gt;Browse to "D:\Program Files\Dialogic\Lib"  and select "Dialogic  Wave Driver 1.x" . Complete the installation, close the Control Panel  and reboot the computer. &lt;/li&gt;&lt;li&gt;Open the Control Panel and select "Sound and Multimedia" -&amp;gt; "Hardware" -&amp;gt; "Dialogic Wave Driver 1.X" -&amp;gt;  "Properties". &lt;/li&gt;&lt;li&gt;Select the "Properties" tab and from the "Audio Devices"  select "Dialogic Wave Driver 1.X" -&amp;gt; "Properties" -&amp;gt;"Settings".  &lt;/li&gt;&lt;li&gt;Select the appropriate number of channels (phone lines). We  suggest that you might start with 1 and add the others when the first is  working. &lt;/li&gt;&lt;li&gt;Click OK, close the Control Panel and reboot the computer. &lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7437584074131856067-6440255649530919254?l=blog.mrt-web.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mrt-web.com/feeds/6440255649530919254/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.mrt-web.com/2010/11/dialogic-tapiwave-installation.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7437584074131856067/posts/default/6440255649530919254'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7437584074131856067/posts/default/6440255649530919254'/><link rel='alternate' type='text/html' href='http://blog.mrt-web.com/2010/11/dialogic-tapiwave-installation.html' title='Dialogic TAPI / WAVE Installation'/><author><name>Mrt</name><uri>http://www.blogger.com/profile/11563887011453055686</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7437584074131856067.post-2823818131910827426</id><published>2010-07-30T13:27:00.000-07:00</published><updated>2010-07-30T13:30:30.407-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='NFS'/><category scheme='http://www.blogger.com/atom/ns#' term='LINUX'/><title type='text'>Linux NFS Communication Common Problems</title><content type='html'>&lt;div style="font-family: inherit;"&gt;Today, I've been asked some questions about NFS communication problems, the very first was: RPC: Program Not Registered.&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span class="COMPUTEROUTPUT"&gt;This is caused mainly by the fact that NFS service is not running on the server, you can run the service using: "/etc/init.d/nfs start"&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span class="COMPUTEROUTPUT"&gt;For a comprehensive list of error, have a look at: &lt;/span&gt;&lt;span class="COMPUTEROUTPUT"&gt;&lt;a href="http://tldp.org/HOWTO/NFS-HOWTO/troubleshooting.html"&gt;NFS  Troubleshooting Guide&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span class="COMPUTEROUTPUT"&gt;Another common problem is permission and access problems, such as: System Error: No route to host.&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span class="COMPUTEROUTPUT"&gt;The resolve this, simply check whether you can ping the server or not, if you can ping, then the problem is with your servers firewall configuration. For a detailed manual on how to configure firewall, have a look at: &lt;a href="http://www.linuxconfig.org/HowTo_configure_NFS"&gt;How To Configure NFS&lt;/a&gt;, appendix A. (If you can not ping the server either, refer to the NFS Troubleshooting Guide to find the cause and a workaround to solve it)&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span class="COMPUTEROUTPUT"&gt;In case of firewall blocking, you can simply turnoff the firewall using "service iptables stop". Although this is the easiest way, but also the worst way! You can go further and disable the iptables firewall service from boot time using "ntsysv" command. (Not recommended at all!)&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span class="COMPUTEROUTPUT"&gt;If you would like to read a comprehensive guide about setting up NSF and better understand things, have a look at &lt;a href="http://nfs.sourceforge.net/nfs-howto/ar01s03.html#intro_server_setup"&gt;this&lt;/a&gt; manual.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7437584074131856067-2823818131910827426?l=blog.mrt-web.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mrt-web.com/feeds/2823818131910827426/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.mrt-web.com/2010/07/linux-nfs-communication-common-problem.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7437584074131856067/posts/default/2823818131910827426'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7437584074131856067/posts/default/2823818131910827426'/><link rel='alternate' type='text/html' href='http://blog.mrt-web.com/2010/07/linux-nfs-communication-common-problem.html' title='Linux NFS Communication Common Problems'/><author><name>Mrt</name><uri>http://www.blogger.com/profile/11563887011453055686</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7437584074131856067.post-300332031700313186</id><published>2010-07-22T01:56:00.000-07:00</published><updated>2010-07-22T01:56:29.199-07:00</updated><title type='text'>SQL SERVER – FIX : ERROR Msg 1803 The CREATE DATABASE statement failed. The primary file must be at least 3 MB to accommodate a copy of the model database</title><content type='html'>When creating new data base, its size should be at least the size of the model database, otherwise the CREATE DATABASE statement fails with this error:&lt;br /&gt;&lt;blockquote&gt;The CREATE DATABASE statement failed. The primary file must be at least 3 MB to accommodate a copy of the model database. (Microsoft SQL Server, Error: 1803)&lt;/blockquote&gt;&lt;br /&gt;If you like, you can increase the initial size of your new db to at least the size of model database. If not, you can shrink the model database to reduce its size.&lt;br /&gt;&lt;br /&gt;To check the available space of a database you can use:&lt;br /&gt;&lt;blockquote&gt;SELECT name ,size/128.0 - CAST(FILEPROPERTY(name, 'SpaceUsed') AS int)/128.0 AS AvailableSpaceInMB&lt;br /&gt;FROM sys.database_files; &lt;/blockquote&gt;&lt;br /&gt;About shrinking, have a look at:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms190488.aspx"&gt;DDBC SHRINKDATABASE&lt;/a&gt; &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms189493.aspx"&gt;DDBC SHRINKFILE&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7437584074131856067-300332031700313186?l=blog.mrt-web.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mrt-web.com/feeds/300332031700313186/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.mrt-web.com/2010/07/sql-server-fix-error-msg-1803-create.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7437584074131856067/posts/default/300332031700313186'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7437584074131856067/posts/default/300332031700313186'/><link rel='alternate' type='text/html' href='http://blog.mrt-web.com/2010/07/sql-server-fix-error-msg-1803-create.html' title='SQL SERVER – FIX : ERROR Msg 1803 The CREATE DATABASE statement failed. The primary file must be at least 3 MB to accommodate a copy of the model database'/><author><name>Mrt</name><uri>http://www.blogger.com/profile/11563887011453055686</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7437584074131856067.post-53549960066378338</id><published>2010-07-22T00:40:00.000-07:00</published><updated>2010-07-22T00:42:19.391-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OPTIONS 200 OK'/><category scheme='http://www.blogger.com/atom/ns#' term='SVN'/><title type='text'>Common Confusing Error with SVN Clients</title><content type='html'>There is an error message in SVN, which is quite confusing:&lt;br /&gt;&lt;blockquote&gt;OPTIONS of '': 200 OK&lt;/blockquote&gt;This error is mostly caused by mistyping the repository address.&lt;br /&gt;&lt;br /&gt;Workaround:&lt;br /&gt;Check you typed the address correctly, you can try the address in your browser and check weather you see correct pages. Some SVN server tools such as Visual SVN Server, provide some HTML pages, so that you can log-in and check the repository tree using your browser. One thing to remember, when specifying paths, you should specify the full path to your files in repository server.&lt;br /&gt;&lt;br /&gt;Hope this helps!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7437584074131856067-53549960066378338?l=blog.mrt-web.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mrt-web.com/feeds/53549960066378338/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.mrt-web.com/2010/07/common-error-with-svn-clients.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7437584074131856067/posts/default/53549960066378338'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7437584074131856067/posts/default/53549960066378338'/><link rel='alternate' type='text/html' href='http://blog.mrt-web.com/2010/07/common-error-with-svn-clients.html' title='Common Confusing Error with SVN Clients'/><author><name>Mrt</name><uri>http://www.blogger.com/profile/11563887011453055686</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7437584074131856067.post-14987926398638683</id><published>2010-07-19T02:06:00.000-07:00</published><updated>2010-07-22T00:43:53.749-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tsql'/><category scheme='http://www.blogger.com/atom/ns#' term='MS SQL Server'/><category scheme='http://www.blogger.com/atom/ns#' term='SELECT Random Records'/><title type='text'>How to Select Random Records using Transact-SQL</title><content type='html'>You may need to select some random records from a table, having done this using T-SQL, seems awesome!&lt;br /&gt;It is very simple, e.g. for selecting ten random records:&lt;br /&gt;&lt;blockquote&gt;SELECT TOP 10 * FROM tablename ORDER BY NEWID()&lt;/blockquote&gt;It just works fine!&lt;br /&gt;&lt;br /&gt;Not let's see how it works:&lt;br /&gt;&lt;br /&gt;The query except the ORDER BY clause, is a very simple select query, the only thing that makes it different, is the ORDER BY clause. We used NEWID() function as order clause. So let's continue our discussion with this function. What does NEWID() do?&lt;br /&gt;It creates a unique value of type uniqueidentifier. To see it in action, execute the following query:&lt;br /&gt;&lt;blockquote&gt;SELECT NEWID()&lt;/blockquote&gt;Each time you execute the above query, you get a unique value of type uniqueidentifier.&lt;br /&gt;Now we come back to our first query (which was for selecting some random records). It works as follows: It selects some records, and for each record, it generates a new unique value, then it sorts the result based on the values of generated unique identifier values. So it looks like you have some randomly selected records! That's all.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7437584074131856067-14987926398638683?l=blog.mrt-web.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mrt-web.com/feeds/14987926398638683/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.mrt-web.com/2010/07/how-to-select-random-records.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7437584074131856067/posts/default/14987926398638683'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7437584074131856067/posts/default/14987926398638683'/><link rel='alternate' type='text/html' href='http://blog.mrt-web.com/2010/07/how-to-select-random-records.html' title='How to Select Random Records using Transact-SQL'/><author><name>Mrt</name><uri>http://www.blogger.com/profile/11563887011453055686</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7437584074131856067.post-2764793440273969894</id><published>2010-07-17T23:20:00.000-07:00</published><updated>2010-07-17T23:20:44.407-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='failed to execute a command for server configuration'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>MS SQL Server Installation Problem</title><content type='html'>Days ago some of my clients reported an error when installing Microsoft SQL Server 2005. The error was:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;SQL Server Setup failed to execute a command for server configuration. The error was [Microsoft][SQL Native Client][SQL Server] Cannot add functional unit 'sp_sqlagent_get_startup_info' to component 'Agent XPs'. This unit has been already registered with the component. Refer to the server error logs and Setup logs for detailed error information. &lt;/blockquote&gt;&lt;br /&gt;This error is mainly caused by having an incorrect date and time. To solve this issue, simply check your date and time setting and reconfigure it with correct values. That's all!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7437584074131856067-2764793440273969894?l=blog.mrt-web.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mrt-web.com/feeds/2764793440273969894/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.mrt-web.com/2010/07/ms-sql-server-installation-problem.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7437584074131856067/posts/default/2764793440273969894'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7437584074131856067/posts/default/2764793440273969894'/><link rel='alternate' type='text/html' href='http://blog.mrt-web.com/2010/07/ms-sql-server-installation-problem.html' title='MS SQL Server Installation Problem'/><author><name>Mrt</name><uri>http://www.blogger.com/profile/11563887011453055686</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7437584074131856067.post-8412336152101484943</id><published>2010-01-20T22:38:00.000-08:00</published><updated>2010-07-15T03:24:39.197-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ESXi'/><category scheme='http://www.blogger.com/atom/ns#' term='XenServer'/><category scheme='http://www.blogger.com/atom/ns#' term='Virtualizaiton'/><title type='text'>Which server virtualization platform is better?</title><content type='html'>Which server virtualization platform is better?&lt;br /&gt;&lt;br /&gt;Answering this question is extremely hard! Supposing we have these server virtualization platforms:&lt;br /&gt;VMWare ESXi&lt;br /&gt;Citrix XenServer&lt;br /&gt;Microsoft Hyper-V&lt;br /&gt;&lt;br /&gt;I've been using and testing these different solutions for a while, now I've come to a conclusion:&lt;br /&gt;It is better not to talk about Hyper-V here, I think it does not worth talking about it. Between Citrix XenServer and VMWare ESXi, I'd personally prefer Citrix XenServer.&lt;br /&gt;ESXi and XenServer are both free, but Hyper-V is not.&lt;br /&gt;&lt;br /&gt;XenServer works with a wide variety of hardwares, without a hassle. But my main problem with ESXi (despite fewer features than XenServer), was the hardware incompatibility problems, especially with NICs. ESXi supposes that you use some special hardwares, it is not working with ordinary ones. But XenServer works very well with ordinary hardwares (even notebooks!) and professionals as well.&lt;br /&gt;&lt;br /&gt;My short experience of using ESXi, XenServer and Hpyer-V, says that XenServer is the best solution among these three solutions (at least about price with Hyper-V and about hardware compatibility with ESXi)...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7437584074131856067-8412336152101484943?l=blog.mrt-web.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mrt-web.com/feeds/8412336152101484943/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.mrt-web.com/2010/01/which-server-virtualization-platform-is.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7437584074131856067/posts/default/8412336152101484943'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7437584074131856067/posts/default/8412336152101484943'/><link rel='alternate' type='text/html' href='http://blog.mrt-web.com/2010/01/which-server-virtualization-platform-is.html' title='Which server virtualization platform is better?'/><author><name>Mrt</name><uri>http://www.blogger.com/profile/11563887011453055686</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7437584074131856067.post-761292432880357081</id><published>2009-06-18T00:57:00.000-07:00</published><updated>2010-07-15T03:24:39.209-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vcf'/><category scheme='http://www.blogger.com/atom/ns#' term='Import Contacts'/><category scheme='http://www.blogger.com/atom/ns#' term='Nokia'/><category scheme='http://www.blogger.com/atom/ns#' term='VCARD'/><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><title type='text'>How to import your exisiting contacts from your old Nokia phone to your new iPhone?</title><content type='html'>You may want to import your existing contacts from your old Nokia (or in general &lt;a href="http://en.wikipedia.org/wiki/VCard"&gt;VCard&lt;/a&gt; format) to your new iPhone.&lt;br /&gt;You need to do some simple steps:&lt;br /&gt;First you need to have Outlook and iTunes installed on your computer, then copy your .vcf files to a location in your hard disk, e.g. C:\VCARDS. Now when you open .vcf files, Outlook brigs a window, then you can save and close the window, the contact file is imported to your Outlook's Contacts. You need to repeat this action for all of your .vcf files. (I'll explain a way for bulk importing contacts later in this article)&lt;br /&gt;After that you import all of your contacts to Outlook, you can simply synchronize iTunes contacts with Outlook and your iPhone. Done!&lt;br /&gt;&lt;br /&gt;But there is still one issue remaining, importing all of your .vcf files manually is a very time consuming and boring job, let's write a code to do this automatically for you!&lt;br /&gt;I've taken this code from &lt;a href="http://forums.techguy.org/business-applications/532618-import-multiple-vcard-files-outlook.html"&gt;here&lt;/a&gt;. Nice piece of code!&lt;br /&gt;&lt;br /&gt;Here is the steps you need to do:&lt;br /&gt;This can also be done using a VBA macro. First create a folder on the root of the C: drive and name it VCARDS. Next copy all your individual vCard files (.vcf) to this newly created folder. Next open Outlook and click ALT + F11 to open the VBA editor.&lt;br /&gt;&lt;br /&gt;Click TOOLS --&gt; REFERENCES and then select Microsoft Scripting Runtime and Windows Script Host Object Model from the list and place checks in the box next to each and click OK.&lt;br /&gt;&lt;br /&gt;Next click INSERT --&gt; MODULE and copy and paste the code below into the blank module. Save and run the macro to automatically import and save all the individual files into Outlook.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;Sub OpenSaveVCard()&lt;br /&gt;    &lt;br /&gt;Dim objWSHShell As IWshRuntimeLibrary.IWshShell&lt;br /&gt;Dim objOL As Outlook.Application&lt;br /&gt;Dim colInsp As Outlook.Inspectors&lt;br /&gt;Dim strVCName As String&lt;br /&gt;Dim fso As Scripting.FileSystemObject&lt;br /&gt;Dim fsDir As Scripting.Folder&lt;br /&gt;Dim fsFile As Scripting.File&lt;br /&gt;Dim vCounter As Integer&lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;Set fso = New Scripting.FileSystemObject&lt;br /&gt;Set fsDir = fso.GetFolder("C:\VCARDS")&lt;br /&gt;&lt;br /&gt;For Each fsFile In fsDir.Files&lt;br /&gt;&lt;br /&gt;    strVCName = "C:\VCARDS\" &amp; fsFile.Name&lt;br /&gt;    Set objOL = CreateObject("Outlook.Application")&lt;br /&gt;    Set colInsp = objOL.Inspectors&lt;br /&gt;        If colInsp.Count = 0 Then&lt;br /&gt;        Set objWSHShell = CreateObject("WScript.Shell")&lt;br /&gt;        objWSHShell.Run strVCName&lt;br /&gt;        Set colInsp = objOL.Inspectors&lt;br /&gt;    If Err = 0 Then&lt;br /&gt;            Do Until colInsp.Count = 1&lt;br /&gt;                DoEvents&lt;br /&gt;            Loop&lt;br /&gt;            colInsp.Item(1).CurrentItem.Save&lt;br /&gt;            colInsp.Item(1).Close olDiscard&lt;br /&gt;            Set colInsp = Nothing&lt;br /&gt;            Set objOL = Nothing&lt;br /&gt;            Set objWSHShell = Nothing&lt;br /&gt;        End If&lt;br /&gt;    End If&lt;br /&gt;&lt;br /&gt;Next&lt;br /&gt;&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Thanks Rollin for the code.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.codeproject.com/script/Articles/BlogFeedList.aspx?amid=3959091" rel="tag" style="display:none"&gt;CodeProject&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7437584074131856067-761292432880357081?l=blog.mrt-web.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mrt-web.com/feeds/761292432880357081/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.mrt-web.com/2009/06/how-to-import-your-exisiting-contacts.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7437584074131856067/posts/default/761292432880357081'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7437584074131856067/posts/default/761292432880357081'/><link rel='alternate' type='text/html' href='http://blog.mrt-web.com/2009/06/how-to-import-your-exisiting-contacts.html' title='How to import your exisiting contacts from your old Nokia phone to your new iPhone?'/><author><name>Mrt</name><uri>http://www.blogger.com/profile/11563887011453055686</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7437584074131856067.post-359112549907470740</id><published>2009-06-09T01:54:00.000-07:00</published><updated>2010-07-15T03:24:39.223-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='HTTP stats 417 exception'/><title type='text'>The request failed with HTTP status 417: Expectation failed.</title><content type='html'>When using WebServices and calling some Web Methods, you may come across to this exception:&lt;br /&gt;&lt;blockquote&gt;The request failed with HTTP status 417: Expectation failed.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;When Expect 100-Continue property is set to true (this is actually set within part of the .Net framework, which makes this a difficult problem to overcome.  You have to override this in more than one place), this 417 error occurs when the proxy server doesn't support 100-Continue.&lt;br /&gt;&lt;br /&gt;In the case of expect 100-Continue, the client will expect to receive a 100-Continue response from the server to indicate that the client should send the data to be posted. This mechanism allows clients to avoid sending large amounts of data over the network when the server, based on the request headers, intends to reject the request.&lt;br /&gt;&lt;br /&gt;The Expect 100-Continue behavior is fully described in IETF RFC 2616 Section 10.1.1.&lt;br /&gt;&lt;br /&gt;You can also read more about it in &lt;a href="http://msdn.microsoft.com/en-us/library/system.net.servicepointmanager.expect100continue.aspx"&gt;MSDN&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;To workaround this exception you can do a simple thing: Disable expect 100 continue.&lt;br /&gt;&lt;br /&gt;So you may ask how to disable expect 100 continue?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Warning:&lt;/span&gt; When you disable Expect 100-Continues and your application sends a large amount of data on the network, if for any reason the server rejects your request, you have to re-send the entire data again, this may cause some extra traffic in your network. Also multiple calls to a server will take longer, since each call will wait until the prior call's response is received.&lt;br /&gt;&lt;br /&gt;It is easy, here are two alternative ways:&lt;br /&gt;&lt;br /&gt;1) We need to have this line of code before making any web requests.&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: plain"&gt;System.Net.ServicePointManager.Expect100Continue = false; &lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;2) Add these lines to the application's configuration file (between &lt;configuration&gt; and &lt;/configuration&gt;):&lt;br /&gt;&amp;lt;configuration&amp;gt; and &amp;lt;/configuration&amp;gt;):&lt;br /&gt;&lt;pre class="brush:plain"&gt;&amp;lt;system.net&amp;gt;&lt;br /&gt; &amp;lt;settings&amp;gt;&lt;br /&gt;  &amp;lt;servicePointManager expect100Continue="false" /&amp;gt;&lt;br /&gt; &amp;lt;/settings&amp;gt;&lt;br /&gt;&amp;lt;/system.net&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;While this workaround is nice, I think a better long term solution is to upgrade/replace the proxy server to handle 100-continue calls.&lt;br /&gt;&lt;br /&gt;So far in this short tip we've learned what is Expect 100, how it is caused and how to workaround this expectation.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.codeproject.com/script/Articles/BlogFeedList.aspx?amid=3959091" rel="tag" style="display:none"&gt;CodeProject&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7437584074131856067-359112549907470740?l=blog.mrt-web.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mrt-web.com/feeds/359112549907470740/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.mrt-web.com/2009/06/request-failed-with-http-status-417.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7437584074131856067/posts/default/359112549907470740'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7437584074131856067/posts/default/359112549907470740'/><link rel='alternate' type='text/html' href='http://blog.mrt-web.com/2009/06/request-failed-with-http-status-417.html' title='The request failed with HTTP status 417: Expectation failed.'/><author><name>Mrt</name><uri>http://www.blogger.com/profile/11563887011453055686</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7437584074131856067.post-3950684662063896018</id><published>2009-06-03T02:20:00.000-07:00</published><updated>2010-07-15T03:24:39.238-07:00</updated><title type='text'>Passing parameters of char* data types from C# or VB code to a C++ function</title><content type='html'>Some times you may need to use some C++ functions in your managed C# or VB code.&lt;br /&gt;According to &lt;a href="http://social.msdn.microsoft.com/forums/en-US/vcgeneral/thread/299da822-5539-4e5b-9ba7-b614e564c9f4/?prof=required"&gt;Frank Boyne&lt;/a&gt;, there are three ways to do this, if you choose the third method (which is easier and better, I think), you may have some problems passing variables of char* (or other pointer types) from your C# or VB code to your C++ code (in this case the wrapper class).&lt;br /&gt;Suppose that you have something like this in your C++ wrapper class:&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="brush:cpp"&gt;static char* foo(char *name)&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;the problem is this: How can I pass the value of the parameter &lt;span style="font-style:italic;"&gt;name&lt;/span&gt; and how can I use the value returned by the function.&lt;br /&gt;&lt;br /&gt;To pass the value of parameter &lt;span style="font-style:italic;"&gt;name&lt;/span&gt;, you can simply use:&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="brush:cpp"&gt;(char*)Marshal.StringToBSTR("VALUE")&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;in your C# code.&lt;br /&gt;&lt;br /&gt;And to get the returning value of the function, you can use this code:&lt;br /&gt;&lt;br /&gt;&lt;pre name="code"&gt;&lt;br /&gt;string s = &lt;br /&gt;    new string( &lt;br /&gt;      CPP_Managed_DLL.Class1.foo( &lt;br /&gt;        (char*)Marshal.StringToBSTR("VALUE") &lt;br /&gt;        )&lt;br /&gt;    );&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.codeproject.com/script/Articles/BlogFeedList.aspx?amid=3959091" rel="tag" style="display:none"&gt;CodeProject&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7437584074131856067-3950684662063896018?l=blog.mrt-web.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mrt-web.com/feeds/3950684662063896018/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.mrt-web.com/2009/06/passing-parameters-of-char-data-types.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7437584074131856067/posts/default/3950684662063896018'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7437584074131856067/posts/default/3950684662063896018'/><link rel='alternate' type='text/html' href='http://blog.mrt-web.com/2009/06/passing-parameters-of-char-data-types.html' title='Passing parameters of char* data types from C# or VB code to a C++ function'/><author><name>Mrt</name><uri>http://www.blogger.com/profile/11563887011453055686</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7437584074131856067.post-4287065714989630106</id><published>2009-05-28T13:07:00.000-07:00</published><updated>2010-07-15T03:24:39.250-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IE8'/><category scheme='http://www.blogger.com/atom/ns#' term='Compatibility View'/><title type='text'>Internet Explorer 8: Compatibility View</title><content type='html'>There is a new feature in Internet Explorer 8, called Compatibility View&lt;br /&gt;Microsoft redesigned layout rendering engine of IE 8, some times this causes older web sites not to be correctly displayed in IE 8, which were looking good in IE 7 and earlier.&lt;br /&gt;So resolve this issue, IE 8 has a feature to change the layout rendering, called "Compatibility View", by selecting this option, you tell the browser to render as if it is IE 7.&lt;br /&gt;&lt;br /&gt;If your old web sites have some trouble displaying in IE 8, and you do not want to solve those problems, an easy way is just to say the IE to render it in IE 7 mode.&lt;br /&gt;&lt;br /&gt;You just need to add this line of code in your head section of your HTML pages:&lt;br /&gt;&lt;pre name="code"&gt;&amp;lt;meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" /&amp;gt;&lt;/pre &gt;&lt;br /&gt;&lt;br /&gt;That's all!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.codeproject.com/script/Articles/BlogFeedList.aspx?amid=3959091" rel="tag" style="display:none"&gt;CodeProject&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7437584074131856067-4287065714989630106?l=blog.mrt-web.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mrt-web.com/feeds/4287065714989630106/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.mrt-web.com/2009/05/internet-explorer-8-compatibility-view.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7437584074131856067/posts/default/4287065714989630106'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7437584074131856067/posts/default/4287065714989630106'/><link rel='alternate' type='text/html' href='http://blog.mrt-web.com/2009/05/internet-explorer-8-compatibility-view.html' title='Internet Explorer 8: Compatibility View'/><author><name>Mrt</name><uri>http://www.blogger.com/profile/11563887011453055686</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7437584074131856067.post-8271178633007688909</id><published>2009-05-25T09:34:00.000-07:00</published><updated>2010-07-15T03:24:39.259-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows 7 Managed Code APIs for NET'/><title type='text'>Windows 7 Managed Code APIs</title><content type='html'>Have you ever tried to use some Windows APIs in programming languages other than C/C++?&lt;br /&gt;You had to write some wrapper classes and that was really a time consuming and some times a complicated job, and some times you may ended doing that job, canceling the entire project, or using C/C++.&lt;br /&gt;&lt;br /&gt;Some APIs are easy to implement in other programming languages, but some are really challenging.&lt;br /&gt;&lt;br /&gt;Here is a good news for .NET developers: Microsoft announced "Windows API Code Pack for Microsoft .NET Framework"&lt;br /&gt;&lt;br /&gt;Simplifying the use of Taskbar, Libraries, Sensor, and multi-touch from your .NET application.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://windowsteamblog.com/blogs/developers/archive/2009/05/18/windows-7-managed-code-apis.aspx"&gt;Here&lt;/a&gt; you can read more about this pack and you can download it from &lt;a href="http://code.msdn.microsoft.com/WindowsAPICodePack/Release/ProjectReleases.aspx?ReleaseId=2636"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7437584074131856067-8271178633007688909?l=blog.mrt-web.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mrt-web.com/feeds/8271178633007688909/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.mrt-web.com/2009/05/windows-7-managed-code-apis.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7437584074131856067/posts/default/8271178633007688909'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7437584074131856067/posts/default/8271178633007688909'/><link rel='alternate' type='text/html' href='http://blog.mrt-web.com/2009/05/windows-7-managed-code-apis.html' title='Windows 7 Managed Code APIs'/><author><name>Mrt</name><uri>http://www.blogger.com/profile/11563887011453055686</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7437584074131856067.post-5075055412786126743</id><published>2009-05-06T02:39:00.000-07:00</published><updated>2010-08-16T00:36:42.707-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><category scheme='http://www.blogger.com/atom/ns#' term='cellular data network'/><title type='text'>How to Disable Cellular Data Network (Internet) on iPhone?</title><content type='html'>Before iOS 4, you could not disable cellular data network on your iPhone easily, to solve this issue in your iPhone whose OS version is less than 4, you can follow these instructions:&lt;br /&gt;&lt;br /&gt;You may need to disable cellular data network on your iPhone in some conditions, after tapping menus and wasting your time, you may find out it is impossible, or you can not find it!&lt;br /&gt;&lt;br /&gt;Your first choice is right, it is simply impossible!&lt;br /&gt;&lt;br /&gt;So how you can prevent your iPhone from accessing cellular data network?&lt;br /&gt;&lt;br /&gt;1) Tap Setting -&amp;gt; General -&amp;gt; Network -&amp;gt; Cellular Data Network&lt;br /&gt;There you will see some boxes to enter user name, password and etc. You need to simple enter some wrong data! Then turn your phone off and power it on again.&lt;br /&gt;That's all! &lt;br /&gt;And if you would like to use cellular data network again, you just need to roll back the settings you made.&lt;br /&gt;&lt;br /&gt;2) Simply ask your operator to disable cellular data network for your sim-card!&lt;br /&gt;&lt;br /&gt;3) Upgrade your iPhone OS to iOS 4 and follow the following steps.&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;After iOS 4, you can switch on or off cellular data network easily using:&lt;br /&gt;Setting -&amp;gt; General -&amp;gt; Network -&amp;gt; Cellular Data&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7437584074131856067-5075055412786126743?l=blog.mrt-web.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mrt-web.com/feeds/5075055412786126743/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.mrt-web.com/2009/05/how-to-disable-cellular-data-network.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7437584074131856067/posts/default/5075055412786126743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7437584074131856067/posts/default/5075055412786126743'/><link rel='alternate' type='text/html' href='http://blog.mrt-web.com/2009/05/how-to-disable-cellular-data-network.html' title='How to Disable Cellular Data Network (Internet) on iPhone?'/><author><name>Mrt</name><uri>http://www.blogger.com/profile/11563887011453055686</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7437584074131856067.post-8453706939145926118</id><published>2009-04-07T06:15:00.000-07:00</published><updated>2010-07-15T03:24:39.288-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VMWare'/><title type='text'>How to Increase VMWare Hard Disk Size?</title><content type='html'>I've been playing with virtual machines and testing some odd things that can not be easily tested on a real computer, suddenly I come across to a situation that my virtual machine's hard disk size needed to be increased.&lt;br /&gt;&lt;br /&gt;It is one simple command! You just need to go where you installed VMWare WorkStation, there is a file named: vmware-vdiskmanager.exe &lt;br /&gt;&lt;br /&gt;You just need to open a command window and run:&lt;br /&gt;&lt;pre name="code" class="c-sharp"&gt;&lt;br /&gt;vmware-vdiskmanager.exe -x sizeGB virtualDiskFile.vmdk&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;That's all.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7437584074131856067-8453706939145926118?l=blog.mrt-web.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mrt-web.com/feeds/8453706939145926118/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.mrt-web.com/2009/04/how-to-increase-vmware-hard-disk-size.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7437584074131856067/posts/default/8453706939145926118'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7437584074131856067/posts/default/8453706939145926118'/><link rel='alternate' type='text/html' href='http://blog.mrt-web.com/2009/04/how-to-increase-vmware-hard-disk-size.html' title='How to Increase VMWare Hard Disk Size?'/><author><name>Mrt</name><uri>http://www.blogger.com/profile/11563887011453055686</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7437584074131856067.post-3873495274150873461</id><published>2008-10-20T02:33:00.000-07:00</published><updated>2010-07-15T03:24:39.297-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Load image from uri into a NET Image object'/><title type='text'>How to load images from URI into a .NET image object?</title><content type='html'>In one of my recent projects, I was working with IP cameras, I need to take some pictures from the camera and do some processing on it.&lt;br /&gt;&lt;br /&gt;The first step, was to retrieve the image from camera into &lt;pre name="code" class="c-sharp"&gt;Image&lt;/pre&gt; object. So that it can be displayed or do some processing on it.&lt;br /&gt;&lt;br /&gt;Some of the IP cameras have an interface to acquire images or streams. One of the easiest interfaces is giving some steel JPEG images. For example via a simple HTTP request (e.g. &lt;a href="http://webcam.mmhk.cz/axis-cgi/jpg/image.cgi"&gt;http://webcam.mmhk.cz/axis-cgi/jpg/image.cgi&lt;/a&gt;) we have an JPEG image.&lt;br /&gt;&lt;br /&gt;Here is code snippet to acquire an image from a URI and display in a PictureBox.&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="c-sharp"&gt;&lt;br /&gt;//uri resource&lt;br /&gt;Uri uri = new Uri(&lt;br /&gt;  "http://webcam.mmhk.cz/axis-cgi/jpg/image.cgi");&lt;br /&gt;&lt;br /&gt;//create a stream using a http web request&lt;br /&gt;System.IO.Stream s = &lt;br /&gt;  System.Net.HttpWebRequest.Create(uri)&lt;br /&gt;  .GetResponse().GetResponseStream();&lt;br /&gt;&lt;br /&gt;//create an image object from stream&lt;br /&gt;Image img = Image.FromStream(s);&lt;br /&gt;&lt;br /&gt;//display image in a picture box&lt;br /&gt;this.pictureBox1.Image = img;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Simple and easy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7437584074131856067-3873495274150873461?l=blog.mrt-web.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mrt-web.com/feeds/3873495274150873461/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.mrt-web.com/2008/10/how-to-load-images-from-uri-into-net.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7437584074131856067/posts/default/3873495274150873461'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7437584074131856067/posts/default/3873495274150873461'/><link rel='alternate' type='text/html' href='http://blog.mrt-web.com/2008/10/how-to-load-images-from-uri-into-net.html' title='How to load images from URI into a .NET image object?'/><author><name>Mrt</name><uri>http://www.blogger.com/profile/11563887011453055686</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7437584074131856067.post-4512549412643323722</id><published>2008-10-18T01:53:00.000-07:00</published><updated>2010-07-15T03:24:39.307-07:00</updated><title type='text'>ASP.NET MVC Beta Released</title><content type='html'>According to &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/10/16/asp-net-mvc-beta-released.aspx?CommentPosted=true#commentmessage"&gt;this&lt;/a&gt;, today beta version of ASP.NET MVC framework has released. You can download it from &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=A24D1E00-CD35-4F66-BAA0-2362BDDE0766&amp;displaylang=en"&gt;here&lt;/a&gt;. You can also visit &lt;a href="http://www.asp.net/mvc"&gt;www.asp.net/mvc&lt;/a&gt; to explore &lt;a href="http://www.asp.net/learn/mvc/"&gt;tutorials&lt;/a&gt;, &lt;a href="http://quickstarts.asp.net/previews/mvc/"&gt;quickstarts&lt;/a&gt;, and &lt;a href="http://www.asp.net/learn/mvc-videos/default.aspx"&gt;videos &lt;/a&gt;to learn more.&lt;br /&gt;&lt;br /&gt;The ASP.NET MVC Beta works with both .NET 3.5 and .NET 3.5 SP1, and supports both VS 2008 and Visual Web Developer 2008 Express SP1 (which is free - and now supports class libraries and web application project types).&lt;br /&gt;&lt;br /&gt;The Model-View-Controller (MVC) pattern separates the components of an MVC Web application. This separation gives you more control over the individual parts of the application, which lets you more easily develop, modify, and test them.&lt;br /&gt;&lt;br /&gt;In an ASP.NET Web site, URLs typically map to files that are stored on disk (usually .aspx files). These .aspx files include markup and code that is processed in order to respond to the request.&lt;br /&gt;&lt;br /&gt;The ASP.NET MVC framework maps URLs to server code differently than a typical ASP.NET Web site. Instead of mapping URLs to ASP.NET pages or handlers, the framework maps URLs to controller classes. Controller classes handle incoming requests, such as user input and interactions, and execute appropriate application and data logic, based on user input. (ASP.NET MVC controllers implement a pattern known as the Front Controller pattern.) A controller class typically calls a separate view component that generates HTML output as the response.&lt;br /&gt;&lt;br /&gt;You can read more &lt;a href="http://quickstarts.asp.net/previews/mvc/mvc_Framework.htm"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;This is a new and great feature that have been added. Have a look at samples to learn more about it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7437584074131856067-4512549412643323722?l=blog.mrt-web.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mrt-web.com/feeds/4512549412643323722/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.mrt-web.com/2008/10/aspnet-mvc-beta-released.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7437584074131856067/posts/default/4512549412643323722'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7437584074131856067/posts/default/4512549412643323722'/><link rel='alternate' type='text/html' href='http://blog.mrt-web.com/2008/10/aspnet-mvc-beta-released.html' title='ASP.NET MVC Beta Released'/><author><name>Mrt</name><uri>http://www.blogger.com/profile/11563887011453055686</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7437584074131856067.post-7506582163429547048</id><published>2008-10-15T03:59:00.000-07:00</published><updated>2010-07-15T03:24:39.317-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Paraller Extensions'/><category scheme='http://www.blogger.com/atom/ns#' term='Dot NET Framework 4 features'/><title type='text'>.NET Framework 4 features: Parallel Extensions</title><content type='html'>Today most of new processors are dual core (let me say multi-core).&lt;br /&gt;Intel and AMD are trying to convince programmers to use the benefits of multi-core processing. You can find many white papers from both Intel and AMD that explains how we can write our codes so that it can be executed better in multi core processors.&lt;br /&gt;&lt;br /&gt;One way of achieving this goal is to write your programs using multi threads, and let compiler decide which threads can be executed concurrently in different cores.&lt;br /&gt;Of course this is the easiest way possible, but not the best approach.&lt;br /&gt;&lt;br /&gt;Intel have some tools that with using them you can define a new thread (rather than the thread which is provided by your programming language) and you can define some flags to say which threads can run concurrently. This approach works well with Intel processors, but making a general purpose code with this approach is a headache!&lt;br /&gt;&lt;br /&gt;Today when I was reading some beta news about .NET features, I saw something very interesting: Parallel Extensions.&lt;br /&gt;&lt;br /&gt;In perhaps the most significant development in the brief history of the field of implicit parallelism in computing, one of Microsoft's development teams announced last Friday that the next .NET Framework 4.0 -- the first glimpses of which we'll see later this month from PDC in Los Angeles -- will include the so-called Parallel Extensions as a standard feature. This after the Extensions were first introduced in a Community Technology Preview last November.&lt;br /&gt;&lt;br /&gt;The significance of these extensions is that they enable existing .NET languages (today, most predominantly, C#) to incorporate implicit parallelism directly in programs. In other words, rather than simply write ordinary procedural code and use compiler switches to determine whether code can be forked into parallel threads, a developer can use entirely new syntax to invoke methods that execute multiple threads concurrently.&lt;br /&gt;&lt;br /&gt;You can read more about this feature in &lt;a href="http://www.betanews.com/article/print/Everyone_talk_at_once_NET_40_will_include_Parallel_Extensions/1223931673"&gt;BetaNews&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;For C/C++ developers, Intel has a software solution, named Intel Parallel Studio. &lt;a href="http://www3.intel.com/cd/software/products/asmo-na/eng/399359.htm?cid=sw:multicore073"&gt;Here&lt;/a&gt; you can find more about this solution.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7437584074131856067-7506582163429547048?l=blog.mrt-web.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mrt-web.com/feeds/7506582163429547048/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.mrt-web.com/2008/10/net-framework-4-features-parallel.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7437584074131856067/posts/default/7506582163429547048'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7437584074131856067/posts/default/7506582163429547048'/><link rel='alternate' type='text/html' href='http://blog.mrt-web.com/2008/10/net-framework-4-features-parallel.html' title='.NET Framework 4 features: Parallel Extensions'/><author><name>Mrt</name><uri>http://www.blogger.com/profile/11563887011453055686</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7437584074131856067.post-5060810442264830002</id><published>2008-08-06T22:28:00.000-07:00</published><updated>2010-07-15T03:24:39.326-07:00</updated><title type='text'>Need to create BarCodes in your .NET Web/Desktop Application?</title><content type='html'>&lt;span style="font-weight:bold;"&gt;Need to create BarCodes in your .NET Web/Desktop Application? And you do not want to pay?&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.squaregear.net/fonts/free3of9.shtml"&gt;Here&lt;/a&gt; is a free barcode font to create "Code 39" barcodes very easily.&lt;br /&gt;All you need to do is to install this font (in Windows XP, Vista %systemroot%\fonts) and where you need to place a barcode in your application, just change the font to "Free 3 of 9" and place asterisks before and after your data. e.g. when you want to have a barcode for ABC123 you just need to draw *ABC123* using "Free 3 of 9" font.&lt;br /&gt;&lt;br /&gt;And &lt;a href="http://www.codeproject.com/KB/cpp/wsbarcode.aspx"&gt;here&lt;/a&gt; there is good article from &lt;a href="http://www.codeproject.com/script/Membership/Profiles.aspx?mid=162056"&gt;Rui Miguel Barbosa&lt;/a&gt; in &lt;a href="http://www.codeproject.com"&gt;CodeProject&lt;/a&gt; about using this font in a web application.&lt;br /&gt;&lt;br /&gt;And &lt;a href="http://www.codeproject.com/KB/graphics/ean_13_barcodes.aspx"&gt;here&lt;/a&gt; there is another free barcode generating tool from &lt;a href="http://www.codeproject.com"&gt;CodeProject&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7437584074131856067-5060810442264830002?l=blog.mrt-web.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mrt-web.com/feeds/5060810442264830002/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.mrt-web.com/2008/08/need-to-create-barcodes-in-your-net.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7437584074131856067/posts/default/5060810442264830002'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7437584074131856067/posts/default/5060810442264830002'/><link rel='alternate' type='text/html' href='http://blog.mrt-web.com/2008/08/need-to-create-barcodes-in-your-net.html' title='Need to create BarCodes in your .NET Web/Desktop Application?'/><author><name>Mrt</name><uri>http://www.blogger.com/profile/11563887011453055686</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7437584074131856067.post-3170791885644584564</id><published>2008-07-01T06:04:00.000-07:00</published><updated>2010-07-15T03:24:39.337-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Run executable files ASP .NET'/><title type='text'>Runing Executable Files in ASP .NET</title><content type='html'>In this post I will provide you with a code snippet that runs an executable file (.exe) on server side.&lt;br /&gt;For this you need to first declare an object of System.Diagnostics.Process type.&lt;br /&gt;Then set few parameters and then start executing!&lt;br /&gt;&lt;pre name="code" class="c-sharp"&gt;&lt;br /&gt;System.Diagnostics.Process batch = &lt;br /&gt;  new System.Diagnostics.Process();&lt;br /&gt;batch.StartInfo.FileName = &lt;br /&gt;  Server.MapPath("~/YourExeFile.exe");&lt;br /&gt;batch.StartInfo.Arguments = &lt;br /&gt;  String.Format("Arguments go here");&lt;br /&gt;batch.StartInfo.CreateNoWindow = true;&lt;br /&gt;//if you do not want &lt;br /&gt;//to display the window...&lt;br /&gt;batch.StartInfo.WindowStyle = &lt;br /&gt;  System.Diagnostics.ProcessWindowStyle.Hidden;&lt;br /&gt;&lt;br /&gt;//now you can start the job...&lt;br /&gt;batch.Start();&lt;br /&gt;        &lt;br /&gt;//if you want to wait until &lt;br /&gt;//the process terminates, &lt;br /&gt;//you can use the following line:&lt;br /&gt;batch.WaitForExit();&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Also note that in order to be able to execute files, you need to have some permissions, &lt;a href="http://forums.asp.net/p/1277084/2430175.aspx"&gt;here&lt;/a&gt; you can find more about security permissions.&lt;br /&gt;&lt;br /&gt;You can use this snippet in conjunction with my previous post to build some thing like YouTube ;)&lt;br /&gt;&lt;br /&gt;After the user uploads a new video (MPG, AVI and etc.) you can convert the uploaded file to .flv file using this code and &lt;a href="http://ffmpeg.mplayerhq.hu/"&gt;FFmpeg&lt;/a&gt; tool.&lt;br /&gt;&lt;br /&gt;This is a short code for converting videos:&lt;br /&gt;&lt;pre name="code" class="c-sharp"&gt;&lt;br /&gt;batch.StartInfo.FileName = &lt;br /&gt;  Server.MapPath("~/ffmpeg.exe");&lt;br /&gt;batch.StartInfo.Arguments = &lt;br /&gt;  String.Format(@"-i ""{0}\t.mpg""&lt;br /&gt; ""{0}\t.flv"" -y",&lt;br /&gt;  Server.MapPath("~"));&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7437584074131856067-3170791885644584564?l=blog.mrt-web.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mrt-web.com/feeds/3170791885644584564/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.mrt-web.com/2008/07/runing-executable-files-in-asp-net.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7437584074131856067/posts/default/3170791885644584564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7437584074131856067/posts/default/3170791885644584564'/><link rel='alternate' type='text/html' href='http://blog.mrt-web.com/2008/07/runing-executable-files-in-asp-net.html' title='Runing Executable Files in ASP .NET'/><author><name>Mrt</name><uri>http://www.blogger.com/profile/11563887011453055686</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7437584074131856067.post-269624344484429374</id><published>2008-07-01T05:15:00.000-07:00</published><updated>2010-07-15T03:24:39.347-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP .NET FLV Flash Video Player'/><title type='text'>YouTube like FLV Flash Video Player for ASP .NET</title><content type='html'>You may need to show some videos on your ASP .NET site, right?&lt;br /&gt;You can use YouTube and upload your videos to YouTube and put the link of your uploaded video in your site, it's very easy, but you might not like to have YouTube code in your site...&lt;br /&gt;Here is the solution:&lt;br /&gt;Have your own ASP .NET FLV (Flash Video) Player, sounds great!&lt;br /&gt;The &lt;a href="http://www.aspnetflashvideo.com/"&gt;ASPNetFlashVideo&lt;/a&gt; Component allows you to add YouTube style Flash Videos (.flv files) to ASP.Net websites. ASPNetFlashVideo requires no Flash programming and is unique.&lt;br /&gt;Flash Video can be encoded easily using free tools provided by &lt;a href="http://www.rivavx.com/index.php?encoder&amp;L=3"&gt;Riva&lt;/a&gt; and &lt;a href="http://www.adobe.com/products/flash/flashpro/productinfo/encoder/"&gt;Adobe&lt;/a&gt;.&lt;br /&gt;You can also use &lt;a href="http://ffmpeg.mplayerhq.hu/"&gt;FFmpeg&lt;/a&gt;  free tool.&lt;br /&gt;It is a command-line based program, and you can easily use it like:&lt;br /&gt;&lt;blockquote&gt;ffmpege.exe -i test.avi test.flv&lt;/blockquote&gt;&lt;br /&gt;You also index your flv files with &lt;a href="http://inlet-media.de/flvtool2"&gt;flvTool2&lt;/a&gt; like this:&lt;br /&gt;&lt;blockquote&gt;flvtool2.exe -U test.flv&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;It's now done!&lt;br /&gt;&lt;br /&gt;All you need to do is to place a ASPNETFlashVideo control on your ASPX pages and set it's 'VideoURL' property to .flv file's path.&lt;br /&gt;&lt;br /&gt;This control also supports skinning, full screen playback, does not display "Click to activate and use this control" message and etc.&lt;br /&gt;&lt;br /&gt;There is also another YouTube like flash video player available at &lt;a href="http://www.mycsharpcorner.com/Post.aspx?postID=46"&gt;MyCSharpCorner&lt;/a&gt; that automatically converts your uploaded videos to .flv files. But it's source code is not available.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7437584074131856067-269624344484429374?l=blog.mrt-web.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mrt-web.com/feeds/269624344484429374/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.mrt-web.com/2008/07/youtube-like-flv-flash-video-player-for.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7437584074131856067/posts/default/269624344484429374'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7437584074131856067/posts/default/269624344484429374'/><link rel='alternate' type='text/html' href='http://blog.mrt-web.com/2008/07/youtube-like-flv-flash-video-player-for.html' title='YouTube like FLV Flash Video Player for ASP .NET'/><author><name>Mrt</name><uri>http://www.blogger.com/profile/11563887011453055686</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7437584074131856067.post-1707561433411248619</id><published>2008-06-20T13:23:00.000-07:00</published><updated>2010-07-15T03:24:39.356-07:00</updated><title type='text'>Need to access your files every where?</title><content type='html'>&lt;span style="font-weight:bold;"&gt;Need to access your files every where? And again you do not want to pay?&lt;/span&gt;&lt;br /&gt;Accessing your files every where is a vital thing that most of us need to have.&lt;br /&gt;Normally accessing files remotely need to have an static IP in your source computer, but you do not like to pay?&lt;br /&gt;Here are some solutions:&lt;br /&gt;&lt;br /&gt;Use the services provided by &lt;a href="http://www.logmein.com/"&gt;LogMeIn&lt;/a&gt;&lt;br /&gt;With LogMeIn you can access to your desktop and files from a remote computer. All you need is just an Internet connection in your source computer and signing up in LogMeIn services and have a small program installed on your source computer...&lt;br /&gt;That's all!&lt;br /&gt;&lt;br /&gt;LogMeIn have some free services that only support desktop sharing, it is easy to use...&lt;br /&gt;You control your computer's desktop remotely using a browser-based program.&lt;br /&gt;And if you pay a little and upgrade your account, you can have file-transfer service as well.&lt;br /&gt;You can test these features for a limited time, but as I say before, desktop sharing is free...&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://blog.mrt-web.com/uploaded_images/logolmi-702669.gif"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://blog.mrt-web.com/uploaded_images/logolmi-702667.gif" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;The second solution is to have a VPN and simply connecting to your Virtual Private Network and accessing your shared files and folders...&lt;br /&gt;But there is an small problem here and that is: Your IP changes every time, so you need an static IP.&lt;br /&gt;You do NOT want to pay for an Static IP? Here is the solution:&lt;br /&gt;&lt;a href="http://www.no-ip.org"&gt;No-IP&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://blog.mrt-web.com/uploaded_images/no-ip-743547.gif"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://blog.mrt-web.com/uploaded_images/no-ip-743545.gif" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;Signing up and installing an small program, then you choose a sub domain name for your source computer, that's all!&lt;br /&gt;Now you have a URL that every time points to your source computer...&lt;br /&gt;The resident program updates your computer's IP address (each time it changes) in the sub domain's records.&lt;br /&gt;&lt;br /&gt;With this free service, you can setup your own web server (e.g. for testing purposes), set up your own VPN and better than all: have remote-connections to your computer using Remote Desktop.&lt;br /&gt;&lt;br /&gt;It is really fantastic!&lt;br /&gt;&lt;br /&gt;I've setup my own &lt;a href="http://mrthome.serveblog.net"&gt;web-server&lt;/a&gt; in my home computer for testing purposes.&lt;br /&gt;I've also setup remote connections so when ever I need to access my files, it could not be easier than this using these free services...&lt;br /&gt;&lt;br /&gt;Have a try!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7437584074131856067-1707561433411248619?l=blog.mrt-web.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mrt-web.com/feeds/1707561433411248619/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.mrt-web.com/2008/06/need-to-access-your-files-every-where.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7437584074131856067/posts/default/1707561433411248619'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7437584074131856067/posts/default/1707561433411248619'/><link rel='alternate' type='text/html' href='http://blog.mrt-web.com/2008/06/need-to-access-your-files-every-where.html' title='Need to access your files every where?'/><author><name>Mrt</name><uri>http://www.blogger.com/profile/11563887011453055686</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7437584074131856067.post-1315870993947773394</id><published>2008-06-17T22:52:00.001-07:00</published><updated>2010-07-15T03:24:39.374-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Express'/><title type='text'>SQL Express</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://blog.mrt-web.com/uploaded_images/sqlserver_express_logo-752432.gif"&gt;&lt;img style="float:right; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://blog.mrt-web.com/uploaded_images/sqlserver_express_logo-752431.gif" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;Most often our apps are involved with databases. Since the release of SQL Server 2005, Microsoft announced a light-weight version of SQL named: SQL Express.&lt;br /&gt;SQL Express is a successor of Microsoft Database Engine and is the freely-downloadable and distributable version of Microsoft's SQL Server relational database management system.&lt;br /&gt;It offers a database solution specifically targeted for embedded and smaller-scale applications. Unlike its predecessor, MSDE, there is no concurrent workload governor which "limit[s] performance if the database engine receives more work than is typical of a small number of users." It does, however, have a number of technical restrictions which make it undesirable for large-scale deployments.&lt;br /&gt;You can find these restrictions list from &lt;a href="http://en.wikipedia.org/wiki/SQL_Server_Express"&gt;here&lt;/a&gt;.&lt;br /&gt;The latest release of it is SQL Express Service Pack 2.&lt;br /&gt;You can get it from &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=220549b5-0b07-4448-8848-dcc397514b41&amp;displaylang=en"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;SQL Express have a small setup file size (about 54 MB) and can be installed very easily.&lt;br /&gt;&lt;br /&gt;You can have silent setup of SQL Express with these command arguments:&lt;br /&gt;-q /norebootchk /qn reboot=ReallySuppress addlocal=all instancename="sqlexpress" SQLAUTOSTART=1 ADDUSERASADMIN=1&lt;br /&gt;&lt;br /&gt;(For complete listing visit &lt;a href="http://msdn.microsoft.com/en-us/library/ms144259.aspx"&gt;here&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;Also note that SQL Express has some prerequisites like:&lt;br /&gt;Windows Installer 3.1 and .NET Framework 2.0&lt;br /&gt;&lt;br /&gt;Before your install script tries to install SQL Express, you check whether SQL Express is installed or not.&lt;br /&gt;You just need to check this registry entry:&lt;br /&gt;&lt;br /&gt;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\SQLEXPRESS\MSSQLServer\CurrentVersion&lt;br /&gt;&lt;br /&gt;If the value of "CurrentVersion" is some thing like (or greater than) this: 9.00.3042.00&lt;br /&gt;Then the SQL Express SP2 is already installed and your setup program does not need to install it again.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7437584074131856067-1315870993947773394?l=blog.mrt-web.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.mrt-web.com/feeds/1315870993947773394/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.mrt-web.com/2008/06/sql-express.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7437584074131856067/posts/default/1315870993947773394'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7437584074131856067/posts/default/1315870993947773394'/><link rel='alternate' type='text/html' href='http://blog.mrt-web.com/2008/06/sql-express.html' title='SQL Express'/><author><name>Mrt</name><uri>http://www.blogger.com/profile/11563887011453055686</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
