<?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-2675390911261851310</id><updated>2012-02-16T11:05:27.866+04:00</updated><category term='NHibernate'/><category term='Visual Studio'/><category term='MySQL'/><category term='TestDriven.NET'/><category term='NDbUnit'/><category term='Designer'/><category term='OLE'/><title type='text'>A little of .NET experiences</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://kluyg.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2675390911261851310/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://kluyg.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Kluyg</name><uri>http://www.blogger.com/profile/02351144440711542004</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>5</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2675390911261851310.post-8386597368711440531</id><published>2009-04-18T16:40:00.004+05:00</published><updated>2011-05-20T11:29:11.772+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Designer'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><title type='text'>Designer - обновить InitializeComponent</title><content type='html'>Столкнулся с очередной "фишкой" дизайнера студии при работе с Windows Forms. Ситуация:&lt;br /&gt;Вы разрабатываете CustomControl. У него много свойств. Вы его кидаете на форму, там все настраиваете и т.п. Затем вам нужно что-то поменять в CustomControl, расставить значения по-умолчанию, добавить/удалить свойства...&lt;br /&gt;InitializeComponent в дизайнере не всегда успешно обновится в соответствии с вашими действиями. А уж если вы из него сами руками что-нибудь поудаляли - то проще контрол удалить с формы и добавить заново, чем исправить.&lt;br /&gt;Так вот, этого делать не нужно. Чтобы Visual Studio обновила код дизайнера для вашего контрола, нужно довавить еще один такой же контрол на форму, затем сразу же удалить его - обновятся все свойства всех контролов с таким же типом (Magic).&lt;br /&gt;P.S. Магия WinForms, магия дизайнера... открывая новые горизонты смысла... они меня убивают :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2675390911261851310-8386597368711440531?l=kluyg.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kluyg.blogspot.com/feeds/8386597368711440531/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2675390911261851310&amp;postID=8386597368711440531' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2675390911261851310/posts/default/8386597368711440531'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2675390911261851310/posts/default/8386597368711440531'/><link rel='alternate' type='text/html' href='http://kluyg.blogspot.com/2009/04/designer-initializecomponent.html' title='Designer - обновить InitializeComponent'/><author><name>Kluyg</name><uri>http://www.blogger.com/profile/02351144440711542004</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-2675390911261851310.post-337227497922181342</id><published>2009-03-22T00:58:00.005+04:00</published><updated>2011-05-20T11:29:02.463+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TestDriven.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='NHibernate'/><title type='text'>TestDriven.NET, NHibernate and UnableToLoadProxyFactoryFactoryException</title><content type='html'>Пытаюсь запустить отдельный тест для проверки работы DAO.&lt;br /&gt;&lt;pre class="brush: c#"&gt;[TestFixture]&lt;br /&gt;public class CityTypeDaoFixture&lt;br /&gt;{&lt;br /&gt;private ISessionFactory _sessionFactory;&lt;br /&gt;private Configuration _configuration;&lt;br /&gt;&lt;br /&gt;[TestFixtureSetUp]&lt;br /&gt;public void TestFixtureSetUp()&lt;br /&gt;{&lt;br /&gt;_configuration = new Configuration();&lt;br /&gt;_configuration.Configure();&lt;br /&gt;_configuration.AddAssembly(typeof(CityType).Assembly);&lt;br /&gt;_sessionFactory = _configuration.BuildSessionFactory();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;[SetUp]&lt;br /&gt;public void SetupContext()&lt;br /&gt;{&lt;br /&gt;new SchemaExport(_configuration).Execute(false, true, false, false);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;[Test]&lt;br /&gt;public void CanAddNewCityType()&lt;br /&gt;{&lt;br /&gt;var product = new CityType { Name = "Большой город", MaxTrains = 16 };&lt;br /&gt;ICityTypeDao cityTypeDao = new CityTypeDao();&lt;br /&gt;cityTypeDao.Add(product);&lt;br /&gt;}&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;При запуске теста получаю следующее:&lt;br /&gt;&lt;pre&gt;TestCase 'RailSlewer.Tests.DALTests.CityTypeDaoFixture.CanAddNewCityType'&lt;br /&gt;failed: TestFixtureSetUp failed in CityTypeDaoFixture&lt;br /&gt;TestFixture failed: NHibernate.Bytecode.UnableToLoadProxyFactoryFactoryException : Unable to load type 'NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu' during configuration of proxy factory class.&lt;br /&gt;Possible causes are:&lt;br /&gt;- The NHibernate.Bytecode provider assembly was not deployed.&lt;br /&gt;- The typeName used to initialize the 'proxyfactory.factory_class' property of the session-factory section is not well formed.&lt;br /&gt;&lt;br /&gt;Solution:&lt;br /&gt;Confirm that your deployment folder contains one of the following assemblies:&lt;br /&gt;NHibernate.ByteCode.LinFu.dll&lt;br /&gt;NHibernate.ByteCode.Castle.dll&lt;/pre&gt;&lt;br /&gt;При этом сборка NHibernate.ByteCode.LinFu.dll добавлена в References, у нее стоит CopyLocal=True и я сходил в Bin\Debug и убедился что она там лежит. 15 минут гугления и я выясняю, что не одинок. В интернете предлагают убедиться, что сборка лежит там же, где и бинари. Ну лежит. Не найдя решения в течении еще минут 15, применил метод научного тыка и со второй попытки нашел, где на самом деле ее хотят видеть:&lt;br /&gt;"obj\Debug" - Вот где!&lt;br /&gt;&lt;br /&gt;Update: Покопавшись с проблеммой еще, я выяснил что естественно из "obj\Debug" ничего грузиться не должно. Запустив свой проект при подключенных исходниках NHibernate (Тот же релиз NHibernate'a но не bin, а src) я прошел свой тест. Мучался я с этой проблеммой долго и нудно. Все нервы извел. В общем собрал самостоятельно NHibernate (ничего не менял) и теперь все тип-топ. Если кому интересно, то собранный мной из архива "NHibernate-2.1.0.Alpha1-src.zip" релиз можно скачать тут:&lt;br /&gt;&lt;a href="http://strebkov.googlepages.com/only-needed-bins.rar"&gt;Только необходимые dll&lt;/a&gt; (581k) - все, что нужно чтобы NHibernate работал в вашем проекте&lt;br /&gt;&lt;a href="http://strebkov.googlepages.com/full-release.rar"&gt;Все файлы релиза&lt;/a&gt; (3M) - все, что было во всех папках Bin\Release-2.0 после сборки релиза.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2675390911261851310-337227497922181342?l=kluyg.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kluyg.blogspot.com/feeds/337227497922181342/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2675390911261851310&amp;postID=337227497922181342' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2675390911261851310/posts/default/337227497922181342'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2675390911261851310/posts/default/337227497922181342'/><link rel='alternate' type='text/html' href='http://kluyg.blogspot.com/2009/03/testdrivennet-nhibernate-and.html' title='TestDriven.NET, NHibernate and UnableToLoadProxyFactoryFactoryException'/><author><name>Kluyg</name><uri>http://www.blogger.com/profile/02351144440711542004</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-2675390911261851310.post-1681139679005917419</id><published>2009-02-25T18:22:00.004+04:00</published><updated>2011-05-20T11:28:51.926+04:00</updated><title type='text'>Visual Studio - Publish failed</title><content type='html'>Только что сталкнулся с мистической ошибкой - делаю build all для solution'a, содержащего web site - все отлично. Делаю publish веб сайту - ни одной ошибки компиляции, но... publish failed. Все перепробовал: сделал clean solution, clean project, reload project. Закрыл - открыл студию. Publish failed!!! Заработало только после того, как я в открытой студии сделал close solution и открыл его заново. Ппц... Как говорил один знакомый - при нынешнем уровне развития ПО оно скоро начнет проявлять признаки интеллекта и откажется работать на человека.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2675390911261851310-1681139679005917419?l=kluyg.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kluyg.blogspot.com/feeds/1681139679005917419/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2675390911261851310&amp;postID=1681139679005917419' title='Комментарии: 1'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2675390911261851310/posts/default/1681139679005917419'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2675390911261851310/posts/default/1681139679005917419'/><link rel='alternate' type='text/html' href='http://kluyg.blogspot.com/2009/02/visual-studio-publish-failed.html' title='Visual Studio - Publish failed'/><author><name>Kluyg</name><uri>http://www.blogger.com/profile/02351144440711542004</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-2675390911261851310.post-8505217011131803607</id><published>2009-02-21T13:57:00.005+04:00</published><updated>2011-05-20T11:28:40.860+04:00</updated><title type='text'>Visual Studio - Add Existing Folder</title><content type='html'>Наверное многие сталкивались с тем, что в Visual Studio рядом с пунктом меню "Add existing file" нет меню "Add Existing Folder" и добавление нескольких файлов, лежащих в папке, которая находится в папке проекта, но не добавлена в проект превращается в настоящую пытку. А все по незнанию. Решение:&lt;br /&gt;&lt;ol style="text-align: left;"&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Нажать кнопку "Show All Files"&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_UAedU6ZW1Os/SZ_R3paNfBI/AAAAAAAAAAU/RixXPhFSkhM/s1600-h/showallfiles.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 269px; height: 100px;" src="http://1.bp.blogspot.com/_UAedU6ZW1Os/SZ_R3paNfBI/AAAAAAAAAAU/RixXPhFSkhM/s320/showallfiles.png" alt="" id="BLOGGER_PHOTO_ID_5305189640004533266" border="0" /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Теперь найти в Solution Explorer нужную папку (она будет белой)&lt;/li&gt;&lt;li&gt;Нажать правой кнопкой и выбрать "Include in project"&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/2675390911261851310-8505217011131803607?l=kluyg.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kluyg.blogspot.com/feeds/8505217011131803607/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2675390911261851310&amp;postID=8505217011131803607' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2675390911261851310/posts/default/8505217011131803607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2675390911261851310/posts/default/8505217011131803607'/><link rel='alternate' type='text/html' href='http://kluyg.blogspot.com/2009/02/visual-studio-add-existing-folder.html' title='Visual Studio - Add Existing Folder'/><author><name>Kluyg</name><uri>http://www.blogger.com/profile/02351144440711542004</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><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_UAedU6ZW1Os/SZ_R3paNfBI/AAAAAAAAAAU/RixXPhFSkhM/s72-c/showallfiles.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2675390911261851310.post-6975465654870854829</id><published>2007-10-18T18:10:00.001+05:00</published><updated>2011-05-20T11:28:06.117+04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MySQL'/><category scheme='http://www.blogger.com/atom/ns#' term='OLE'/><category scheme='http://www.blogger.com/atom/ns#' term='NDbUnit'/><title type='text'>NDbUnit и MySQL</title><content type='html'>Ситуация: для тестирования в проекте используется NUnit + NDbUnit для тестирования работы с базой. Проект работал на MS SQL Server и все было прекрасно. Потом встала задача переделать все на MySQL, что и было сделано, но возникла проблема: NDbUnit с MySQL не дружит. Тоесть NDbUnit поддеживает только SQL Server и OLE DB базы. Ну казалось бы - OLE DB поддерживает, так и используем OLE DB provider для MySQL! Но не тут то было... Сначала встала проблемма, что официального провайдера нет. Нашел тот, что нашел: [&lt;a href="http://sourceforge.net/projects/myoledb/"&gt;sourceforge.net&lt;/a&gt;]. Но и с ним не заработало (кстати, позже нашел еще один: [&lt;a href="http://cherrycitysoftware.com/CCS/Providers/ProvMySQL.aspx"&gt;cherrycitysoftware.com&lt;/a&gt;] Его не пробовал, он 10$ стоит, хотя и бесплатно можно использовать, но с морокой). Погуглил получше и нашел решение [&lt;a href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=68394&amp;amp;SiteID=1"&gt;forums.microsoft.com&lt;/a&gt;], хотя и не очень красивое:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Идем в "Панель Управления" - "Администрирование" - "Источники данных (ODBC)". Там нужно добавить "Системный DSN" для MySQL базы к которой мы хотим приконнектиться, при этом в качестве драйвера выбираем MySQL ODBC 3.51 (можно скачать с оффициального сайта [&lt;a href="http://dev.mysql.com/downloads/connector/odbc/"&gt;dev.mysql.com&lt;/a&gt;]). В настройках драйвера выставляем все, что положено (кстати, сюда мы еще вернемся), DataSource Name я дал такое же, как у базы.&lt;/li&gt;&lt;li&gt;Потом при создании Connection String в Visual Studio для Datasource выбираем ".Net Framework Data Provider for OLE DB"&lt;/li&gt;&lt;li&gt;Для OLE DB Provider используем MSDataShape&lt;/li&gt;&lt;li&gt;Для "Server or filename" используем DataSource Name, которое дали на шаге 2.&lt;/li&gt;&lt;li&gt;Жмем "Test Connection" и радуемся.&lt;/li&gt;&lt;/ol&gt;Но не долго. Хотя MySQL через OLE DB мы к NDbUnit'у прикрутили, он все равно работает неправильно, т.к. внутри себя геренирует неправильные CRUD (Create Read Update Delete) SQL запросы. К счастью, NDbUnit OpenSource'ный, и как мне сказали "Если очень хочется, но нельзя - все возможно". Подсоединяем к проекту исходники NDbUnit.Core, ставим точку останова на той строке, в которой возникает ошибка в тесте (берем из NUnit'а). Ctrl+Alt+P и присоединяемся к процессу NUnit'a. Запускаем тест, попадаем в Visual Studio, по F11 идем вглубь NUnit'a и находим багу - откуда-то берется еще одна колонка с пустым ( "" ) именем, которая добавляется в запрос. С какой радости, мне выяснить не удалось - ставлю заплатку (проверяем, что имя колонки не является пустой строкой - точно ничего не испортит). Ура! Почти заработало: теперь вываливается на строке запроса к полю базы с именем "Version". Ну да - зарезервированное слово в MySQL. Надо писать так: `Version`. Ну, это решается совсем просто: ставим QuotePrefix и QuoteSuffix у OleDbCommandBuilder'a равными "`" . Казалось бы все. Не совсем: у нашей базы сложные связи друг сдругом, которые надо отключить на время тестов (для MS SQL использовалась недокументированная хранимая процедура "sp_msforeachtable" чтобы пройтись по всем таблицам и выполнить "ALTER TABLE ? NOCHECK CONSTRAINT all", для MySQL этот запрос не подходит). У MySQL же есть &lt;span id="_ctl0_MainContent_PostFlatView"&gt;&lt;span&gt;"SET FOREIGN_KEY_CHECKS = 0" но работает это только на session. А они открываются опять же где? Внутри NDbUnit'a! И до них не добраться. НО! Помните я в пункте 1) выше говорил что мы еще вернемся к настройкам драйвера? Там есть замечательное поле, навроде "set initial sql statement" (Точного названия не помню - нет под рукой). Вот туда и пишем &lt;/span&gt;&lt;/span&gt;&lt;span id="_ctl0_MainContent_PostFlatView"&gt;&lt;span&gt;"SET FOREIGN_KEY_CHECKS = 0". Теперь все нормально наконец-то.&lt;br /&gt;Это решение хоть и работает, но вызывает у меня не лучшие эмоции - добавление источника данных ODBC, через десятые руки работа с базой, внесение изменений в исходники NDbUnit'a... Должен быть другой способ, которого я не нашел. Если кто знает - подскажите в какую сторону смотреть.&lt;/span&gt;&lt;/span&gt;&lt;span id="_ctl0_MainContent_PostFlatView"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2675390911261851310-6975465654870854829?l=kluyg.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://kluyg.blogspot.com/feeds/6975465654870854829/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2675390911261851310&amp;postID=6975465654870854829' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2675390911261851310/posts/default/6975465654870854829'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2675390911261851310/posts/default/6975465654870854829'/><link rel='alternate' type='text/html' href='http://kluyg.blogspot.com/2007/10/ndbunit-mysql.html' title='NDbUnit и MySQL'/><author><name>Kluyg</name><uri>http://www.blogger.com/profile/02351144440711542004</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>
