OpenSource library- Breaking changes

Part 1

Implement Open-source library guidance

Part 2

OpenSource library – Cross-platform targeting

Part 3

OpenSource library-Dependencies

Part 4

OpenSource library- Source Link

Part 5

OpenSource library-versioning

Part 6

OpenSource library- Breaking changes

Part 7

OpenSource library- conclusion

Following guidance from https://docs.microsoft.com/en-us/dotnet/standard/library-guidance/breaking-changes

Nr

Recomandation

AOP Roslyn

1

DO think about how your library will be used. What effect will breaking changes have on applications and libraries that use it?

2

DO minimize breaking changes when developing a low-level .NET library.

3

CONSIDER publishing a major rewrite of a library as a new NuGet package.

4

CONSIDER leaving new features off by default, if they affect existing users, and let developers opt in to the feature with a setting.

5

DO NOT change an assembly name.

6

DO NOT add, remove, or change the strong naming key.

7

CONSIDER using abstract base classes instead of interfaces.

8

CONSIDER placing the ObsoleteAttribute on types and members that you intend to remove. The attribute should have instructions for updating code to no longer use the obsolete API.

9

CONSIDER keeping types and methods with the ObsoleteAttribute indefinitely in low and middle-level libraries.

Unfortunately, AOP Roslyn is not in the stage of breaking changes. But I have had another library, Exporter, and I have had made  3:  CONSIDER publishing a major rewrite of a library as a new NuGet package

[ADCES] Post Event AzureDevOps

