קאַטעגאָריע אַרטשיוועס: שאַרעפּאָינט דעוועלאָפּמענט

איין סיבה פֿאַר "איינער אָדער מער פעלד טייפּס ביסט ניט אינסטאַלירן רעכט”

איך איז געווען געמאכט אַ קליין טוויק נעכטן צו אַ וועב טייל וואָס טוט אַ קאַמל אָנפֿרעג קעגן אַ רשימה.  איך געמאכט די ענדערונג, דיפּלויד עס און גאַט שלאָגן מיט אַ טעות:

אַ אומגעריכט טעות האט פארגעקומען אין די דריי טאָג אַוטלוק וועטער פאָרויסזאָגן וועבפּאַרט. ביטע קאָנטאַקט די סיסטעם אַדמיניסטראַטאָר. איינער אָדער מער פעלד טייפּס ביסט ניט אינסטאַלירן רעכט. גיין צו די רשימה סעטטינגס בלאַט צו אויסמעקן די פעלדער.

איך איז געווען פייסינג אנדערן אַדבאָל אַרויסגעבן פריער אַזוי איך האט ניט מיד פאַרבינדן מיין קאַמל אָנפֿרעג מיט דער טעות אַז שאַרעפּאָינט איז ריפּאָרטינג צו מיר.  איך האט אַ שנעל בינג זוכן און און געפונען דעם נוציק בלאָג פּאָסטן דורך סאַנדעעפּ נאַהטאַ  (http://snahta.blogspot.com/2009/01/one-or-more-field-types-are-not.html).

דאָ איז די שלעכט אָנפֿרעג:

query.Query = "<ווו><און><Neq><פיעלדרעף נאָמען = 'אַבבר' /><ווערט טיפּ = 'טעקסט'>ספני</ווערט><פיעלדרעף נאָמען = 'אַבבר' /><ווערט טיפּ = 'טעקסט'>ספיס</ווערט></Neq></און></ווו>";

דאָ עס איז פאַרפעסטיקט:

query.Query = "<ווו><און><Neq><פיעלדרעף נאָמען = 'אַבבר' /><ווערט טיפּ = 'טעקסט'>ספני</ווערט></Neq><Neq><פיעלדרעף נאָמען = 'אַבבר' /><ווערט טיפּ = 'טעקסט'>ספיס</ווערט></Neq></און></ווו>";

אַזוי, די מאָראַל פון די געשיכטע איז: מאַכן זיכער דיין קאַמל איז ריכטיק אָדער איר זאל באַקומען אַ אַדבאָל טעות.

אַבאָנירן צו מיין בלאָג.

גיי מיר אויף טוויטטער בייַ http://www.twitter.com/pagalvin

</עק>

שאַרעפּאָינט 2010 לייזונג סטאַק אין "דעפּלויינג” מאַצעוו

איך געוויינט פּאָווערשעלל צו צעוויקלען אַ לייזונג צו אַ שאַרעפּאָינט פאַרם (ה / ה:  קאָרי ראָטה און זייַן בלאָג פּאָסטן). 

איך דעמאָלט געגאנגען צו די הויפט אַדמין, געליינט סיסטעם סעטטינגס און דעמאָלט "אויפֿפּאַסן פאַרם סאַלושאַנז" צו צעוויקלען עס צו די פאַרם און צו מיין (קליין) דיסמיי, עס גאַט סטאַק אין "דיפּלויינג".

איך ווע געזען דעם אַרויסגעבן קומען אַרויף פילע מאל אויף די מסדן גרופּעס, אַזוי איך איז געווען שיין נערוועז וועגן אים.  איך געזוכט אַרום אַ ביסל און געפונען דעם נוציק אַרטיקל (דורך אַ פּאָנעם ונאַטטריבוטעד מענטש פון http://www.resolutionsnet.co.uk/).  איך קאַנסאַלד די דיפּלוימאַנט אַרבעט און ווען איך קליקט אין די לייזונג, עס דערציילט מיר אַז עס האט הצלחה דיפּלויד די לייזונג צו דרייַ פון די פיר סערווערס אין די פאַרם.

איך געגאנגען צו די עראַנט סערווירער, פארשטאפט די טייַמער דינסט און ריסטאַרטיד עס.  פֿענצטער סערווירער פאקטיש דערציילט מיר אַז די דינסט ניט אַנדערש צו רעספּאָנד צו די באַפֿעלן, אַזוי אַז דערציילט מיר אַז עס איז געווען קראַנק.

דאס מאָל, ווען איך געגאנגען צוריק צו הויפט אַדמין, איך איז געווען ביכולת צו צעוויקלען עס מיט קיין פּראָבלעם.

אַלעווייַ דעם ביסל פון אינפֿאָרמאַציע וועט העלפן עטלעכע אין אַ בינדן איינער פון די טעג.

</עק>

אַבאָנירן צו מיין בלאָג.

גיי מיר אויף טוויטטער בייַ http://www.twitter.com/pagalvin

טעות פון די טאָג: "קענען נישט לייגן די ספּעסאַפייד אַסעמבלי צו די גאַק”

איך ווע שוין פייטינג אַ ביסל מיט וויסואַל סטודיאָ 2010 אויף אַ אַ ספּ2010 לייזונג און איז געטינג דעם טעות:

Error occurred in deployment step ‘Add Solution’: גרייַז: קענען נישט לייגן די ספּעסאַפייד פֿאַרזאַמלונג צו די גלאבאלע פֿאַרזאַמלונג קאַש: יאָוראַוועסאָמעדללטהאַט יאַמדזשוסטנאָטגאָינגטאָינסטאַללריגהטנאָוו.דלל

איך געגאנגען צו די גאַק זיך (C:\Windows פֿאַרזאַמלונג) צו פּרובירן און באַזייַטיקן און גאַט אַ "טעקע אין נוצן" טעות.

I did an iisreset, I almost downloaded sysinternals, I stopped the timer service in services… finally, I just closed and reopened visual studio itself and I was finally able to close it out.

</עק>

אַבאָנירן צו מיין בלאָג.

גיי מיר אויף טוויטטער בייַ http://www.twitter.com/pagalvin

שנעל און יזי: דיבאַגינג ווס 2010 לייזונג דעפּלוימענט

וויסואַל סטודיאָ 2010 מעלדעט שווער-צו-דיבאַג ערראָרס בעשאַס דיפּלוימאַנט עטלעכע מאל.  א שנעל און גרינג וועג צו טאָן עטלעכע זייער פּראָסט דיבאַגינג איז צו וואַרפן אייער אייגן געהייסן אויסנעמען.  וויסואַל סטודיאָ וועט ווייַזן זיי אין דער רעזולטאַט קאַנסאָול.

באַטראַכטן דעם ביסל פון קאָד:

image

אויב דעם שטריך איז סקאָפּעד צו אַ וועב אַפּלאַקיישאַן, פּלאַץ וועט זייַן נאַל.  אויב איר פּרובירן און דערמאָנען אַ פאַרמאָג פון פּלאַץ, איר וועט באַקומען די אַמביגיואַס טעות:

Error occurred in deployment step ‘Add Solution’: כייפעץ דערמאָנען נישט שטעלן צו אַ בייַשפּיל פון אַ כייפעץ.

אָבער, אויב וואַרפן אַ נייַ עקססעפּטיאָן און פאָרן אַ שטריקל צו די קאָנסטרוקטאָר, איר באַקומען אַ ביסל מער נוצלעך אָנזאָג:

image

עס ס אַ גראָב טעכניק, אָבער שיין שנעל און גרינג.

</עק>

אַבאָנירן צו מיין בלאָג.

גיי מיר אויף טוויטטער בייַ http://www.twitter.com/pagalvin

טייַמער דזשאָב פעאַטורעאַקטיוואַטעד און פיטשער סקאָופּ

איך'ווע געווען ארבעטן מיט עטלעכע קאָד אַז עמעצער קאָלנער צו מיר פֿאַר אַ טייַמער אַרבעט.  ער האט נישט צוגעשטעלט די פאַקטיש שטריך אַקטאַוויישאַן קאָד אַזוי איך געהאט צו שרייַבן עס, פון קורס.  I took advantage of Andrew Connell’s famous blog post on the subject.

איך בין ניצן וויסואַל סטודיאָ 2010 and deployment kept failing with an error “Error occurred in deployment step ‘Add Solution’: Object reference not set to an instance of an object.”

I was taking his code too literally.  I was scoping the feature to the web application level, ווי געוויזן:

image

ווי אַ רעזולטאַט, the properties that are sent to the receiver are from the web application, not a site collection.  אין די סוף, the code looks like this:

public override void FeatureActivated(SPFeatureReceiverProperties properties)
{

    // Don’t do the following with web app scoped features, it leads to despair שמייכל
    // SPSite site = properties.Feature.Parent as SPSite;

    SPWebApplication wa = properties.Feature.Parent as SPWebApplication;

    צי (wa == null) throw new Exception("webapp2 is null.");

    פאָרעאַטש (SPJobDefinition job in wa.JobDefinitions)
    {

        פּרובירן
        {
            צי (job.Name == List_JOB_NAME)

                job.Delete();
        }
        כאַפּן (Exception e)
        {
            throw new Exception("marker 2");
        } // catch exception e
    }

    // install the job

    WeatherForecastTimerJob weatherForecastTimerJob =
        new WeatherForecastTimerJob(List_JOB_NAME, wa);

    SPMinuteSchedule schedule = new SPMinuteSchedule();
    schedule.BeginSecond = 0;
    schedule.EndSecond = 59;
    schedule.Interval = 5;
    weatherForecastTimerJob.Schedule = schedule;
    weatherForecastTimerJob.Update();

}

The key take-away is that when the feature is scoped to a web app, the SPFeatureReceiverProperties that SharePoint passes to your feature receiver has web app level parameters.  Andrew’s old blog entry assumes it’s scoped to the site collection.

</עק>

אַבאָנירן צו מיין בלאָג.

גיי מיר אויף טוויטטער בייַ http://www.twitter.com/pagalvin

ווו איז Microsoft.SharePoint.ApplicationPages.Administration.dll?

איך איז געווען קאָלנער אַ וויזשאַוואַל סטודיע פּרויעקט וואס באַווייַזן Microsoft.SharePoint.ApplicationPages.Administration.dll.  עס האט מיר אַ ביסל בשעת צו געפינען עס און איך טראַכט איך'ד ייַנטיילן.  אין מיין סוויווע, עס ס ליגן בייַ:

C:\פּראָגראַם טעקעס פּראָסט טעקעס מייקראָוסאָפט שערד וועב סערווער יקסטענשאַנז 14 קאָנפיג אַדמינבין

</עק>

אַבאָנירן צו מיין בלאָג.

גיי מיר אויף טוויטטער בייַ http://www.twitter.com/pagalvin

קאָדעפּלעקס פּראָיעקט – ספּ2010 Explorer

ווי טייל פון אַן אויף-געגאנגען מי צו לערנען די טעכניש נידעריק מדרגה פרטים פון שאַרעפּאָינט 2010, I’ve created a “SharePoint Explorer” kind of tool.  דער געדאַנק איז נישט נייַ.  איך געניצט דעם פּרויעקט מער ווי אַמאָל: http://sharepointexplorer.codeplex.com/.  My idea is to create a SharePoint version that uses connected web parts to show all the low-level detail that the object model can provide. 

This blog post serves as both an announcement of the project as well as a call for volunteers.  If you’re interested in working on this project, let me know via email (גאַלווינ.פּאַול @ gmail.com) and we’ll work it out.

Here is the project: http://sp2010explorer.codeplex.com/

</עק>

אַבאָנירן צו מיין בלאָג.

גיי מיר אויף טוויטטער בייַ http://www.twitter.com/pagalvin

ארבעטן מיט טרעענאָדעבינדינג אין די ASP.NET טרעעוויעוו קאָנטראָל

I’ve been working on what I hope will be a soon-released קאָדעפּלעקס project that provides a nice integrated bit of web parts talking to each other via provider/consumer connections for the purpose of exploring a SharePoint site under the covers.  (דעם האט אַוואַדע געשען איידער, but this is a learning project as much as anything else).  This is meant to be a replacement for the windows explorer view of SharePoint 2010 דאָקומענט לייברעריז.

The code has the usual recursive call down the SPWeb’s and SPLists from a given starting point.  The object that does all that traversing builds up an XML string that looks something like this:

<sitecollection url=’הטטפּ://demo2010a:9090′>
 
<web
     title=’Hello World Sandbox’ 
     Template=’A site for teams to quickly organize, author, and share information, BLAH BLAH BLAH’>

     <רעשימע
        title=’BCC_Health_Services_FAQs’
        Template=’CustomList’
       
listid=’הטטפּ://demo2010a:9090/helloworldsandbox[delim]1e02b001-3cb2-4f17-b63d-7809e86b4174′>
    
</רעשימע>

     <רעשימע
        title=’BCC_Notifications’ 
        Template=’CustomList’ 
        listid=’
הטטפּ://demo2010a:9090/helloworldsandbox[delim]5a5a13d1-877c-41c0-9063-b9612be80d5e’>
     </רעשימע>

  </web>

</sitecollection>

I expect to clean up that XML before all is said and done.

I want to ultimately get that information up and into a Treeview control.  Not exactly earth shattering stuff.

The challenge I took on here was to connect the tree view to an XML Data Source control instead of manually building up my treenodes as I traverse the tree.  I did this partly because I’m deliberately making things harder on myself (this is a learning project after all) and partly because I have this vague notion that building up tree nodes as I traverse the tree isn’t a good idea for the long term.

The problem with this approach is that the Treeview control doesn’t know about the good attributes on the interesting nodes like “list” or “web” so it shows this output by default:

 

image

That’s not useful.  This is where the TreeNodeBinding class helps.  I can use this to tell the Treeview control how it should interpret the XML.  דאָ ס אַ בייַשפּיל:

tnb = new TreeNodeBinding();
tnb.DataMember = "list"; // This is the label in the xml for a site.
tnb.TargetField = "listid";
tnb.ValueField = "title";
tnb.ToolTipField = "Template";

This binding tells the treeview that when it finds a <רעשימע> node in the XML, apply the bindings for TargetField, ValueField and ToolTipField.  In may app, these map as follows:

  • TargetField: When someone clicks on a node value, this is what you’ll get for SelectedNode.Value.  This is not to be confused with…
  • ValueField: This is what you want the Treeview to display to the user.
  • ToolTipField: The value from the XML that you want as a Tooltip.

Add that TreeNodebinding to the tree view’s DataBindings and you get output like this:

 

image

I’ll have more on all this as I continue on the project and eventually put this up on Codeplex.

</עק>

אַבאָנירן צו מיין בלאָג.

גיי מיר אויף טוויטטער בייַ http://www.twitter.com/pagalvin

קאַנעקטינג טעקסט פיעלד פילטערס צו אייער קאַסטאַם וועב חלק

איך געוואלט צו באַקומען אינפֿאָרמאַציע פון ​​אַ טעקסט פיעלד פילטער אין שאַרעפּאָינט 2010 אין מיין מנהג וועב טייל.  איך געפרואווט ניצן דעם מסדן אַרטיקל ווי אַ יקער אָבער דער אַרטיקל איז אָדער צעבראכן אָדער איך בין פּונקט נישט ווייַטערדיק עס ריכטיק.

א ביסל מער שאַרף אויסגעדרייט אַרויף מייק סמיט ס מסדן צושטייַער דאָ (http://social.msdn.microsoft.com/forums/en-us/sharepointdevelopment/thread/72F1732A-7F93-441E-8644-2E82BBB153D9).

עס ס אַ פּלאַץ פון שטאָפּן אויס עס אויף קאָננעקטאַבלע וועב פּאַרץ אָבער מייק ס אַרטיקל איז ווי פּשוט ווי עס געץ.

</עק>

אַבאָנירן צו מיין בלאָג.

גיי מיר אויף טוויטטער בייַ http://www.twitter.com/pagalvin

שנעל און יזי: שיקן עמאַיל וסינג Gmail סמטפּ סערווירער אין. נעץ C #

דעם איז ניט פּונקט אַ נייע טעמע, אָבער ווען איך דארף צו טאָן עס, I found a lot of “why won’t this work for me” and not too many direct answers. I hope someone finds this useful.

די ווייַטערדיק ביסל פון קאָד וועט שיקן אַ בליצבריוו מיט מיין אייגן Gmail חשבון צו טאָן עס, כולל אַטאַטשמאַנץ:

ניצן סיסטעמ.נעט.מאַיל;
ניצן System.Net;

נעטוואָרקקרעדענטיאַל לאָגינינפאָ = נייַ נעטוואָרקקרעדענטיאַל("[מייַן Gmail שייַן]", "[מייַן Gmail שפּריכוואָרט]");
מאַילמעססאַגע מסג = נייַ מאַילמעססאַגע();
מסג.פראָם = נייַ מאַילאַדדרעסס("[ב Gmail יד]@ Gmail.com");
מסג.טאָ.אַדד(נייַ מאַילאַדדרעסס("paul.galvin@arcovis.com"));
מסג.סובדזשעקט = "Test infopath dev subject";
מסג.באָדי = "<HTML><גוף><שטאַרק>א שטאַרק אָנזאָג.</שטאַרק></גוף></HTML>";
מסג.יסבאָדיהטמל = ריכטיק;

פאָרעאַטש (שטריקל אַפילע אין ניפּפד.געטאַטטאַטשמענטנאַמעסאַנדלאָקאַטיאָנס())
{
    מסג.אַטטאַטשמענצ.אַדד(נייַ אַטאַטשמאַנט(אַפילע));
} // אַדינג אַטאַטשמאַנץ.

סמטפּקליענט קליענט = נייַ סמטפּקליענט("smtp.gmail.com");
קליענט.ענאַבלעססל = ריכטיק;
קליענט.וסעדעפאַולטקרעדענטיאַלס = פאַלש;
קליענט.קרעדענטיאַלס = לאָגינינפאָ;
קליענט.פּאָרט = 587;
קליענט.ענאַבלעססל = ריכטיק;
קליענט.סענד(מסג);

א ביסל שליסל ביטן אַז סלאָוד מיר אַראָפּ און אנדערע אַבזערוויישאַנז / הערות:

  • דער ערשטער שורה אַז קריייץ די לאָגינינפאָ כייפעץ דאַרף צו נוצן די Gmail שייַן סטריפּט פון "@ Gmail.com". אַזוי, אויב מיין Gmail בליצפּאָסט אַדרעס איז "Sharepoint@gmail.com"און מיין Password איז" קסיזזי "דעמאָלט די שורה וואָלט קוק ווי:

נעטוואָרקקרעדענטיאַל לאָגינינפאָ = נייַ נעטוואָרקקרעדענטיאַל("sharepoint", "xyzzy");

  • מייַן Gmail חשבון איז שטעלן זיך צו נוצן ססל און וואָס איז געווען ניט אַ פּראָבלעם.
  • There is some conflicting information out there on what port to use. I used port 587 און עס געארבעט פייַן פֿאַר מיר.
  • אין מיין פאַל, I also needed to send attachments. That NIPFD object has a method that knows where my attachments are. It’s returning a fully path (e.g. "C:\temp\attachment1.jpg”. In my test, איך האט צוויי אַטאַטשמאַנץ און זיי ביידע געארבעט פייַן.

איך געוויינט וויסואַל סטודיאָ 2008 צו שרייַבן דעם קאָד.

</עק>

אַבאָנירן צו מיין בלאָג.

גיי מיר אויף טוויטטער בייַ http://www.twitter.com/pagalvin

טעטשנאָראַטי טאַגס: ,,,