Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

dotNETZone.gr Weblogs

  • Διαχωρισμός Delimited String στον SQL

    Πολλές φορές μπορεί νά έχουμε ένα πεδίο 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 μεταβλητή...
    11-02-2006, 10:47 από το μέλος imanos στο Ioannis Manoussakis
    Δημοσίευση στην κατηγορία:
  • C5 Generic Collection Library for .NET 2.0

    "Επεσα" πάνω σε μια αναφορά και σκέφτηκα οτι είναι άξια λόγου για να την αναφέρω μια και οι δύο τύποι που αναπτύσσουν τη συγκεκριμένη βιβλιοθήκη έχουν βάλει ΠΟΛΥ πράγμα, όπως θα δείτε και παρακάτω. Η 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>,...
    09-02-2006, 14:07 από το μέλος cap στο Sotiris Filippidis' Weblog
    Δημοσίευση στην κατηγορία:
  • Εύκολη CSV λίστα

    Ένα μικρό κομματάκι 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 Δεν θυμάμαι που το βρήκα την πρώτη φορά για να αποδώσω τα εύσημα...
    08-02-2006, 23:46 από το μέλος KelMan στο Manos Kelaiditis' Weblog
    Δημοσίευση στην κατηγορία:
  • WhyReboot: Βρείτε αν ο υπολογιστής σας χρειάζεται πραγματικά επανεκκίνηση μετά από κάποια εγκατάσταση

    Πολλές εφαρμογές απαιτούν, μετά την εγκατάστασή τους, την επανεκκίνηση του υπολογιστή. Οι κατασκευαστές του WhyReboot ήθελαν να αντιμετωπίσουν αυτό το θέμα, το οποίο αρκετές φορές τους ταλαιπωρούσε άδικα, μια και ο εκάστοτε προγραμματιστής έκανε την εφαρμογή του να ζητάει επανεκκίνηση για ασήμαντους λόγους, όπως τη δημιουργία ενός help file. Ετσι, δημιουργησαν αυτή τη μικρή εφαρμογούλα που προσπαθεί να βρει ποιές διαδικασίες είναι σε pending κατάσταση μετά την εγκατάσταση μιας εφαρμογής, ωστε να αποφασίζετε μόνοι σας αν πραγματικά χρειάζεστε άμεσα reboot ή μπορείτε να το κάνετε και λίγο αργότερα. Δεν εγγυώνται οτι θα σας δώσει όλες τις pending διαδικασίες, όμως φαίνεται να κάνει καλή δουλειά. Περισσότερα και download θα βρείτε στη διεύθυνση http://www.exodus-dev.com/products/WhyReboot/...
    08-02-2006, 10:47 από το μέλος cap στο Sotiris Filippidis' Weblog
    Δημοσίευση στην κατηγορία:
  • SQLAssist: Ο εύκολος (και τσάμπα) τρόπος να γράφετε SQL με Intellisense μέσα από το VS.NET 2003/2005

    Οσοι σκεφτήκατε τη φράση "μα εγώ έχω συνηθίσει τον 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 . Πιό...
    07-02-2006, 23:06 από το μέλος cap στο Sotiris Filippidis' Weblog
    Δημοσίευση στην κατηγορία:
  • Plaxo: Συγχρονίστε Outlook contacts, tasks, to-dos μεταξύ δύο ή περισσότερων υπολογιστών online

    Το κακό είχε παραγίνει. Περναγα ένα νούμερο στο κινητό μου (με κάποιον φίλο, που είχε αλλάξει τηλέφωνο, και μου το έλεγε την ώρα του καφέ), και μετά συγχρόνιζα το κινητό μου με το PC του σπιτιού. Στη δουλειά όμως, έπρεπε να το κάνω με το χεράκι ή να πάρω και δεύτερη βάση για το κινητό. Παρομοίως: Περναγα ένα καινούριο τηλέφωνο στη δουλειά, στο σπίτι δεν το είχα. Αν τυχόν έκανα format σε ένα PC μου (σπιτι, δουλειά) και ξεχνούσα να αντιγράψω το .pst αρχείο μου, παπαλα τα contacts...ααααντε export σε csv από το ένα PC που ήταν στα καλά του, αααντε import στο άλλο...και αν άλλαζα δουλειά; Η άλλαζα PC; Παλι από την αρχή... Ας το καταλάβουμε: Αρκετοί από εμάς έχουμε ΤΟΥΛΑΧΙΣΤΟΝ ΤΡΙΑ μηχανάκια που πρέπει να συγχρονίζονται: Ενα (ή περισσότερα) PC στη δουλειά, ένα (ή περισσότερα) PC/φορητά στο σπίτι, ΚΑΙ το κινητό. Για να κρατάμε σωστά contacts, πρέπει ή να βρούμε κάποια λύση ή να επιστρέψουμε στο παλιό-καλό τεφτεράκι (μουτζουρώνω, blanco, ξαναγράφω). Enter Plaxo . Αυτή είναι λοιπον μια online υπηρεσία που στη βασική της...
    04-02-2006, 20:07 από το μέλος cap στο Sotiris Filippidis' Weblog
    Δημοσίευση στην κατηγορία:
  • ColorPic: Βρείτε εύκολα και γρήγορα το χρώμα που εμφανίζεται στην οθόνη σας

    Χρειαζόμουν έναν color picker, ξέρετε, από αυτούς που σας δείχνουν το ακριβές χρώμα που βρίσκεται κάτω από το δρομέα σας σε μια εικόνα. Για παράδειγμα, θέλετε να δείτε ακριβώς τι χρώμα είναι το background μιας εικόνας ώστε να χρησιμοποιήσετε το ίδιο χρώμα κάπου αλλού. Συχνά χρησιμοποιείται ένα τέτοιο εργαλείο από Web Developers ή Authors. Βρήκα λοιπόν το ColorPic, το οποίο ειναι 100% free, και περιέχει, μεταξύ άλλων, ένα πολύ ωραίο magnifier ωστε να είστε σίγουροι οτι το pixel στο οποίο βρίσκεται ο δρομέας σας έχει το χρώμα που ζητάτε. Για περισσότερα, http://www.iconico.com/colorpic/...
    04-02-2006, 19:49 από το μέλος cap στο Sotiris Filippidis' Weblog
    Δημοσίευση στην κατηγορία:
  • Πώς μπορούμε να σώσουμε τα δεδομένα όταν εκτελούμε ένα Delete Query

    Άραγε πόσες φορές όταν γράφουμε ένα 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),...
    04-02-2006, 00:44 από το μέλος imanos στο Ioannis Manoussakis
    Δημοσίευση στην κατηγορία:
  • System Security Cryptography

    Σκοπός αυτού του άρθρου είναι να μας παρουσιάσει την υλοποίηση του 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)...
    02-02-2006, 14:33 από το μέλος imanos στο Ioannis Manoussakis
    Δημοσίευση στην κατηγορία:
  • Procedure η οποία επιστρέφει τους πίνακες οι οποίοι καλούνται από άλλες procedure και ποιές.

    Την παρακάτω procedure την χρησιμοποιώ όταν είμαι στο στάδιο ανάπτυξης για να βρίσκω εύκολα από ποιές sp εξαρτώνται οι πίνακες της βάσης μου. IF EXISTS ( select * FROM dbo. sysobjects WHERE id = object_id (N '[dbo].[Table_onProc_Depends_sp]' ) AND OBJECTPROPERTY (id, N 'IsProcedure' ) = 1) DROP PROCEDURE [dbo].[Table_onProc_Depends_sp] GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS OFF GO CREATE PROCEDURE Table_onProc_Depends_sp AS SELECT a.name as tableName, a.id as tableId, b.name as ProcName,b.id as ProcId FROM sysobjects a LEFT OUTER JOIN ( sysobjects b LEFT OUTER JOIN sysdepends on b.id = sysdepends .id) on sysdepends .depid = a.id WHERE a.xtype = 'u' AND b.xtype = 'p' AND NOT a.name = 'dtproperties' GROUP BY a.name, a.id, b.name,b.id ORDER BY a.name RETURN GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO Δεν είναι κάτι φοβερό αλλά πιστεύω οτι είναι εύχρηστο....
    01-02-2006, 22:07 από το μέλος imanos στο Ioannis Manoussakis
    Δημοσίευση στην κατηγορία:
  • Encryption μέ Function στον MS SQL

    Η συνάρτηση επιστρέφει ένα Encrypted varchar στοιχείο .Για νά κάνετε un-encrypt το στοιχείο απλά περάστε στην παράμετρο το Encrypted varchar στοιχείο. CREATE FUNCTION PwdEncrypt ( @Pwd as varchar (255) ) RETURNS varchar (255) AS BEGIN DECLARE @PwdEncrypted as varchar (255) DECLARE @PwdLength as int DECLARE @iPOS AS int DECLARE @XOR AS int --Το Encryption γίνεται μόνο όταν η παράμετρος δέν είναι null IF @Pwd IS NOT NULL BEGIN SET @PwdLength = len (@Pwd) -- Δημιουργία κλειδιού σέ συνδυασμό μέ το μέγεθος του pwd και της θέσης του πρώτου 'α' που βρίσκεται στο pwd -- (Το γράμμα 'α' είναι ένα απο τα πιό κοινά γράμματα του αλφαβήτου) -- (Βέβαια μπορεί νά τροποποιηθεί ανάλογα όπως θέλετε) SET @XOR = @PwdLength + charindex (@Pwd, 'α' ) SET @iPOS = 1 SET @PwdEncrypted = '' WHILE @iPOS <= @PwdLength BEGIN SET @PwdEncrypted = @PwdEncrypted + char ( Ascii ( substring (@Pwd, @iPOS, 1)) ^ @XOR) SET @iPOS = @iPOS + 1 END END --Εάν η τιμή της παραμέτρου @Pwd είναι null τότε δέν γίνεται καμμία ενέργεια IF @Pwd IS NULL BEGIN...
    31-01-2006, 22:30 από το μέλος imanos στο Ioannis Manoussakis
    Δημοσίευση στην κατηγορία:
  • Printing barcodes

    Printing barcodes from your application is quite easy, as long as you get to know a simple algorithm (for the specific barcode symbology you're interested in) and you have a valid font file. Searching via Google on this subject is sometimes hard enough, because the top results come for commercial components or font distributors. In this article, I present a simple implementation for the code 128 specification, with the corresponding true type font file....
    30-01-2006, 16:17 από το μέλος Χρήστος Γεωργακόπουλος στο Εquilibrium
    Δημοσίευση στην κατηγορία: ,
  • UDF: Δημιουργία user-defined table από delimited string

    Ηταν ένα πρόβλημα που καιρό αντιμετώπιζα και έψαχνα μια πιό γενική λύση. Εχεις κάπου, για κάποιον λόγο, ένα ωραίο delimited string του στύλ "Mητσος,Κίτσος,Λάκης,Τακης" και θέλεις να δημιουργήσεις από αυτό ένα ωραίο result set, χρησιμοποιώντας μόνο SQL Server και τίποτα άλλο. Τι κάνεις; Με ψάξιμο από εδώ και από εκεί, πήρα τη "βάση" για μια User-Defined Function την οποία μπορεί να "ταίσει" κανείς ένα delimited string, να προσδιορίσει (αν θέλει) και τον delimiter character, και να πάρει ένα ωραίο table variable που περιέχει ένα element σε κάθε του γραμμή. Θα ανέφερα πηγές, αλλα δυστυχώς δεν τις θυμάμαι πιά :) , ζητώ συγνώμη προκαταβολικά... Μου φάνηκε ιδιαίτερα χρήσιμο σε αρκετές περιπτώσεις. Η παρούσα UDF λειτουργεί με το delimited string να είναι τύπου TEXT και το μέγιστο μήκος κάθε element 250 χαρακτήρες, ενώ σαν default delimiter χρησιμοποιεί το κόμμα (,). Ειναι όμως πολύ εύκολο να τα τροποποιήσετε όλα αυτά. Κώδικα και σχολιασμό θα βρείτε εδώ, στα άρθρα....
    23-01-2006, 14:40 από το μέλος cap στο Sotiris Filippidis' Weblog
    Δημοσίευση στην κατηγορία:
  • INSERT date in datetime fields using Greek format

    Το παρακάτω κείμενο αποτελεί απλά repost απο το dotnetzone forum , ενα σύντομο tutorial που έγραψα για το πως μπορούμε να καταχωρήσουμε ημερομηνίες σε ελληνικό format σε datetime πεδία στον SQL Server. Λοιπόν επειδή λογικά κάποιοι οι οποίοι τώρα ξεκινάτε να ασχολείστε με SQL Server, θα έχετε την απορία για πως μπορείτε να καταχωρήστε σε datetime πεδίο, ενα date σε ελληνικό format (dd/mm/yyy) και όχι στο international(yyyy/mm/dd) ή στο αμερικάνικο (mm/dd/yyy). Η αλήθεια είναι ότι απο default ο SQL SERVER δέχεται σαν φορμάτ μόνο το αμερικάνικο ή το international.Οποιαδήποτε άλλη προσπάθεια να κανέτε καταχώρηση ημερομηνίας σε ελληνικό φορμάτ, καταλήγει σε error. Πx. Το παρακάτω, βγάζει error: DECLARE @tDate AS datetime ; SET @tDate = '31/12/2006' ; SELECT @tDate; The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value. Υπάρχουν μερικοί τρόποι τους οποίους αναλύω παρακάτω. Α) Μπορείτε να κάνετε set την var DATEFORMAT του SQL Server σε όποιο format θέλετε εσείς Πχ. SET...
    19-01-2006, 02:47 από το μέλος Panagiotis Kefalidis στο The PK blog
    Δημοσίευση στην κατηγορία:
  • ΕΠΕΙΣΟΔΙΟ 21: Reusability και σουρεαλισμός

    Εχετε φτιάξει μια εφαρμογή για χειρουργική κλινική; Ωραία! Μπορείτε, με μερικά απλά βήματα, να τη μετατρέψετε σε εφαρμογή κράτησης εισητηρίων! Ο πελάτης βιάζεται! Προσοχή όμως στις παρενέργειες......
    Δημοσίευση στην κατηγορία:
  • Δημιουργία Documentation με το nDoc και το .net Framework 2.0

    Όλοι όσοι έχει χρειαστεί να γράψουμε documentation , έχουμε χρησιμοποιήσει διάφορα εργαλεία για να πάρουμε το επιθυμητό αποτέλεσμα. Ένα από αυτά τα εργαλεία, που είναι πολύ διαδεδομένο στους προγραμματιστές, είναι και το nDoc . Το nDoc δημιουργεί class library documentation για .NET assemblies σε γλώσσα C #. Με πολύ λίγη δουλειά και λίγες ρυθμίσεις μπορούμε να ικανοποιήσουμε τα απαιτητικά αφεντικά, που δεν σκέφτονται πόσο κοπιάσαμε να δημιουργήσουμε, αυτό που οι ίδιοι δεν ξέρουν τι ακριβώς έχουν ζητήσει και να τους παρουσιάσουμε ένα πλήρες documentation . Με το nDoc ήταν όλα καλά εφόσον η έκδοση του . Net Framework ήταν στην έκδοση 1.0 ή 1.1. Το πρόβλημα εμφανίστηκε, όταν στη αγορά άρχισε να κινείτε το . net Framework 2.0. Εκεί το nDoc δεν δούλευε και είχαν πεί ότι θα το υλοποιήσουν στην επόμενη έκδοση. Με ένα πολύ μικρό τρικ όμως, το nDoc παίζει κανονικά και για . net Framework 2. Η λύση είναι πολύ απλή. Θα πρέπει να δημιουργήσουμε ένα config αρχείο για το NDocGui . exe που θα βάλουμε τις ρυθμίσεις που χρειάζονται....
    02-01-2006, 17:02 από το μέλος plavidas στο .net stuff for beginners from P. Lavidas
    Δημοσίευση στην κατηγορία:
  • Οδηγός για το πως πρέπει να γράφει ο κάθε developer (FxCop)

    Code analysis εργαλείο που ελέγχει .NET managed code assemblies...
    27-12-2005, 16:14 από το μέλος plavidas στο .net stuff for beginners from P. Lavidas
    Δημοσίευση στην κατηγορία:
  • INTERLUDE: Οδηγός επιβίωσης προγραμματιστού σε deadlines

    Σας ενοχλούν τα deadlines; Μην φοβάστε! Με αυτόν τον οδηγό επιβίωσης, το χειροτερο που μπορεί να πάθετε είναι ακριβώς το ίδιο που θα παθαίνατε ούτως ή άλλως. Τουλάχιστον, όμως, θα γελάσετε....
    Δημοσίευση στην κατηγορία:
  • Google acquires stake in AOL

    NEW YORK (Reuters) - Google Inc. and America Online Inc. Tuesday expanded their search and advertising alliance to include video and instant messaging, shutting out Microsoft Corp., which had fought hard for a deal with Time Warner Inc.'s AOL unit. America Online said Google had agreed to invest $1 billion to take a 5 percent stake in AOL, as part of an enhanced pact where Google will move beyond text-based advertising to allow AOL to sell graphical ads to Google's fast-growing ad network. Read the full article here: Google acquires stake in AOL I' ve found it in: startpoint.gr ....
    21-12-2005, 22:53 από το μέλος Χρήστος Γεωργακόπουλος στο Εquilibrium
    Δημοσίευση στην κατηγορία: ,
  • Κλήση εξωτερικής εφαρμογής με διαφορετικά user credentials (run as) προγραμματιστικά (.NET 1.1)

    Μετά από αρκετή διερεύνηση, επιχειρώντας να λύσω ένα συγκεκριμένο πρόβλημα, κατέληξα σε ένα "μπούσουλα" για τον τρόπο με τον οποίο μπορεί κάποιος να καλέσει με κώδικα μέσα από μια εφαρμογή ένα εξωτερικό process (ενα executable) χρησιμοποιώντας διαφορετικά user credentials από αυτά του χρήστη που "τρέχει" την εφαρμογή (ουσιαστικά δηλαδή να μιμηθούμε το "run as.." που μας δίνει το shell των Windows). Το θέμα αυτό έχει λόγο ύπαρξης μόνο στο .NET 1.1, μια και στο .NET 2.0 μπορεί κανείς να προσδιορίσει user credentials στο System.Diagnostics.Process.Start(). Θερμές ευχαριστίες, φυσικά, στους συναδέλφους του dotNetZone.gr (είναι αυτονόητο οτι χωρίς τη βοήθειά τους δεν θα επιζούσα): Ο παρακάτω κώδικας λειτουργεί για χρήστη που βρίσκεται σε domain και η κλήση έχει ως εξής: clsSpawnProcess.CreateProcess( _ "myUser" _ , "myDomain" _ , "myPassword" _ , "c:\myfolder\myexecutable.exe" _ , " " + "myCommandLineArguments" ) Η χρήση των υποδειγματικών strings που αναφέρονται στην κλήση, φαντάζομαι, είναι αυτονόητη. Ο κώδικας δουλεύει...
    14-12-2005, 15:41 από το μέλος cap στο Sotiris Filippidis' Weblog
    Δημοσίευση στην κατηγορία:
  • Δημιουργία design-time combo-style String property για user control

    Εψαχνα αρκετές ημέρες, λόγω της μικρής μου εξοικείωσης με το design-time των user controls σε Windows Forms, για να καταλάβω πώς γίνεται να δημιουργήσουμε ένα string property το οποίο να φαίνεται μεν στον designer, αλλά να σου δίνει μια συγκεκριμένη λίστα επιλογών (ενα combo δηλαδή) για να διαλέξεις. Γενικά, αν χρησιμοποιήσουμε κάποιο enumeration, το πράγμα κυλάει μόνο του. Αν όμως έχουμε String property και θέλουμε να επιλέξουμε μεταξύ συγκεκριμένων Strings, τότε το πρόβλημά μας ανάγεται στο πρόβλημα που θα αντιμετωπίζαμε χρησιμοποιώντας οποιοδήποτε άλλο Object ως property του user control μας. Ητοι, για να δείξουμε μια combobox-style επιλογή σε design time για το συγκεκριμένο property του user control, χρειαζόμαστε ένα custom type converter. Θα δουμε παρακάτω πώς γίνεται αυτό. Καταρχήν χρειαζόμαστε μια νέα κλάση: Class MyListConverter Inherits System.ComponentModel.StringConverter 'Εδώ φορτώνουμε τις τιμές μας. Public Overloads Overrides Function GetStandardValues( _ ByVal context As System.ComponentModel.ITypeDescriptorContext)...
    14-12-2005, 14:37 από το μέλος cap στο Sotiris Filippidis' Weblog
    Δημοσίευση στην κατηγορία:
  • Back to VS 2003

    Τελικά σήμερα γυρίσαμε πίσω στο 2003. Τα προβλήματα ήταν αρκετά, κάποια από τα οποία πολύ σημαντικά, και δεν μας έπαιρνε να τραβήξει πολύ η κατάσταση προσαρμογής και εξεύρεσης work arounds δουλεύοντας σε production περιβάλλον. Για τη συνέχεια πάντως σκέφτομαι τα εξής: Θα γίνει προσπάθεια να γίνει μία φάση ακόμα debuging και τελικά lockdown σε projects που είναι βοηθητικά και δεν αλλάζουν συχνά, ώστε να βγούν έξω από το solution και να τα χρησιμοποιούμε με file reference. Αυτό αφ' ενός θα βοηθήσει όταν τελικά πάμε σε 2005, αλλά θα μας μειώσει ελαφρώς και το φόρτο του solution τώρα με το 2003. Δυστυχώς όμως αυτά τα projects είναι λίγα και αρκετά light. Θα συνεχιστεί το ψάξιμο για πατέντες στο σπάσιμο των projects σε διαφορετικά solutions. Το θέμα είναι εξαιρετικά δύσκολο κατά την άποψή μου γιατί μπλέκει μέσα και τον τρόπο που δουλεύει η εταιρία γενικότερα. Παρακολουθούμε προσεκτικά Microsoft και forums, ψάχνοντας για λύσεις και περιμένοντας hot fixes και service packs. Σίγουρα δεν μπορούμε να παρατήσουμε την προσπάθεια...
    13-12-2005, 20:00 από το μέλος Χρήστος Γεωργακόπουλος στο Εquilibrium
    Δημοσίευση στην κατηγορία: ,
  • Πρόβλημα με Web Projects στο VS 2005 over VSS

    [Σε συνέχεια του Μετάβαση σε VS 2005: Περιπέτεια! ] Στο Visual Studio 2003 τα web projects είχαν παρόμοια δομή με τα win projects. Υπήρχε ένα αρχείο για το ίδιο το project (vbproj, csproj) το οποίο περιέγραφε ποια αρχεία ήταν μέρος του project. Στο 2005 το μοντέλο αλλάζει. Αρχείο για το project δεν υπάρχει, αντιθέτως θεωρούνται μέρος του projects όλα τα αρχεία που βρίσκονται στον δίσκο στον κατάλογο ο οποίος αντιστοιχεί στο web project. Αυτό σημαίνει, ότι όποιο αρχείο και αν προσθέσουμε από file system στον κατάλογο αυτόν ή στους υποκαταλόγους του, αυτομάτως θεωρείται μέρος του web project. Ας έρθουμε τώρα στο source safe, όταν το web project είναι source controlled. Όλα τα αρχεία που υπάρχουν στον δίσκο, αφού είναι μέρος του project, προστίθενται αυτομάτως στο VSS. Μοναδική εξαίρεση αποτελούν οι DLLs και τα PDB αρχεία τα οποία προέρχονται από project references (προσοχή, μόνο project references, όχι file references που έχουν copy local = true). Με το μοντέλο αυτό παρουσιάζει το εξής σημαντικό πρόβλημα: Web project...
    12-12-2005, 17:58 από το μέλος Χρήστος Γεωργακόπουλος στο Εquilibrium
    Δημοσίευση στην κατηγορία: ,
  • Μετάβαση σε VS 2005: Περιπέτεια!

    Χτες ήταν η ημέρα που είχαμε καθορίσει για να μετατρέψουμε το solution μας στο νέο visual studio. Είχαν προηγηθεί δοκιμαστικά conversion από τις αρχές Νοεμβρίου και αφού είχαμε ξεπεράσει τα σημαντικότερα προβλήματα ήμασταν πλέον έτοιμοι για τη μετατροπή. Έγιναν τα σχετικά backup, εγκαταστάθηκε το νέο VSS στον server (στους clients είχε εγκατασταθεί εδώ και μέρες και το δουλεύαμε μαζί με το παλιό studio, είναι μια χαρά) και έγινε analyze και fix της βάσης. Η διαφορά με τα δοκιμαστικά conversion που είχα κάνει ήταν ότι στις δοκιμές χρησιμοποιούσα disconnected αρχεία από το vss, ενώ τώρα έκανα branch όλο το solution, read only το παλιό branch για ασφάλεια, και έπαιζα connected. Η μετατροπή έγινε project - project, ξεκινώντας από τα χαμηλότερα ιεραρχικά και ανεβαίνοντας προς τα πάνω. Μετά από κάθε project που έμπαινε μέσα, πήγαινα στα properties και και το ρύθμιζα έτσι ώστε να μην εμφανίζει καθόλου warnings και να μην κάνει include xml coments στα builds, γιατί είχα υποψιαστεί ότι αυτά καθυστερούν πολύ το studio....
    11-12-2005, 20:39 από το μέλος Χρήστος Γεωργακόπουλος στο Εquilibrium
    Δημοσίευση στην κατηγορία: ,
  • ΕΠΕΙΣΟΔΙΟ 20: Οι απίστευτες νέες ευκαιρίες των εκθέσεων τεχνολογίας

    Ο Ζαχαρίας και όλο το υπόλοιπο team κατεβάζουν περίπτερο σε έκθεση τεχνολογίας! Ναι, ναι. Και η Τούλα. Και όχι, ο ήρωας της βραδιάς δεν είναι η Τούλα όπως ίσως να υποθέτετε. Οι εκθέσεις τεχνολογίας κρύβουν εκπληκτικά εκπληκτικές εκπλήξεις κάποιες φορές. (Νομίζω οτι χρησιμοποιώ εκπληκτικά πολύ τη λέξη "εκπληκτικά"). Διαβάστε το. Θα εκπλαγείτε. Εκπληκτικά....
    Δημοσίευση στην κατηγορία:
Περισσότερες Δημοσιεύσεις « Προηγούμενη - Επόμενη »
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems