by Joche Ojeda | Apr 8, 2019 | Webinars
In the webinar, you will learn how to leverage your existing knowledge of XPO and using it to develop mobile applications using Xamarin Forms
Date
May 22, 2019, 10:00 A.M Los Angeles time (UTC -7)
Language
English
What will you get after the webinar?
- Access to the private GitHub repository with code examples for each subject
- The recorded webinar session
Subject list
- Installing XPO for Xamarin forms (Android and iOS)
- Initializing local database and schema
- Local connections with SQLite: Installing packages necessary for Android and iOS
- Local connections with XML: Creating a base XML file
- Remote connections: Direct database connection with TCPIP (LAN network)
- Remote connections: WCF Data access layer
- Initializing Data layer
- MVVM Data binding
- Primitive properties
- Navigation properties
- Loading collections (the traditional way)
- Loading collections async
- Loading single object async
- Paging collections
- Reducing data loading with XPView
- Observables Collections with BIT.Xpo.Observables
Prerequisites
- Basic understanding of Xamarin Forms
- Basic understanding of MVVM design pattern
- Basic understanding of XPO
Price
€99,00 EUROS
[wpecpp name=”xamarin xpo en” price=”99.00″ align=”left”]
Signup
If you are interested in this course or you have any doubt please contact us at training@bitframeworks.com
by Joche Ojeda | Mar 15, 2019 | DevExpress, XAF
For a while now I have been trying to create a framework for XAF (yes I know XAF is already a framework) but it was too difficult to handle the different version of XAF and upgrade the solution from version to version.
Luckily for me, DevExpress team decided to publish all their DLLs as nuget packages, you can learn more about that here. But there was still one problem for me, at that time they did not include the nugets for XAF, later that year (2018) they decided to publish the nugets for XAF, you can read about it here
Now I have all the pieces to create the project template for the modules of my framework, at least that is what I thought, there was still one more stone in my path and it was the csproj file. At this moment (version 18.2.x) XAF project templates are based on visual studio 2015 project format, so the way the projects handles nuget references is based on the old standard packages.config, another problem is that if you want to package your module as a nuget you have to use the old package.nuspec.
So let’s migrate our XAF module project to the new version of csproj, but first take a look to the old version of the file in the image below

Once you have a XAF solution open on visual studio these are the steps to do the migration
1) Right click on your module file and select “Unload Project”

2) Now that the project us unloaded it will appear unavailable in the solution explorer, so we can right click over it and select “edit”


4) Delete all the content of your csproj and replace it with this XML, you can also change the version of nuget files, in this case, I’m using 18.2.6
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net452</TargetFramework>
<GenerateAssemblyInfo>true</GenerateAssemblyInfo>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="DevExpress.ExpressApp.Security.Xpo" Version="18.2.6" />
<PackageReference Include="DevExpress.ExpressApp.Validation" Version="18.2.6" />
<PackageReference Include="DevExpress.Persistent.BaseImpl" Version="18.2.6" />
</ItemGroup>
<ItemGroup>
<Folder Include="Properties\" />
</ItemGroup>
</Project>
5)Delete the file AssemblyInfo.cs from the properties folder

Congratulations you have successfully migrated your csproj file
Now some advantages and disadvantages of this new csproj format
Advantages
- Smaller project file easy to edit
- improved usage of nuget packages
- its easier to pack your module as a nuget
Disadvantages
- You can not use the Devexpress add item context menu because it will add references to local assemblies
- The module designer stop working so you have to do all your module configuration in code
by Joche Ojeda | Feb 18, 2019 | Web, XAF
Sometimes we need to have clientside events and handle them on the server side code behind, that in a simple asp.net web page is really easy, you just have to execute a javascript that executes an HTTP request to the server. Now the question is, how do we do that in XAF?
Well, the concept is basically the same but you need to know XAF architecture the problem is that most of the code needed is not documented, but after a while, I manage to figure it out, so let’s get started.
1) Create a XAF web application
2) On your web module add a view controller
3) Implement the interface IXafCallbackHandler on the controller you just added in step 2, this is the method that will be called as a callback from javascript. This interface is not documented on the DevExpress website

4) In your view controller add a property to access XafCallbackManager

5) Override the OnViewControlsCreated method and register your callback, in this example, the name of the callback is “MyScript”

6) Now add a simple action and wire the execute event, on the execute event cast the frame as a web window and register a startup script. The code surrounded with the blue line is the javascript that triggers the callback in the callback manager, the code surrounded with red is the id if the script that we are listening for, it should match the name of the script registered on the handler in the previous step.

To execute the callback somewhere in your javascript you have to execute the following function RaiseXafCallback, this function is not documented on the DevExpress website
RaiseXafCallback(globalCallbackControl, 'TheIdOfYourHandler', 'AnyStringThatRepresentsTheValuesYouWantToPassToTheCallBack', '', false);
7) Run your application and execute the simple action added in step 6, when the javascript finish executing, the method you implemented on step 3 will be executed.
The code for this article is here the full example is in GitHub
by Joche Ojeda | Jan 26, 2019 | Forms, UAP/UWP, Xamarin
For a long time now, I have wanted to access the file system when I create a Xamarin Forms UAP/UWP application but that was actually impossible … till now. After the Windows 10 build 17134 update its possible to access the broad file system, the approach is not straight forward.
To gain access to the file system in your Xamarin Forms UAP/UWP application follow these steps
1) Go the properties of your UAP/UWP application and check the targeting, the minimum should be at least 16299, what I recommend is 171344

You can also change the targets unloading the project and editing the csproj file

2) In your solution explorer edit your Package.appxmanifest by selecting it and press F7, looking the file from the top should look like the image below

Add this namespace xmlns:rescap=”http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities and update the IgnorableNamesSpaces like this IgnorableNamespaces=”uap mp rescap” after the changes your file should look like the image below

3) Lookup for the capabilities node in the manifest and add a new capability <rescap:Capability Name=”broadFileSystemAccess” /> your capabilities section should look like the image below

4) Rebuild your application, then select it on the solution explorer, right click over it and click on deploy, this will register the application in your OS

5) on your Windows OS go to settings>File system privacy settings and you will see all the UAP/UWP applications that are registered in your OS and have access to the file system, here you can allow/deny the access to the file system in general or by application

6) now everything is ready for your app to access the file system, but there is a little catch, in most cases, you cannot use the classes in system.io to access the file system you have to use Windows.Storage.Storagefolder below is a code snippet that illustrates how to use such class
public async void GetDirectories(string sDir)
{
var folder = await StorageFolder.GetFolderFromPathAsync(sDir);
foreach (var file in await folder.GetFilesAsync())
{
Debug.WriteLine(file.Name);
}
}
I have created a sample app using these steps, you can download the source from GitHub

by Joche Ojeda | Jan 11, 2019 | Code Rush, Custom Templates, Entity Framework Core
Don’t waste your time writing boilerplate code, just use Code Rush from DevExpress
Entity Framework Class (shortcut efc)

Entity Framework Property (shortcut efpr)

Entity Framework Property (shortcut efnp)

Entity Framework Collection (shortcut efcol)

Entity Framework extensions (shortcut efext)

Entity Framework ModelBuilder Association (shortcut efrom)

You can download all these amazing code templates here [download id=”241″]