Releases: bitfoundation/bitplatform
v-9.7.4
What's Changed
bit Boilerplate now gives you powerful Feature Gating by User Groups for precise control over your application's functionality.
This means you can easily restrict sensitive features to admins, roll out experimental features to early adopters for feedback, or offer premium features exclusively to high-tier customers.
Essentially, you can dynamically hide or reveal any feature using our robust Feature Management tied to these user groups. This is invaluable for controlled rollouts, A/B testing, and tailoring user experiences, a flexible way to manage feature access, evolve your product, and target specific user segments effectively.
bit BlazorUI
- Improve theme colors of BlazorUI by @msynk in #10753
- Add HideSearchBox parameter in BitNavPanel by @Cyrus-Sushiant in #10663
- Fix issue in SetIsSeleted method in BitDropdown by @Cyrus-Sushiant in #10674
- Improve Toggle mode in BitButtonGroup by @Cyrus-Sushiant in #10682
- Add missing size parameters to BitBasicList by @msynk in #10703
- Add ExpandAll and AllExpanded to BitNav by @msynk in #10708
- Add missing parameters to BitNavPanel by @msynk in #10716
- Fix animation issues of BitBouncingDotsLoading by @msynk in #10724
- Hide empty list message when no items provided by @msynk in #10742
- Add NoShadow parameter to BitCard by @msynk in #10741
- Fix spinner sizes in BitButton by @msynk in #10744
- Add ForceBreak and missing demo samples to BitText by @msynk in #10743
- Fix NoCollapse issues of BitNav by @msynk in #10751
bit Boilerplate
- Add manage Roles page to Boilerplate by @msynk in #10686
- Add user management feature to Boilerplate by @msynk in #10730
- Improve Boilerplate claim based authorization by @ysmoradi in #10684
- Add vscode extensions.json to Boilerplate by @ysmoradi in #10739
- Add azure adb2c / Entra support to Boilerplate by @ysmoradi in #10689
- Improve ScssCompilerService in Boilerplate by @ysmoradi in #10676
- add hotReloadCssChanges to Boilerplate Visual Studio settings by @ysmoradi in #10678
- Fix sitemap.xml issue in Boilerplate by @ysmoradi in #10707
- Improve push notification subscription management in Boilerplate by @ysmoradi in #10718
- Add quick sign-in feature to the Boilerplate by @ysmoradi in #10720
- Use background job to send push notifications in Boilerplate by @ysmoradi in #10735
bit Toolings
- Add missing namespace in HttpClientProxySourceGenerator by @Md23Mh in #10667
- Fix bit Besql issue with compiled models on iOS/macOS by @ysmoradi in #10680
- Force start Blazor when SW is not supported by @msynk in #10711
Full Changelog: v-9.7.3...v-9.7.4
v-9.7.3
What's Changed
bit BlazorUI
Resolve read only issue in BitNumberField by @Cyrus-Sushiant in #10586
Fix arrow keys issue in BitNumberField by @Cyrus-Sushiant in #10602
Fix issues of Items updating in BitNavPanel by @msynk in #10646
bit Boilerplate
Add Claim based authorization feature to the Boilerplate by @ysmoradi in #10636
Add AdService to Boilerplate to earn money by showing rewarded ads in all platforms by @msynk in #10590
Improvements over Blazor Hybrid apps integration with web browser features such as webAuthn by @ysmoradi in #10596
Fix Boilerplate issue with in-app store review by @ysmoradi in #10585
Add ability to read other user logs by super users in Boilerplate by @ysmoradi in #10589
Fixed incorrect Swedish translations by @Kyemate in #10619
bit Toolings
Add WebAuthn to Butil by @msynk in #10601
New Contributors
Full Changelog: v-9.7.2...v-9.7.3
v-9.7.2
What's Changed
bit BlazorUI
- Add new provider function parameters to BitFileUpload by @msynk in #10546
- Add Reversed parameter in BitPersona component by @Cyrus-Sushiant in #10545
- Add missing logical properties to BitPosition by @msynk in #10543
- Enable mouse wheel support in BitNumberField by @Cyrus-Sushiant in #10554
- Add Reversed parameter in BitChoiceGroup component by @Cyrus-Sushiant in #10530
bit Boilerplate
- Use fresh access token while uploading photos by @ysmoradi in #10558
- Web.slnf now uses slnx format rather than the legacy format by @ysmoradi in #10560
- Add hot reload enabling settings to VS settings file in Boilerplate by @msynk in #10568
bit Toolings
Stability improvements for bit ResxTranslator, SCSS Compiler Service and Diagnostic Modal in #10532, #10534 and #10539 by @ysmoradi and @msynk
Full Changelog: v-9.7.0...v-9.7.2
v-9.7.0
What's Changed
bit BlazorUI
-
BitRichTextEditor: Powered by QuillJS, this component delivers a robust rich text editing experience for dynamic content creation #10356 by @msynk
-
TimeZone Improvements: Enhanced timezone support in BitCalendar, BitDatePicker, and BitRangeDatePicker for precise, pro-grade global apps #10413 by @Cyrus-Sushiant
-
Component Disposal: Optimized disposal across all components for smoother performance and reliable resource cleanup #10394 by @msynk
-
Media Query Enhancements: Bit Media Query now lets you trigger C# methods based on responsive conditions, boosting app flexibility #10469 by @msynk
-
New loading types: A sleek, user-friendly loading interface in BitLoadingComponent to enhance data operation visuals #10488 by @msynk
-
Flag Component: New component with flags for all countries, perfect for globalized apps #10511 by @msynk
bit Boilerplate
-
AI Chat Feature: Added AI chat to help users troubleshoot, navigate, search products, and give feedback in real time #10407 by @ysmoradi
-
AI Text Embedding: Introduced Vector and RAG-based AI text embedding for smarter search and recommendations #10479 by @ysmoradi
-
Hangfire Integration: Added Hangfire for advanced background job handling, streamlining asynchronous tasks #10470 by @ysmoradi
-
Encoding Configuration: Set Visual Studio’s default encoding to
utf-8-nobom;65001
for consistency with modern tools like VSCode #10387 by @ysmoradi -
Project Template Attachments: Revamped attachment structure to support multiple product images in various sizes for richer visuals #10465 by @ysmoradi
-
BitOtp Usage: Rolled out BitOtp across the app for better UX and stronger security #10355 by @ysmoradi
-
Link Preview Meta Tags: Added meta tags to product pages for optimized, eye-catching link previews on social platforms #10499 by @msynk
-
Modal UX: Modals now close with Android’s back button, improving mobile navigation #10506 by @msynk
-
Default Database Schema: Included a default database schema in DbContext for easier, consistent setups #10434 by @ArvinDev1400
bit Resx Translator
- New Tool: bit resx translator dotnet tool auto-translates resx files using your chosen LLM, saving time #10510 by @ysmoradi
bit Toolings
- Bup Project Removal: Dropped Bup project, leveraging PWA everywhere via Bit.Bswup for streamlined workflows #10404 by @msynk
New Contributors
- @ArvinDev1400 made their first contribution in #10434
Full Changelog: v-9.6.1...v-9.7.0
v-9.6.1
What's Changed
bit BlazorUI
- Fixed small issues in BitDatePicker
- Improvements over BitTag by adding missing colors and Reversed parameter
bit Boilerplate
- Fix External JS Runner close issue on some Android Devices
- Elevated access token will only be sent to devices with 2fa enabled or those after social sign-in
Full Changelog: v-9.6.0...v-9.6.1
v-9.6.0
What's Changed
bit BlazorUI
- Added Markdown Viewer components with support for Pre-rendering and SEO, along with a Markdown Editor and a service for converting Markdown to HTML, usable on both server and client sides.
- Introduced Timezone and Readonly features to the Date Picker and Date Range Picker components, and updated the color of selected days.
- Enhanced File Upload functionality with the addition of HideFileView and Append capabilities.
- Fixed issues in Bit Infinite Scroll.
- Added color options to BitNavPanel and BitSearchBox components.
- Improved the BitImage component.
- Removed the BitSpinButton component after enhancements were made to BitNumberField.
- Integrated BitNav features into BitNavPanel like Item Template
- Added BitPageVisibility to detect page visibility changes, enabling the Carousel to pause when the application is minimized.
- Resolved issues with IconOnly and IconUrl in BitButton when used with Href.
bit Boilerplate
- Implemented FIDO2 / WebAuthN across all clients, enabling login with FaceId and Fingerprint.
- Added a Clear Cache button to the Diagnostic Modal.
- Transform all appsettings*.json for all projects (Shared, Client.Core etc) during CD Pipeline execution.
- Relocated settings related to pre-rendering and Blazor mode from the
Client.Web
to the server. - Users registering via social sign-in are now marked as confirmed, even without providing an email or phone number.
- Switched to SymmetricSecurityKey for generating JWT Tokens, replacing the use of PFX.
bit Bswup
Introduced a preRenderMode setting to bswup, allowing flexible configuration of your web application based on the following scenarios:
self.prerenderMode = 'none'; // Demo: https://adminpanel.bitplatform.dev/ (No pre-rendering + offline support)
self.prerenderMode = 'always'; // Demo: https://sales.bitplatform.dev/ (Always show pre-render, no offline support)
self.prerenderMode = 'initial'; // Demo: https://todo.bitplatform.dev/ (Pre-render on first site visit + offline support)
bit Toolings
- Added automatic warnings for the use of non-async methods in EF-Core.
- Improved the performance of the SetParametersAsyncSourceGenerator output source and fixed related issues.
- Introducing bit BlazorES2019
Full Changelog: v-9.5.1...v-9.6.0
v-9.5.1
What's Changed
bit BlazorUI
- Reset callouts opacity after closing in responsive mode (#10039) by @msynk in #10041
- Add IconNavUrl parameter to BitNavPanel (#10042) by @msynk in #10047
- Add BitMediaQuery component (#10037) by @msynk in #10044
- Fix issues of persist feature of BlazorUI theme (#10059) by @msynk in #10063
- Add ReadOnly parameter implementation to BitTimePicker (#9977) by @Cyrus-Sushiant in #10071
bit Boilerplate
- Fix new layout issues in Boilerplate (#10038) by @msynk in #10040
- Fix concurrent social sign-in issue in Boilerplate (#10036) by @ysmoradi in #10052
- Add Eruda devtools to Boilerplate (#10051) by @msynk in #10053
- Lazy load System.Private.Xml.wasm in Boilerplate (#10075) by @ysmoradi in #10076
- Cancel current cancellation token source on AppComponentBase's disposal in Boilerplate (#10077) by @ysmoradi in #10078
- Improve Boilerplate logging (#10079) by @ysmoradi in #10080
- maintain return-url during email confirmation re-send in Boilerplate (#10083) by @ysmoradi in #10084
bit Besql
- Lazy load System.Private.Xml.wasm in bit Besql (#10073) by @ysmoradi in #10074
- fix bit Besql issue with IL Linker (#10068) by @ysmoradi in #10069
bit Butil
Full Changelog: v-9.5.0...v-9.5.1
v-9.5.0
We are excited to announce a new stable release with the following enhancements:
infra
- Applied
IsAotCompatible
to Libraries
To improve compatibility,IsAotCompatible
has been applied to libraries.
bit Boilerplate
-
Improved Layout Transition for Authenticated Users
Since cached pre-rendered pages in CDN Edge or ASP.NET Core Output Cache are user-agnostic, they do not contain user-specific information. To ensure smooth transitions from the anonymous layout to the authenticated layout, visual differences between the two states have been minimized. #10024 -
Configurable Output Caching
Added the ability to enable or disable ASP.NET Core Output Cache and CDN Edge Cache. -
Automatic URI Escaping
Uri.EscapeData
is now automatically applied to route values and query strings. -
In-Memory Cache for HTTP Client
Introduced an in-memory cache for the HTTP client to enhance performance in Blazor Hybrid, which lacks a default HTTP cache. -
Enhanced Server-Side Logging
Improved logging on the server side for better debugging and diagnostics. -
Extended Error Reporting to Clients
Now supports sending additional error details to the client. -
Cascading Parameters for Modals
Modals can now access cascading parameters such as theme and direction. -
Faster Startup for Windows Version
Optimized initialization to improve startup speed on Windows. -
Better Server Connection Error Handling
Improved detection and handling of server connection issues.
bit BlazorUI
-
Added
ReadOnly
to More Components
Additional components now support a read-only mode. -
Added Required Asterisk to More Components
Components that require user input now display a required asterisk. -
Enhanced File Uploader
Added Append functionality to the File Uploader component. -
User-Selectable Theme Persistence
The selected theme is now stored and persists across sessions. -
Memory Leak Fixes
Resolved memory leaks and improved dispose handling for multiple components
Thank you for your continued support! Enjoy the new features and improvements.
What's Changed
infra
bit Boilerplate
- Update layout to reduce UI shift while prerendering in Boilerplate (#10024) by @msynk in #10025
- add configuration for response caching of Boilerplate (#9881) by @ysmoradi in #9882
- Refactor Boilerplate project template url escaping (#9869) by @ysmoradi in #9874
- Use Uri.EscapeDataString instead of HttpUtility.UrlEncode in Boilerplate (#9868) by @ysmoradi in #9875
- Refactor Boilerplate sales module's product page response cache purge (#9870) by @ysmoradi in #9876
- Remove
--windows
parameter from Boilerplate docs in platform website (#9866) by @ysmoradi in #9873 - Improve msbuild configuration in Boilerplate (#9852) by @ysmoradi in #9853
- Improve return-url implementation in Boilerplate (#9854) by @ysmoradi in #9856
- Remove invalid entries from Boilerplate's compilerconfig.json (#9899) by @ysmoradi in #9902
- Limit Boilerplate diag logger's in memory entries to 1,000 (#9898) by @ysmoradi in #9903
- Add in-memory caching delegating handler to Boilerplate (#9897) by @ysmoradi in #9900
- Add share access token feature to Boilerplate (#9909) by @ysmoradi in #9910
- Improve Boilerplate memory management (#9911) by @ysmoradi in #9912
- Add product short id to Boilerplate's sales module (#9929) by @ysmoradi in #9930
- Enrich exceptions logs in Boilerplate server exception handler (#9933) by @ysmoradi in #9934
- fix social-signin error in signup page of Boilerplate (#9941) by @sammirdubey in #9942
- Move up BitModalContainer in MainLayout for modals to have access to cascading parameters in Boilerplate (#9944) by @ysmoradi in #9951
- Enhance app insights integration in Boilerplate (#9945) by @ysmoradi in #9950
- Fix race conditions for simultaneous refresh token requests in Boilerplate (#9946) by @ysmoradi in #9949
- Improve CurrentCancellationToken handling in Boilerplate AppComponentBase (#9947) by @ysmoradi in #9948
- Improve mechanism to start Blazor in windows apps (#9961) by @ysmoradi in #9962
- Fix BitSnackBar NRE in Boilerplate (#9963) by @ysmoradi in #9964
- Refactor Boilerplate http client pipeline (#9966) by @ysmoradi in #9967
- Add missing ServerConnectionException detection checks in Boilerplate (#9985) by @ysmoradi in #9987
- Add more app insights load guard in Boilerplate (#9986) by @ysmoradi in #9988
- Fix invalid dotnet new template configuration in Boilerplate windows project (#9989) by @ysmoradi in #9990
- Improve Boilerplate diagnostic utilities (#10001) by @ysmoradi in #10009
- Correct render order of the common components in Boilerplate (#10011) by @msynk in #10012
- Improve http response exception handling in Boilerplate (#10014) by @ysmoradi in #10015
- Fix sign-in button's return-url issue in Boilerplate (#10022) by @ysmoradi in #10023
- Make Diagnostic controller work with anonymous sessions in Boilerplate (#10020) by @ysmoradi in #10021
bit BlazorUI
- Add ReadOnly parameter implementation to BitCircularTimePicker (#9978) by @Cyrus-Sushiant in #9980
- Show missing required asterisk in BitDatePicker's label (#9862) by @Cyrus-Sushiant in #9880
- Show missing required asterisk in BitDateRangePicker's label (#9888) by @Cyrus-Sushiant in #9889
- Show missing required asterisk in BitCircularTimePicker's label (#9890) by @Cyrus-Sushiant in #9892
- Add Append parameter to BitFileUpload component (#1562) by @Cyrus-Sushiant in #9887
- Add persist feature to BitTheme (#9707) by @msynk in #9885
- Show missing required asterisk in BitTimePicker's label (#9893) by @Cyrus-Sushiant in #9894
- Fix disposed timer issue in BitCarousel component (#9877) by @msynk in #9878
- Add IconUrl parameter to BitButton component (#9863) by @msynk in #9864
- Ignore RenderingCancelledException in render page function of BitPdfReader (#9850) by @msynk in #9908
- Add PersistScroll parameter to BitAppShell component (#9913) by @msynk in #9915
- Tune persist scroll feature of BitAppShell (#9925) by @msynk in #9926
- Improve disposable implementation in BlazorUI components (#9919) by @msynk in #9924
- Fix issues of timer utilization in BitCarousel (#9952) by @msynk in #9954
- Improve js & disposing implementation of BitCircularTimePicker (#9953) by @msynk in #9956
- Improve behavior of PersistScroll feature of BitAppShell (#9939) by @msynk in #9940
- Fix BitSnackbar container issue preventing user interaction (#9965) by @msynk in #9968
- Correct OnDismiss event calling in BitModal component (#10016) by @msynk in #10017
- Add darkTheme and lightTheme to init options of BitTheme js api (#10026) by @msynk in #10027
- Fix IconOnly issue in anchor mode of BitActionButton (#10030) by @msynk in #10031
bit SourceGenerators
v-9.4.1
We are excited to announce a new hotfix release mainly focusing on sales module in Boilerplate:
Full Changelog: v-9.4.0...v-9.4.1
bit Boilerplate
- Add missing Sales condition to ProductDto in Boilerplate (#9831) by @msynk in #9835
- Add sales entry to showcases section in repo's main readme (#9837) by @msynk in #9838
- Improve Boilerplate todo sample (#9840) by @ysmoradi in #9841
bit BlazorUI
Full Changelog: v-9.4.0...v-9.4.1
v-9.4.0
We are excited to announce a new stable release with the following enhancements:
bit BlazorUI
-
BitInfiniteScrolling Component
A robust solution for displaying large datasets. Data is fetched incrementally from the server as the user scrolls—similar to the behavior seen in Google Image searches. Live Demo -
Improved Swipe Gestures
Enhanced swipe functionality now closely replicates native app behavior for a smoother user experience. -
Additional New Components
Introducing BitCollapse and BitErrorBoundary to further expand our component library. -
Scroll Position Reset on Navigation (
AppShell's AutoGoToTop
)
When navigating between pages, the scroll position now automatically resets to the top for a consistent user experience.
bit Boilerplate
-
Enhanced Boilerplate Project Template
New components such as BitMessageBox have been integrated to simplify the Project Template codebase and improve overall maintainability. -
Pfx Certificate Handling for JWT
- Development: Expired certificates will no longer disrupt your workflow.
- Production: A clear, explicit error is displayed if the certificate has expired.
-
Caching Enhancements
Implemented response caching for JSON and HTML on Browser, CDN's Edge Servers and ASP.NET Core Output Caching with the ability to purge cache feature, resulting in a significant performance boost. -
Official Cloudflare Support
Now fully supporting projects deployed behind Cloudflare for enhanced security and performance. -
Unified Error Handling
When connectivity issues occur between the client and server (e.g., various socket errors), our detection logic consolidates these into a single error type (`ServerConnectionException). This logic has been improved in this release.
bit Besql
- Entity Framework Core Improvements for Client Applications
Two key enhancements for clients (in browsers, Android apps, etc.):- Simplified management for database migration and creation.
- Option to download a pre-populated SQLite database from the server, enabling a faster application startup.
bit Butil
- Optimized JavaScript Bootstrapping in Butil
Faster JavaScript interop, improves the overall performance of your application.
Thank you for your continued support! Enjoy the new features and improvements.
What's Changed
- Add BitInfiniteScrolling extra component (#9643) by @msynk in #9646
- Add missing dispose process to BitPdfReader (#9647) by @msynk in #9661
- Fix validatorRef null check issue on singin page of Boilerplate (#9667) by @msynk in #9665
- Add OrientationLock parameter to BitSwipeTrap (#9662) by @msynk in #9663
- Add missing base component inheritance to BitMessageBox (#9666) by @Cyrus-Sushiant in #9667
- Add module parameter to Boilerplate (#9668) by @ysmoradi in #9669
- Refactor Boilerplate parameters ordering (9683) by @ysmoradi in #9684
- Make
CS8785
warning as error in Boilerplate (#9685) by @ysmoradi in #9686 - Add RTL sample for BitMessageBox demo page (#9673) by @Cyrus-Sushiant in #9679
- Use BitErrorBoundary in Boilerplate (#9687) by @msynk in #9689
- Use BitMessageBoxService in Boilerplate (#9690) by @msynk in #9694
- Fix css style issues in BitProPanel (#9698) by @msynk in #9700
- Add OrientaionLock to BitSwipes (#9699) by @msynk in #9701
- Add missing base component inheritance to BitPdfReader (#9680) by @Cyrus-Sushiant in #9681
- Use inline style to preserve display css property in BitStack (#9704) by @msynk in #9709
- Add missing usage of Body parameter in BitAccordion (#9713) by @Cyrus-Sushiant in #9714
- Set default sort in categories / product pages of Boilerplate (#9718) by @ysmoradi in #9719
- Improve certificate loading approach in Boilerplate (#9712) by @ysmoradi in #9715
- BitCarousel component improvements (#9705) by @msynk in #9711
- Add besql dbcontext initialization hook (#9720) by @ysmoradi in #9721
- Improve Boilerplate offline db context migration (#9724) by @ysmoradi in #9725
- Add BitCollapse component (#9695) by @Cyrus-Sushiant in #9722
- Add response caching feature in Boilerplate (#9726) by @ysmoradi in #9727
- Add fast invoke JS runtime methods to Butil (#9729) by @msynk in #9731
- Improve Boilerplate response caching (#9734) by @ysmoradi in #9735
- Add Cloudflare parameter to create new project page of Platform website (#9738) by @ysmoradi in #9739
- Improve server connection exception detection in Boilerplate (#9740) by @ysmoradi in #9741
- Add sales module demo CD pipeline (#9744) by @ysmoradi in #9745
- Add sales module sections and pages to Boilerplate (#9678) by @msynk in #9706
- Improve sales module sample demo CD (#9747) by @ysmoradi in #9748
- Add missing home page link to product page of Boilerplate (#9750) by @msynk in #9751
- Render currency symbol correctly in Boilerplate (#9752) by @msynk in #9753
- Add products.xml to sitemap of Boilerplate (#9742) by @msynk in #9749
- Add WithQueryString extension method to IAppController to improve developer experience (#9757) by @ysmoradi in #9758
- Add missing skeleton loading for products carousel on home page in Boilerplate (#9763) by @msynk in #9766
- Add ReverseNavPanel parameter to BitLayout (#9755) by @msynk in #9760
- Implement IProblemDetailsWriter in Boilerplate (#9764) by @ysmoradi in #9765
- Improve product page loading in Boilerplate (#9770) by @ysmoradi in #9771
- Add missing skeleton loading to product page of Boilerplate (#9773) by @msynk in #9774
- Add Preload parameter to BitInfiniteScrolling component (#9768) by @msynk in #9772
- Improve loading approach of sales module in Boilerplate (#9776) by @ysmoradi in #9777
- Improve Preload parameter implementation in BitInfiniteScrolling (#9778) by @msynk in #9779
- BitShimmer improvements (#9767) by @msynk in #9784
- Improve Boilerplate response caching (#9782) by @ysmoradi in #9783
- Improve children alignment in BitButton (#9736) by @msynk in #9787
- Refactor Issue31751 of ef core across projects (#9790) by @ysmoradi in #9793
- Add AutoGoToTop parameter to BitAppShell (#9788) by @msynk in #9789
- Handle boilerplate sales module home page infinite scroll errors (#9796) by @ysmoradi in #9797
- Improve bit besql (#9799) by @ysmoradi in #9800
- Add Size and Color parameters to BitCheckbox (#9746) by @Cyrus-Sushiant in #9769
- Fix font size in the small size of BitButton (#9802) by @Cyrus-Sushiant in #9803
- Add missing CancellationToken to SuggestItemsProvider in BitSearchbox (#9804) by @Cyrus-Sushiant in #9808
- Add support for non-async operations to bit Besql (#9811) by @ysmoradi in #9812
- Add support for importing pre-populated SQLite file to Besql (#9813) by @ysmoradi in #9814
- Make bit Besql's ConfigureSqliteSynchronous public (#9819) by @ysmoradi in #9820
- Fix ObjectDisposedException in BitCarousel (#9821) by @msynk in #9823
- Improve sales module ui in Boilerplate (#9807) by @msynk in #9809
- Update BlazorUI documentation (#9826) by @msynk in #9828
...