For each major release IE gains new features and brings its support to industry standards more closely. However it also increases risk that older websites may not display correctly.
As a matter of fact, playing with IE 10 Developer Preview we noticed some rendering errors on our documentation web pages. We fixed it using the compatibility mode feature introduced by IE 8. With the upcoming release of IE 10 many customer sites will fall into the same kind of problem so here is how to fix it:
We need to force the client browser to use the Compatibility View when they visit our site. This is done either at the webpage level by adding the following meta tag to the header of each webpage you want to use compatibility mode:
<head> <!-- Mimic Internet Explorer 9 --> <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9" > <title>My webpage</title> </head>
or at the folder level by adding the following header to each Web.config file of each web directory you want to use compatibility mode:
<?xml version="1.0" encoding="utf-8"?> <configuration> <system.webServer> <httpProtocol> <customHeaders> <clear /> <add name="X-UA-Compatible" value="IE=EmulateIE9" /> </customHeaders> </httpProtocol> </system.webServer> </configuration>
or at the website level by implementing the META Switch directly on IIS as follow:
To configure IIS 7 on a Windows Server 2008-based computer to include a custom HTTP response header:
- Click Start, click Administrative Tools, and then click Internet Information Services (IIS) Manager.
- In the connections pane, expand the node for the server, and then expand .
- Click the Web site where you want to add the custom HTTP response header.
- In the Web site pane, double-click in the section.
- Under Actions, click Add.
- In the Name box, type X-UA-Compatible.
- In the Value box, type IE=EmulateIE9.
- Click OK.
To configure IIS 6 and earlier versions to include a custom HTTP response header:
- Click Start, click Run, type inetmgr.exe, and then click OK.
- Expand the server you want and then expand Web Sites.
- Right-click the Web site you want and then click Properties.
- Click the HTTP Headers tab.
- Under Custom HTTP headers, click Add.
- In the Custom header name box, type X-UA-Compatible.
- In the Custom header value box, typeIE=EmulateIE9.
- Click OK two times.
Note that all other browsers will simply ignore this custom HTTP Header. Also note that the compatibility mode set a the website level using your Web server can be overridden by setting a different compatibility mode at the web page level.
You can find more information here: Defining Document Compatibility.
Hope this helps.
I recently had to set-up a new development environment for a .NET application consuming an Oracle Database and found out that it wasn’t that easy, so I thought I’d share how I did it.
I’m just sharing my config and the way I did it.
SoftFluent cannot be held responsible if something goes wrong or does not work, and no support is provided. It’s neither official documentation nor the only way to do it, I’m just sharing my recipe
I downloaded and installed a free Oracle Database Express Edition.
The 11g Release 2 is available here: http://www.oracle.com/technetwork/products/express-edition/downloads/index.html
Yet, in this case I had to install a 10g in 32-bit which can’t be found on OTN anymore…..except on a Japanese OTN page?!!
If you need the Oracle Database 10g Express Edition (x86) as I did here’s the link: http://www.oracle.com/technetwork/jp/database/express-edition/downloads/102xewinsoft-089442-ja.html
Installing the Server
Nothing special here: install OracleXE.exe, keep everything by default:
- installation directory: C:\oraclexe
- default port: 1521
- configure the SYS or SYSTEM account
Once installed, an administration web page should start. Check that everything runs fine, if so, you’re done, now let’s prepare it for the .NET world!
Installing OCI & ODP.NET
Oracle Call Interface (OCI) is the basic and compulsory method to access Oracle using a client. On top of OCI, we’ll need the Oracle Data Access Components (ODAC). Both OCI and ODAC are a set of dlls and that are shipped as a ZIP, available on Oracle’s web site (http://www.oracle.com/technetwork/database/windows/downloads/utilsoft-087491.html).
In my case I specifically needed the ODAC1110621Xcopy.zip, in your case just be careful to use an ODAC version matching your Oracle Database version and bitness.
Then here’s how I configured my environment:
- I created a “C:\oracle” just like OracleXE did,
- I extracted the content of my ODAC1110621Xcopy.zip archive in this directory,
- I removed the path “C:\oraclexe\app\oracle\product\10.2.0\server\bin” from my PATH environment variable…
- …and added the “C:\oracle\instantclient_11_1” in the PATH so my OCI dlls are used,
- I copied the Oracle.DataAccess.dll that is in “C:\oracle\odp.net20\odp.net\bin\2.x\” in “C:\oracle\instantclient_11_1”,
- I removed all Oracle.DataAccess.dll from the GAC so I’ll be sure my .NET apps we’ll always use the Oracle.DataAccess.dll they reference,
- I copied the OraOps11w.dll contained in the “C:\oracle\bin” in “C:\oracle\instantclient_11_1”
Installing SQL Developer
- Download SQL Developer from OTN: http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html
- Extract and place the sqldeveloper directory in “C:\oracle”,
- Launch SQL Developer, and it should run nice & easy
Setting-up CodeFluent Entities
Since we removed Oracle.DataAccess.dll from the GAC, we need to place it in CodeFluent Entities directory so the Oracle Database Producer can access it.
Hope this helps,
Bing is a cool search engine.
When you’re a software publisher and you want to see how is your product seen and talked about on the web, Bing gives results that are more interesting than Google because the armies of little goblins working for Bing are more clever than the armies of little elves working for Google.
These Bing goblins, well educated and smart as they are, are capable of stripping out all the junk content coming from anywhere around the world, copied by infamous robots machines from outer regions, from bogus sites to bogus sites, from ghost content farm to ghost content farm. This bogus content causes some Google searches to become totally irrelevant, with the good information buried among tons of rubbish, at least for the 10 first returned pages.
So, Bing is better for some searches, but Alas! The manager goblins (the elder one with beards) at Bing have decided for no reason to remove the very useful “Narrow By Date” feature. This feature allows to … well… narrow the search by date. It’s very useful when you’re using a search engine to spot the same result regularly and are only interested by the “last” documents indexed, not the one from year 1966 say… (hmmm… I wonder whether those goblins were active at that date…).
Google has that available, up and ready, in the lower left region of the result page, in the Tools section (although I admit it’s not shown by default). Behind the covers, this Google ’Narrow By Date’ feature works by using the TBS query string parameter (ok, and for the non-geek readers, cool down, the following should remain in the field of all possibilities).
This is all explained here in details: How to trick Google into Giving you Realtime Search
The good news is Bing also supports this hidden TBS parameter as well! So the trick is easy: just add it manually to the query string and … tadaaaaaa:
After (with the TBS query string parameter added, and the return button pressed):
Once the “Narrow By Date” section has appeared it will stay there as long as you continue narrowing by date.
As part of the SoftFluent product team, I’m proud to officially announce our new product: LogToMail!
LogToMail is a light program (the whole thing is less than 1 MB), which can run as a Windows Service or in command line, and which monitors the event log of a server.
Whenever a new entry is logged, it can send an email with the content of the log entry to the appropriate person.
For instance, the following rule sends an email to user1, user2 and user3, when an error log event other than the 1058 and 1126 is written to the event log:
<rule name="SendToUsers" sendFrom="email@example.com" sendTo="firstname.lastname@example.org,email@example.com,firstname.lastname@example.org" sendFromDisplayName="LogToMail '#::Environment.MachineName#'"> (Event.EventType == 1) && (Event.EventCode != 1058) && (Event.EventCode != 1126) </rule>
We’ve actually been using this tool internally for years to ensure we don’t miss issues on our servers; it turned out to be so useful that we thought it might help others than us
There’s a free evaluation version (limited to 30 days) which is available here if ever you want to try it out
Hope this helps,
- .NET (15)
- .NET Domain Model (36)
- ASP.NET (35)
- ASP.NET MVC (8)
- C# (6)
- Cache (1)
- Data access (1)
- Developing Using CodeFluent Entities (159)
- Documentation (10)
- Entity Framework (9)
- Exploring the CodeFluent Runtime (18)
- Importers (16)
- Links (9)
- MySQL (2)
- News (67)
- Not CodeFluent Related :) (19)
- Oracle Database (31)
- Pet Shop Reloaded (9)
- PostgreSQL (2)
- PowerShell (1)
- Presentation (63)
- Producers (8)
- ServiceStack (1)
- SharePoint (11)
- SoftFluent Products (16)
- SQL Server (48)
- SQLAzure (39)
- Syncfusion (3)
- Templates (14)
- Tools (2)
- Uncategorized (2)
- WCF (10)
- Web API (2)
- WPF (10)
- March 2014 (2)
- February 2014 (7)
- January 2014 (4)
- December 2013 (1)
- November 2013 (2)
- October 2013 (1)
- September 2013 (2)
- August 2013 (2)
- July 2013 (4)
- June 2013 (5)
- May 2013 (5)
- April 2013 (6)
- March 2013 (5)
- February 2013 (4)
- January 2013 (1)
- December 2012 (3)
- November 2012 (8)
- October 2012 (8)
- September 2012 (4)
- August 2012 (7)
- July 2012 (8)
- June 2012 (11)
- May 2012 (4)
- April 2012 (11)
- March 2012 (11)
- February 2012 (12)
- January 2012 (14)
- December 2011 (12)
- November 2011 (16)
- October 2011 (5)
- September 2011 (16)
- August 2011 (15)
- June 2011 (22)
- May 2011 (16)
- April 2011 (11)
- March 2011 (16)
- February 2011 (16)
- January 2011 (14)
- December 2010 (1)
- November 2010 (9)
- October 2010 (1)
- September 2010 (1)
- July 2010 (2)
- June 2010 (2)
- May 2010 (1)
- April 2010 (1)
- March 2010 (2)
- February 2010 (1)
- January 2010 (4)
- December 2009 (5)
- November 2009 (1)
- August 2009 (1)
- July 2009 (1)
- June 2009 (2)