RolandPheasant / TailBlazer

A modern file tail utility based on Rx.Net which show cases reactive programming and Dynamic Data (see https://github.com/RolandPheasant/DynamicData)
GNU General Public License v3.0
2.22k stars 248 forks source link

make nuget package for as user control #199

Open azhe403 opened 4 years ago

k-u-s commented 4 years ago

@RolandPheasant would you consider contribution that targets this issue?

I made some initial attempt to see how it could be resolved, changes are available:
https://github.com/RolandPheasant/TailBlazer/compare/master...k-u-s:feature/user-control

It is only to point initial direction that I thought this could go.

Because of current trend with net core I wanted to able to use it in net core projects. Having that in mind for start I wanted only to extracted core part. So for beginning I decided to focus on part in red square:

image

I have added new project that multi targets net461 and netcore3.1 with TailView and dependant classes.

Also provided example project with idea how I wanted for it to be used as library as a part of bigger UI by something like:

<Window x:Class="TailBlazer.Example.MainWindow"
                 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
                 xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
                 xmlns:mah="http://metro.mahapps.com/winfx/xaml/controls"
                 xmlns:tail="clr-namespace:TailBlazer.LogViewer.Views.Tail;assembly=TailBlazer.LogViewer"
                 mc:Ignorable="d" 
                 WindowStartupLocation="CenterScreen"

                 d:DesignHeight="450" d:DesignWidth="800">
    <tail:TailView x:Name="TailViewControl"
                   FilePath="./Sample.txt"
                   />
</Window>

That is demonstrated in Example project and looks more or less like:

image

I would be great if we could also provide ability for rest to work like this but that would require to work out the future of DragaBlz and looking on https://github.com/ButchersBoy/Dragablz/pull/232 I have mixed feelings.

Additionally if we could extract all WPF specific classes to separate dll in future we could possibly create similar example projects for Avalonia or Xamarin that could in the end make it easier to port to ms maui when it ships.

Any thoughts on how it fits your plans with this project?

(I know that app it self have some issues because of updated nuggets and moving some parts to separate dll but I wanted only to check if it can be done in reasonable way. Right now I already made more changes then initially I thought I would do. That's why I would like to discus with You directions in which those changes go before any further actions.)

RolandPheasant commented 4 years ago

My initial impression is that this idea is great and I am delighted that you have put so much thought and consideration into it. I have neglected this project for far too long and it would be great to have some life and some direction blown into it. I think breaking down the components to enable them to be used in isolation and with other technologies such as Avalonia appeals and would fir in with the direction which net core is heading.

I suppose the starting point will be for me to grab you branch and take a look myself. That surely will start some interesting discussions.

azhe403 commented 3 years ago

any update about this?

k-u-s commented 3 years ago

I sometimes updates mentioned branch. But changes are limited to nugets and .net version bump for now.