Menarik iPhone aplikasi

image Tim mobile di Slalom telah mengembangkan keren iPad aplikasi yang menggabungkan realitas maya augmentasi w / kemampuan offline untuk menyediakan apa yang mungkin terbaik finder kereta bawah tanah New York dan routing app tersedia hari ini.

Berikut adalah situs yang menggambarkan app secara lebih rinci: http://www.nycstationfinder.com/.

Saya tidak memiliki produk Apple sehingga saya tidak dapat mengujinya sendiri, tapi kelihatannya keren. Saya berharap mereka port atas Android segera.

</akhir>

Berlangganan ke blog saya.

Ikuti saya di kegugupan di http://www.twitter.com/pagalvin

MVP lagi

Microsoft re-awarded saya dengan SharePoint MVP pada tanggal 1 Juli tahun ini dan tidak kurang menarik daripada itu pertama kali empat tahun yang lalu.

Komunitas SharePoint adalah tempat yang menakjubkan.  Aku ingat ketika aku pertama kali diperkenalkan untuk SharePoint oleh majikan saya lama, Conchango.  I was not happy about it Tersenyum.  Saya telah hidup di dunia BizTalk selama setahun atau dua mengarah ke pekerjaan saya di sana dan sebelum itu, bekerja di dunia insuler lain dari orang-orang dan perusahaan yang membuat hidup dari Kemajuan Software.  Aku berkata "pulau" karena dunia SharePoint adalah apa-apa tapi!

Aku terus-menerus senang dan bersemangat untuk menjadi bagian dari komunitas ini online aneh orang-orang yang merasa aneh dipaksa untuk blog tanpa henti, menyerah Sabtu mereka gratis konferensi, menghantui forum online, membangun segala macam memukul keluar produk gratis untuk memasang CodePlex dan segudang upaya masyarakat lainnya dari segala bentuk dan ukuran. 

Aku tidak tahu apa itu tentang produk ini yang mengilhami seperti kesukarelaan dan Pencelupan, tapi saya harap tidak pernah perubahan.

</akhir>

Berlangganan ke blog saya.

Ikuti saya di kegugupan di http://www.twitter.com/pagalvin

Membiarkan bersinar contoh terdepan untuk SharePoint peningkatan adopsi

Pertama "murni" BrightStarr entri blog saya diterbitkan hari ini.  Di sini adalah teaser:

Telah ada banyak percakapan di the Internets akhir-akhir ini pada topik SharePoint adopsi dan terutama ketiadaan. Tidak seorang pun ingin pergi ke semua kesulitan merancang pertanian dan keamanan infrastruktur, berpartisipasi dalam lokakarya, menyusun manis tampilan dan nuansa, bekerja keluar rock solid informasi arsitektur yang dapat menahan perubahan-perubahan perusahaan re-orgs dan akhirnya, diisi gembar-gembor peluncuran hanya untuk menemukan tiga bulan posting go-live yang kurang 50% perusahaan karyawan menggunakan SharePoint dan sebagian besar dari mereka menggunakannya untuk mengganti file server jaringan lama ("S:\ drive").

Tidak ada peluru perak (atau satu blog posting) akan memecahkan masalah. Namun, ada banyak hal yang dapat Anda lakukan untuk mengurangi risiko anemia SharePoint portal. Salah satu teknik tersebut adalah "Shining contoh pola."

Aku akan senang untuk mengetahui tentang strategi adopsi SharePoint lain bahwa Anda peduli untuk berbagi.  Jika Anda berbagi, Silakan tinggalkan sebagai komentar di BrightStarr blog.

Membaca semuanya di sini: http://www.brightstarr.com/US/Pages/blog-view.aspx?BlogID=52

</akhir>

Berlangganan ke blog saya.

Ikuti saya di kegugupan di http://www.twitter.com/pagalvin

"Akses ditolak” untuk Default.aspx pada SharePoint 2010 Sub situs

Salah satu klien saya pergi tinggal dengan SharePoint mereka 2010 lingkungan hari ini.  Kami menemukan bahwa kelompok tertentu pengguna tidak bisa mengakses halaman muka default mereka.  SharePoint menjawab dengan "Access Denied" biasa "masuk sebagai pengguna lain" atau "permintaan akses" respons. 

Ketika kami menggunakan fungsi "Check akses" nifty ini menegaskan bahwa pengguna akhir benar-benar tidak memiliki akses.  Namun, mereka tidak bisa ke halaman.

