Ενδιαφέρουσες iPhone αίτηση

image Η κινητή ομάδα εδώ στο σλάλομ έχει αναπτύξει ένα πραγματικά δροσερό iPad εφαρμογή που συνδυάζει εικονικής πραγματικότητας αύξηση w / σύνδεση ικανότητα να παρέχουν ό, τι μπορεί να είναι η καλύτερη Νέα Υόρκη μετρό finder και δρομολόγησης app διαθέσιμο σήμερα.

Εδώ είναι το site που περιγράφει το app με περισσότερες λεπτομέρειες: http://www.nycstationfinder.com/.

Δεν έχω οποιαδήποτε προϊόντα της Apple, έτσι δεν μπορώ να τις δοκιμάσω έξω τον εαυτό μου, αλλά φαίνεται αρκετά δροσερό. Ελπίζω αυτοί μεταφέρουν πάνω στα Android σύντομα.

</Τέλος>

Εγγραφείτε στο blog μου.

Συνέχεια μου για Twitter σε http://www.twitter.com/pagalvin

MVP ξανά

Microsoft re-awarded με με SharePoint MVP την 1η Ιουλίου τρέχοντος έτους και είναι λιγότερο συναρπαστική από ό, τι ήταν την πρώτη φορά πριν από τέσσερα χρόνια.

Η Κοινότητα του SharePoint είναι απλά ένα καταπληκτικό μέρος.  Θυμάμαι όταν εισάχθηκα αρχικά στο SharePoint από τον παλιό εργοδότη μου, Conchango.  Δεν ήμουν ευτυχισμένος για αυτό Χαμόγελο.  Είχε ζουν σε έναν κόσμο BizTalk για ένα έτος ή δύο οδήγησαν τη δουλειά μου εκεί και πριν από αυτό, εργαστεί σε μια άλλη νησιωτική κόσμο των ανθρώπων και εταιρειών που ζούσαν μακριά από Λογισμικό πρόοδο.  Λέω «νησιωτικό», επειδή ο κόσμος του SharePoint είναι κάθε άλλο παρά!

Είμαι συνεχώς χαρούμενος και ενθουσιασμένος να είναι μέρος της αυτή την περίεργη online κοινότητα των ανθρώπων που αισθάνομαι παράξενα να υποχρεωθεί να blog ατέλειωτα, εγκαταλείψουν τους Σάββατα δωρεάν συνέδρια, στέκι σε απευθείας σύνδεση φόρουμ, κατασκευή κάθε είδους καθάρισε από δωρεάν προϊόντα να παρουσιάζονται σε CodePlex και μυριάδες άλλες κοινοτικές προσπάθειες όλων των σχημάτων και μεγεθών. 

Δεν ξέρω τι είναι για το προϊόν που εμπνέει μια τέτοια εθελοντισμού και βύθιση, αλλά ελπίζω ότι ποτέ δεν αλλαγές.

</Τέλος>

Εγγραφείτε στο blog μου.

Συνέχεια μου για Twitter σε http://www.twitter.com/pagalvin

Επιτρέψτε να λάμπει παραδείγματα μολύβδου ο τρόπος για την αυξημένη υιοθέτηση του SharePoint

Μου πρώτη "καθαρό" είσοδο blog BrightStarr δόθηκε στη δημοσιότητα σήμερα.  Εδώ είναι ένα τρέιλερ:

