<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://forums.asp.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>DotNetNuke</title><link>http://www.dotnetnuke.com/tabid/795/Default.aspx</link><description>Discussions of DotNetNuke for ASP.NET 1.x and above.  &lt;a href="http://www.dotnetnuke.com/" target="_blank"&gt;DNN Home&lt;/a&gt; &lt;a href="http://aspadvice.com/SignUp/list.aspx?l=105&amp;c=25" target="_blank"&gt;Email List&lt;/a&gt;</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>Re: Firebird Provider</title><link>http://forums.asp.net/thread/1187572.aspx</link><pubDate>Fri, 03 Feb 2006 01:42:14 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1187572</guid><dc:creator>adefwebserver</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1187572.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=90&amp;PostID=1187572</wfw:commentRss><description>&lt;p&gt;&lt;BLOCKQUOTE&gt;&lt;div&gt;&lt;img src="/Themes/default/images/icon-quote.gif"&gt; &lt;strong&gt;RLyda wrote:&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;OT, but I'd also like to hear the current Core Team opinions on the DAL II proposal Michael et. al. worked so hard on...&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;/p&gt;
&lt;p&gt;I have two opinions on this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The MAIN reason we did the DAL II proposal was because the development configuration and complexity and amount of code needed for the DAL was prohibitive to module development. That has changed with DNN4 and I hope my &lt;strong&gt;&lt;a href="http://www.adefwebserver.com/DotNetNukeHELP/DNN_Module4/"&gt;Tutorial&lt;/a&gt;&lt;/strong&gt; proves it. 
&lt;li&gt;The Core has to deal with priorities and the current DAL does work. Also note,&amp;nbsp;it was slightly altered for DNN 4! &lt;/li&gt;
&lt;p&gt;So yeah it's odd that after putting nearly 100 hours into DALII I'm willing to let the Core off the hook.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I cannot ignore the fact that they addressed issues in other ways.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The DAL was altered to not require a separate project. This alone was half the problem! 
&lt;li&gt;The DAL was altered to support Generics. This is a big deal. Generics can save a lot of code&lt;/li&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;</description></item><item><title>Re: Firebird Provider</title><link>http://forums.asp.net/thread/1187456.aspx</link><pubDate>Thu, 02 Feb 2006 22:42:02 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1187456</guid><dc:creator>WStemple</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1187456.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=90&amp;PostID=1187456</wfw:commentRss><description>It's great to hear that we will be able to see the results of the hard work that has gone into this project!!&amp;nbsp; I am one those that would love to run the most currect version of DNN, but just cannot justify the cost of M$SQL, at this time.</description></item><item><title>Re: Firebird Provider</title><link>http://forums.asp.net/thread/1187448.aspx</link><pubDate>Thu, 02 Feb 2006 22:32:41 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1187448</guid><dc:creator>smehrotra75</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1187448.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=90&amp;PostID=1187448</wfw:commentRss><description>&lt;p&gt;&lt;font face=Tahoma size=2&gt;We're in the process of finishing up the firebird dp in the coming weeks. There are some outstanding issues that we have to iron out prior to the actual release (more to come on this after we've finished reaching agreement with the neccessary people concerned), but I see it being released very shortly. A lot of work has gone into this provider and it has not been an easy task to create it.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face=Tahoma size=2&gt;The Firebird team will provide more updates in the near future as more things start to materialize.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face=Tahoma size=2&gt;Sanjay&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face=Tahoma size=2&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>Re: Firebird Provider</title><link>http://forums.asp.net/thread/1186868.aspx</link><pubDate>Thu, 02 Feb 2006 14:55:00 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1186868</guid><dc:creator>RLyda</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1186868.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=90&amp;PostID=1186868</wfw:commentRss><description>&lt;p&gt;Ah, but even without the embeded mode,&amp;nbsp;a FireBird provider&amp;nbsp;holds promise to open DNN up to those who can not/will not use MS SQL Server...&amp;nbsp; I would also love to hear updates on this good team's progress.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;OT, but I'd also like to hear the current Core Team opinions on the DAL II proposal Michael et. al. worked so hard on...&lt;/p&gt;</description></item><item><title>Re: Firebird Provider</title><link>http://forums.asp.net/thread/1186237.aspx</link><pubDate>Wed, 01 Feb 2006 22:46:40 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1186237</guid><dc:creator>jbrinkman</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1186237.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=90&amp;PostID=1186237</wfw:commentRss><description>I wouldn't hold my breathe on the embedded mode.&amp;nbsp; As indicated by the &lt;a href="http://www.dotnetfirebird.org/blog/2005/11/how-to-use-embedded-firebird-in-aspnet.html"&gt;FirebirdDotNet team&lt;/a&gt;, it was not designed to work in a multi-process environment and therefore would impose serious restrictions on using it in an ASP.Net environment.&amp;nbsp; I can think of few scenarios where you have enough control to overcome the application recycling problem, yet don't have enough control to install the full FireBird dbms.&amp;nbsp; The one environment where an embedded db would provide real benefit(shared hosting) is the one place where it is extremely unlikely that they would turn off Overlapped Worker Process mode.</description></item><item><title>Re: Firebird Provider</title><link>http://forums.asp.net/thread/1185976.aspx</link><pubDate>Wed, 01 Feb 2006 18:58:31 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1185976</guid><dc:creator>ebradley4</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1185976.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=90&amp;PostID=1185976</wfw:commentRss><description>I'd like to hear from the FireBird provider team on the current state of the project.&lt;br /&gt;&lt;br /&gt;I see from the project web site that the vast majority of the stored procs have been converted--good work--thank you!&lt;br /&gt;&lt;br /&gt;Has any progress been made on getting the embedded mode to work?&amp;nbsp; Is there an official release coming soon?&lt;br /&gt;&lt;br /&gt;Thanks for any new information and thanks for you work on this.&lt;br /&gt;</description></item><item><title>Re: Firebird Provider</title><link>http://forums.asp.net/thread/1129565.aspx</link><pubDate>Thu, 01 Dec 2005 21:08:05 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1129565</guid><dc:creator>Goalstate</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1129565.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=90&amp;PostID=1129565</wfw:commentRss><description>Well, you make some good points.&amp;nbsp; One view would be that if you
want tight security, go for dedicated hosting.&amp;nbsp; I would guess that
most applications that run on shared hosting are less concerned about
security than are those that run on dedicated hosting.&lt;br&gt;
&lt;br&gt;
The ASP.NET/Firebird application that Goalstate just deployed, for
example (http://citizenlobbyist.net) handles nothing more than data
defining some dynamically-created public Web pages and some e-mail
addresses supplied by the owners of, and visitors to, those
sites.&amp;nbsp; Goalstate's other application there is a SQL Server-based
system for online editing and display of radio station program guides,
also not very private and not very sensitive.&amp;nbsp; Other than these,
there is just Goalstate's own Web site.&amp;nbsp; If Goalstate has a need
to collect credit card data in the future, it will probably use the
Paypal ASP.NET controls or some other third-party solution.&amp;nbsp; So,
an intruder on the shared server would get little more than a few
e-mail addresses and some dotfuscated assemblies.&lt;br&gt;
&lt;br&gt;
Hosting services will have to balance server security with the needs of
their customers and come up with some kind of compromise.&amp;nbsp;
Ultimately, what hosting customers want in the way of services, and are
willing to tolerate in the way of security vulnerabilities, will
probably determine the way this is decided.&lt;br&gt;
&lt;br&gt;
Carl&lt;br&gt;
&lt;br&gt;
&lt;br&gt;</description></item><item><title>Re: Firebird Provider</title><link>http://forums.asp.net/thread/1128620.aspx</link><pubDate>Thu, 01 Dec 2005 04:18:41 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1128620</guid><dc:creator>jbrinkman</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1128620.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=90&amp;PostID=1128620</wfw:commentRss><description>&lt;P&gt;Microsoft is strongly pushing that all shared hosting providers operate in medium trust which does not provide access to unmanaged code.&amp;nbsp; Now either Microsoft has some inside information on how .Net and IIS work and is making a sound security recomendation, or Microsoft, being the security conscious company that they are is taking an extremely conservative approach to security.&amp;nbsp; Given Microsoft's history with security, I do not put much stock in Microsoft being overly cautious when it comes to security.&lt;/P&gt;
&lt;P&gt;Anyone&amp;nbsp;with a strong&amp;nbsp;security background will tell you that security should always be applied in layers.&amp;nbsp; Each layer protects against different kinds of threats and makes the hackers job more difficult.&amp;nbsp; If you allow websites to operate at full trust, including access to unmanaged code, then you have effectively disabled all Code Access Security and are now relying strictly on OS security.&amp;nbsp;&amp;nbsp;With that being the case, you have completely removed any security provided by .Net.&amp;nbsp; Microsoft is not the only ones recommending against running at full trust.&amp;nbsp; Every security company I have seen recommends the same thing.&amp;nbsp; &lt;BR&gt;&lt;BR&gt;So you may continue to believe that it is ok, but the tide is already turning in the hosting community and it won't be long before almost all hosters start restricting accounts.&amp;nbsp; You have been warned.&lt;/P&gt;</description></item><item><title>Re: Firebird Provider</title><link>http://forums.asp.net/thread/1128339.aspx</link><pubDate>Wed, 30 Nov 2005 21:25:23 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1128339</guid><dc:creator>Goalstate</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1128339.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=90&amp;PostID=1128339</wfw:commentRss><description>I am far from being an expert on shared hosting, but my understanding
is that they rely upon OS features that exclude users from writing into
one another's disk and process space, which would not require a managed
code only policy to work.&amp;nbsp; If problems develop nonetheless due to
a specific account's actions, the remedy is generally to identify and
terminate that account.&amp;nbsp; I have personally never encountered a
managed code only policy in a hosting service's usage agreement.&lt;br&gt;
&lt;br&gt;
Here is the relevant section from my own hosting service's usage policy:&lt;br&gt;
&lt;br&gt;
"[We do not] allow more than 20% of system or network resources to be
in use by any one website for any length of time. Any website that
poses security threats or adverse effects on any other [of our] users
is subject to immediate termination. When appropriate compliance has
been deemed by [us], the website may be reconnected without any fees or
charges."&lt;br&gt;
&lt;br&gt;
So, this allows me to invoke unmanaged code from my Web and other
hosted applications, but it's my responsibility to make sure the code
is OK, and if I mess up, they'll get me.&amp;nbsp; &lt;br&gt;
&lt;br&gt;
Carl&lt;br&gt;
&lt;br&gt;
&lt;br&gt;</description></item><item><title>Re: Firebird Provider</title><link>http://forums.asp.net/thread/1127730.aspx</link><pubDate>Wed, 30 Nov 2005 12:25:30 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1127730</guid><dc:creator>jbrinkman</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1127730.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=90&amp;PostID=1127730</wfw:commentRss><description>I think that you will only have this option for a little while longer.&amp;nbsp; Personally I would not want to run embedded on a shared server.&amp;nbsp; Think about this.&amp;nbsp; If you can run an arbitrary piece of unmanaged code on that machine, then so can every other website.&amp;nbsp; Your site security is severely compromised.&amp;nbsp; Calling unmanaged code is not allowed in anything but Full trust, which is not a secure environment for running a public website.</description></item><item><title>Re: Firebird Provider</title><link>http://forums.asp.net/thread/1127618.aspx</link><pubDate>Wed, 30 Nov 2005 10:06:37 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1127618</guid><dc:creator>dawoe</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1127618.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=90&amp;PostID=1127618</wfw:commentRss><description>Hi,&lt;br&gt;
&lt;br&gt;
I found another way to run embedded firebird in a ASP.NET application. &lt;br&gt;
I'm running this on a brinkster account. I asked brinkster, and they
didn't want to place the fbembed.dll in the system32 so i tried the
workaround on this page :&lt;br&gt;
&lt;br&gt;
&lt;a href="http://www.balconsulting.net/DasBlog/PermaLink,guid,a50036b2-cf16-4467-a284-3380e7a77c12.aspx"&gt;http://www.balconsulting.net/DasBlog/PermaLink,guid,a50036b2-cf16-4467-a284-3380e7a77c12.aspx&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
Here is the code in VB for those who want to try it.&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;lt;DllImport("KERNEL32.DLL")&amp;gt; _&lt;br&gt;
&amp;nbsp;&amp;nbsp; Public Shared Function LoadLibraryA(ByVal lpLibFileName As String) As Integer&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; End Function&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;DllImport("KERNEL32.DLL")&amp;gt; _&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Public Shared Function FreeLibrary(ByVal hLibModule As Integer) As Integer&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; End Function&lt;br&gt;
&lt;br&gt;
Dim lnHandle As Integer = LoadLibraryA(LoadLibraryA(Server.MapPath("~/bin") + "\fbembed.dll")&lt;br&gt;
&lt;br&gt;
'Put your DB-code here&lt;br&gt;
&lt;br&gt;
FreeLibrary(lnHandle)&lt;br&gt;
&lt;br&gt;
By the way, you have to import System.Runtime.InteropServices and the
folder where you place the fbembed.dll needs modify permissions&lt;br&gt;
&lt;br&gt;
You can see it in action &lt;a href="http://www.stokkemerstadsmuzikanten.com/firebird.aspx"&gt;here&lt;/a&gt; on a brinkster account. I did a SELECT * FROM PHONE_LIST on the EMPLOYEE sample db&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;</description></item><item><title>Re: Firebird Provider</title><link>http://forums.asp.net/thread/1127280.aspx</link><pubDate>Wed, 30 Nov 2005 00:13:27 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1127280</guid><dc:creator>adefwebserver</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1127280.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=90&amp;PostID=1127280</wfw:commentRss><description>Thank you for taking the time to report on your finings on this issue. We should have the DotNetNuke Firebird provider ready for BETA in January,&lt;br /&gt;&lt;br /&gt;We plan to release the normal Firebird server version then fix this embeded issue, your research will be very helpful.&lt;br /&gt;&lt;br /&gt;Personally I think we will see:&lt;br /&gt;A) How much demand there is for the embeded version&lt;br /&gt;B) How many hosts refuse to instal the files needed.&lt;br /&gt;&lt;br /&gt;I think that there will be a lot of people who start sites using SQL server Express then realize that for a more powerful site they have to pay big bucks for SQL server. Then they will see that Firebird provides unlimited growth for free.&lt;br /&gt;</description></item><item><title>Re: Firebird Provider</title><link>http://forums.asp.net/thread/1127264.aspx</link><pubDate>Tue, 29 Nov 2005 23:52:21 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1127264</guid><dc:creator>Goalstate</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1127264.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=90&amp;PostID=1127264</wfw:commentRss><description>One more thing:&lt;br&gt;
&lt;br&gt;
I followed your link and there was another link there to this page:&lt;br&gt;
&lt;br&gt;
http://www.dotnetfirebird.org/blog/2005/11/how-to-use-embedded-firebird-in-aspnet.html&lt;br&gt;
&lt;br&gt;
This claims that the best way to deal with the problem is to change the
.NET provider source to look in your application's own folder and then
re-build it.&lt;br&gt;
&lt;br&gt;
That would be a less klugy alternative to the approach that I have taken.&amp;nbsp;
Also, to me this implies that the .NET provider might eventually
incorporate this as a feature (e.g., a connection string parameter that
allows you to specify where to find fbembed.dll.&amp;nbsp; I have actually
suggested this in the past but so far do not have a response).&lt;br&gt;
&lt;br&gt;
There is another interesting comment on the same page regarding ASP.NET
restarts, which occur by default I think every 5,000 requests or
so.&amp;nbsp; The problem is that the restarts overlap to provide
uninterrupted service, so that during the transition there are actually
two ASPNET processes running at once.&amp;nbsp; &lt;br&gt;
&lt;br&gt;
The author seems to think that the database file would remain locked by
the first ASPNET process until that process was terminated, but unless
I miss my guess (help me out here if this is wrong), it would only
remain locked so long as that process was maintaining an open
connection.&lt;br&gt;
&lt;br&gt;
Even so, since the first ASPNET
instance has the ability to lock the FDB file at any time before it is terminated, the
second one will not be able to access it if the first one is
using it, and vice versa.&amp;nbsp; This means that some of your requests might be refused
during the period of transition.&amp;nbsp; I would guess that this period
would last until the last request (to your application) that is in progress for the old
ASPNET instance is satisfied, which probably wouldn't be much longer
than it takes to load the most demanding page of your application.&amp;nbsp; &lt;br&gt;
&lt;br&gt;The author of this comment is more or less negative about using
Firebird's
embedded server due to this restart problem, but so far I have decided
not to be discouraged.&amp;nbsp; If you have turned pooled connections off
(as you must for this to work practically), and close your open
connections as soon as you are finished with them, then even though the
processes are overlapping in time, the possibility that both will
simultaneously want to have a connection *open* should be reduced even
further.&amp;nbsp; Some simple try/catch/re-try code around your Open()
statements could
bulletproof you against this remaining risk somewhat, possibly reducing
the problem to
a long page load every so often.&amp;nbsp; &lt;br&gt;
&lt;br&gt;
Caveat:&amp;nbsp; I haven't proven the above;&amp;nbsp; it is
speculation.&amp;nbsp; But the advantages of using embedded Firebird on
shared hosting seem so
significant that it seems worth working through these little problems
until and if something truly insurmountable arises.&lt;br&gt;
&lt;br&gt;
Carl&lt;br&gt;
&lt;br&gt;
&lt;br&gt;</description></item><item><title>Re: Firebird Provider</title><link>http://forums.asp.net/thread/1127228.aspx</link><pubDate>Tue, 29 Nov 2005 23:07:57 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1127228</guid><dc:creator>Goalstate</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1127228.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=90&amp;PostID=1127228</wfw:commentRss><description>Hi,&lt;br&gt;
&lt;br&gt;
I recently deployed a small ASP.NET app on third party hosting using
the Firebird embedded server (and .NET Data Provider), and encountered
the error that you have described.&lt;br&gt;
&lt;br&gt;
My present belief is that the problem is caused by the fact that the
Firebird embedded server assumes that the embedded server library
(fbembed.dll) will be in the application startup folder.&amp;nbsp; Since
this is an ASP.NET application, the application that is actually
running is aspnet_wp.exe, and so the application startup folder in
which the data provider looks for the server DLL is the folder from
which aspnet_wp.exe was started, not the folder in which your
application's own main assembly is located.&lt;br&gt;
&lt;br&gt;
The problem, of course, is that for third party hosting the folder from
which aspnet_wp.exe is run is not usually accessible to a hosted
account, and so there is no way to place a copy of fbembed.dll there
other than to ask the hosting service to do it for you, and they may
have security issues with running a DLL that is not known to them in a
common folder, or be otherwise unresponsive to your request.&lt;br&gt;
&lt;br&gt;
My own workaround for this involves a bit of a kluge;&amp;nbsp; I simply
change the current directory in my application code just prior to
opening any connection to the database.&amp;nbsp; As it happens, this
allows the fbembed DLL to be loaded when the connection is being
opened.&amp;nbsp; This was discovered emprically, through trial and
error;&amp;nbsp; I have not seen any documentation of this as a feature.&lt;br&gt;
&lt;br&gt;
Once loaded, by the way, the DLL normally stays in memory, and at that
point the current directory could be anything you like so long as the
DLL is not unloaded and re-loaded.&amp;nbsp; Since I don't really know
whether aspnet_wp.exe would take exception (no play on words intended)
to leaving the current folder changed, I am presently setting it back
after each call to Open().&amp;nbsp; This has created no problems thus
far;&amp;nbsp; however, it may be that leaving it set to the location of
the DLL, at least while you are performing database accesses, would be
equally safe, or safer.&amp;nbsp; Or, it may be that problems will develop
using either or both approaches down the road as the load factor
increases, but so far, so good.&amp;nbsp; Please post your results if you
have experimented with this.&lt;br&gt;
&lt;br&gt;
In case it is not obvious, here is the code:&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; protected void OpenConnectionInAppBinDirectory()&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; string sOriginalDirectory = Directory.GetCurrentDirectory();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; string
sApplicationBinPath = (string)&amp;nbsp;
GlobalValues.MainApplicationBinFolder;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Directory.SetCurrentDirectory(sApplicationBinPath);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; this.connection.Open();&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //I am hoping that Firebird only looks in the bin folder to find its&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // DLL if that is not loaded, and once found, it does not need to be&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // running from the bin folder any more (even though the connection&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; // remains open).&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;
if((sOriginalDirectory != null)&amp;amp;&amp;amp; (sOriginalDirectory.Length
&amp;gt; 0))&lt;br&gt;
&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; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Directory.SetCurrentDirectory(sOriginalDirectory);&lt;br&gt;
&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; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;
&lt;br&gt;
There are a number of other minor issues with using Firebird rather than SQL Server, all surmountable thus far.&lt;br&gt;
In building the abovementioned application, I ported a set of data
access classes designed for SQL Server to Firebird.&amp;nbsp; Briefly, here
are a few issues encountered:&lt;br&gt;
&lt;br&gt;
* The Firebird .NET data provider does not seem to support the
DBConcurrencyException, documentation notwithstanding.&amp;nbsp; This seems
to be due to a limitation in Firebird itself (the number of rows
affected by an update or delete cannot be returned via a query,
although it is available from within a stored procedure).&amp;nbsp; My own
solution was to throw a custom exception from within each stored
procedure when the number of rows affected is 0, and then trap this
centrally in the application's data access classes, re-throwing it as a
DBConcurrencyException.&lt;br&gt;
&lt;br&gt;
* Generating typed datasets must be done in your own program code, as
there is no automated support for this.&amp;nbsp; Here is some sample code
that generates these from a DataSet that has been populated by reading
rows from the database's member tables the correspond to each of the
DataSet's own internal tables.&amp;nbsp; This can be part of a console
application that is run during development each time your database
schemata change:&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; StreamWriter
tw = new StreamWriter(new
FileStream(sPathToFileToHoldWrapperClassSourceCode,&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;&amp;nbsp; FileMode.Create,&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;&amp;nbsp; FileAccess.Write));&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;
CodeNamespace&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cn = new
CodeNamespace(sDataSetWrapperClassNamespace);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; CSharpCodeProvider cs = new CSharpCodeProvider();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ICodeGenerator&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cg = cs.CreateGenerator();&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; TypedDataSetGenerator.Generate(ds, cn, cg);&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; cg.GenerateCodeFromNamespace(cn, tw, null);&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; tw.Flush();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; tw.Close();&lt;br&gt;
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ds.WriteXmlSchema(sPathToXsdFileToHoldDescriptionOfDataTableColumns);&lt;br&gt;
&lt;br&gt;
* Only one process can access the database file at a time when using
the embedded server.&amp;nbsp; For an ASP.NET application, that one process
will normally be aspnet_wp.exe.&amp;nbsp; The multiple threads created for
each browser request seem to have no problem sharing the
database;&amp;nbsp; although access is restricted to one process, I am not
aware of any limit on the number of concurrent threads.&amp;nbsp; While
this works great for Web sites, if you have any reporting or other
software that wants to access the database while your Web site is
operational, you may be out of luck.&amp;nbsp; For such software, or if you
want to back up, it will probably be necessary to briefly stop
the ASP.NET process while the .FDB file is copied.&amp;nbsp; For backup,
you would want to
do this anyway to ensure that the database is in a consistent state
when it is backed up.&amp;nbsp; While I haven't tried this, it may be that
any reporting or other tools that you write using ASP.NET would be able
to run concurrently without difficulty, even if they are part of a
separate ASP.NET application (so long as they are sharing the same
instance of aspnet_wp.exe).&amp;nbsp; If someone tries this and can confirm
or deny it, I'd be interested in knowing the result.&lt;br&gt;
&lt;br&gt;
* This is probably obvious, but if you place your database file inside
your bin folder, then each time it changes it will reset the ASP.NET
process, causing your Session state to be dumped, as well as other
undesirable phenomena.&amp;nbsp; So, of course you must put it in its own
folder and specify the path to this folder in the connection
string.&amp;nbsp; This means separate connection strings for your
development and production environments.&amp;nbsp; &lt;br&gt;
&lt;br&gt;
Other than the above, nothing major comes to mind, although of course
there are numerous minor differences in stored procedure syntax, SQL
syntax, etc.&amp;nbsp; The data provider also seems quite solid so far, as
well.&amp;nbsp; IMHO, Firebird *is* the proverbial free lunch that has been
dropped unexpectedly in front of developers by Borland and the open
source community.&amp;nbsp; It would not surprise me to learn that Borland
made Interbase available to the open source community in the hope of
undermining one of their competitors' major revenue streams and in
generally stopping things from getting locked too tightly to the
Windows platform (e.g., a Windows .NET application
using Firebird can be more easily ported to a Mono application runing
under Linux).&amp;nbsp; While that is pure and uninformed speculation, is
does provide one possible explanation for why we have had this free,
stable and unrestricted asset placed before us on a silver
platter.&amp;nbsp; That, and of course the dedicated denizens of the open
source projects that created it its present form.&amp;nbsp; Well, I am new
to Firebird, so I may have all of this political stuff all wrong, but
that's my present working hypothesis.&lt;br&gt;
&lt;br&gt;
Carl&lt;br&gt;
&lt;br&gt;
&lt;br&gt;</description></item><item><title>Re: Firebird Provider</title><link>http://forums.asp.net/thread/1108690.aspx</link><pubDate>Thu, 10 Nov 2005 13:41:42 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1108690</guid><dc:creator>adefwebserver</dc:creator><slash:comments>0</slash:comments><comments>http://forums.asp.net/thread/1108690.aspx</comments><wfw:commentRss>http://forums.asp.net/commentrss.aspx?SectionID=90&amp;PostID=1108690</wfw:commentRss><description>&lt;BLOCKQUOTE&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="txt4"&gt;&lt;img src="/Themes/default/images/icon-quote.gif"&gt;&amp;nbsp;&lt;strong&gt;dawoe wrote:&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="quoteTable"&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="txt4"&gt; Isn't this going to be a problem for hosted environment ?&lt;BR&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/BLOCKQUOTE&gt;&lt;BR&gt;&lt;BR&gt;We are still researching this. However in a hosted environment they would still have to install the Firebird .Net drivers also.This may not be a show stopper. Either way it will still run in the normal server mode. Many hosts will run Firebird because it is free.</description></item></channel></rss>