I have had a presentation at ADCES ( https://www.meetup.com/Bucharest-A-D-C-E-S-Meetup/events/257585167/ ). It was about AzureDevOps, Angular and .NET Core – real world scenario to create a build from GitHub application . The Example will be Stankins pipeline , https://github.com/ignatandrei/stankins/blob/master/azure-pipelines.ymlYou can find the presentation at https://github.com/ignatandrei/Presentations/tree/master/2018/shorts/AzureDevOps 

See you next time!

OpenSource library-versioning

Part 1

Implement Open-source library guidance

Part 2

OpenSource library – Cross-platform targeting

Part 3

OpenSource library-Dependencies

Part 4

OpenSource library- Source Link

Part 5

OpenSource library-versioning

Part 6

OpenSource library- Breaking changes

Part 7

OpenSource library- conclusion

Following recommendations from https://docs.microsoft.com/en-us/dotnet/standard/library-guidance/versioning

Nr

Recomandation

AOP Roslyn

1

CONSIDER using SemVer 2.0.0 to version your NuGet package.

NO

2

DO use the NuGet package version in public documentation as it’s the version number that users will commonly see.

Yes

3

DO include a pre-release suffix when releasing a non-stable package.

No

4

CONSIDER only including a major version in the AssemblyVersion

Yes

5

CONSIDER keeping the major version number of the AssemblyVersion and the NuGet package version in sync.

Yes

6

DO NOT have a fixed AssemblyVersion

Yes

7

CONSIDER including a continuous integration build number as the AssemblyFileVersion revision

Not needed

8

AVOID setting the assembly informational version yourself.

Yes

For 1: I do not like SemVer. It is putting some pressure on the developer of the OpenSource. So I decide to follow Calendar versioning https://calver.org/ 

For 2: Yes, it is normal.

For 3: No, I do not like pore-release.

For 4: Yes – the year is major

For 5: Yes, done by CI process

For 6: Yes, done by CI in Calendar Versioning

For 7: NO. And , because of Calendar versioning, it is already done, if I do not publish 2 versions in the same day

For 8: Do nothing – and it is done.

OpenSource library- publishing

Following the rules at https://docs.microsoft.com/en-us/dotnet/standard/library-guidance/publish-nuget-package

Nr

Recomandation

AOP Roslyn

1

DO publish stable packages and pre-release packages you want community feedback on to NuGet.org.

Done

2

CONSIDER publishing pre-release packages to a MyGet feed from a continuous integration build.

No

3

CONSIDER testing packages in your development environment using a local feed or MyGet. Check the package works then publish it to NuGet.org.

Yes

4

DO use a Microsoft account to sign in to NuGet.

Yes

5

DO enable two-factor authentication for accessing NuGet.

Yes

6

DO enable email notification when a package is published.

Yes

For 1: Done already. However, I do not like pre-release packages

For 2: Too much hassle for a single developer. Using instead NuGet

For 3: Yes , I have already a build.bat to do this

For 4: Yes.(NuGet allows only that now)

For 5 : Yes

For 6: Yes.

My Tools in 2018

Next time I will make the tools better, for having the URL next to them. For the moment, you can google/bing/duck them .

However, those are the most used tools by me in 2018:

  1. Utilities

    1. Browsers
      • Firefox
      • Edge
      • IE
      • Chrome
    2. RemoteViewers
      • TeamViewer
      • RemoteDesktop
    3. angular-cli-ghpages – npm
    4. glogg
    5. Abiro PhoneGap Image Generator
  2. IDE / Editors

    1. Visual Studio Code
    2. Visual Studio 2017
    3. SSMS for SqlServer
    4. Notepad++
  3. Misc

    1. Organizer
      • rescue time
      • Cronofy for trello -sync with google calendar
      • Trello – major projects
      • Todoist – shopping list
    2. Sites
      • http://www.picturetopeople.org/text_generator/others/transparent/transparent-text-generator.html
      • wikipedia
      • http://www.webgraphviz.com/ – display dot languge
      • Linkedin – CV
    3. Communications
      • meetup.com
      • facebook
      • Outlook
      • Slack
      • Gmail – email
      • Yahoo – email
      • Skype
    4. Decompiler – IlSpy – https://github.com/icsharpcode/ILSpy/releases
    5. Presentations
      • https://remarkjs.com
  4. Hardware

    1. Surface PC
    2. Android Phone
  5. Development

    1. Office Addins
      • Outlook vba alerts
      • https://docs.microsoft.com/en-us/office/dev/add-ins/quickstarts/excel-quickstart-angular
      • https://github.com/OfficeDev/generator-office
      • https://github.com/OfficeDev/Word-Add-in-Angular2-StyleChecker/blob/master/app/main.ts
    2. ChromeAddons
      • Export for Trello
      • OneTab
      • Todoist
    3. Angular components
      • office-addin-validator
      • @angular/material
    4. Javascript components
      • https://mermaidjs.github.io
      • https://github.com/adrai/flowchart.js
      • https://appsforoffice.microsoft.com/lib/1/hosted/office.js
    5. .NET Packages
      • simpleinjector
      • ScriptCs.Octokit
        https://github.com/alfhenrik/ScriptCs.OctoKit
      • Octokit
        https://github.com/octokit/octokit.net
      • dotnet tool install -g DotnetThx
      • Razor interpreter : https://github.com/toddams/RazorLight
        https://www.nuget.org/packages/RazorLight/
      • dotnet gcr
      • dotnet aop
      • Roslyn
      • https://github.com/crozone/FormatWith
      • xunit
      • Newtonsoft.json
      • RestSharp
      • MediatR
      • https://fluentassertions.com/examples/
      • https://github.com/shouldly/shouldly
      • swagger
      • Microsoft.Exchange.WebServices
    6. continous integration
      • Jenkins
      • https://github.com
      • https://www.bitrise.io/
      • https://ignatandrei.visualstudio.com/
      • https://codecov.io
      • https://ci.appveyor.com
    7. Frameworks
      • Angular
      • Cordova
      • .NET Core
    8. typescript paste extension visual studio
    9. Docker
      • Portainer
  6. Newsletters

    1. Code project
    2. Asp.net weekly
    3. R Weekly
    4. Code project
    5. DNK Daily
    6. JSCRipt daily
    7. JavaScript Weekly

For 2019, the list is public at https://trello.com/b/3O1fFpcl/tools2019

Detailed list about my activities in programming in 2018

This is what I have done in 2018:

Base learning

  • Angular
  • R
  • CI /CD with Azure DevOps Syntax base
  • Roslyn
  • .NET Core

 

Presentations:

  • Continuing the presentations about Design Patterns ( course )
  • Various Presentations ( ROSLYN AOP, Introduction to R, Messaging with MediatR)
  • Presenting at OWASP : Top 10 OWASP and counter attacks in .NET Core
  • Presenting at Code Camp Bucuresti .NET Core and Angular – deploy on Windows, Android, Linux ( Mac + iOS) : https://github.com/ignatandrei/AngNetCoreDemo

 

 

Free Projects :

             

  • Literary Awards – full javascript, database in the browser

Site Web: https://ignatandrei.github.io/LiteraryAwards/

Android :https://play.google.com/store/apps/details?id=com.msprogrammer.com

 

  • ONG Declaration for Romania

GitHub : https://ignatandrei.github.io/Decl230/

Android: https://play.google.com/store/apps/details?id=decl203.msprogrammer.ro

 

Starting Stankins v2  : https://github.com/ignatandrei/stankins , Live Demo at https://azurestankins.azurewebsites.net

 

 

Components:

  • AOP_With_Roslyn – .NET Global Tool for AOP with ROSLYN

GitHub :https://github.com/ignatandrei/AOP_With_Roslyn

NuGet: https://www.nuget.org/packages/dotnet-aop

 

  • AspNetCoreImageTagHelper – .NET Core for base 64 images

GitHub: https://github.com/ignatandrei/AspNetCoreImageTagHelper

NuGet: https://www.nuget.org/packages/AspNetCore.Mvc.ImageBase64/

Mentioned on https://github.com/aspnet/Mvc

  • Versions For .NET Core written in Angular:

NPM  : https://www.npmjs.com/package/versions-netcore-angular

Live Demo: https://azurestankins.azurewebsites.net/about

 

Books:

( free download at http://msprogrammer.serviciipeweb.ro/2018/09/03/making-open-source-component-from-idea-to-deploy-with-examples-from-net-core/ )

 

Various:

 

 

 

Andrei Ignat weekly software news(mostly .NET)

* indicates required

Please select all the ways you would like to hear from me:

You can unsubscribe at any time by clicking the link in the footer of our emails. For information about our privacy practices, please visit our website.

We use Mailchimp as our marketing platform. By clicking below to subscribe, you acknowledge that your information will be transferred to Mailchimp for processing. Learn more about Mailchimp's privacy practices here.