前一个帐号wangccsy@126.com不知道怎么的就成了企业帐号,改不成个人。所以重新注册了一个个人帐号。老程序员。精通JAVA,C#,数据库,对软件开发过程和流程熟悉。考取系统分析师,项目管理师和系统架构设计师等软件资格考试认证。愿意和大家一起前进。
能力说明:
精通JVM运行机制,包括类生命、内存模型、垃圾回收及JVM常见参数;能够熟练使用Runnable接口创建线程和使用ExecutorService并发执行任务、识别潜在的死锁线程问题;能够使用Synchronized关键字和atomic包控制线程的执行顺序,使用并行Fork/Join框架;能过开发使用原始版本函数式接口的代码。
能力说明:
了解Python语言的基本特性、编程环境的搭建、语法基础、算法基础等,了解Python的基本数据结构,对Python的网络编程与Web开发技术具备初步的知识,了解常用开发框架的基本特性,以及Python爬虫的基础知识。
阿里云技能认证
详细说明阿里云控制台又改变了,今天登录控制台想找远程连接的地方,居然找了半天才找着。建议阿里云不要随便更改控制台的布局,否则对于用习惯了的人,突然的改变会让人很难适应,或许就会让部分用户转投他地。
在阿里云建了一个ECS,之前一直使用VNC登录方式或者使用MSTSC(远程桌面连接工具)登录,一直使用Workbench不能连接成功,今天尝试了,终于成功,记录操作步骤共享之。
简单的对在C#中进行奇偶判断的方法及效率的总结。
在Linq to SQL中,使用ColumnAttribute特性来关联数据库和实体类。这个Atrribute也有很多属性可以设置。其中让人比较迷糊的是Expression,也折磨了我好几天才弄明白(因为官方的例子给的也让人迷糊,基本运行都无法通过)。
Linq2SQL中一个经典的Exception Info: System.Data.Linq.ChangeConflictException异常过程。
.NET有的IoC框架比较有名的有Autofac,CastleWindsor,Spring.NET,NInject,Unity和StructureMap,Xamarin.Forms本身也提供一个简单的DI实现叫DependService类。本文介绍一下这几种IoC容器对Xamarin的支持情况。
在编写Xamarin.Forms的MVVM的时候,发现Button绑定命令时,canExecute这个Func<bool>只执行一次,在我界面绑定的值发生变化时并不像标准WPF那样,按钮状态发生变化。很是不爽。开始调查吧。
1.C#五个修饰符的权限修饰符 级别 适用成员 解释public 公开 类及类成员的修饰符 对访问成员没有级别限制private 私有 类成员的修饰符 只能在类的内部访问protected 受保护的 类成员的修饰符 ...
在日志界,最著名的是Log4J(Java日志框架),很多开发语言都基于Log4j实现了自己的日志框架,如.net下的Log4net,PHP的Log4PHP(都是Apache软件基金会的Logging下的开源项目)。
在C#等面向对象语言中,虽然String是引用类型,但和普通的引用类型相关还是有较大的特殊型的。主要体现在两点: string中只有两个只读的属性,没有可设置的属性,所以说string 类型的实例具有固定不变性。
有趣的是,Android SeekBar小部件具有与Steps属性等效的功能,但不等同于Minimum和Maximum属性! 这怎么可能? SeekBar实际上定义了一个名为Max的整数属性,SeekBar的Progress属性始终是一个从0到Max的整数。
渲染器和事件(1) 大多数Xamarin.Forms元素都是交互式的。他们通过触发事件来响应用户输入。如果在Xamarin.Forms自定义元素中实现事件,则可能还需要在呈现器中为本机控件触发的相应事件定义事件处理程序。
渲染器和属性(2) 现在,对于iOS,EllipseUIView类是存在的,可以使用EllipseUIView作为本机控件来编写EllipseViewRenderer。 从结构上讲,这个类几乎与Windows渲染器相同: using System.
渲染器和属性(1) Xamarin.Forms包含一个BoxView元素,用于显示矩形颜色块。 你有没有希望你有类似的东西画一个圆圈,或使它更通用,椭圆?这就是EllipseView的目的。 但是,因为您可能希望在多个应用程序中使用EllipseView,所以它在第20章“异步和文件I / O”中介绍的Xamarin.FormsBook.Platform库中实现。
要使用阿里云的弹性云服务器ECS,必须确保已经拥有阿里云的帐号并且通过实名认证。如果还没有帐号可访问阿里云官网或者云栖社区进行注册。 1. 注册阿里云帐号 注册方式很简单,以官网为例,打开浏览器,输入官网www.aliyun.com,点击如下图的免费注册按钮,弹出的界面输入用户名密码及手机等相关信息,如下图:注册成功后实名认证可使用身份证(需要几个工作日人工处理)或者银行卡(这个方式比较快)。
首先需要购买阿里云ECS服务器。我购买的是低配置,OS为Ubuntu18.04。本文中所有的命令操作均是以Putty连接到ECS服务器后进行的操作。 一、基本环境安装准备 要运行Tomcat,首先要确认有没有安装Java。
这两天,使用阿里云的代金卷购买了一个最最低配置的ECS(突发性能实例)。配置是很低很低的那种(估计没有比这再低配置的了)。主要是想学习和验证一下使用Eclipse部署到ECS。不过比较手欠的是,今天在了解Ubuntu18.04的iptables命令的时候,尝试了一下iptables-save导出规则。
您好,自定义渲染器! HelloRenderers程序主要演示编写简单渲染器所需的开销。 该程序定义了一个名为HelloView的新View衍生,旨在显示一个简单的固定文本字符串。 这是HelloRenderers可移植类库项目中的完整HelloView.cs文件: using Xamarin.Forms; namespace HelloRenderers { public class HelloView : View { } } 而已! 但请注意,该类被定义为public。
Xamarin.Forms的核心可能看起来很神奇:像Button这样的单个元素在iOS,Android和Windows操作系统下显示为本机按钮的能力。在本章中,您将看到如何在所有三个平台上的Xamarin.Forms中的每个元素都由称为渲染器的特殊类支持。
Layout和LayoutToVisualElement定义了一组转换属性。这些是AnchorX,AnchorY,Rotation,RotationX,RotationY,Scale,TranslationX和TranslationY,它们根本不影响布局。
更多附加的可绑定属性附加的可绑定属性也可以在XAML中设置并使用Style设置。 为了了解它是如何工作的,让我们检查一个名为CartesianLayout的类,它模仿一个二维的,四象限的笛卡尔坐标系。
重叠的子项Layout 类可以在其子项上调用Layout方法,以便子项重叠吗?是的,但这可能会在你的脑海中提出另一个问题:什么决定孩子们的呈现顺序?哪些孩子看似坐在前台,可能部分或完全掩盖了背景中显示的其他孩子?在某些图形环境中,程序员可以访问名为Z-index的值。
不允许无约束的尺寸!有时您希望在屏幕上看到所有内容,可能是一系列大小统一的行和列。您可以使用带有星号定义的所有行和列定义的Grid执行类似的操作,以使它们具有相同的大小。唯一的问题是您可能还希望行数和列数基于子节点数,并针对屏幕空间的最佳使用进行了优化。
编码的一些规则从上面的讨论中,您可以为自己的Layout 衍生物制定几个规则:规则1:如果布局类定义了诸如间距或方向等属性,则这些属性应由可绑定属性支持。 在大多数情况下,这些可绑定属性的属性更改处理程序应调用InvalidateLayout。
失效假设您已在页面上组装了一些布局和视图,并且由于某种原因,代码隐藏文件(或者可能是触发器或行为)会更改Button的文本,或者可能只是字体大小或属性。 该更改可能会影响按钮的大小,这可能会对页面其余部分的布局更改产生连锁反应。
垂直和水平定位简化在VerticalStack中,LayoutChildren覆盖的末尾是一个switch语句,它有助于根据子级的HorizontalOptions属性设置水平定位每个子级。 这是整个方法: public class VerticalStack : Layout<View> { ...
从Layout派生 我们现在拥有足够的知识来创建我们自己的布局类。布局中涉及的大多数公共和受保护方法都是由非泛型布局类定义的。 Layout 类派生自Layout,并将泛型类型约束为View及其派生类。
内视过程中本章到目前为止提供的大部分信息都是从包含派生自各种元素(如StackLayout,ScrollView和Label)的类的测试程序汇编而来,覆盖虚拟方法(如GetSizeRequest,OnSizeRequest,OnSizeAllocated和LayoutChildren) ,并使用System.Diagnostics命名空间中的Debug.WriteLine方法在Visual Studio或Xamarin Studio的“输出”窗口中显示信息。
无限约束现在这里有一些标记,起初看起来与前面的例子非常相似,但有很大的不同: <ContentPage __ Padding="20"> <StackLayout> <Label Text="Sample text" /> __ </StackLayout> </ContentPage> ContentPage仍然使用参数(0,0,360,640)进行初始布局调用,而LayoutChildren覆盖的参数是(20,20,320,600)。
最近在完成阿里云MVP共创任务定pgAdmin4定制任务的时候,接触到了Python的本地化与国际化,了解了Python多语言化的基本知识,记录一下分享。其中涉及Python基础类库gettext,大家可访问link。
约束和大小请求您刚刚看到LayoutChildren覆盖在某些情况下如何仅基于LayoutChildren参数调用其子或子上的Layout。 但在更一般的情况下,LayoutChildren需要在调用子项的Layout方法之前知道其子项的大小。
尺寸和定位布局过程从可视树的顶部开始,然后通过可视树的所有分支继续进行,以包含页面上的每个可视元素。 作为其他元素的父母的元素负责相对于他们自己的孩子的大小调整和定位。 这要求父元素调用子元素中的某些公共方法。
定制是任何图形编程环境的关键方面。系统的设计是否具有灵活性?你能创建新类型的用户界面元素吗?这些新元素与系统的整合程度如何?Xamarin.Forms有几个便于定制的功能。您已经看过依赖服务(首先在第9章“特定于平台的API调用”中讨论过),它允许您的应用程序从公共可移植类库中执行特定于平台的代码。
由于参加阿里云pgAdmin4共创任务,刚好发现pgAdmin居然提供了Docker版本,心想便于交流自己的成果,就将它部署到我的ECS上吧。在整个过程也是对于Docker的学习加深了一些,以此分享。
使用ItemTemplateTabbedPage还可用于呈现小数据集,每个数据集是由选项卡标识的单独页面。 您可以通过设置TabbedPage的ItemsSource属性并指定用于呈现每个页面的ItemTemplate来完成此操作。
TabbedPage TabbedPage派生自抽象类MultiPage 。它维护一个Page类型的子集合,其中只有一个一次完全可见。 TabbedPage通过页面顶部或底部的一系列选项卡标识每个子项。
您自己的用户界面如果您想提供自己的用户界面以在主视图和详细视图之间切换,您可能还希望禁用MasterDetailPage自动提供的界面。您可以通过两种方式执行此操作: 将IsGestureEnabled属性设置为false以禁用iOS和Android上的滑动手势支持。
回到学校到目前为止,在本书中你已经看到了一些使用ListView来展示美术学院学生的程序。这些程序都有不同的方法来显示其中一个学生的详细外观。第19章“集合视图”中的SelectedStudentDetail程序在屏幕的上半部分显示了ListView,在下半部分显示了详细信息。
探索行为让我们用名为MasterDetailBehaviors的程序探索这些行为。 该程序定义了三个页面,名为DemoPage(源自MasterDetailPage),以及两个作为MasterDetailPage子项的ContentPage派生。
如果您将Xamarin.Forms应用程序视为建筑物,那么您可以使用视图和元素形式的砖块构建此建筑物。 您可以使用布局类将它们排列到墙中,然后使用ContentPage将它们组织到房间中,通过围绕NavigationPage构建的导航功能,可以实现从一个房间到另一个房间的通道。
像现实生活中的应用程序理想情况下,用户在终止并重新启动应用程序时不应该知道。应用程序体验应该是连续且无缝的。即使程序没有一直运行,一个半月进入的条目从未完成也应该在一周后处于相同的状态。NoteTaker程序允许用户记录由标题和一些文本组成的注释。
保存和恢复导航堆栈 许多多页面应用程序的页面体系结构比DataTransfer6更复杂,您需要一种通用的方法来保存和恢复整个导航堆栈。此外,您可能希望将导航堆栈的保存与系统方式集成,以保存和恢复每个页面的状态,特别是如果您不使用MVVM。
保存和恢复页面状态特别是当您开始使用多页面应用程序时,将应用程序的页面视为数据的主要存储库非常有用,而仅仅是作为底层数据的临时可视化和交互式视图。这里的关键词是暂时的。如果您在用户与之交互时保持基础数据是最新的,那么页面可以显示和消失而不必担心。
切换到ViewModel此时应该很明显,Information类应该真正实现INotifyPropertyChanged。 在DataTransfer5中,Information类已成为InformationViewModel类。
App类中介在Xamarin.Forms应用程序中,在公共代码项目中执行的第一个代码是通常名为App的类的构造函数,该类派生自Application。 在程序终止之前,此App对象保持不变,并且程序中的任何代码都可以通过静态Application.Current属性使用它。
事件在方法调用方法和消息中心通信方法中,信息页面需要知道主页的类型。 如果可以从不同类型的页面调用相同的信息页面,这有时是不合需要的。这个问题的一个解决方案是info类实现一个事件,这就是DataTransfer3中采用的方法。
消息中心您可能不喜欢两个页面类直接相互调用方法的想法。 它似乎适用于小样本,但对于具有大量类间通信的大型程序,您可能更喜欢一些不需要实际页面实例的更灵活的东西。这样的工具是Xamarin.Forms MessagingCenter类。
属性和方法调用调用PushAsync或PushModalAsync的页面显然可以直接访问它导航到的类,因此它可以设置属性或调用该页面对象中的方法以将信息传递给它。但是,调用PopAsync或PopModalAsync的页面还有一些工作要做,以确定它返回的页面。
数据传输模式 多页面应用程序中的页面通常需要共享数据,特别是一页面将信息传递到另一页面。 有时此过程类似于函数调用:当HomePage显示项目列表并导航到DetailPage以显示其中一个项目的详细视图时,HomePage必须将该特定项目传递给DetailPage。