Posts

Showing posts from October, 2017

Sharing Contexts and Repositories

Class libraries are meant to be shared. It can be used by web applications. It can be used by services. It can be used by batch programs. With that in mind, it is important to think about contexts and repositories as class libraries, that are meant to be re-used and shared by your current application project and by your future application projects.

Working Together: IDbDataContext and DbRepositoryBase

ADO.Net provides the basic data access capabilities of .Net. Even with the Entity Framework around, ADO.Net remains solid. Just like how the very basic concept of the typewriter remains alive in our keyboards, ADO.Net is here to stay. Mendz.Data.Common embraces this assumption as fact, in order to provide the APIs needed for creating contexts and repositories.

Mendz.Data.MongoDB is on GitHub and NuGet

Mendz.Data.MongoDB, which provides a generic Mendz.Data-aware context for MongoDB, is now on GitHub and NuGet!

Reviewing Mendz.Data.Common

The Mendz.Data.Common namespace provides the APIs needed to create Mendz.Data-aware contexts and repositories. Here's to understanding the main classes and types in this namespace.

Inside Mendz.Data.PagingInfo

Mendz.Data.PagingInfo represents paging information. The idea is to basically have a POCO that can be used to store and exchange paging data that can be used by backend queries, by middlewares and by frontend rendering codes.

Inside Mendz.Data's DataSettings and DataSettingOptions

The rational behind Mendz.Data's DataSettings and DataSettingOptions is simple: provide an easy way to get data settings, like connection strings, anywhere during the application's runtime. Note that .Net Core 2.0's configuration and dependency injection features make this possible. DataSettings and DataSettingOptions provide an alternative.

What's New with Mendz.Data.ResultInfo

ResultInfo represents result information about a procedure call. It can store the input and output values. These information can be used, for example, to build messages after an operation or a series of operations completed. These messages can be used for logging, or for alerts and notification.

What's New with Mendz.Data.Repository(.Async)

Mendz.Data.Repository defines the CRUDS interfaces. Mendz.Data.Repository.Async defines the async versions of the CRUDS interfaces. The new CRUDS signatures add more features and flexibility. Here are the highlights.

What's New with Mendz.Data

If you followed my Dapper series back in May/June this year, you should know that Mendz.Data 1.1.0, as published in GitHub and NuGet , has major breaking changes. For starters, the new Mendz.Data is a .Net Standard 2.0 class library. Internally, there's more.

Mendz.Data and the Entity Framework

I originally thought I needed Mendz.Data.EntityFramework. After some minor re-design and simplification, I realized that all I really needed was just Mendz.Data. Immediately, Mendz.Data.EntityFramework became obsolete.

Mendz.Data.SqlServer is on GitHub and NuGet

Mendz.Data.SqlServer, which provides a generic Mendz.Data-aware context for ADO.Net-compatible access to SQL Server databases, is now on GitHub and NuGet!

Mendz.Data is on GitHub and NuGet

Mendz.Data, which provides tools and guidance for creating data access contexts and repositories, is now on GitHub and NuGet!

Inside Mendz.Library.SingletonBase

In Mendz.Library, one of the classes defined is the SingletonBase. The SingletonBase is an abstract or base class for defining singletons. The singleton instantiation is aimed to be thread-safe. Let's look at how it's done.

Inside Mendz.Library.IDGenerator

In Mendz.Library, one of the classes defined is the IDGenerator. The IDGenerator is a thread-safe generator of incremental integer values. It can be seeded to start from a seed number and increment from there. Simple right? Let's look at how it's done.

Mendz.Library on NuGet - The Experience

Publishing to NuGet is quick and easy. Visual Studio 2017 has the basic tools available to create NuGet packages. Just follow the steps, upload and you're good!

Mendz.Library on GitHub - The Experience

Publishing source codes to GitHub is not that difficult. It took me a while to get the gist of it. In the end, the real saving grace is the decision to NOT use Visual Studio Team Services tools and to use GitHub Desktop instead.

Mendz.Library is on GitHub and NuGet

I did the basics. I followed the steps. Finally, I have my first library project published to both GitHub and NuGet. Mendz.Library 1.0.0 is now live!

The Truth About User-Friendly Experiences

However beautiful your app's user interface (UI) can be, it means nothing until the user experience (UX) defines it.

Is Microsoft Fluent Design System the Next Aero?

When I ask the question "Is Microsoft Fluent Design System the Next Aero?", I mean it in a very daunting way. What I really mean to ask is if Microsoft Fluent Design System would suffer the same fate as the Windows Aero? Crass, I know. But possible? Yes.

Potentials of Microsoft Fluent Design System

Windows has changed its UI/UX many times over the years. The most successful of these is that from Windows 7, for which many seemed to have associated what a desktop experience should be. Windows 10's MDL/2 is the current "modern" incarnation. A change is coming likely next year, and Microsoft calls it Fluent Design System.

Learning from (the failures of) Metro UI

Microsoft's Metro Design Language (MDL) was beautiful. Many of its parts are still in Windows 10 today. However, some of the things that made it great already disappeared. Let's try to analyze them and the reasons why.

Missing the Beauty of Metro UI

When Microsoft released Windows Phone 7, it introduced revolutionary user experiences that are far ahead of its time. Well, "far ahead of its time" meant that the target users were not ready for it. Regardless, Metro UI, as it was called, was beautiful!