Article 9 from 30 : Is it possible to create Mobile App for the SharePoint 2013 app web?

This post is article-9 from the 30 Articles App series for SharePoint.

In this article we will find out some technical limitation or may overcome it somehow ๐Ÿ˜›

Recently, this thought is surrounding my mind and my time ๐Ÿ™‚

Question : Can I create a Mobile Native App that talk directly to the App web. To simplify the scenario let’s say Windows Mobile App.
Link to my question I asked in the MSDN forum is here.

Scot Hillier (SharePoint MVP) has suggested a nice idea about architect it the other way
Here is what Scot says when I asked him the same question:
” “create a mobile app for SharePoint app web”, I’m scratching my head a bit wondering why. I have not tried yet, but it seems that in theory you could enter the URL of the app web into the phone app development wizard and see the available lists. I’d have to try. But again, why?
Why not either build the phone app against a SharePoint list in the SharePoint farm or build a phone app against a cloud data source – like a RESTful endpoint. In both cases, a SharePoint app could utilize the same data. So you could have a phone app and a SharePoint app (and an Office app, too).
So it seems to me there are better ways to architect the solution.”

However I still want to investigate this approach for some hidden challenges :

  1. Your client is not happy to give create list permission to the Host web for your app [50% will not allow to create a list for some App into your farm ; rest 50% would prefer if the App doesn’t ask for such permissions… my opinion ]
  2. In addition to (1), If you have to create SharePoint Artifacts then you can’t go with Cloud source
  3. As per my knowledge No one has tried this yet and so I have to try this to see what else is there beyond theory !!

Below is what I am getting while trying to create Mobile App for my App web :

An error : “The remote server returned an error : (403) Forbidden.”

20121017-154039.jpg

I am in search of a way for getting rid of this error if possible. Would love to hear your opinions on this.

Shall I count this error as “NO” to the question and consider it as the technical limitation of SharePoint 2013 App Model? Are the app webs not accessible through apis ?…. will make an update here stay tuned !!

UPDATE [ added on 19/10/12 11:00am ]

It looks like no native mobile app can talk directly to app web. May be It’s not supported. However I am still waiting for confirmation.

So for now, In conclusion to chose the best practice in context with Mobile devices : Mix of auto-hosted and/or provider hosted is one of the option which is preferable. Again keep in mind that if the App is to be subject of high scalability then tons of money + time for maintaining that data in cloud will be required. Well designed HTML App can be your saver for Mobile devices headache..!!

Also have a look to Rainer’s comments below on this subject.

I hope this RND and possible workarounds will help you to choose right approach if you are considering building native mobile app for an SharePoint app.

Have a nice weekend you all and we will meet again for next article ๐Ÿ™‚ !!

Note : This article up to above updates was written for SharePoint 2013 preview.

UPDATE : [ Added on 09/11/2012 16:30 ]

Note : SharePoint 2013 RTM has been released on 24 October 2012.

So finally I have received a reply and confirmation from Microsoft Insider( Rob M. Howard) that it is actually possible.

I am not sure that this is the change from preview to RTM or it was actually supported in preview as well.

Huge thanks to the Sharepoint App product team and to Rob for this confirmation.

The good news is yes it is supported in SP2013.

In addition to this; to understand how this works here is what Rob says

“Yes, it is possible. You would authenticate the app web the same way you would authenticate to any other web in the SharePoint site. For example, you can authenticate to SharePoint Online webs in Windows Phone applications using the procedure described at the link below:

http://msdn.microsoft.com/en-us/library/jj163079(v=office.15).aspx#SP15Mobileclientauth_advance

For SharePoint Online authentication from mobile apps in general, you can load a browser control for the user to authenticate to SharePoint, and then retrieve the authenticated cookie from the browser control and use it on subsequent requests made by your application. “

Hope that helps..!!

Article 8 from 30 : Creating an App-Part for SharePoint 2013 Apps

This post is article-8 from the 30 Articles App series for SharePoint.

An App part is similar to webpart for your SharePoint App.

How to create it?

  1. Open your Sharepoint App project in Visual Studio.
    Add new Item-> Client webpart-> Add it .
  2. Add your clientwebpart page HTML/ASPX
    here I have created ClientWebpartPage.ASPX.
    Make sure that you have put allowframing into your page.
    <WebPartPages:AllowFraming ID=”AllowFraming1″ runat=”server” />
  3. Open the element.xml file you have created from step -(1)
    and give the reference to the file you have added into step -(2) as below
  4. <?xml version=”1.0″ encoding=”utf-8″?>
    <Elements xmlns=”http://schemas.microsoft.com/sharepoint/”&gt;

    <ClientWebPart Name=”AppPartDemo_ClientWebPart” Title=”AppPartDemo” Description=”AppPartDemo_ClientWebPart Description” DefaultWidth=”250″ DefaultHeight=”300″>

    <Content Type=”html” Src=”~appWebUrl/Pages/ClientWebPartPage.aspx” />

    </ClientWebPart>
    </Elements>

How to Add it to SharePoint Page?

Simple just like you add a webpart.

Edit page-> insert webpart -> Apps -> choose your app part and save the page.

Here is how it looks after Adding my twitter App Part to SP Host.

Article 7 from 30 : What is TypeScript? Shall I use it for SharePoint 2013 Apps?

This post is article-7 from the 30 Articles App series for SharePoint.

1st Oct 2012 was the day when Microsoft has released TypeScript.

It was too tempting and I could not stop myself including it in this series ๐Ÿ™‚ !!

What is TypeScript ?

TypeScript is a language for application-scale JavaScript development.
TypeScript is a typed super-set of JavaScript that compiles to plain JavaScript.
Any browser. Any host. Any OS. Open Source.

Why Should you use TypeScript as a Microsoft Technology Developer ? :

Many people who use Dart or CoffeScript are not convinced with the idea behind creating TypeScript and there are mix responses for TypeScript in Developer Community. It makes much more sense when you believe that TypeScript is created to help Microsoft Developer Community.

You can use Visual Studio ==> familiar tool for development.

Get the Visual Studio TypeScript Plugin from here .

You can create JS code faster, robust and more manageable finally with class :P!

Advantages over simple JavaScript :

It has classes, modules, and interfaces.

It is statically typed so will provide auto-completion for statements and point out binding errors at compile time.ย  ( very important feature for debugging + creating error free code )

I would never compare TypeScript with Dart and CoffeScript. It’s just not fair. But below is for those who compare ๐Ÿ˜‰

Advantage over Dart :

Dart is written from scratch while TypeScript is build on JS.ย  In short whatever you write in JS , you use it without any change inย  TypeScript.

Advantage over CoffeeScript :

CoffeeScript has its ownย  syntax so you need to learn it while TypeScript is super-set of JS so virtually there is no learning curve.

I do quite like CoffeeScript and also see a good potential for TypeScript. TypeScript is like CoffeeScript on Steroids ๐Ÿ™‚ .

Here is an example that for CoffeeScript you need to make sure thatย compiled JavaScript is actually correct .

Shall I use it for SharePoint 2013 Apps?

Of-course YES.

TypeScript can be used wherever you use JavaScript.

Remember Article-1 : There is a big NO to any server-side code for SharePoint Hosted Apps.

SharePoint hosted Apps relies on JavaScript for Cosmetics + functional Support.

SharePoint 2013 has much more improved JavaScript API which is good enough for building Apps.

I want you to explore this new product and so TypeScript will belong here in our App series..!! Do you mind??ย  of course not..!! ๐Ÿ˜›