|
|
Πρόσφατες Δημοσιεύσεις
-
|
Πώς μπορούμε να διαγράψουμε άδειους φακέλους . Imports System.IO Public Sub DelEmptyFolders( ByVal DirPath As String ) Dim SubDirs() As String = Directory.GetDirectories(DirPath) Dim strDir As String For Each strDir In SubDirs DelEmptyFolders(strDir) Next If Directory.GetFiles(DirPath).Length + Directory.GetDirectories(DirPath).Length = 0 Then Directory.Delete(DirPath) Console.WriteLine("Διαγραφή φακέλου: " & DirPath) End If End Sub Οπότε μπορούμε να κάνουμε κλήση της DelEmptyFolders μεθόδου π.χ. DelEmptyFolders ("C:\") για να διαγραφούν όλοι οι άδειοι φάκελλοι στό σύστημα...
|
-
|
Επειδή πρίν από κάποιο διάστημα είχα ένα πρόβλημα μέ μιά Database σε ένα pc που είχε κτυπήσει ο δίσκος και μπόρεσα και έσωσα το mdf από την βάση αλλά είχα πρόβλημα στο attach της database έθεσα το πρόβλημα στο dotnetzone καί ΄μπόρεσα να βρώ την λύση μέσα από αυτό. Σας παραθέτω το link που είχε γίνει η σχετική συζήτηση τυχόν και βρεθεί και κάποιος άλλος σ'αυτή την θέση. http://www.dotnetzone.gr/cs/forums/8927/ShowPost.aspx Ευχαριστώ τον raPhaeL για την βοήθειά του...
|
-
|
Imports System.Data.OleDb Imports ADODB Public Class Form1 Inherits System.Windows.Forms.Form Private Sub Form1_Load( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase .Load AdoDBRecToDs("myServerName", "pubs") End Sub Private Function AdoDBRecToDs( ByVal Server As String , ByVal DbName As String ) Dim cnn As Connection = New ADODB.Connection() Dim adors As Recordset = New ADODB.Recordset() cnn.open("PROVIDER=SQLOLEDB;DATA SOURCE=" & Server & ";" & _ "INITIAL CATALOG=" & DbName & ";INTEGRATED SECURITY=SSPI;") 'Δημιουργία recordset-- 'Δήλωση οποιουδήποτε πίνακα στην βάση Dim sql As String = "select * from authors" adors.open(sql, cnn, CursorTypeEnum.adOpenForwardOnly, LockTypeEnum.adLockReadOnly, 0) Dim da As New OleDbDataAdapter() Dim ds As New DataSet() 'Μεταφορά του recordset στο Dataset da.Fill(ds, adors, "authors") 'Γέμισμα ενός Grid grd.DataSource = ds.Tables("authors") 'Τερματισμός σύνδεσης cnn.Close() End Function End Class...
|
-
|
Ο παρακάτω κώδικας μάς δείχνει άν η εφαρμογή μας ήδη τρέχει σε κάποιο προηγούμενο process Imports System.Runtime.InteropServices Public Const ERROR_ALREADY_EXISTS As Integer = 183 Public Declare Function CreateMutexA Lib "Kernel32.dll" ( ByVal lpSecurityAttributes As Integer , ByVal bInitialOwner As Boolean , ByVal lpName As String ) As Integer Public Declare Function GetLastError Lib "Kernel32.dll" () As Integer Public Function ProcIsRunning() As Boolean ' Προσπάθεια δημιουργίας ενός Default Mutex το οποίο ανήκει στο process 'Το MyApplication μπορεί να αντικατασταθεί μέ το όνομα της εφαρμογής . CreateMutexA(0, True , "MyApplication") Return (GetLastError() = ERROR_ALREADY_EXISTS) End Function...
|
-
|
Ψάχνοντας πληροφορίες για ένα κείμενο έπεσα σε μια καταπληκτική παράγραφο, στο Guidelines for Debugging του Visual Studio Team System . Δεν μπόρεσα να αντισταθώ και να σας τη μεταφέρω! "Test will never be able to find all the bugs. It is not possible. Code is too complex. Even if test could find all the bugs, you would never have time to fix all of them . The right thing to do is to design your product so that bugs are not in the product from the start. Save yourself the trouble of fixing them later. You must take responsibility for the quality of your code. The test team just verifies the quality of your code. Do not depend on testers to clean up your mess. " Η υπογράμμιση δική μου. Ή να το πούμε και αλλιώς: 3 testers δεν αντικαθιστούν 1 senior developer....
|
-
|
Τέσσερα απαραίτητα δωρεάν εργαλεία για να κάνετε τη ζωή σας με την XML πιό εύκολη. Ειδικά το XSD Inference 1.0 είναι κάτι που αρκετοί από εμάς μπορεί να χρειαστούν. XSD Object Code Generator The utility builds C# and VB.NET data structures from an XSD schema that can serialize and de-serialize to XML and other formats. This tool is available here. Microsoft XML Diff and Patch This tool lets you identify changes between two XML files. It also lets you patch the original XML file with the changes to get the final XML file. The assembly, source code, documentation and samples for this tool are now available here. XSD Schema Validator Leveraging the top conformant XML Schema Parser released with .Net Frameworks, this tool allows you to validate an XML documents against an W3C XML Schema (XSD) or an XML Data-Reduced (XDR) schema, verify the schemas are valid, or simply check the well-formedness of XML documents. Microsoft XSD Inference 1.0 The Microsoft XSD Inference utility is used to create an XML Schema definition...
|
-
|
Ενας μικρός οδηγός αναφοράς για τα στοιχεία τα οποία συνθέτουν τα μισητά, πλην όμως απαραίτητα (?) εταιρικά meetings. Χρήσιμος για να έχετε κάτι να κάνετε την ώρα των meetings....
|
-
|
Just a few days ago I heard about Project Origami ( http://www.origamiproject.com ). Today I saw the promo video made by D-kitchen ( http://www.d-kitchen.com ). It's smaller than laptop, it's bigger than a PDA. If you consider your PDA useful, I think you'll find it useful too. Based on what's included in the video, here are my estimations about it features: (You can see the related photos in each item) Dimensions: About 27 x 15 cm (10,6 x 6 inches) Screen diminutions: 18cm x 11cm (7 x 4 inches) (8 inches diag. ?) Touch screen Stylus (about 7cm long) Different colors: Dark grey [1] , light grey [2] , light green [6] Desktop cradle (about 25cm wide) [1] It may have a gps receiver included [3] It runs on windows xp (as far as I can tell from the window borders) [7] [8] You can browse the internet through Internet explorer [7] It runs Microsoft Streets & Trips [3] You can play games on it, although in the video the rendering does not seems so smooth It has a separate keyboard at almost the same size as the origami...
|
-
|
Want to create an online photo tour of your vacation to Bali? An overview of the South American precipitation cycle for your science class? A shrine to your pet ferret? Now's your chance. We're testing a new product that makes creating your own web pages as easy as creating a document in a word processor. Google Page Creator is a free tool that lets you create web pages right in your browser and publish them to the web with one click. There's no software to download and no web designer to hire. The pages you create are hosted on Google servers and are available at http://yourgmailusername.googlepages.com for the world to see. At http://pages.google.com...
|
-
|
Στο συγκεκριμμένο θέμα θα δούμε πώς μπορούμε νά κάνουμε upgrade του σχήματος της βάσης μασ σέ νέο version ακόμα και όταν το version που είναι εγκατεστημμένο είναι πολύ παλαιότερο και δέν θελουμε να τρέξουμε όλα τά προηγούμενα patches που μπορεί νά υπάρχουν. Ας υποθέσουμε ότι έχουμε ένα πινακα στην βάση μας όπως παρακάτω. myTable ( columnA INT not null, columnB varchar(10) not null, columnC varchar(60) null columnD varchar(20) null columnE float default(0) ) και θέλουμε τώρα νά τον κάνουμε upgrade στην νέα version myTable ( columnA INT not null, columnB varchar(10) not null, columnC varchar(60) null columnD varchar(20) null columnE float default(0) columnF smallint default(0), columnG numeric(28,2) default(0) ) σίγουρα θά μπορούσαμε νά τρέξουμε ένα Alter statement και αυτό νά πραγματοποιηθεί.Αλλά η column columnF έχει δημιουργηθεί σέ προηγούμενο version της εφαρμογής μας το οποίο και δέν έχει εγκατασταθεί.Πώς θα μπορούσαμε να κάνουμε την νέα εγκατάσταση χωρίς να χρειάζεται να τρέξουμε το προηγούμενο set εγκατάστασης?...
|
-
|
Είναι σύνηθες για τις εταιρίες να θέτουν τυποποιημένες διαδικασίες όταν μεγαλώνουν. Τι γίνεται όμως όταν τις διαδικασίες έχει επινοήσει ένας Πολύξερος Τοθελωχθές, και για να κάνετε μια αίτηση απαιτείται να συμπληρώσετε μια αίτηση αίτησης;...
|
-
|
Διάβασα πρόσφατα το άρθρο "What is a software architecture?" στο τελευταίο τεύχος του Rational Ezine. Αλήθεια, τί σημαίνει τελικά η λέξη architecture και τί σημαίνει architect? Φαίνεται λες και ο καθένας εννοεί κάτι διαφορετικό με τη λέξη architecture και architect, σε σημείο που να μην καταλαβαίνει ο ένας τί λέει ο άλλος σε μια συζήτηση. Τα πράγματα ήταν απλά πριν από μερικά χρόνια. Architecture ήταν χονδρικά η δομή και η συμπεριφορά ενός συστήματος. Το πρόθεμα software δεν έμπαινε γιατί πολλοί το θεωρούσαμε αυτονόητο. Αρχιτέκτονας ήταν αυτός ο οποίος σχεδίαζε τη βασική δομή της εφαρμογής, όριζε τα components, τις σχέσεις και τη συμπεριφορά τους. Ήταν το άτομο που ήξερε πως δουλεύει η εφαρμογή. Μετά όμως τα πράγματα άρχισαν να γίνονται πιο περίπλοκα. Αντί για desktop, άντε client-server εφαρμογές, αρχίσαμε να έχουμε n-tier συστήματα. Κάποια στιγμή αποκτήσαμε τόσους server και συστήματα που έπρεπε να ελέγχουμε που τρέχει τί και πως θα κάνουμε διαχείριση του φόρτου. Τελευταία, η κάθε επιχείρηση χρησιμοποιεί τόσα...
|
-
|
Private Sub TreeView_VisibleChanged( ByVal sender As Object , ByVal e As System.EventArgs) Handles TreeView1.VisibleChanged 'Με αυτό τον τρόπο αποφεύγουμε την εμφάνιση της horizontal scrollbar όταν το treeview γεμίζετε ενώ η κατάσταση του είναι hidden. 'Δηλώνουμε το width σε 0, εφόσον το treeview είναι docked, τότε αυτό θά πάρει το μέγεθος που πρέπει αλλά το μέγεθος του scroll bars σ' αυτό θά επαναυπολογιστεί CType (sender, TreeView).Width = 0 End Sub...
|
-
|
Εξαιρετικά εύχρηστο και χρήσιμο εργαλείο για να οργανώσετε τα bookmarks σας on-line, και να τα έχετε πάντα προσβάσιμα όπου και να βρίσκετε: http://del.icio.us/ Πολύ ενδιαφέρουσα είναι και η πλοήγηση στα links όλων των χρηστών με βάση το popularity τους. Αναζητήστε για παράδειγμα links χρηστών που έχουν χαρακτηριστεί (taged) με τη λέξη "winforms" και δείτε καταπληκτικά links για winforms. Δείτε δίπλα επίσης άλλα σχετικά tags με αυτό που ψάχνετε. Δοκιμάστε και τα δύο κουμπιά - links που σας προσθέτει στα favorites του browser σας, δίνουν μεγάλη ευκολία στην άμεση προσθήκη links στη συλλογή σας. Εγώ το βρήκα στο wired ....
|
-
|
700 hits στο RSS feed του blog μου? Και δεν έχω γράψει ούτε ένα post? Το ξερω, το ξέρω, είμαι απαράδεκτος! Έχω καλή δικαιολογία όμως. Παντρεύτηκα τον Ιανουάριο! Υπόσχομαι ότι από εδώ και πέρα θα γράφω και μάλιστα τακτικά. Έχω εξάλλου τρουλάχιστον 4-5 διαφορετικές ιστορίες και φιλοσοφικές αναζητήσεις που θα ήθελαν να μοιραστώ μαζί σας!...
|
-
|
Το google μόλις ενεργοποίησε το chat για το gmail. Με πέταξε έξω, και μόλις ξαναμπήκα... αλλαγές. Quick contacts αριστερά με τις πιο συχνά χρησιμοποιούμενες επαφές, on-line status και block αλά msn messenger, hover παράθυρο με πληροφορίες πάνω από κάθε e-mail.... Ψάχνω κάποιον απεγνωσμένα για να δοκιμάσω το chat... αλλά όλες μου οι 360 επαφές είναι off-line......
|
-
|
Πολλές φορές μπορεί νά έχουμε ένα πεδίο varchar του οποίου τάσ στοιχεία είναι χωρισμένα μέ Delimited και θέλουμε νά τα διαχωρίσουμε. Αυτό μπορεί νά γίνει βέβαια από τον client μέσω VB.NET η C#.Αλλά πώς μπορούμε νά το κάνουμε μέσα από τον SQL όταν το συγκεκριμμένο πεδίο θέλουμε νά το χρησιμοποιήσουμε μέσα σε μιά Stored Procedure στον MS SQL. Παρακάτω σας παραθέτω μία function με την οποία μπορούμε να το πετύχουμε. if exists ( select * from dbo. sysobjects where id = object_id (N '[dbo].[FnBreakDelimited]' ) and xtype in (N 'FN' , N 'IF' , N 'TF' )) drop function [dbo].[FnBreakDelimited] GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS OFF GO create function dbo.FnBreakDelimited(@StringToBreak varchar (255),@Delimiter varchar (1)) returns int as BEGIN declare @pos int select @pos= charindex (@Delimiter,@StringToBreak) return @pos END GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO Χρησιμοποίηση της παραπάνω function Ας υποθέσουμε πώς έχουμε μιά varchar μεταβλητή Declare @vStr varchar (80) Επίσης μία varchar μεταβλητή...
|
-
|
"Επεσα" πάνω σε μια αναφορά και σκέφτηκα οτι είναι άξια λόγου για να την αναφέρω μια και οι δύο τύποι που αναπτύσσουν τη συγκεκριμένη βιβλιοθήκη έχουν βάλει ΠΟΛΥ πράγμα, όπως θα δείτε και παρακάτω. Η C5 είναι μια βιβλιοθήκη generic collection classes gia C# και άλλες γλώσσες του CLI για το Microsoft.NET 2.0 και το Mono 1.2. Προσφέρει λειτουργίες και δομές δεδομένων που δεν παρέχουνται από το standard System.Collections.Generic namespace. Εδώ μπορείτε να βρείτε binaries, sources, online και downloadable documenation και ένα e-book που περιγράφει τη βιβλιοθήκη: http://www.itu.dk/research/c5/ Αναφέρω παρακάτω επιγραμματικά το τι περιέχει, περισσότερα μπορείτε να βρείτε στο online documentation καθώς και στο βιβλίο: Interfaces overview ICollection<T>, ICollectionValue<T>, IDictionary<K,V>, IDirectedCollectionValue<T>, IDirectedEnumerable<T>, IExtensible<T>, IIndexed<T>, IIndexedSorted<T>, IList<T>, IPersistentSorted<T>, IPriorityQueue<T>, IPriorityQueueHandle<T>,...
|
-
|
Ένα μικρό κομματάκι T-SQL για γρήγορη δημιουργία CSV λίστας. Με αυτόν τον τρόπο, γλυτώνουμε από το iteration μέσα στο resultset όπου κι αν το κάνουμε. DECLARE @authors varchar(400) SELECT @authors = '' SELECT @authors = @authors + ', ' + au_lname + ' ' + au_fname FROM authors SELECT @authors = SUBSTRING(@authors, 3, 400) PRINT @authors Δεν θυμάμαι που το βρήκα την πρώτη φορά για να αποδώσω τα εύσημα...
|
-
|
Πολλές εφαρμογές απαιτούν, μετά την εγκατάστασή τους, την επανεκκίνηση του υπολογιστή. Οι κατασκευαστές του WhyReboot ήθελαν να αντιμετωπίσουν αυτό το θέμα, το οποίο αρκετές φορές τους ταλαιπωρούσε άδικα, μια και ο εκάστοτε προγραμματιστής έκανε την εφαρμογή του να ζητάει επανεκκίνηση για ασήμαντους λόγους, όπως τη δημιουργία ενός help file. Ετσι, δημιουργησαν αυτή τη μικρή εφαρμογούλα που προσπαθεί να βρει ποιές διαδικασίες είναι σε pending κατάσταση μετά την εγκατάσταση μιας εφαρμογής, ωστε να αποφασίζετε μόνοι σας αν πραγματικά χρειάζεστε άμεσα reboot ή μπορείτε να το κάνετε και λίγο αργότερα. Δεν εγγυώνται οτι θα σας δώσει όλες τις pending διαδικασίες, όμως φαίνεται να κάνει καλή δουλειά. Περισσότερα και download θα βρείτε στη διεύθυνση http://www.exodus-dev.com/products/WhyReboot/...
|
-
|
Οσοι σκεφτήκατε τη φράση "μα εγώ έχω συνηθίσει τον Query Analyzer" , διαβάστε λίγο παρακάτω και ίσως αλλάξετε γνώμη. Τι πρόβλημα έχουμε συνήθως όταν γράφουμε SQL Scripts; Πολλά. - Δεν έχουμε intellisense , με αποτέλεσμα να γράφουμε ορισμένες φορές άλλα αντί άλλων ή να ανατρέχουμε συνέχεια σε Server Explorers / Enterprise Managers για να βλέπουμε τη δομή των πινάκων που θέλουμε να συμπεριλάβουμε στα statements μας. - Αν είμαστε περισσότεροι από ένας, ο καθείς γράφει (συνήθως, εκτός αν έχουν οριστεί πολύ αυστηρά standards) με ό,τι case θέλει , με αποτέλεσμα να δημιουργείται ένα μικρό μπάχαλο. - Δεν έχουμε ενιαίο τρόπο να αφήνουμε κενά, tabs κλπ (βλ. παραπάνω, πολλοί μάγειροι στην ίδια σούπα, ο καθενας με το δικό του tab/spacing/linefeed policy) με αποτέλεσμα τα scripts μας να μην έχουν ενιαίο look&feel. To SQLAssist έρχεται να λύσει (όσο μπορεί) ορισμένα από αυτά τα θέματα, με κυριότερο την υποστήριξη Intellisense, καθώς και να σας βοηθήσει να γράψετε SQL κώδικα μέσα στο Visual Studio .NET 2003 ή 2005 . Πιό...
|
-
|
Το κακό είχε παραγίνει. Περναγα ένα νούμερο στο κινητό μου (με κάποιον φίλο, που είχε αλλάξει τηλέφωνο, και μου το έλεγε την ώρα του καφέ), και μετά συγχρόνιζα το κινητό μου με το PC του σπιτιού. Στη δουλειά όμως, έπρεπε να το κάνω με το χεράκι ή να πάρω και δεύτερη βάση για το κινητό. Παρομοίως: Περναγα ένα καινούριο τηλέφωνο στη δουλειά, στο σπίτι δεν το είχα. Αν τυχόν έκανα format σε ένα PC μου (σπιτι, δουλειά) και ξεχνούσα να αντιγράψω το .pst αρχείο μου, παπαλα τα contacts...ααααντε export σε csv από το ένα PC που ήταν στα καλά του, αααντε import στο άλλο...και αν άλλαζα δουλειά; Η άλλαζα PC; Παλι από την αρχή... Ας το καταλάβουμε: Αρκετοί από εμάς έχουμε ΤΟΥΛΑΧΙΣΤΟΝ ΤΡΙΑ μηχανάκια που πρέπει να συγχρονίζονται: Ενα (ή περισσότερα) PC στη δουλειά, ένα (ή περισσότερα) PC/φορητά στο σπίτι, ΚΑΙ το κινητό. Για να κρατάμε σωστά contacts, πρέπει ή να βρούμε κάποια λύση ή να επιστρέψουμε στο παλιό-καλό τεφτεράκι (μουτζουρώνω, blanco, ξαναγράφω). Enter Plaxo . Αυτή είναι λοιπον μια online υπηρεσία που στη βασική της...
|
-
|
Χρειαζόμουν έναν color picker, ξέρετε, από αυτούς που σας δείχνουν το ακριβές χρώμα που βρίσκεται κάτω από το δρομέα σας σε μια εικόνα. Για παράδειγμα, θέλετε να δείτε ακριβώς τι χρώμα είναι το background μιας εικόνας ώστε να χρησιμοποιήσετε το ίδιο χρώμα κάπου αλλού. Συχνά χρησιμοποιείται ένα τέτοιο εργαλείο από Web Developers ή Authors. Βρήκα λοιπόν το ColorPic, το οποίο ειναι 100% free, και περιέχει, μεταξύ άλλων, ένα πολύ ωραίο magnifier ωστε να είστε σίγουροι οτι το pixel στο οποίο βρίσκεται ο δρομέας σας έχει το χρώμα που ζητάτε. Για περισσότερα, http://www.iconico.com/colorpic/...
|
-
|
Άραγε πόσες φορές όταν γράφουμε ένα Delete Query μπορεί νά κάνουμε λάθος καί νά σβήσουμε στην βάση περισσότερες γραμμές από αυτές που θέλουμε. Φαντάζομαι ότι αυτό μπορεί νά έχει συμβεί σέ όλους μας.Παρακάτω παρθέτω μία Stored Procedure μέσω της οποίας μπορούμε νά εκτελούμε το Delete Statment μας καί άν τυχόν έχουμε κάνει κάποιο λάθος η διαγγεγραμμένες εγγραφές έχουν αποθηκευτεί σέ ένα Deleted αντίγραφο του πίνακα που κάνουμε διαγραφή. if exists ( select * from dbo. sysobjects where id = object_id (N '[dbo].[Cmd_Delete_sp]' ) and OBJECTPROPERTY (id, N 'IsProcedure' ) = 1) drop procedure [dbo].[Cmd_Delete_sp] GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS ON GO CREATE PROCEDURE Cmd_Delete_sp ( @DeleteStatment AS VARCHAR (2000), --Πέρασμα του Delete Statment σαν παράμετρο @HasIdentity smallint , --1 Αν ο πίνακας διαθέτει identity @Apply_Comment AS VARCHAR (1000), --Εισαγωγή Σχολίου @ReturnErrMsg AS VARCHAR (2000) --Μύνημα λάθους κατά την εκτέλεση της procedure ) AS --ΔΗΛΩΣΗ ΜΕΤΑΒΛΗΤΩΝ DECLARE @VarStr AS VARCHAR (2000),...
|
-
|
Σκοπός αυτού του άρθρου είναι να μας παρουσιάσει την υλοποίηση του RSA . Δημιουργούμε πρώτα μία κλάση όπως παρακάτω. Public Class CryptographyClass Public vPbKey As String Public vPrKey As String Public EncryptedByteArray() As Byte Public DecryptedByteArray() As Byte Public myKeySize As Integer Public Function Encrypt( ByVal varData() As Byte , ByVal vPbKeyIn As String ) As Boolean Try Dim Params As CspParameters = New CspParameters() Params.Flags = CspProviderFlags.UseMachineKeyStore Dim RSA As RSACryptoServiceProvider = New RSACryptoServiceProvider(Params) RSA.FromXmlString(vPbKeyIn) EncryptedByteArray = RSA.Encrypt(varData, False ) Return True Catch ex as Exception 'Δέν αποκρυπτογραφήθηκε σωστά Return False End Try End Function Public Function Decrypt( ByVal varData() As Byte , ByVal vPrKeyIn As String ) As Boolean Try Dim Params As CspParameters = New CspParameters() Params.Flags = CspProviderFlags.UseMachineKeyStore Dim RSA As RSACryptoServiceProvider = New RSACryptoServiceProvider(Params) RSA.FromXmlString(vPrKeyIn)...
|
|
|
|