<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://weblogs.asp.net/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">Roman Nikitin</title><subtitle type="html">From Russia with love...</subtitle><id>http://weblogs.asp.net/romannikitin/atom.aspx</id><link rel="alternate" type="text/html" href="http://weblogs.asp.net/romannikitin/default.aspx" /><link rel="self" type="application/atom+xml" href="http://weblogs.asp.net/romannikitin/atom.aspx" /><generator uri="http://communityserver.org" version="3.0.20510.895">Community Server</generator><updated>2007-11-22T02:27:35Z</updated><entry><title>IPBtoCS2007 &amp; PHPBBtoCS2007: new releases</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/romannikitin/archive/2008/05/02/ipbtocs2007-amp-phpbbtocs2007-new-releases.aspx" /><id>http://weblogs.asp.net/romannikitin/archive/2008/05/02/ipbtocs2007-amp-phpbbtocs2007-new-releases.aspx</id><published>2008-05-02T10:11:00Z</published><updated>2008-05-02T10:11:00Z</updated><content type="html">&lt;p&gt;New release of IPBtoCS2007 Converter.&lt;/p&gt;&lt;p&gt;&lt;br&gt;Also PHPBB to CS2007 converter released.&lt;br&gt;&lt;br&gt;&lt;br&gt;You can view\download here: &lt;a href="http://www.codeplex.com/csconverter/Release/ProjectReleases.aspx?ReleaseId=13037"&gt;http://www.codeplex.com/csconverter/Release/ProjectReleases.aspx?ReleaseId=13037&lt;/a&gt;&lt;br&gt;&lt;br&gt;About any bugs and problems please tell me.&lt;br&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6150044" width="1" height="1"&gt;</content><author><name>Neu Romantic</name><uri>http://weblogs.asp.net/members/Neu-Romantic.aspx</uri></author><category term="Converter" scheme="http://weblogs.asp.net/romannikitin/archive/tags/Converter/default.aspx" /><category term="Invision Power Board" scheme="http://weblogs.asp.net/romannikitin/archive/tags/Invision+Power+Board/default.aspx" /><category term="Community Server" scheme="http://weblogs.asp.net/romannikitin/archive/tags/Community+Server/default.aspx" /><category term="phpBB" scheme="http://weblogs.asp.net/romannikitin/archive/tags/phpBB/default.aspx" /><category term=".net" scheme="http://weblogs.asp.net/romannikitin/archive/tags/.net/default.aspx" /></entry><entry><title>Invision Power Board 2.x.x to Community Server 2007 Converter</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/romannikitin/archive/2008/01/08/invision-power-board-2-x-x-to-community-server-2007-converter.aspx" /><id>http://weblogs.asp.net/romannikitin/archive/2008/01/08/invision-power-board-2-x-x-to-community-server-2007-converter.aspx</id><published>2008-01-08T04:03:13Z</published><updated>2008-01-08T04:03:13Z</updated><content type="html">&lt;p&gt;Some time ago I decided to move my community (worked on Invision Power Board) to Community Server 2007 and create blogs for all users.&lt;/p&gt;  &lt;p&gt;But I didn't find any converter software.&lt;/p&gt;  &lt;p&gt;So, I wrote converter by myself.&lt;/p&gt;  &lt;p&gt;In this project i used LINQ for Community Server MSSQL database and &lt;a href="http://code2code.net/DB_Linq/"&gt;Mysql LINQ Provider&lt;/a&gt; for IPB MySQL database.&lt;/p&gt;  &lt;p&gt;Several restrictions, such as necessity of additional memory, can be found in this program because of some limitations at the earliest stage of MySQL Linq Provider development.&lt;/p&gt;  &lt;p&gt;Because the initial stage of the last and its limitations, I cache all data in Program, so on big database there big memory usage.&lt;/p&gt;  &lt;p&gt;What is supported:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;convert all users with unique emails&lt;/li&gt;    &lt;li&gt;Forum structure converting&lt;/li&gt;    &lt;li&gt;Full converting of threads and topics &lt;/li&gt;    &lt;li&gt;Optional. Blog auto-create for each converted user.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;What is missed:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Additional information (ICQ, Yahoo, MSN information)&lt;/li&gt;    &lt;li&gt;User signatures&lt;/li&gt;    &lt;li&gt;Avatars&lt;/li&gt;    &lt;li&gt;Display names (if they turned on in IPB)&lt;/li&gt;    &lt;li&gt;User groups and roles&lt;/li&gt;    &lt;li&gt;Forum permissions&lt;/li&gt;    &lt;li&gt;Attachments&lt;/li&gt;    &lt;li&gt;Voting's&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Another restriction for IPB: database must have &amp;quot;ibf_&amp;quot; prefix.&lt;/p&gt;  &lt;p&gt;I strongly recommend you to convert forums on local machine.&lt;/p&gt;  &lt;p&gt;Conversion of the ~2000 users, ~2000 topics and&amp;#160; ~60000 posts took on my machine about 15-20 minutes.&lt;/p&gt;  &lt;p&gt;I have published whole solution. You can change the code and use it in any purposes (except commercial use).   &lt;br /&gt;I don't grant any warranties and don't respond of data loses. Do backup yourself &lt;img alt="Smile" src="http://messenger.msn.com/MMM2006-04-19_17.00/Resource/emoticons/regular_smile.gif" /&gt;&lt;/p&gt;  &lt;p&gt;If you have any questions - I will be happy to answer them.&lt;/p&gt;  &lt;p&gt;Also will be great if you made some enhancements and share they. May be one day this project will be placed on codeplex.com &lt;img alt="Wink" src="http://messenger.msn.com/MMM2006-04-19_17.00/Resource/emoticons/wink_smile.gif" /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;That the link: &lt;a href="http://weblogs.asp.net/blogs/romannikitin/ipb2cs/IPBtoCS_0.0.0.1.zip"&gt;IPBtoCS_0.0.0.1.zip&lt;/a&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=5566723" width="1" height="1"&gt;</content><author><name>Neu Romantic</name><uri>http://weblogs.asp.net/members/Neu-Romantic.aspx</uri></author><category term="Microsoft" scheme="http://weblogs.asp.net/romannikitin/archive/tags/Microsoft/default.aspx" /><category term="Asp.Net" scheme="http://weblogs.asp.net/romannikitin/archive/tags/Asp.Net/default.aspx" /><category term="Converter" scheme="http://weblogs.asp.net/romannikitin/archive/tags/Converter/default.aspx" /><category term="Invision Power Board" scheme="http://weblogs.asp.net/romannikitin/archive/tags/Invision+Power+Board/default.aspx" /><category term="Community Server" scheme="http://weblogs.asp.net/romannikitin/archive/tags/Community+Server/default.aspx" /><category term="LINQ" scheme="http://weblogs.asp.net/romannikitin/archive/tags/LINQ/default.aspx" /></entry><entry><title>Sys.Debug in Asp.Net Ajax Framework</title><link rel="alternate" type="text/html" href="http://weblogs.asp.net/romannikitin/archive/2007/11/22/sys-debug-in-asp-net-ajax-framework.aspx" /><id>http://weblogs.asp.net/romannikitin/archive/2007/11/22/sys-debug-in-asp-net-ajax-framework.aspx</id><published>2007-11-21T23:27:35Z</published><updated>2007-11-21T23:27:35Z</updated><content type="html">&lt;p&gt;Every developer needs to debug his applications. There are two ways:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Debugging - step-by-step tracking of an application process.  &lt;li&gt;Tracing - monitoring of application processes without breaking and writing useful information in a special console. &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Asp.Net developers wrote the great Ajax Framework. There is so much stuff for professionals and beginner developers.&lt;br&gt;Also they didn't forget about debugging tools. (may be was done first&lt;img alt="Open-mouthed" src="http://messenger.msn.com/MMM2006-04-19_17.00/Resource/emoticons/teeth_smile.gif"&gt;)&lt;/p&gt; &lt;p&gt;class &lt;strong&gt;Sys.Debug&lt;/strong&gt; contains 5 methods:&lt;/p&gt; &lt;div class="csharpcode"&gt; &lt;blockquote class="csharpcode"&gt; &lt;div class="csharpcode"&gt; &lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="rem"&gt;// output the text message into Debug Console&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;Sys.Debug.trace(text);&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&lt;span class="rem"&gt;// output the information about specified object into Debug Console.&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;&lt;span class="rem"&gt;// second parameter (object name) - is optional&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;Sys.Debug.traceDump(&lt;span class="kwrd"&gt;object&lt;/span&gt;, name);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;&lt;span class="rem"&gt;// clear Debug Console*&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;Sys.Debug.clearTrace();&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;
&lt;div class="csharpcode"&gt;&lt;pre class="csharpcode"&gt;&lt;font face="Consolas"&gt;* - it doesn't clear Debug Console of your default Debugger(more information below the post).&lt;/font&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;blockquote class="csharpcode"&gt;
&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="rem"&gt;// output the message only &lt;em&gt;if(condition == true)&lt;/em&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&lt;span class="rem"&gt;// if the third parameter is specified and set to &lt;em&gt;true&lt;/em&gt; then name of the caller function will be shown&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;Sys.Debug.assert(condition, message, displayCaller);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;&lt;span class="rem"&gt;// output the message into Debug Console and break program into default debugger in the invocation point&lt;/span&gt;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;Sys.Debug.fail(message);&lt;/pre&gt;&lt;/div&gt;
&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
&lt;/style&gt;
&lt;pre class="csharpcode"&gt;&amp;nbsp;&lt;/pre&gt;&lt;/blockquote&gt;
&lt;div class="csharpcode"&gt;&lt;pre class="csharpcode"&gt;So, what does "Debug Console" mean?&lt;/pre&gt;&lt;/div&gt;
&lt;div class="csharpcode"&gt;&lt;pre class="csharpcode"&gt;Let`s see the core of Asp.Net Ajax Framework (MicrosoftAjax.js).&lt;/pre&gt;&lt;/div&gt;
&lt;div class="csharpcode"&gt;&lt;pre class="csharpcode"&gt;There are 2 interesting methods:&lt;/pre&gt;&lt;/div&gt;
&lt;div class="csharpcode"&gt;&lt;pre class="csharpcode"&gt;&amp;nbsp;&lt;/pre&gt;&lt;/div&gt;
&lt;blockquote&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="rem"&gt;// output the text message into Debug Console window of your current debugger.&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&lt;span class="kwrd"&gt;this&lt;/span&gt;._appendConsole(text);&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&lt;span class="rem"&gt;// output the text message into textarea in the webform (more information below the text)&lt;/span&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;&lt;span class="kwrd"&gt;this&lt;/span&gt;._appendTrace(text);&lt;/pre&gt;&lt;/blockquote&gt;&lt;pre&gt;Debugger Console may looks like that (Output window in your favorite Visual Studio):&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/romannikitin/WindowsLiveWriter/Sys.DebuginAsp.NetAjaxFramework_3E7D/VS_debug_console_2.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="166" alt="VS_debug_console" src="http://weblogs.asp.net/blogs/romannikitin/WindowsLiveWriter/Sys.DebuginAsp.NetAjaxFramework_3E7D/VS_debug_console_thumb.png" width="244" border="0"&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Or like that (Console tab in Firebug plugin for Mozilla Firefox):&lt;/p&gt;
&lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/romannikitin/WindowsLiveWriter/Sys.DebuginAsp.NetAjaxFramework_3E7D/firebug_output_2.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="69" alt="firebug_output" src="http://weblogs.asp.net/blogs/romannikitin/WindowsLiveWriter/Sys.DebuginAsp.NetAjaxFramework_3E7D/firebug_output_thumb.png" width="244" border="0"&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Or something else.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;So, what does second method do?&lt;/p&gt;
&lt;blockquote&gt;
&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;this&lt;/span&gt;._appendTrace(text);&lt;/pre&gt;&lt;/div&gt;&lt;/blockquote&gt;
&lt;div class="csharpcode"&gt;Follow it source:&lt;/div&gt;
&lt;blockquote&gt;
&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;var&lt;/span&gt; traceElement = document.getElementById(&lt;span class="str"&gt;'TraceConsole'&lt;/span&gt;);&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&lt;span class="kwrd"&gt;if&lt;/span&gt; (traceElement &amp;amp;&amp;amp; (traceElement.tagName.toUpperCase() === &lt;span class="str"&gt;'TEXTAREA'&lt;/span&gt;))&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;{&lt;/pre&gt;&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;     traceElement.value += text + &lt;span class="str"&gt;'\n'&lt;/span&gt;;&lt;/pre&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;/blockquote&gt;
&lt;p&gt;It looks up an element with ID="TraceConsole" in a webform and verify for the "textarea" type. If well done, message will be written into this element.&lt;/p&gt;
&lt;p&gt;Exactly&amp;nbsp; that Console will be cleaned by the method&lt;/p&gt;
&lt;blockquote&gt;
&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;Sys.Debug.clearTrace();&lt;/pre&gt;&lt;/div&gt;&lt;/blockquote&gt;
&lt;p&gt;Sys.Debug works only if:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;debug="true" in Web.config&lt;/li&gt;&lt;/ol&gt;
&lt;blockquote&gt;
&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&amp;lt;compilation debug=&lt;span class="str"&gt;"true"&lt;/span&gt;&amp;gt;&lt;/pre&gt;&lt;/div&gt;&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.&amp;nbsp;&amp;nbsp;&amp;nbsp; ScriptMode="Debug" or ScriptMode="Inherit" (it will be inherited from web.config ) in ScriptManager in the page.&lt;/p&gt;
&lt;blockquote&gt;
&lt;div class="csharpcode"&gt;&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&amp;lt;asp:ScriptManager ID=&lt;span class="str"&gt;"ScriptManager1"&lt;/span&gt; runat=&lt;span class="str"&gt;"server"&lt;/span&gt; ScriptMode=&lt;span class="str"&gt;"Debug"&lt;/span&gt;&amp;gt;&lt;/pre&gt;&lt;/div&gt;&lt;/blockquote&gt;
&lt;p&gt;In conclusion I want to say, that Sys.Debug saves my time and nerves. What about you?&lt;/p&gt;
&lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:916e0e2f-fa1e-444a-bd58-73939689f403" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Теги: &lt;a href="http://technorati.com/tags/Ajax" rel="tag"&gt;Ajax&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Asp.Net" rel="tag"&gt;Asp.Net&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Debug" rel="tag"&gt;Debug&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Framework" rel="tag"&gt;Framework&lt;/a&gt;,&lt;a href="http://technorati.com/tags/JavaScript" rel="tag"&gt;JavaScript&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Microsoft" rel="tag"&gt;Microsoft&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Scripting" rel="tag"&gt;Scripting&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Sys.Debug" rel="tag"&gt;Sys.Debug&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Programming" rel="tag"&gt;Programming&lt;/a&gt;&lt;/div&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=5307675" width="1" height="1"&gt;</content><author><name>Neu Romantic</name><uri>http://weblogs.asp.net/members/Neu-Romantic.aspx</uri></author><category term="Javascript" scheme="http://weblogs.asp.net/romannikitin/archive/tags/Javascript/default.aspx" /><category term="Debug" scheme="http://weblogs.asp.net/romannikitin/archive/tags/Debug/default.aspx" /><category term="Scripting" scheme="http://weblogs.asp.net/romannikitin/archive/tags/Scripting/default.aspx" /><category term="Sys.Debug" scheme="http://weblogs.asp.net/romannikitin/archive/tags/Sys.Debug/default.aspx" /><category term="Ajax" scheme="http://weblogs.asp.net/romannikitin/archive/tags/Ajax/default.aspx" /><category term="Microsoft" scheme="http://weblogs.asp.net/romannikitin/archive/tags/Microsoft/default.aspx" /><category term="Asp.Net" scheme="http://weblogs.asp.net/romannikitin/archive/tags/Asp.Net/default.aspx" /><category term="Framework" scheme="http://weblogs.asp.net/romannikitin/archive/tags/Framework/default.aspx" /></entry></feed>