“Hi. Based on your job title and experience, I thought you’d be a great candidate for this lower-level position using a tech stack not mentioned anywhere on your GitHub or LinkedIn! What day and time can I call you to ask if you know anyone else who might be interested?” 🙄
@RockyLhotka @CFDevelop Indeed. I like that by encapsulating those infrastructure implementations in an action/delegate, I can allow consumers to extend or replace my core services while falling back on my default implementations (e.g. using TryAddTransient after invoking the builder action).
@RockyLhotka @CFDevelop I use this pattern in my apps. I have a “FooAppBuilder” that exposes IServiceCollection and IConfiguration. Then my AddFooApp extension accepts Action<FooAppBuilder>. Infrastructure projects can then tack on extensions to FooAppBuilder (ex. .WithSqlServer()) as needed.
I've been migrating our suite of internal apps (and soon an external app) over to #Blazor WASM. @MudBlazor is what I landed on for our UI library and it is an absolute joy to work with.
There is allot of hidden gems out there, have you built a internal or public application based on MudBlazor?
We would like to showcase it on our website and are trying to gather a collection of projects to start with.
Apply: https://t.co/ATsQEJrhgc
#Blazor#MudBlazor
✋🏼No degree. I wanted to be a music teacher, but slacked off in high school and couldn’t afford college outright. I’m now wrapping up my first decade in software and have a side gig as the assistant band director at that same high school. Life is weird, man.
Hello friends! It’s time again to raise your hand if your career in software was not preceded with a comp sci degree! I’ll go first: BA in history. Bonus points (and so much respect) if you did this without the benefit of a college degree!
@JamesRNail@PieterWillemen@davidfowl I probably wouldn’t argue in favor of target typing in David’s example here for the exact reason you mention. But for list and dictionary initialization, or field or property initialization, target typing is a great fit.
@ShawnWildermuth I suppose the syntax doesn’t allow for your second example for the same reason object initializers don’t work that way? Just speculation of course.
@ShawnWildermuth The member initializer list on the right side of the “with” expression is processed the same as assignments to fields or properties and those assignments are processed in lexical order. Here is the relevant section in the docs: https://t.co/pUwizdhXKF
@maloo321@davidfowl This was my thought as well. I imagine those coming from strictly interpreted languages will expect declarations of types will need to come before their use. And those new to programming will likely infer that as a requirement given things like variables DO behave that way.
@silgarth1958@snowfrogdev This changes the reference, though. If you were referencing the original array elsewhere, those references will continue using the old array. With that said, I was under the impression setting length to 0 doesn’t actually clear the items from memory, though I may be wrong.
@jbkazoo @ardalis IMO, it is just a comparatively weak organization tool. At best, it groups code by responsibility in a megaclass, hiding bad design. You can accomplish the same organization while encouraging use of SRP and OCP by splitting these “regions” into separate files/classes.
@_Ubongsky1@davidfowl You should only be using the virtual keyword for properties you intend to be overridden in a derived class. Otherwise it is superfluous.
Just discovered @squidexcms via @shanselman's blog post on headless CMS options. This is precisely what I was looking for - a CMS that allows me to use .NET 5 and Razor, and offer a simple UI to users for content management. What a great time to be a .NET dev! Thanks, friends!
@codewithsimon@jacksimone78 I would definitely recommend giving this a try. I have a handful of production AspNet-hosted Blazor workloads running in k8s and it has been a joy to work with.