Έχει υπάρξει πολλή συζήτηση για το Ίντερνετ από τα τέλη σχετικά με το θέμα του SharePoint έγκριση και ειδικά η έλλειψή τους. Κανείς δεν θέλει να πάει σε όλα τα προβλήματα του σχεδιασμού ένα αγρόκτημα και ασφάλεια υποδομής, συμμετοχή στα εργαστήρια, θέση μαζί μια snazzy εμφάνιση και αίσθηση, εργάζονται έξω ένα βράχο στερεά πληροφορίες αρχιτεκτονική που μπορούν να αντέξουν τις αντιξοότητες της εταιρεία re-orgs και τέλος, ένα γεμάτο φανφάρες εγκατάσταση απλά να ανακαλύψετε τρεις μήνες θέση go-live που λιγότερο από 50% της εταιρείας εργαζόμενοι χρησιμοποιούν SharePoint και οι περισσότεροι από αυτούς χρησιμοποιούν να αντικαταστήσει το παλιό διακομιστές αρχείων δικτύου («το S:\ το αυτοκίνητο").

Καμία μαγική συνταγή (ή μόνο του blog) πρόκειται να λύσει αυτό το πρόβλημα. Ωστόσο, Υπάρχουν πολλά πράγματα που μπορείτε να κάνετε για να μειώσει τον κίνδυνο της μια αναιμική πύλης SharePoint. Μια τέτοια τεχνική είναι το "πρότυπο παράδειγμα λάμψη."

Θα ήθελα πολύ να μάθω σχετικά με άλλες στρατηγικές έγκριση SharePoint που φροντίζετε να μοιραστούν.  Αν μοιράζεστε, Παρακαλώ αφήστε ένα σχόλιο για το blog BrightStarr.

Διαβάστε το όλο θέμα εδώ: http://www.brightstarr.com/US/Pages/blog-view.aspx?BlogID=52

</Τέλος>

Εγγραφείτε στο blog μου.

Συνέχεια μου για Twitter σε http://www.twitter.com/pagalvin

"Δεν επιτρέπεται Η πρόσβαση” στη σελίδα Default.aspx με ένα SharePoint 2010 Δευτερεύουσα τοποθεσία

Ένας από τους πελάτες μου πήγε ζουν με τους SharePoint 2010 περιβάλλον σήμερα.  Ανακαλύψαμε ότι μια συγκεκριμένη ομάδα χρηστών μπορούσαν να έχουν πρόσβαση τους προεπιλεγμένη αρχική σελίδα.  SharePoint απάντησε με "Access Denied" και το συνηθισμένο "συνδεθείτε ως άλλος χρήστης" ή "αίτημα πρόσβασης" απάντηση. 

Όταν χρησιμοποιήσαμε συνάρτησης "Έλεγχος πρόσβασης" ικανό επιβεβαίωσε ότι οι τελικοί χρήστες πραγματικά έχουν πρόσβαση.  Ακόμη, δεν θα μπορούσε να παίρνουν στη σελίδα.

Έχω ακολουθήσει πολλοί δρόμοι με διάφορα αδιέξοδα, μέχρι που αποφάσισα να συγκρίνετε τα τμήματα web στη σελίδα "σπασμένα" κατά μια παρόμοια σελίδα εργασίας.  Το έκανα αυτό με την τοποθέτηση της σελίδας στον τρόπο συντήρησης με την προσθήκη"?περιεχόμενα = 1 "στην σελίδα. Έτσι, έμοιαζε με "http://server/subsite/subsite/default.aspx?περιεχόμενα = 1 ". 

Αυτό μου έδειξε δύο web μέρη που ονομάζεται "Σφάλμα" με μια περιγραφή, όπως "Σφάλμα" στη σελίδα "σπασμένο".  Δεν νομίζω να λάβει ένα καπάκι οθόνης τη στιγμή.

Μπορώ να τους αφαιρεθεί και που έλυσε το πρόβλημα.

Έχω δει μια ερώτηση όπως αυτό έρθει επάνω για το φόρουμ στο παρελθόν, και ήμουν πολύ δύσπιστος για της αφίσας επιμονή ότι είχε ασφαλείας που έχουν ρυθμιστεί σωστά.  Εγώ * γνωρίζουν * είχα ασφαλείας σωστά ρυθμισμένος Χαμόγελο  Την επόμενη φορά, Θα είμαι πιο ανοιχτή και σκεπτικοί.

</Τέλος>

Εγγραφείτε στο blog μου.

Συνέχεια μου για Twitter σε http://www.twitter.com/pagalvin

XSLT και jQuery δείγματα

Έχω κάνει πολλή XSLT και jQuery και σκέφτηκα ότι θα μοιραστώ ορισμένα αποσπάσματα που άλλοι μπορεί να φανούν χρήσιμες στο μέλλον.

Παράδειγμα 1: Εκπέμπουν απλό JavaScript / jQuery σε XSLT:

<XSL:πρότυπο αγώνα = "κάτι" XML:χώρος = «διατηρήσουν»>

  <!– Κενό έξω το ερώτημα φιλικό να φιλτράρει κρυφό πεδίο –>
  <σενάριο τύπο = "text/javascript">
    $(έγγραφο).έτοιμο(συνάρτηση(){
      $("#QueryFriendlyFilters").Val(«κενό»);
    });
  </σενάριο>

</XSL:πρότυπο>

Εκείνο το κομμάτι εκπέμπει τα κάποια JavaScript που περιμένει τη σελίδα για να τελειώσει τη φόρτωση (λόγω της την $(έγγραφο).έτοιμο(…)) και στη συνέχεια σύνολα η τιμή του ένα κρυφό πεδίο που ονομάζεται QueryFriendlyFilters να η τιμή literal "Αδειασμα".

Παράδειγμα 2: Χρήση <XSL:Αν> να ελέγξετε "μεγαλύτερο από",  "λιγότερο από", κλπ.

<XSL:πρότυπο αγώνα = "κάτι" XML:χώρος = «διατηρήσουν»>

  <div id = "fdcAllFilters">
 
    <XSL:Αν test="@Count>0">
      <span class = "fdcFilterLabel">Τρέχοντα φίλτρα:</span>
    </XSL:Αν>

    <!– περισσότερα πράγματα που συμβαίνουν εδώ. –>

</XSL:πρότυπο>

Το παραπάνω απόσπασμα ελέγχει αν ένα χαρακτηριστικό που ονομάζεται "Μετράνε" του στοιχείου "κάτι" είναι μεγαλύτερη του μηδενός.  Το XML πίσω από αυτό θα ήταν κάτι σαν:”

<κάτι Count = "5" />

Παράδειγμα 3: Επαναλαμβάνεται σε όλα τα στοιχεία, Interspersing jQuery κλήσεις.

<!– Επαναλαμβάνεται σε όλα τα φίλτρα και να εμφανίζει τη σωστή  συνδέσεις. –>
<XSL:για κάθε επιλογή = "UserFilter">

  <μια κατηγορία = "FilterHref" href = "javascript:mySubmitPage(«RemoveUserFilter»,'{@ID}’)">[X]</ένα>

  <span class = "fdcFilterLabel"><XSL:αξία του select="@FilterValue"/></span>

  <σενάριο τύπο = "text/javascript">

    $(έγγραφο).έτοιμο(συνάρτηση(){
        <XSL:κείμενο><![CDATA[$("#QueryFriendlyFilters").Val( ($("#QueryFriendlyFilters").Val() + " ]]></XSL:κείμενο>\"<XSL:αξία του select="@FilterValue"/>\"<XSL:κείμενο><![CDATA["));]]></XSL:κείμενο>
    });

  </σενάριο>

</XSL:για-κάθε>

Το παραπάνω απόσπασμα είναι το πιο περίπλοκο και μπορεί να υπάρξει ευκολότερους τρόπους για να το κάνουμε.

Το XML πίσω από αυτό μοιάζει περίπου με αυτό:

<UserFilter ID = "123" FilterValue = "xyzzy" />

Αυτό το απόσπασμα διαδοχικές προσεγγίσεις μέσα σε <UserFilter> κόμβους. 

Πρώτα εκπέμπει μια άγκυρα ετικέτα που όταν πατηθεί εκτελεί μια λειτουργία JavaScript που είναι ήδη στη σελίδα, "mySubmitPage" και μεταβιβάζει την τιμή ενός χαρακτηριστικού το <UserFilter> κόμβος που ονομάζεται "Αναγνωριστικό". 

Στη συνέχεια, εκπέμπει κάποια jQuery που περιμένει την σελίδα να φορτώσει.  JQuery ότι ενημερώνει ένα κρυφό πεδίο που ονομάζεται "QueryFriendlyFilters" προσθέτοντας την τιμή του χαρακτηριστικού FilterValue.  Σημείωση όλα την τρελή <XSL:κείμενο> και <![CDATA[ … ]]> πράγματα.

Αυτό είναι, ελπίδα αυτό βοηθά!

</Τέλος>

Εγγραφείτε στο blog μου.

Συνέχεια μου για Twitter σε http://www.twitter.com/pagalvin

PerformancePoint και σφάλματος 33494

Ένας από τους πελάτες μου που ονομάζεται σήμερα όταν τους περιβάλλον PerformancePoint (στο SharePoint 2010) χάλασε.  Έναν από τους διακομιστές app στο αγρόκτημα λίγος χώρος στο δίσκο.  Επισημαίνοντας ότι, το πρόγραμμα-πελάτης απεγκατασταθεί "πάρα πολύ", και τα πράγματα PP όλα σταμάτησαν να λειτουργούν.  Διάφορα τμήματα web θα δείξει "Παρουσιάστηκε ένα μη αναμενόμενο σφάλμα. Σφάλμα 33494. Πρόσθετες λεπτομέρειες έχουν καταγραφεί για το διαχειριστή":

image

Κοίταξα ένα λάθος και δεν βρήκε τίποτα ειδικά για "σφάλμα 33494" αλλά το φόρουμ MSDN απόσπαση ήταν χρήσιμο: http://social.technet.microsoft.com/forums/en-us/sharepoint2010setup/thread/E1FE189D-7F89-455D-A98B-C1A12D8626AB

Βρήκα ADOMD.NET εδώ ως ένα στοιχείο στο διακομιστή SQL 2008 Πακέτο δυνατοτήτων: http://www.microsoft.com/downloads/en/details.aspx?FamilyId=228DE03F-3B5A-428A-923F-58A033D316E1&displaylang=en

image

(Κάντε κλικ για μεγέθυνση)

Κατεβάσετε και να εγκαταστήσει που, και καθόρισε τα πάντα.

Νομίζω ότι αυτό είναι ένα είδος αρκετά εκκεντρικά σφάλμα, αλλά αν το χτυπήσει, εσείς τουλάχιστον έχετε μια επιλογή.

</Τέλος>

Εγγραφείτε στο blog μου.

Συνέχεια μου για Twitter σε http://www.twitter.com/pagalvin

Lists.asmx, GetListItems και φάκελοι

Έκανα κάποια έρευνα για κάποιον σήμερα γύρω από την υπηρεσία web list.asmx παρέχεται ως μέρος του SharePoint 2010 (και παλιότερες).  Ήταν σε θέση να πάρετε τα στοιχεία λίστας στο φάκελο ρίζας (καθώς και τα ονόματα των υποφακέλων), αλλά δεν ήταν δυνατή η λήψη στοιχείων σε υποφακέλους.  Έκανα κάποια ρίχνοντας μια ματιά για το Ίντερνετ και είναι μια εκπληκτικά κοινή ερώτηση.  Ακόμη, Θα μπορούσα να πάρετε μια καλή απάντηση στο απλό ερώτημα, "αν γνωρίζω το φάκελο, Πώς μπορώ να πάρω τα στοιχεία στο φάκελο?”  Για να είμαι ειλικρινής, Εγώ δεν προσπαθώ τόσο σκληρά, δεδομένου ότι έχω ήθελε να το καταλάβουμε αυτό μία έξω από μόνος μου για μια στιγμή Χαμόγελο.

Να ορίσετε το χρόνο αυτό, Δημιούργησα μια τοποθεσία που ονομάζεται «Blogging σενάρια» και μια προσαρμοσμένη λίστα όνομα "Προσαρμοσμένη λίστα με υπο-φάκελλοι".  Δημιούργησα στη συνέχεια φακέλους με το όνομα:

  • Έτος 2005
  • Έτος 2006
  • Έτος 2007

Πρόσθεσα μερικά στοιχεία στο φάκελο «Έτους 2006».  Αυτό είναι τι μοιάζει:

image

Ο φίλος μου δεν είναι σύνταξη κώδικα C# αλλά μάλλον χρήση της Java, έτσι το φάκελο SOAP ήταν ό, τι είναι πραγματικά αναγκαία.  Για να το επιτύχουμε, Μου έγραψε λίγο jQuery και στη συνέχεια χρησιμοποιείται fiddler για να λάβετε την πραγματική συνομιλία HTTP.

Εδώ είναι το σχετικό jQuery (Αντέγραψα κώδικα κάτω κάτω αν θέλετε για την αντιγραφή/επικόλληση):

image

Τους πρώτο κλειδί είναι να περιλαμβάνουν τόσο έναν <queryOptions> και <QueryOptions> Κόμβος.  Το δεύτερο κλειδί είναι ότι η <Φάκελος> ο κόμβος είναι μια διεύθυνση URL, όπου ο υπολογιστής-πελάτης έχει πρόσβαση.

Μπορεί να υπάρχουν άλλοι τρόποι να ολοκληρώσουμε αυτό το, αλλά αυτή λειτούργησε καλά για μένα όταν χρησιμοποιώντας jQuery.

Εδώ είναι το φάκελο SOAP για τα ανωτέρω:

<soapenv:Φάκελος xmlns:soapenv =’http://schemas.xmlsoap.org/SOAP/Envelope/’>                
  <soapenv:Οργανισμός>
    <GetListItems xmlns =’
http://schemas.microsoft.com/SharePoint/SOAP/’>
      <listName>Προσαρμοσμένη λίστα με φακέλους Sub</listName>
      <viewFields>  
        <ViewFields>
          <FieldRef όνομα =' Τίτλος’ />
          <FieldRef όνομα ='EncodedAbsUrl’ />
        </ViewFields>
      </viewFields>
      <queryOptions>
        <QueryOptions>
          <Φάκελος>
http://demoserver1/Blogging Σενάρια/κατάλογοι/προσαρμοσμένη λίστα με Sub φακέλων/έτος 2006</Φάκελος>
        </QueryOptions>
      </queryOptions>
   
</GetListItems>
  </soapenv:Οργανισμός>
</soapenv:Φάκελος>

Πολλά παραδείγματα και συζητήσεις γύρω από αυτό με ώθησε να πιστεύουν ότι ήταν όλα τα χρειάζομαι <QueryOptions> και καθορίστε ένα όνομα φακέλου.  Για μένα, Μου χρειάζεται τόσο αναδιπλώνονται μέσα <queryOptions> καθώς και να καθορίσετε ένα έγκυρο URL για το <Φάκελος> Κόμβος.

Εδώ είναι το jQuery AJAX εγκατάστασης:

$(έγγραφο).έτοιμο(συνάρτηση() {
       var soapEnv =
           "<soapenv:Φάκελος xmlns:soapenv =’http://schemas.xmlsoap.org/SOAP/Envelope/’> \
               <soapenv:Οργανισμός> \
                    <GetListItems xmlns =’http://schemas.microsoft.com/SharePoint/SOAP/’> \
                       <listName>Προσαρμοσμένη λίστα με φακέλους Sub</listName> \
                       <viewFields> \
                           <ViewFields> \
                              <FieldRef όνομα =' Τίτλος’ /> \
                              <FieldRef όνομα ='EncodedAbsUrl’ /> \
                          </ViewFields> \
                       </viewFields> \
                       <queryOptions> \
                         <QueryOptions> \
                           <Φάκελος>http://demoserver1/Blogging Σενάρια/κατάλογοι/προσαρμοσμένη λίστα με Sub φακέλων/έτος 2006</Φάκελος> \
                         </QueryOptions> \
                       </queryOptions> \
                   </GetListItems> \
               </soapenv:Οργανισμός> \
           </soapenv:Φάκελος>";

</Τέλος>

Εγγραφείτε στο blog μου.

Συνέχεια μου για Twitter σε http://www.twitter.com/pagalvin

Μοτίβα ΕΕΠ ροής εργασίας, Συμβουλές και κόλπα

Έδωσα την παρουσίασή μου σήμερα στο SharePoint Fest στο Ντένβερ. Εδώ είναι η παρουσίαση του PowerPoint ίδια: http://www.mstechblogs.com/paul/wp-content/uploads/2011/05/SharePointFest.pptx

Εγγραφείτε στο blog μου.

Συνέχεια μου για Twitter σε http://www.twitter.com/pagalvin

Lists.asmx, GetList και "τιμή δεν είναι δυνατό να είναι null”

Ανακάλυψα σήμερα που το GetList() μέθοδο σε lists.asmx υπηρεσία Web πρέπει να αποκαλείται πολύ προσεκτικά ή είναι επιρρεπείς να ρίξει ένα μυστηριώδες εξαίρεση "Αξία δεν μπορεί να είναι null" (και αυτό υποθέτοντας ότι μπορείτε να λάβετε παρελθόν το ακόμη χειρότερο μήνυμα γενικού σφάλματος, "Εξαίρεση του τύπου «Microsoft.SharePoint.SoapServer.SoapServerException’ δημιουργήθηκε.")  Ειδικά, Βρήκα ότι δεν μπορείτε να δώσετε οποιοδήποτε είδος πρόθεμα σχετικά με τη μέθοδο GetList.  Το ακόλουθο απόσπασμα jQuery διαφωτίζει το σημείο:

image

Αν το κάνετε που, η υπηρεσία web ανταποκρίνεται με "Αξία δεν μπορεί να είναι null" σύμφωνα με αυτό fiddler-παρείχε την απομαγνητοφώνηση HTTP:

<?XML έκδοση = 1.0»" κωδικοποίηση = "utf-8"?>
  <σαπούνι:Φάκελος
     xmlns:σαπούνι ="
http://schemas.xmlsoap.org/SOAP/Envelope/"    
     xmlns:xsi = "
http://www.w3.org/2001/XMLSchema-instance
     xmlns:xsd ="
http://www.w3.org/ 2001/σχήματος XML">

  <σαπούνι:Οργανισμός>
    <σαπούνι:Σφάλμα>
      <faultcode>σαπούνι:Διακομιστή</faultcode>
      <faultstring>
        Εξαίρεση του τύπου «Microsoft.SharePoint.SoapServer.SoapServerException’ ρίχτηκε.
      </faultstring>
      <λεπτομέρεια>
        <errorstring xmlns ="
http://schemas.microsoft.com/SharePoint/SOAP/">
Αξία δεν μπορεί να είναι null.
        </errorstring>
      </λεπτομέρεια>
    </σαπούνι:Σφάλμα>
  </σαπούνι:Οργανισμός>
</σαπούνι:Φάκελος>

Φυσικά, πιθανώς δεν θα προσθέτετε πρόθεμα "s0" για τη δική σας, αλλά μερικά εργαλεία είναι επιρρεπείς να κάνουμε (όπως το Eclipse).

Αυτό είναι όλο και πιο συγκεχυμένη / απογοητευτικό επειδή άλλες μεθόδους ανέχεται προθέματα.  Για παράδειγμα, το GetListCollection μέθοδος δεν πειράζει εάν είναι γαλλική, ακόμη και με ανοησίες προθέματα όπως "xyzzy":

image

Αυτό "η τιμή δεν μπορεί να είναι null" φαίνεται αρκετά κοινά με lists.asmx, οπότε ελπίζω αυτό θα βοηθήσει κάποιος στο μέλλον.

</Τέλος>

Εγγραφείτε στο blog μου.

Συνέχεια μου για Twitter σε http://www.twitter.com/pagalvin