Aku mengikuti banyak jalan buntu berbagai sampai aku memutuskan untuk membandingkan bagian web di halaman rusak terhadap halaman bekerja sama.  Aku melakukan itu dengan meletakkan halaman di pemeliharaan mode dengan menambahkan"?isi = 1 "ke halaman. Jadi, itu tampak seperti "http://Server/subsite/subsite/default.aspx?isi = 1 ". 

Ini menunjukkan dua web bagian yang bernama "Kesalahan" dengan penjelasan seperti "Kesalahan" halaman rusak.  Saya tidak berpikir untuk mengambil topi layar saat.

Aku melepaskan mereka dan yang memecahkan masalah.

Aku pernah melihat pertanyaan seperti ini datang atas di forum di masa lalu dan saya sangat skeptis tentang poster desakan bahwa ia memiliki keamanan disetel dengan benar.  Saya * tahu * aku keamanan menyiapkan kanan Tersenyum  Waktu berikutnya, Aku akan menjadi lebih terbuka dan kurang skeptis.

</akhir>

Berlangganan ke blog saya.

Ikuti saya di kegugupan di http://www.twitter.com/pagalvin

XSLT dan jQuery sampel

Saya telah melakukan banyak XSLT, jQuery, dan pikir saya akan berbagi beberapa potongan yang orang lain mungkin menemukan berguna di masa depan.

Contoh 1: Memancarkan JavaScript sederhana / jQuery dalam XSLT:

<Extensible Stylesheet Language:template pertandingan = "sesuatu" XML:ruang = "melestarikan">

  <!– Kosong keluar bidang tersembunyi ramah filter permintaan –>
  <script type = "text/javascript">
    $(dokumen).siap(fungsi(){
      $("#QueryFriendlyFilters").Val("kosong");
    });
  </script>

</Extensible Stylesheet Language:template>

Sedikit memancarkan beberapa JavaScript yang menunggu untuk halaman untuk menyelesaikan pemuatan (karena $(dokumen).siap(…)) dan kemudian set nilai bidang tersembunyi bernama QueryFriendlyFilters nilai literal "kosong".

Contoh 2: Penggunaan <Extensible Stylesheet Language:Jika> untuk memeriksa "lebih besar",  "kurang", dll.

<Extensible Stylesheet Language:template pertandingan = "sesuatu" XML:ruang = "melestarikan">

  <DIV id = "fdcAllFilters">
 
    <Extensible Stylesheet Language:Jika test="@Count>0">
      <span class = "fdcFilterLabel">Current filter:</rentang>
    </Extensible Stylesheet Language:Jika>

    <!– lebih banyak barang yang terjadi di sini. –>

</Extensible Stylesheet Language:template>

Potongan di atas memeriksa untuk melihat apakah atribut yang bernama "Count" dari "sesuatu" elemen yang lebih besar dari nol.  XML di balik ini akan menjadi sesuatu seperti:”

<sesuatu Count = "5" />

Contoh 3: Iterate melalui semua elemen, interspersing jQuery panggilan.

<!– Iterate melalui semua filter dan menampilkan yang benar  link. –>
<Extensible Stylesheet Language:untuk setiap = pilih "UserFilter">

  <kelas = "FilterHref" href = "javascript:mySubmitPage('RemoveUserFilter','{@ ID}’)">[X]</a>

  <span class = "fdcFilterLabel"><Extensible Stylesheet Language:nilai dari select="@FilterValue"/></rentang>

  <script type = "text/javascript">

    $(dokumen).siap(fungsi(){
        <Extensible Stylesheet Language:teks><![CDATA[$("#QueryFriendlyFilters").Val( ($("#QueryFriendlyFilters").Val() + " ]]></Extensible Stylesheet Language:teks>\"<Extensible Stylesheet Language:nilai dari select="@FilterValue"/>\"<Extensible Stylesheet Language:teks><![CDATA["));]]></Extensible Stylesheet Language:teks>
    });

  </script>

</Extensible Stylesheet Language:untuk setiap>

Potongan di atas adalah yang paling kompleks dan mungkin ada cara mudah untuk melakukannya.

XML di balik ini terlihat kira-kira seperti ini:

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

Potongan ini iterasi melalui <UserFilter> node. 

Pertama memancarkan jangkar tag yang ketika diklik memanggil fungsi JavaScript yang sudah pada halaman, "mySubmitPage" dan melewati nilai atribut <UserFilter> simpul yang bernama "ID". 

