Gotchas

Visual Studio Lightswitch: How to work with the LocalDB easily

Visual Studio Lightswitch seems as a good way to bring up a master data maintainance in pretty reasonable time. And I bet everyone needs some master data management for their apps. 

The start is pretty easy, with Entity Framework and a Code, err Designer First approach. Beneath there is a LocalDB residing in <SolutionPath>\<ProjektName>\bin\Data. 

But how can one access this Database directly to fill in some test data?

Just go to the Server Explorer, Data Connections and add a Connection. Then select SQL Server as the connection type (NOT SQL Server Database File!!) and "(localdb)\v11.0" as the database name.

Now you have the tables directly on your hand.

Xamarin Bug: Cannot copy Foo.storyboardc to Foo.storyboardc, as the source file doesn't exist.

Beim Arbeiten mit Storyboards kommt es immer wieder zu folgendem sehr kryptischem Fehler:

Cannot copy /Users/Foo/Library/Caches/Xamarin/mtbs/builds/Bar/fd6794ab700a702bae93582e1686d11c/obj/iPhoneSimulator/Debug/ibtool/Preferences.storyboardc
to /Users/Foo/Library/Caches/Xamarin/mtbs/builds/Bar/fd6794ab700a702bae93582e1686d11c/bin/iPhoneSimulator/Debug/Bar.app/Preferences.storyboardc,
as the source file doesn't exist.

Was ist hier los? Die einfache Erklärung: Beim Kompilieren des Storyboards trat ein Fehler auf, Xamarin für Visual Studio zeigt diesen nie an und es wird auch keine Ergebnisdatei erzeugt. Wo nichts ist, kann man auch nichts kopieren. Also ein Folgefehler.

Doch wie kommt man nun zum eigentlichen Fehler? Die Kompilierung des Storyboards übernimmt das ibtool. Die Fehlermeldungen/Ausgaben liegen in der Datei

/Users/<User>/Library/Caches/Xamarin/mtbs/builds/MyFarmerMarkets/<UUID aus der Meldung oben>/obj/iPhoneSimulator/Debug/ibtool/<Name Storyboard>/<Name Storyboard>.plist

Ein einfache Fehlermeldung sieht dort so aus:

<plist version="1.0">
<dict>
    <key>com.apple.ibtool.document.errors</key>
    <dict>
        <key>61</key>
        <array>
            <dict>
                <key>affected-objects</key>
                <array>
                    <string>61</string>
                </array>
                <key>message</key>
                <string>Static table views are only valid when embedded in UITableViewController instances</string>

Damit kann man dann schon eher arbeiten ...