AdminDemis J Bellot (Developer, ServiceStack)

My feedback

  1. 81 votes
    Vote
    Sign in
    Check!
    (thinking…)
    Reset
    or sign in with
    • facebook
    • google
      Password icon
      I agree to the terms of service
      Signed in as (Sign out)
      You have left! (?) (thinking…)
      AdminDemis J Bellot (Developer, ServiceStack) commented  · 

      Anyone waiting on redis cluster support should check out the redis cluster solutions from Twitter and Netflix which both works with the normal Redis protocol:

      - https://github.com/twitter/twemproxy
      - https://github.com/Netflix/dynomite

    • 60 votes
      Vote
      Sign in
      Check!
      (thinking…)
      Reset
      or sign in with
      • facebook
      • google
        Password icon
        I agree to the terms of service
        Signed in as (Sign out)
        You have left! (?) (thinking…)
        AdminDemis J Bellot (Developer, ServiceStack) commented  · 

        And we have but you haven't noticed because there are thousands of APIs, like I said we've been documenting our newer features like our newest JWT and API Key Auth Providers. OrmLite public APIs also have a lot of API docs.

        You can continue to criticize that we've done nothing, but that isn't true, e.g. we've spent considerable time and effort on documenting the newest ServiceStack Templates feature and continue put a lot of effort in our Release Notes (for many years) to describe each feature.

        You're just not going to notice until the majority of our APIs are documented, a lot of which are self-documenting and adding API docs would be redundant and add unnecessary noise. Our focus is definitely on having a readable, easy to use and self-documenting API which we prefer not to require any API docs as its much better for the source code should be readable and not rely on having its behavior hidden in API docs. It's also impossible to determine what the most commonly used APIs are as there are no metrics we can use to sort by it.

        It's not a matter of just deciding to spend the time to do it, spending time on this always takes away from something else and there's a lot more higher priority tasks we have to work on. It also has very low diminishing returns as we could stop everything and spend months on it and people would still not be satisfied unless their APIs they use most are covered.

        AdminDemis J Bellot (Developer, ServiceStack) commented  · 

        @Anonymous You're greatly underestimating how long it would take to document the thousands of APIs in ServiceStack, this is nowhere near an overnight fix or something that can happen in a single release even if we halt all development and drop all other higher priority requirements we're currently working on.

        Our preference is to use readable API and property names so the APIs are self-documenting, our new features also include more detailed documentation as seen in the flagship feature of the last release http://templates.servicestack.net

        A release dedicated to "Documenting all existing APIs" can only happen after development has stabilized and we've implemented all higher priority features which is something we want to get done as fast as possible but we're still a long ways off.

      • 1 vote
        Vote
        Sign in
        Check!
        (thinking…)
        Reset
        or sign in with
        • facebook
        • google
          Password icon
          I agree to the terms of service
          Signed in as (Sign out)
          You have left! (?) (thinking…)
          AdminDemis J Bellot (Developer, ServiceStack) shared this idea  · 
        • 79 votes
          Vote
          Sign in
          Check!
          (thinking…)
          Reset
          or sign in with
          • facebook
          • google
            Password icon
            I agree to the terms of service
            Signed in as (Sign out)
            You have left! (?) (thinking…)
            AdminDemis J Bellot (Developer, ServiceStack) commented  · 

            You can use https://github.com/ServiceStack/Issues for submitting reproducible issues with our current libraries or the Customer Forums (https://forums.servicestack.net) for any other technical discussions

            AdminDemis J Bellot (Developer, ServiceStack) commented  · 

            Whilst it's a nice idea I don't trust really tools that try to migrate based on schema of existing types (it's also tough to have different versions of the same type in the same project) - IMO it's too fragile and lacks visibility/control. My preferred approach is to just to run explicit custom DDL statements to migrate from a previous version, that way I'm always in control of what operations are applied to the RDBMS.

            We had a pretty good solution for this whilst I was at StackOverflow, I hope to introduce something similar at some stage - but atm I'm just running migrations manually using a Migration Tasks Tests which I can configure to run against different RDBMS's just before deploying when a migration is required.

          • 0 votes
            Vote
            Sign in
            Check!
            (thinking…)
            Reset
            or sign in with
            • facebook
            • google
              Password icon
              I agree to the terms of service
              Signed in as (Sign out)
              You have left! (?) (thinking…)
              AdminDemis J Bellot (Developer, ServiceStack) commented  · 

              It needs to use a windowing function for old versions of MSSQL. If you have MSSQL 2012+ you can use `SqlServer2012Dialect.Provider` and it will use a more optimal paging query.

            • 64 votes
              Vote
              Sign in
              Check!
              (thinking…)
              Reset
              or sign in with
              • facebook
              • google
                Password icon
                I agree to the terms of service
                Signed in as (Sign out)
                You have left! (?) (thinking…)
                AdminDemis J Bellot (Developer, ServiceStack) commented  · 

                @James I don't know what your comment is in response to or what it has to do with AngularJS, but if your talking about common protocols, Server Events (which is just HTTP) is a much better more natural fit than WebSockets.

              • 52 votes
                Vote
                Sign in
                Check!
                (thinking…)
                Reset
                or sign in with
                • facebook
                • google
                  Password icon
                  I agree to the terms of service
                  Signed in as (Sign out)
                  You have left! (?) (thinking…)
                • 1 vote
                  Vote
                  Sign in
                  Check!
                  (thinking…)
                  Reset
                  or sign in with
                  • facebook
                  • google
                    Password icon
                    I agree to the terms of service
                    Signed in as (Sign out)
                    You have left! (?) (thinking…)
                    AdminDemis J Bellot (Developer, ServiceStack) commented  · 

                    Can you check that you're not in DebugMode? as when there are no visible operations the operation should already be omitted.

                  • 7 votes
                    Vote
                    Sign in
                    Check!
                    (thinking…)
                    Reset
                    or sign in with
                    • facebook
                    • google
                      Password icon
                      I agree to the terms of service
                      Signed in as (Sign out)
                      You have left! (?) (thinking…)
                      AdminDemis J Bellot (Developer, ServiceStack) commented  · 

                      I wouldn't accept an implicit cast like this, it's not obvious that there's an implicit transformation and I don't want to encourage using deep C# expressions as only a very limited expression can be translated to SQL and it's not discoverable, so my preferred API would be something like:

                      q.Where(x => Sql.Cast<string>(x.IntColumn).Contains("123"))

                      But I'd want to add a new API that's pluggable and customizable so others can extend this with their own custom methods, so a composable API might look something like:

                      q.Where(x => new[]{ Sql.Cast<string>(x.IntColumn), Sql.Like("123") })

                      But I'd have to spend time exploring the different possible API's to work out which is the best approach.

                      In the meantime I'd look at different ways you can create a typed API that returns a string, e.g:

                      q.Where(x => SqlUtils.Contains(x.IntColumn, "123"))

                      Which is just a custom method that returns a Custom SQL like:

                      return "CAST({0} as VARCHAR) LIKE '%123%'.Fmt(propName.SqlColumn())

                    • 12 votes
                      Vote
                      Sign in
                      Check!
                      (thinking…)
                      Reset
                      or sign in with
                      • facebook
                      • google
                        Password icon
                        I agree to the terms of service
                        Signed in as (Sign out)
                        You have left! (?) (thinking…)
                        AdminDemis J Bellot (Developer, ServiceStack) commented  · 

                        Why aren't you able to customize the model directly yourself on startup? i.e with:

                        var modelDef = typeof(Poco).GetModelMetadata();
                        modelDef..

                      • 135 votes
                        Vote
                        Sign in
                        Check!
                        (thinking…)
                        Reset
                        or sign in with
                        • facebook
                        • google
                          Password icon
                          I agree to the terms of service
                          Signed in as (Sign out)
                          You have left! (?) (thinking…)

                          The way ServiceStack and SignalR will be able to integrate in future will be through .NET Core’s IApplicationBuilder pipeline which by design supports running multiple frameworks within the same App that can now share the same default route namespace.

                          From the v4.5.2, ServiceStack now supports running on .NET Core, please see the guide in the full release notes which shows how to register ServiceStack’s AppHost in .NET Core: http://docs.servicestack.net/releases/v4.5.2.html

                          SignalR for .NET Core has yet to be released but it’s expected you’ll be able to access SignalR via its dependencies registered in .NET Core’s Startup which will also be injected in your Services like normal IOC dependencies.

                          We’ll update this feature request again with an example showing a demo of ServiceStack + SignalR together in the same App once SignalR is available on .NET Core in 2017.

                          AdminDemis J Bellot (Developer, ServiceStack) commented  · 

                          Apologies, I meant just SS's JS client bindings. The C# libraries have yet to be developed, I'll look at providing some integration with C# soon.

                        • 8 votes
                          Vote
                          Sign in
                          Check!
                          (thinking…)
                          Reset
                          or sign in with
                          • facebook
                          • google
                            Password icon
                            I agree to the terms of service
                            Signed in as (Sign out)
                            You have left! (?) (thinking…)
                            AdminDemis J Bellot (Developer, ServiceStack) commented  · 

                            As a general place, I'd be happy with people modifying the public Plugins wiki to add their 3rd party plugins: https://github.com/ServiceStack/ServiceStack/wiki/Plugins

                            For more specific providers they can also be added on the relevant page, e.g:
                            - https://github.com/ServiceStack/ServiceStack/wiki/Caching
                            - https://github.com/ServiceStack/ServiceStack/wiki/Logging
                            - https://github.com/ServiceStack/ServiceStack/wiki/Authentication-and-authorization

                          • 9 votes
                            Vote
                            Sign in
                            Check!
                            (thinking…)
                            Reset
                            or sign in with
                            • facebook
                            • google
                              Password icon
                              I agree to the terms of service
                              Signed in as (Sign out)
                              You have left! (?) (thinking…)
                              AdminDemis J Bellot (Developer, ServiceStack) commented  · 

                              It would still retain the message-based paradigm and would offer the highest performance between applications within a Windows host.

                              ServiceStack is a message-based services framework which can easily support new transports like this, which is how MQ and SOAP support was possible. There's no risk of becoming a BizTalk as each transport just plugs into the existing ServiceStack request pipeline.

                            • 148 votes
                              Vote
                              Sign in
                              Check!
                              (thinking…)
                              Reset
                              or sign in with
                              • facebook
                              • google
                                Password icon
                                I agree to the terms of service
                                Signed in as (Sign out)
                                You have left! (?) (thinking…)
                                AdminDemis J Bellot (Developer, ServiceStack) commented  · 

                                I'm interested in feedback for the AspNetWindowsAuthProvider that was just added in v4.0.21

                                https://github.com/ServiceStack/ServiceStack/blob/master/release-notes.md#windows-auth-provider-for-aspnet

                                It should now let you use [RequiredRole] to protect services for users with different roles (which uses the IPrincipal.IsInRole() API under the hood).

                                I'm interested in hearing about more specific use-cases that this can be extended to support.

                              • 7 votes
                                Vote
                                Sign in
                                Check!
                                (thinking…)
                                Reset
                                or sign in with
                                • facebook
                                • google
                                  Password icon
                                  I agree to the terms of service
                                  Signed in as (Sign out)
                                  You have left! (?) (thinking…)
                                  AdminDemis J Bellot (Developer, ServiceStack) commented  · 

                                  Please provide sources where it's "growing", i.e. where are the live examples of services using it? Also please provide the real-world end-user benefits that this would enable?

                                  Also it looks like ASP.NET Identity should be in a separate feature request.

                                • 1 vote
                                  Vote
                                  Sign in
                                  Check!
                                  (thinking…)
                                  Reset
                                  or sign in with
                                  • facebook
                                  • google
                                    Password icon
                                    I agree to the terms of service
                                    Signed in as (Sign out)
                                    You have left! (?) (thinking…)
                                    AdminDemis J Bellot (Developer, ServiceStack) commented  · 

                                    ServiceStack does let you plug in your own request binding per type, a small example is at:

                                    https://github.com/ServiceStack/ServiceStack/wiki/Serialization-deserialization#wiki-create-a-custom-request-dto-binder

                                    AdminDemis J Bellot (Developer, ServiceStack) commented  · 

                                    ServiceStack should work "intuitively" not "magically", binding beyond the Service layer is magic and requires internal knowledge of custom HTML form processing in ServiceStack. Already knowing how you would do this in JavaScript is an example of intuitiveness, i.e. it works as expected.

                                    With ServiceStack we're aiming to promote an API-First development model, described briefly in: https://github.com/ServiceStack/ServiceStack/wiki/Release-Notes#api-first-development
                                    i.e. structuring and calling services in a way that works for both HTML and non-HTML native service clients. Using JS allows this, which better enables us to provide useful generic utils to automatically bind normal Service responses to HTML pages.

                                    AdminDemis J Bellot (Developer, ServiceStack) commented  · 

                                    Magic binding and auto populating data models is not something we're looking to promote.

                                    The binding behavior should be clear and intuitive and should only bind to the DTO's (i.e.the external facing service contract). Once populated, the DTO's can then be either saved directly, (i.e. as POCOs with a MicroOrm like OrmLite), or instead mapped it to the data models of the ORM used.

                                    Complex model binding is much easier and more flexible to achieve with JavaScript where you can send complex objects by with serialized JSON using Ajax, or using the QueryString of FormData by passing with the JSV Format, shown in: https://github.com/ServiceStack/ServiceStack/wiki/Serialization-deserialization#passing-complex-objects-in-the-query-string

                                  • 28 votes
                                    Vote
                                    Sign in
                                    Check!
                                    (thinking…)
                                    Reset
                                    or sign in with
                                    • facebook
                                    • google
                                      Password icon
                                      I agree to the terms of service
                                      Signed in as (Sign out)
                                      You have left! (?) (thinking…)
                                      AdminDemis J Bellot (Developer, ServiceStack) shared this idea  · 
                                    • 38 votes
                                      Vote
                                      Sign in
                                      Check!
                                      (thinking…)
                                      Reset
                                      or sign in with
                                      • facebook
                                      • google
                                        Password icon
                                        I agree to the terms of service
                                        Signed in as (Sign out)
                                        You have left! (?) (thinking…)
                                        AdminDemis J Bellot (Developer, ServiceStack) shared this idea  · 
                                      • 7 votes
                                        Vote
                                        Sign in
                                        Check!
                                        (thinking…)
                                        Reset
                                        or sign in with
                                        • facebook
                                        • google
                                          Password icon
                                          I agree to the terms of service
                                          Signed in as (Sign out)
                                          You have left! (?) (thinking…)
                                          AdminDemis J Bellot (Developer, ServiceStack) commented  · 

                                          I don't know what's being requested here.
                                          Can you please clarify what you mean with an example?

                                        • 13 votes
                                          Vote
                                          Sign in
                                          Check!
                                          (thinking…)
                                          Reset
                                          or sign in with
                                          • facebook
                                          • google
                                            Password icon
                                            I agree to the terms of service
                                            Signed in as (Sign out)
                                            You have left! (?) (thinking…)
                                            AdminDemis J Bellot (Developer, ServiceStack) commented  · 

                                            Please also include the use-cases as to why features are useful with future suggestions.

                                            Although this particular feature goes against the contract of the service and thus ServiceStack, it also invalidates caching, etc - therefore unlikely to be considered. The preferred approach is to have an explicit minimal service returning summarized results.

                                          ← Previous 1

                                          Feedback and Knowledge Base