Itu kemudian memancarkan beberapa jQuery yang menunggu untuk halaman untuk memuat.  JQuery update bidang tersembunyi yang bernama "QueryFriendlyFilters" dengan menambahkan nilai atribut FilterValue.  Catatan semua gila <Extensible Stylesheet Language:teks> dan <![CDATA[ … ]]> barang.

That's it, hope it helps!

</akhir>

Berlangganan ke blog saya.

Ikuti saya di kegugupan di http://www.twitter.com/pagalvin

PerformancePoint dan kesalahan 33494

Salah satu klien saya yang disebut hari ini ketika mereka PerformancePoint lingkungan (dalam SharePoint 2010) rusak.  Salah satu aplikasi server di peternakan kehabisan ruang disk.  Sementara menangani, klien ditanggalkan "terlalu" dan PP barang-barang semua berhenti berfungsi.  Berbagai bagian web akan menunjukkan "terjadi kesalahan tak terduga. Kesalahan 33494. Rincian tambahan telah login untuk administrator":

image

Aku mendongak kesalahan dan tidak menemukan apa pun khusus untuk "Kesalahan 33494" tapi ini Forum MSDN posting ini membantu: http://social.technet.microsoft.com/forums/en-us/sharepoint2010setup/thread/E1FE189D-7F89-455D-A98B-C1A12D8626AB

Saya menemukan ADOMD.NET sebagai sebuah komponen dalam SQL Server 2008 Feature Pack: http://www.microsoft.com/downloads/en/details.aspx?FamilyId=228DE03F-3B5A-428A-923F-58A033D316E1&displaylang=en

image

(Klik untuk memperbesar)

Saya download dan diinstal dan itu tetap segalanya.

Saya rasa ini adalah cukup eksentrik semacam kesalahan, tetapi jika Anda memukulnya, Anda setidaknya Anda memiliki pilihan.

</akhir>

Berlangganan ke blog saya.

Ikuti saya di kegugupan di http://www.twitter.com/pagalvin

Lists.ASMX, GetListItems dan folder

Aku sedang melakukan penelitian untuk seseorang hari ini sekitar list.asmx web layanan yang disediakan sebagai bagian dari SharePoint 2010 (dan sebelumnya).  Ia mampu untuk mendapatkan daftar item di folder akar (termasuk nama subfolder), tapi tidak bisa mendapatkan barang-barang dalam subfolder.  Aku melakukan beberapa memandang berkeliling di the internets dan pertanyaan yang mengejutkan umum.  Namun, Saya tidak bisa mendapatkan jawaban yang bagus untuk pertanyaan sederhana, "jika saya tahu folder, Bagaimana saya mendapatkan item di folder?”  Jujur, Aku tidak mencoba terlalu keras karena aku ingin angka satu ini keluar pada saya sendiri untuk sementara waktu Tersenyum.

Untuk mengatur hal ini, Saya membuat sebuah situs bernama "Blogging skenario" dan daftar kustom bernama "Daftar dengan Sub folder".  Saya kemudian membuat folder bernama:

  • Tahun 2005
  • Tahun 2006
  • Tahun 2007

Saya menambahkan beberapa item ke folder "Tahun 2006".  Ini adalah apa yang tampak seperti:

image

Teman saya tidak menulis C# kode tapi agak menggunakan Java, Jadi SOAP amplop adalah apa yang dia benar-benar diperlukan.  Untuk mendapatkan itu, Saya menulis sedikit jQuery dan kemudian digunakan fiddler untuk mendapatkan percakapan HTTP sebenarnya.

Berikut adalah relevan jQuery (Aku menyalin kode turun di bawah ini jika Anda ingin copy/paste):

image

Mereka kunci pertama adalah untuk memasukkan kedua <queryOptions> dan <QueryOptions> node.  Tombol kedua adalah bahwa <Folder> simpul adalah URL yang klien memiliki akses.

Mungkin ada cara lain untuk mendapatkan ini, Tapi ini bekerja dengan baik bagi saya ketika menggunakan jQuery.

Berikut adalah SOAP amplop untuk di atas:

<soapenv:Amplop xmlns:soapenv =’http://schemas.xmlsoap.org/SOAP/Envelope/’>                
  <soapenv:Tubuh>
    <GetListItems xmlns =’
