jump to navigation

Bring Site Offline 1 Φεβρουαρίου 2008

Posted by Νικόλας in .NET, Web Development, Windows.
Tags: , , ,
add a comment

Έχετε δεί σε ορισμένα sites, ένα μήνυμα του στύλ «This site is offline for maintenance. Please come back soon»;

Έχετε για παράδειγμα ένα .NET 2.0 site το οποίο θέλετε να αναβαθμίσετε. Για παράδειγμα, έχετε ένα DotNetNuke site το οποίο θέλετε να αναβαθμίσετε στη τελευταία έκδοση. Πώς θα γίνει όλο αυτό, χωρίς να έχεις τους χρήστες για το διάστημα που γίνεται η αναβάθμιση, να βλέπουν διάφορα error pages;

Η λύση είναι απλή. Τοποθετήστε στο Application Root Folder ένα αρχείο html με όνομα app_offline.html (ΠΡΟΣΟΧΗ, πρέπει να είναι ακριβώς αυτό το όνομα του αρχείου). Αυτό το αρχείο διαμορφώστε το όπως θέλετε. Εφόσων υπάρχει αυτό το αρχείο στο Application Root Folder, τότε ο IIS «ρίχνει» την εφαρμογή και εμφανίζει το περιεχόμενο του αρχείου. Για να φέρετε την εφαρμογή back online, απλά διαγράψτε ή μετονομάστε το αρχείο!

Η συγκεκριμένη διαδικασία δεν ισχύει μόνο για το DotNetNuke, αλλά για οποιαδήποτε ASP.NET 2.0 εφαρμογή.

Αυτό είναι όλο!

Χρήσιμα links

Advertisements

.NET Resource Editor 1 Αυγούστου 2007

Posted by Νικόλας in .NET, Web Development.
Tags: , , ,
add a comment

Ξεκίνησα να μεταφράζω ένα free .ΝΕΤ control στα Ελληνικά. Ο developer του control μου έστειλε το αρχείο .resx και ξεκίνησα τη μετάφραση.

Όχι και τόσο εύκολη διαδικασία. Ευτυχώς σήμερα ανακάλυψα το ResEx του Δημήτρη Παπαδημητρίου.

Κάνει τη δουλειά, είναι Ελληνικό, είναι .ΝΕΤ και είναι δωρεάν … κατεβάστε το!

Το σωστό encoding 15 Μαΐου 2006

Posted by Νικόλας in .NET, Web Development, Windows.
Tags: , , ,
7 Σχόλια

Αντιμετώπισα πρόσφατα ένα κλασσικό πρόβλημα. Μετέφερα μία βάση δεδομένων και μία web application από έναν server σε κάποιον άλλο. Για την ακρίβεια μετέφερα μία MySQL/PHP εφαρμογή από έναν Linux hosting provider σε έναν windows hosting provider.

Τί έγινε, μόλις τέλειωσα το Upload. Ο χαμός! Εκτός από τα χρώματα, όλα τα άλλα εμφανιζόντουσαν λάθος. Από PHP και MySQL δεν μπορώ να πω ότι κατέχω και ιδιαιτέρως (εντάξει δεν ξέρω, αλλά δεν το μαρτυράω), αλλά δεν άργησα να καταλάβω τί φταίει (και όχι δεν φταίει η αλλαγή από Linux σε Windows). Η νέα MySQL χρησιμοποιεί ως default encoding το latin1_swedish_ci (όπου ci Case Insensitive). Τα δεδομένα όμως μέσα στη βάση δεδομένων είχαν αποθηκευθεί ως greek (ISO 8859-7). Τέλος τα php χρησιμοποιούσαν ως template HTML αρχεία με δηλωμένο HTML encoding το ISO 8859-7 ωστόσο τα Connection Strings «τραβούσαν» τα δεδομένα από τη βάση με UTF-8.

Ωραίο μπάχαλο ε;!

Παλαιότερα, είχα ένα παρόμοιο πρόβλημα. Τα encodings μου στο ASPX ήταν σωστά, η βάση μου είχε σωστό Collation, αλλά μόλις τα ανέβασα στον provider, «μεταφράστηκαν» τα πάντα σε Κινέζικα.

Σήμερα, έπεσα πάνω σε ένα ερώτημα στο dotnetzone.gr, σχετικά με τα Ελληνικά και το σωστό encoding. Η φόρμα σωστή, το encoding σωστά δηλωμένο ως ISO 8859-7, αλλά μόνο οι Αγγλικοί χαρακτήρες «έφταναν». Οι Ελληνικοί έχαναν το δρόμο.

Πού θέλω να καταλήξω; Απλά να δώσω μια απλή και συνολική απάντηση σε όλα τα παραπάνω προβλήματα.

Ξεχάστε την εθνική υπερηφάνια, γιατί όσο και να λέμε ότι έχουμε δικό μας, κατά δικό μας προσωπικό εθνικό format, το ISO 8859-7 δεν τη κάνει σωστά τη δουλειά του. Ένα είναι λοιπόν το encoding και το όνομα αυτού Unicode Transformation Format – 8 ή UTF-8.

Σε ότι και αν κάνετε ΠΑΝΤΑ και ΜΟΝΟ αυτό το encoding να χρησιμοποιείται. Στο encoding της βάσης (η MS SQL έχει μία μικρή έλλειψη σε αυτό το θέμα, οπότε δηλώνετε ότι θέλετε στο collation), στο HTML encoding, στην XML, στο ASPX, ακόμα και κατά την αποθήκευση του αρχείου, πάντα να επιλέγετε UTF-8.

Και όλα τα προβλήματα θα χαθούν…

Ορισμένα παραδείγματα για τη δήλωση του σωστού (δηλ. UTF-8) encoding:

MYSQL:

@mysql_query(«SET CHARACTER SET ‘utf8′»)) και (@mysql_query(«SET NAMES ‘utf8′»)

MS SQL (είπαμε η MSSQL έχει μια μικρή έλλειψη, απλά δηλώνουμε multi-byte characters, γιατί χρησιμοποιεί Unicode):

ALTER TABLE Pinakas ALTER COLUMN Kolwna NVARCHAR(20)
και
INSERT INTO Pinakas VALUES(‘non_Unicode_Value’, Ν’Unicode_Value_N_makes_the_difference’).

HTML:

<meta http-equiv=»Content-Type» content=»text/html; charset=utf-8″>

XML:

<?xml version=»1.0″ encoding=»UTF-8″?>

ASP.NET:

<%@ Page Language=»C#» ContentType=»text/html» ResponseEncoding=»utf-8″ %>

WEB.CONFIG:

<?xml version=»1.0″ encoding=»utf-8″ ?>
<configuration>
<system.web>
<globalization requestEncoding=»utf-8″ responseEncoding=»utf-8″ />
</system.web>
</configuration>

Χρήσιμα Links