http://schemas.Microsoft.com/SharePoint/SOAP/’>
      <listName>Daftar kustom dengan Sub folder</listName>
      <viewFields>  
        <ViewFields>
          <FieldRef nama =' judul’ />
          <FieldRef nama ='EncodedAbsUrl’ />
        </ViewFields>
      </viewFields>
      <queryOptions>
        <QueryOptions>
          <Folder>
http://demoserver1/blog Skenario/daftar/Custom daftar dengan Sub folder/tahun 2006</Folder>
        </QueryOptions>
      </queryOptions>
   
</GetListItems>
  </soapenv:Tubuh>
</soapenv:Amplop>

Banyak contoh dan diskusi sekitar ini membawaku untuk percaya bahwa semua saya butuhkan adalah <QueryOptions> dan tentukan nama folder.  Bagi saya, Saya perlu untuk kedua bungkus dalam <queryOptions> serta menentukan URL yang memenuhi syarat untuk <Folder> node.

Here's the jQuery AJAX setup:

$(dokumen).siap(fungsi() {
       var soapEnv =
           "<soapenv:Amplop xmlns:soapenv =’http://schemas.xmlsoap.org/SOAP/Envelope/’> \
               <soapenv:Tubuh> \
                    <GetListItems xmlns =’http://schemas.Microsoft.com/SharePoint/SOAP/’> \
                       <listName>Daftar kustom dengan Sub folder</listName> \
                       <viewFields> \
                           <ViewFields> \
                              <FieldRef nama =' judul’ /> \
                              <FieldRef nama ='EncodedAbsUrl’ /> \
                          </ViewFields> \
                       </viewFields> \
                       <queryOptions> \
                         <QueryOptions> \
                           <Folder>http://demoserver1/Blogging Skenario/daftar/Custom daftar dengan Sub folder/tahun 2006</Folder> \
                         </QueryOptions> \
                       </queryOptions> \
                   </GetListItems> \
               </soapenv:Tubuh> \
           </soapenv:Amplop>";

</akhir>

Berlangganan ke blog saya.

Ikuti saya di kegugupan di http://www.twitter.com/pagalvin

Lists.ASMX, GetList dan "nilai tidak boleh null”

Hari ini saya menemukan bahwa GetList() metode dalam Lists.ASMX Layanan web telah dipanggil sangat hati-hati atau rentan untuk melemparkan misterius pengecualian "Nilai tidak boleh null" (dan itu dengan anggapan Anda dapat melewati lebih buruk pesan kesalahan umum, "Pengecualian jenis ' Microsoft.SharePoint.SoapServer.SoapServerException’ dilemparkan.")  Khusus, Saya menemukan bahwa Anda tidak dapat menyediakan jenis awalan pada metode GetList.  JQuery potongan berikut menggambarkan titik:

image

Jika Anda melakukannya, Layanan web menanggapi dengan "Nilai tidak boleh null" seperti ini Fiddler-disediakan HTTP transkrip:

<?Versi XML = "1.0" pengkodean = "utf-8"?>
  <sabun:Amplop
     xmlns:sabun ="
http://schemas.xmlsoap.org/SOAP/Envelope/"    
     xmlns:XSI = "
http://www.w3.org/2001/XMLSchema-instance
     xmlns:xsd ="
http://www.w3.org/ 2001/XMLSchema">

  <sabun:Tubuh>
    <sabun:Kesalahan>
      <faultcode>sabun:Server</faultcode>
      <faultstring>
        Pengecualian jenis ' Microsoft.SharePoint.SoapServer.SoapServerException’ terlempar.
      </faultstring>
      <detail>
        <errorstring xmlns ="
http://schemas.Microsoft.com/SharePoint/SOAP/">
Nilai tidak boleh null.
        </errorstring>
      </detail>
    </sabun:Kesalahan>
  </sabun:Tubuh>
</sabun:Amplop>

Tentu saja, Anda mungkin tidak akan menambahkan awalan "s0" itu sendiri, tetapi beberapa alat cenderung melakukannya (seperti Eclipse).

Ini semua lebih membingungkan / frustrasi karena metode lain mentolerir awalan.  Misalnya, The GetListCollection metode tidak keberatan jika itu adalah bahasa, bahkan dengan awalan omong kosong seperti "xyzzy":

image

Ini "nilai tidak boleh null" tampaknya cukup umum dengan lists.asmx jadi mudah-mudahan ini akan membantu seseorang di masa depan.

</akhir>

Berlangganan ke blog saya.

Ikuti saya di kegugupan di http://www.twitter.com/pagalvin